作者:0xkookoo,前BybitTechLead,現極客web3顧問
作者Twitter:@0xkookoo
編輯:Faust,極客web3
Introduction
BTC 提出電子現金,開闢區塊鏈行業從0到1
ETH 提出智能合約,率領區塊鏈行業從1到100
ICP提出Chainkey技術,驅動區塊鏈行業可從100到 100,000,000
2009 年 1 月 3 日,BTC第一個區塊被挖出,自此區塊鏈激盪發展14 年。縱觀過去14 年,BTC的精妙與偉大,Ethereum的橫空出世,EOS 的激情眾籌,PoS&PoW的宿命之爭,Polkdadot的萬鏈互連,一項項驚為天人的技術,一個個美妙絕倫的故事,讓無數圈內人競折腰!
當前,2023 年,整個區塊鏈的格局是怎樣?以下是我的思考,詳見此文中的公鍊格局解讀部分
BTC憑藉著引入電子現金的正統性,屹立不倒,是行業的巨石
ETH憑藉著引入智能合約的可編程性,L2生態的可組合性,百花齊放,是行業的領導者
Cosmos,Polkadot等憑藉著跨鏈互操作性,試圖一統天下
各類以太坊殺手層出不窮,小領域內各領風騷
但未來10年,整個區塊鏈行業會如何發展?以下是我的思考
主權是區塊鏈唯一需要解決的一個問題,包括資產主權,數據主權,言論主權等,否則沒必要有區塊鏈這個東西;
不可篡改性是充分條件,但不是必要條件,只要你能保證我的主權不受損害,我隨便你篡改,世界上每個人的資產都被篡改同比例翻倍,有什麼區別?
完全的去中心化不可能做到,不管怎麼設計,總有“天賦”異禀者/既得利益者佔據更大話語權,也總有人會主動選擇不參與,【去中心化的多點中心化】是最終格局;
透明化是必須,這場全人類的社會實驗不就是為了讓每個人都說得上話,都能有權利保護自己的主權嗎?雖然總有人懶,總有人願意相信更專業的人,總有人為了效率最大化主動選擇放棄投票,但是,這也是他們主動做出的選擇,他們有權利但主動選擇不行使。只要一切是透明的,沒有暗箱操作,死個明白我也願意接受,輸了是我技不如人,優勝劣汰,這也符合市場經濟;
去中心化代碼執行的控制權才是核心,否則就是脫褲子放屁,投票公示一周,最後項目方還是部署了作惡版本的代碼,哪怕不是作惡版本,也是在戲弄大家。可以說現在半個世界都是代碼組成的,去中心化的實體不包括代碼執行的控制權,那人們包括政府怎麼敢讓區塊鏈行業做大?
線性成本的無限擴展性,隨著區塊鏈與現實生活結合得越來越緊密,參與的人越來越多,需求越來越大,基礎設施上無法支持無限的擴展性,或者擴展起來太貴,都是不可接受的。
Why ICP
這裡先引入一個故事,2009年阿里巴巴提出“去 IOE”戰略,這也是後來成就阿里“雙十一”的一大里程碑。
去 IOE
“去 IOE”戰略的核心內容就是要去除IBM小型機、Oracle數據庫及 EMC 存儲設備,將 “雲計算” 的本質植入阿里的 IT 基因。其中
I指IBM p系列小型機,操作系統是AIX(IBM專有的Unix系統);
O指Oracle數據庫(RDBMS);
E指EMC中高端SAN存儲。
去IOE的原因主要有以下三點,但第一點是本質原因,後兩者更間接:
無法滿足需求,傳統IOE系統難以適應互聯網企業高並發需求,無法支持大規模分佈式計算架構;
成本太高,維護IOE成本太高,比如IBM小機50萬,Oracle年保數十萬等;
依賴性太強,IOE系統依賴性太強,被IBM和Oracle等廠商 “綁架”,難以根據自身需求進行靈活配置。
那為什麼是 2009 年提出“去 IOE”戰略而不是更早呢?
在此之前,
阿里業務規模和數據量還沒有達到使傳統IOE系統難以適應的程度,因此去IOE的需求不急;
國內數據庫產品在技術和質量上還不夠成熟,無法很好替代IOE 作用;
互聯網思想和雲計算概念在國內還未普及,去中心化架構未成流行方向;
管理層和技術人員可能需要一段時間的實踐積累,才意識到存在的問題和必須採取的措施。
2009 年,
阿里快速擴張業務,IOE系統難支持規模,成本更易顯現出問題;
一些開源數據庫產品如 MySQL成熟程度較高,可以作為替代品;
互聯網思想和雲計算在國內開始廣泛流傳、應用,更便於推廣 "去 IOE"概念;
前微軟技術大牛,王堅,帶著全球性的技術視角在08年加入阿里,深受馬雲信任,提出了"去 IOE"。
但是去IOE不是簡單地改變軟件和硬件本身,用新的軟硬件取代舊的軟硬件,而是用新的方式取代舊的方式,是用雲計算徹底改變 IT 基礎架構。換句話說,這是行業的變化導致的,而不是僅僅是簡單的技術升級。
企業發展三大階段
一個企業的發展可以分為3個階段,
塑造基因,組織文化,Start-up,從0到1
快速成長,小步快跑,Scale-up,從1到100
無限擴展,拓寬邊界,Scale-out,從100到100,000,000
下面把整個區塊鏈行業當成是一個企業來分析
Start-up / 區塊鏈 1.0 / BTC
BTC的創新之處在於它解決了數十年來困擾計算機科學家的一個問題,即如何創建一個可以在無需信任任何中央機構的情況下運行的數字支付系統。
但 BTC 在其設計和開發中,也確實存在一些局限性,這些局限性為以太坊(ETH)等後續的區塊鏈項目提供了市場機會。以下是一些主要的局限性:
交易吞吐量和速度:BTC的區塊生成時間約為 10 分鐘,且每個區塊的大小限制導致了其交易處理能力的上限。這意味著在網絡繁忙時,交易確認可能需要較長時間,且可能需要支付較高的交易費用。
智能合約功能有限:BTC的設計主要是作為一種數字貨幣,它支持的交易類型和腳本語言功能相對有限。這限制了BTC在復雜的金融交易和去中心化應用(DApps)方面的應用。
不易升級和改進:由於BTC的去中心化和保守的設計原則,對其進行大的升級和改進通常需要社區的廣泛共識,在實踐中很難達成,這也使得BTC的進步相對緩慢。
能耗問題:BTC的共識機制是基於工作量證明(PoW)的,這意味著大量的計算資源被用於礦工之間的競爭,導致了大量的能耗。這在環保和可持續性方面受到了人們的批評。關於這一點,大家也可以關註一下EcoPoW,算是部分緩解了這個局限性。
Scale-up / 區塊鏈 2.0 / ETH
當前以太坊的Layer2擴容形式可以看作是一種 “縱向擴展”,依賴於底層Layer1的安全性和數據可用性保證。雖然看似是2層結構,但是最後還是會被Layer1的處理能力所限制,即使換成多層結構,即打造Layer3,Layer4,無非也只是增加整個系統的複雜性,拖延一點時間而已。更何況根據邊際遞減效應,後面每多加一層,多出來的overhead就會導致擴容效果大打折扣。這種縱向分層的方式可以看作是單機硬件升級,只不過這個單機指的是整個ETH生態。
且隨著使用量增加,用戶對低廉費用和高性能需求也會增加。而Layer2 作為Layer1上的一個應用,其費用只能降低到一定程度,最終仍受制於 Layer1的基礎費用和吞吐量。這類似經濟學中的需求曲線理論 - 隨著價格下降,總需求量會增加。縱向擴展很難從根本上解決可擴展性問題。
以太坊是一棵參天巨樹,所有的人都依靠著那個根,一旦那個根汲取養分的速度跟不上,人們的需求也就得不到滿足;
因此,只有橫向擴展才是更容易擁有無限性的。
有人認為多鏈跨鏈也算是一種橫向擴展方式。
拿Polkadot來舉例子,它是異構王國,每一個國家長得不一樣,但每做一個東西就要建一個王國;
Cosmos是同構王國,每個國家的經脈骨骼長得一樣,但也是每做一個東西就要建立一個王國;
但從Infra角度來看,以上這兩者的模式略顯奇怪,每多做一個應用就要多建立一整個王國?我們舉個例子來看看有多奇怪,
3個月前我買了一台Mac,在它上面開發了一個Gmail應用;
現在我想開發一個Youtube應用,但我必須要重新買一台Mac來開發,這太奇怪了。
且以上這兩種方式都面臨新增鏈時跨鏈通信複雜度高的問題,因此它們並不是我的首選。
Scale-out / 區塊鏈 3.0 / ICP
想要 scale-out,需要一整套底層的基礎設施,支持快速地橫向擴展,不用重複造輪子。
一個比較典型的支持scale-out 的例子就是雲計算,【VPC+子網+網絡ACL+安全組】這些底層模版大家都一模一樣,所有的機器都帶著編號和類型,上層的RDS,MQ 等核心組件支持無限擴展,如果需要更多的資源,點擊一個按鈕就可以快速啟動。
之前有一位 Leader 給我分享過,如果你想了解互聯網企業需要哪些基礎設施和組件,那你只需要去 AWS 看一下他們提供的所有服務就行了,那是最全最強的組合。
同理,我們來 high-level 看看 ICP,看看為什麼它滿足 Scale-out 的要求。
這裡先說明幾個概念,
Dfinity Foundation:是一個非營利性組織,致力於推動去中心化計算機技術的發展和應用。它是 Internet Computer 協議的開發者和維護者,旨在通過創新的技術和開放的生態系統,實現去中心化應用的全面發展。
Internet Computer (IC):是 Dfinity Foundation 開發的一種高速區塊鍊網絡,專門為去中心化應用設計。它採用了一種新的共識算法,可以實現高吞吐量和低延遲的交易處理,同時支持智能合約和去中心化應用的開發和部署。
Internet Computer Protocol (ICP):是 Internet Computer 協議中的原生Token,它是一種數字貨幣,用於支付網絡使用費用和獎勵節點
What's ICP
以下許多內容會有一些些硬核,但是我已經進行了大白話描述,希望大家都可以跟得上。如果有更多細節內容希望與我討論,可以在文章最上方找到我的聯繫方式。
架構概述 / Architecture Overview
從分層結構看,從下至上分別為
P2P 層,收集和發送來自用戶、子網中的其他副本和其他子網的消息。保障消息能傳遞到到子網中的所有節點,以確保安全性、可靠性和彈性
共識層:主要任務是對 input 進行排序,以確保同一子網內部的所有節點以相同的順序處理任務。為了實現這一目標,共識層使用了一種新的共識協議,該協議旨在保證安全性和活性,並具有抗 DOS / SPAM 攻擊的能力。同一子網內部對處理各種消息的順序達成共識後,這些區塊會被傳遞到消息路由層。
消息路由層:根據共識層傳來的任務,準備好各 Canister 的輸入隊列。執行完畢後,它還負責接收 Canister 產生的輸出,並按需轉發給本地或其他區的 Canister。此外,它還負責記錄和驗證用戶請求的響應。
執行層:為 Canister 提供運行時環境,按照調度機制有序讀取輸入,調用相應Canister 完成任務,並將更新後的狀態和產生的輸出返回給消息路由層。它利用隨機數帶來的非確定性,以保證計算的公平性和可審計性。因為在某些情況下,Canister 的行為需要是不可預測的。例如,在進行加密操作時,需要使用隨機數來增加加密的安全性。此外,Canister 的執行結果需要具有隨機性,以避免攻擊者通過分析 Canister 的執行結果來發現漏洞或者預測 Canister 的行為。
關鍵組件 / Key Components
從組成成分看:
子網(Subnet):支持無限擴展,每一個子網就是一個小型區塊鏈。 Subnet 之間通過 Chain Key 技術通信,因為已經在子網內部達成共識了,所以只要通過 Chain Key 驗證就行了。
副本(Replica):每一個Subnet 中可以有很多個節點,每一個節點都是一個Replica,IC 的共識機制會保證同一個Subnet 中的每一個Replica 都會以相同的順序去處理相同的input ,使得每一個Replica 的最終狀態都是相同的,這種機制被稱為Replicated State Machine,
罐子(Canister):Canister 是一種智能合約,它是一種運行在 ICP 網絡上的計算單元,可以存儲數據和代碼,並且可以與其他 Canister 或者外部用戶進行通信。 ICP 提供了一個運行時環境,用於在 Canister 中執行 Wasm 程序,並通過消息傳遞與其他 Canister 和外部用戶進行通信。可以簡單地認為就是跑代碼用的一個 docker,然後你自己注入 Wasm Code Image 在裡面運行。
節點(Node):獨立的服務器,Canister 還是需要有一個實體機器來跑的,這些實體機器就是真實的機房裡面的機器了。
數據中心(Data Center):數據中心的節點通過節點軟件 IC-OS 虛擬化為一個副本(Replica),從多個數據中心中隨機選取一些 Replica 組成一個子網(Subnet)。這樣可以保證即使一個數據中心被黑了或者是遭遇天災了,整個 ICP 網絡還是正常運行的,有點像阿里巴巴 “兩地三中心” 容災高可用方案的升級版。數據中心可以分佈在全世界各地,甚至以後可以在火星搭建一個數據中心。
邊界節點(Boundary Nodes):提供外部網絡和 IC 子網之間的入口和出口,驗證響應。
身份主體(Principal):外部用戶的標識符,由公鑰派生,用於權限控制。
網絡神經系統(NNS):使用抵押 ICP 進行治理的算法 DAO,用於管理 IC。
註冊表(Registry):由 NNS 維護的數據庫,包含實體(如 Replica、canister、Subnet)之間的映射關係,跟現在的 DNS 工作原理有點像。
Cycles:本地Token,代表用於支付 canister 運行時消耗的資源的 CPU 配額。非要用中文表示的話,我會用 “計算週期” 這個詞,因為 cycles 主要是指用於支付計算資源的單位。
ICP的關鍵創新技術
從底層來看,採用了 Chain-key 技術,其中
Publicly Verifiable Secret Sharing scheme (PVSS Scheme):即公開可驗證秘密共享方案。在 Internet Computer 協議的白皮書中,PVSS scheme 被用於實現去中心化密鑰生成(DKG)協議,以確保節點的私鑰在生成過程中不會被洩露。
前向安全公鑰加密方案(forward-secure public-key encryption scheme):前向安全公鑰加密方案可以確保即使私鑰被洩露,以前的消息也不會被解密,從而提高了系統的安全性。
Key resharing protocol:一種基於閾值簽名的密鑰共享方案,用於在 Internet Computer 協議中實現密鑰管理。該協議的主要優點是它可以在不創建新的密鑰的情況下,將現有的密鑰共享給新的節點,從而減少了密鑰管理的複雜性。此外,該協議還使用閾值簽名來保護密鑰共享的安全性,從而提高了系統的安全性和容錯性。
Threshold BLS signatures:ICP 實現了閾值簽名方案,對於每一個Subnet,有一個公共的可驗證的公鑰,而它對應的私鑰卻是拆分成多份share 的,每一份share 由這個Subnet 中的一個Replica 去持有,只有同一個Subnet 中超過閾值數量的Replica 對消息簽名了才被認為是有效。這樣 Subnet 之間,Replica 之間傳遞的消息都是加密但可快速驗證的,既保證了隱私性,又保證了安全性。其中BLS 算法就是比較著名的一種閾值簽名算法,它是唯一能產生非常簡單且高效的閾值簽名協議的簽名方案,且簽名是唯一的,這意味著對於給定的公鑰和消息,只有一個有效的簽名。
Non-interactive Distributed Key Generation (NIDKG):為了安全地部署閾值簽名方案,Dfinity 設計、分析並實現了一種新的DKG 協議,該協議在異步網絡上運行且具有很高的健壯性(即使子網中多達三分之一的節點崩潰或損壞,它仍然可以成功),同時仍然能夠提供可接受的性能。除了生成新密鑰外,此協議還可用於重新共享現有密鑰。此功能對於實現 IC 拓撲的自主演進至關重要,因為子網隨著時間推移會發生成員變化。
PoUW:PoUW比 PoW 多了一個 U,它代表 Userful,主要是提高了不少性能,讓節點機器少做無用功。 PoUW 不會人為製造困難的哈希計算,它將算力盡可能的放在為用戶服務上。大部分資源(CPU、內存)用於實際 canister 中代碼的執行上。
Chain-evolution technology:是一種用於維護區塊鏈狀態機的技術,它包括了一系列的技術手段,可以確保區塊鏈的安全性和可靠性。在 Internet Computer 協議中,Chain-evolution technology 主要包括以下兩個核心技術:
1.Summary blocks:每個 epoch 的第一個區塊是一個 summary block,它包含了一些特殊的數據,用於管理不同的閾值簽名方案。其中,一個低閾值方案用於生成隨機數,而一個高閾值方案用於認證子網的複制狀態。
2.Catch-up packages (CUPs):CUPs是一種用於快速同步節點狀態的技術,它可以讓新加入的節點快速地獲取到當前狀態,而不需要重新運行共識協議。
我對整個IC底層技術的邏輯性推導為:
在傳統的公鑰密碼學中,每個節點都有自己的公私鑰對,這意味著如果一個節點的私鑰被洩露或被攻擊,那麼整個系統的安全性都會受到威脅。而閾值簽名方案將一個密鑰分成多個部分,分配給不同的節點,只有當足夠數量的節點合作才能生成簽名,這樣即使某些節點被攻擊或洩露,也不會對整個系統的安全性造成太大影響。此外,閾值簽名方案還可以提高系統的去中心化程度,因為它不需要一個中心化的機構來管理密鑰,而是將密鑰分散到多個節點中,這樣可以避免單點故障和中心化風險。因此,IC 使用閾值簽名方案來提高系統的安全性和去中心化程度,希望用閾值簽名的方式來完成一個安全性高,可擴展,可快速驗證的通用區塊鏈。
而 BLS 就是一種著名的閾值簽名算法,它是唯一能產生非常簡單且高效的閾值簽名協議的簽名方案。且 BLS 簽名還有一個優點就是不需要保存簽名狀態,只要消息內容不變,簽名就是固定的,這意味著對於給定的公鑰和消息,只有一個有效的簽名。這都保證了極高的擴展性,因此 ICP 選擇了 BLS 方案。
因為用了閾值簽名,所以需要有一個分發者來分發密鑰片段給不同的參與者,但是這個分發密鑰片段的人就是一個單點,容易導致單點故障問題,因此Dfinity 設計了一種分佈式的密鑰分發技術,也就是NIDKG,在子網創建的初始化時期,所有參與的Replica 共同非交互式地生成一個公鑰A,對於對應的私鑰B,每個參與者通過數學方式分別算出和持有其中的一個衍生計算出來的secret share。
要想做NIDKG,就得保證分佈式的每一個參與方都沒有作假,因此每個參與者不僅可以得到自己的secret share,還可以公開驗證自己的secret share 是否正確,這是實現分佈式密鑰生成的一個非常重要的點。
那如果萬一某個歷史時刻的子網密鑰被洩漏了呢?怎麼保證歷史數據的不可篡改性呢? Dfinity 採用了一種前向安全的簽名方案,這保證了即使某個歷史時刻的子網密鑰被洩露,攻擊者也無法更改歷史區塊的數據,這樣也防止了後期腐敗攻擊對區塊鏈歷史數據的威脅。如果這個限制更強一些,其實也可以保證信息在傳輸時不會被竊聽成功,因為時間戳對不上,即使短時間內密鑰被破解了,也無法破解過去的通信內容。
有了 NIDKG 之後,如果某一段 secret share 長期被一個節點持有,一旦各個節點逐漸被黑客侵蝕,整個網絡有可能會出現問題。因此需要不停地進行密鑰更新,但是密鑰更新也不能要求所有參與者 Replica 必須齊聚一堂交互通信,而是也必須非交互式地進行。但是因為公鑰 A 已經在 NNS 裡面註冊好了,別的子網也都會用這個公鑰 A 來進行驗證,因此子網公鑰最好不要變。可是子網公鑰如果不變的話,節點間的 secret share 怎麼更新呢?因此Dfinity 設計了一種Key resharing protocol,在不創建新公鑰的前提下,所有持有當前版本secret share 的Replica 非交互式地生成新一輪的衍生secret share 給到新版本的secret share 持有者,這樣
既保證了新版本的 secret share 是經過當前所有合法 secret share 持有者的認證的
也保證了舊版本的 secret share 不再合法
還保證了即使未來新版本的 secret share 洩漏了,舊版本的 secret share 也不會洩漏,因為兩者之間的多項式毫不相關,是無法反推出來的。這也是前面剛剛介紹的前向安全性。
另外保證了高效重新隨機分發,當受信任節點或訪問控制發生變化時,可以隨時修改訪問策略和控制者,無需重新啟動系統。這在許多場景下都大大簡化了密鑰管理機制。例如,這在子網成員變化的情況下非常有用,因為重新共享將確保任何新成員都有適當的 secret share,而任何不再是成員的副本將不再有 secret share。此外,如果在任何一個時期或甚至每個時期中洩露了少量的 secret share 給攻擊者,這些 secret share 對攻擊者也沒有任何好處。
因為傳統的區塊鏈協議需要存儲從創世塊開始的所有塊信息,隨著區塊鏈的增長,這會導致可擴展性問題,這也是為什麼很多公鏈想開發一個輕客戶端都非常麻煩。於是IC 想解決這個問題,因此IC 開發了Chain-evolution Technology,在每個epoch 結束時,已處理的所有input 和需要consensus 信息都可以安全地從每個Replica 的內存中清除,這極大地降低了每一個Replica 的存儲要求,它使得IC 能夠擴展以支持大量的用戶和應用程序。此外,Chain-evolution technology 還包含 CUPs 技術,它可以讓新加入的節點快速地獲取到當前狀態,而不需要重新運行共識協議,這大大降低了新節點加入 IC 網絡的門檻和同步時間。
綜上,IC 的所有底層技術都是一環扣一環,基於密碼學(來自理論),也充分考慮了整個行業的難題如快速同步節點(來自實踐)。真乃集大成者也!
ICP的特性 / Key Features
反向Gas模型:傳統的區塊鏈系統大多要求用戶先持有原生Token,例如 ETH,BTC,然後消耗原生token來支付交易手續費。這增加了新用戶的進入障礙,不符合人們的使用習慣。為什麼我刷個 Tiktok 一定要先持有 Tiktok 的股票?而ICP 採用了反向Gas 模型設計,用戶可以直接使用ICP 網絡,項目方會負責手續費,這降低了使用門檻,更契合了互聯網服務的習慣,有利於獲得更大規模的網絡效應,從而支持更多用戶的加入。
穩定的Gas:對於市面上的其他公鏈來說,為了鏈的安全性,也為了轉賬需要,就會有人去買原生token,礦工就去拼命地挖,或者有人拼命地屯原生token ,這樣就為這條公鏈貢獻了算力例如Bitcoin,或者為這條公鏈提供了質押經濟安全性例如Ethereum。可以說我們對 btc/eth 的需求其實是來源於 Bitcoin/Ethereum 公鏈對於算力/質押的要求,本質上也是鏈的安全要求。因此,只要是直接用原生token來付 gas 的鏈,以後還是會貴的,也許現在原生token便宜,但是只要鏈本身生態起來了,後面都會變貴。而ICP 不一樣,ICP 區塊鏈中消耗的Gas 叫Cycles,這是通過消耗ICP 兌換而來的,Cycles 在算法調節下處於穩定,與1 SDR 錨定(SDR 可以看作綜合多國法幣計算後的穩定單位)。因此不管 ICP 以後漲到多少,你在 ICP 裡面做任何事情消耗的金錢跟今天都是一樣的(不考慮通脹)。
Wasm:使用WebAssembly (Wasm) 作為代碼執行的標準,開發者可以使用多種流行的編程語言(比如Rust,Java,C++,Motoko等)去寫代碼,從而支持更多開發者的加入。
支持跑AI模型:Python語言也可以編譯為wasm,Python用戶量世界名列前茅,也是AI的第一語言,比如矩陣和大整數計算。已經有人在IC 上跑 Llama2 模型了,如果說未來AI+Web3的概念發生在ICP上,我一點也不會驚訝。
Web2的用戶體驗:目前ICP上的很多應用都做到了毫秒級查詢、秒級更新的驚人成績。如果不信你可以直接去使用OpenChat,一個純鏈上的去中心化聊天應用。
鏈上運行前端:你只聽說過後端的部分內容寫成簡單的智能合約,然後放在鏈上跑,這樣可以保證數據資產等核心邏輯不被篡改。但是前端其實也需要完全跑在鏈上才安全,因為前端攻擊是非常典型和頻繁發生的問題。試想一下大家可能覺得 Uniswap 代碼很安全,智能合約經過這麼多年的這麼多人的驗證,代碼也簡單,肯定不會出問題吧。但是突然有一天如果 Uniswap 的前端被劫持了,跟你交互的合約其實是黑客部署的一個惡意合約,你可能瞬間就會傾家蕩產。但是如果你將前端代碼全都存儲和部署在IC 的Canister 裡,最起碼通過IC 的共識安全保證了前端代碼無法被黑客攻擊篡改,這個防護就比較完善了,且IC 上可以直接運行和渲染前端,並不影響應用的正常運作。在 IC 上,開發者可以直接構建應用程序,無需傳統雲服務、數據庫或支付接口,也沒有必要購買一個前端服務器或擔心數據庫、負載均衡、網絡分佈、防火牆等問題。而用戶通過瀏覽器或移動端 App 就可以直接訪問 ICP 上部署的前端網頁,例如我之前部署的一個個人博客。
DAO 控制代碼升級:現在許多DeFi 協議,項目方擁有完全控制權,可以任意發起重大決定如暫停運營、賣出資金等,完全不經過社區投票商議,這種case 相信大家都有見證或者聽說過。相比之下,ICP 生態下的DAPP 代碼運行在DAO 控制的容器內,即使某個項目方在投票中佔較大比重,但也實行公示投票流程,滿足了本文最開始描述的區塊鏈透明化的必要條件。這種流程保證機制更能反映社區意願,相對目前的其他公鏈項目來說在治理上實現程度更優。
協議自動升級:當需要升級協議時,可以在summary block中添加新的閾值簽名方案,從而實現自動協議升級。這種方式可以確保網絡的安全性和可靠性,同時避免了硬分叉所帶來的不便和風險。具體來說,ICP 中的 Chain Key 技術可以確保網絡的安全性和可靠性,它通過一種特殊的簽名方案來維護區塊鏈狀態機。在每個 epoch 的開始,網絡會使用一個低閾值簽名方案來生成隨機數,然後使用一個高閾值簽名方案來認證子網的複制狀態。這種簽名方案可以確保網絡的安全性和可靠性,同時也可以實現自動協議升級,從而避免了硬分叉所帶來的不便和風險。
(Proposal Voting)
Fast fowarding:是 Internet Computer 協議中的一種快速同步節點狀態的技術,它可以讓新加入的節點快速地獲取到當前狀態,而不需要重新運行共識協議。具體來說,Fast forwarding 的過程如下:
1.新加入的節點獲取當前 epoch 的 Catch-up package (CUP),其中包含了當前 epoch 的 Merkle 樹根、summary block 和隨機數。
2.新加入的節點使用 state sync subprotocol 從其他節點獲取當前 epoch 的完整狀態,同時使用 CUP 中的 Merkle 樹根驗證狀態的正確性。
3.新加入的節點使用 CUP 中的隨機數和其他節點的協議消息運行共識協議,從而快速地同步到當前狀態。
Fast forwarding的優點是可以讓新加入的節點快速地獲取到當前狀態,不需要像一些其他公鏈一樣必須從頭開始出塊。這樣可以加速網絡的同步和擴展,同時,它也可以減少節點之間的通信量,從而提高網絡的效率和可靠性。
(fast forwarding)
去中心化的互聯網身份:在 IC 上的身份系統,真的讓我覺得 DID 問題完全可以被解決掉了,而且是徹底解決掉,不管是擴展性還是隱私性。 IC 上的身份系統目前有一個實現版本被稱為Internet Identity,還有基於它開發的更強大的NFID。
它的原理如下:
1.註冊時,它會為用戶生成一對公鑰和私鑰。私鑰儲存在用戶設備內的 TPM 安全芯片中且永遠不會洩漏,而公鑰會被分享給網絡上的服務。
2.當用戶要登錄一個 dapp 時,dapp 會為用戶創建一個臨時會話密鑰。這個會話密鑰會被用戶通過授權電子簽名的方式簽名,這樣 dapp 就獲得了驗證用戶身份的權限。
3.會話密鑰的簽名後,dapp 就可以使用該密鑰代表用戶訪問網絡服務,而用戶無需每次都進行電子簽名。這類似 Web2 中的代表授權登錄。
4.會話密鑰只有短時間的有效期,過期後用戶需要重新通過生物識別授權簽名來獲得新的會話密鑰。
5.用戶的私鑰一直保存在本地的 TPM 安全芯片中,不會離開設備。這保證了私鑰的安全和用戶的匿名屬性。
6.通過使用臨時會話密鑰,不同 dapp 無法互相追踪用戶身份。實現真正的匿名和私密訪問。
7.用戶可以方便地在多設備間同步管理自己的 Internet Identity,但設備本身也需要相應的生物識別或硬件鑰匙進行授權。
Internet Identity 的一些優點如下:
1.不需要記住密碼。使用 biometrics 功能如指紋識別直接登錄,無需設置和記住複雜密碼。
2.私鑰不離開設備,安全性更高。私鑰保存在 TPM 的安全芯片內,無法被竊取,解決 Web2 中用戶名密碼被盜的問題。
3.匿名登錄,無法被跟踪。不同於 Web2 用郵箱作為用戶名可跨平台追踪,Internet Identity 解除了這種跟踪。
4.多設備管理更便利。可以在任何支持 biometrics 的設備登錄同一個賬號,而不是單設備限定。
5.不依賴中心服務商,實現真正去中心化。不同於 Web2 中 usernames 對應郵箱服務商的模式。
6.採用委託認證流程,每次登錄無需重複簽名,用戶體驗更好。
7.支持使用專用安全設備如 Ledger 或 Yubikey 登錄,安全性提升。
8.隱藏用戶實際公鑰,無法通過公鑰查詢交易記錄從而保障用戶隱私。
9.與 Web3 區塊鏈無縫兼容,可以安全高效地登錄和簽名區塊鏈 DApp 或交易。
架構更先進,代表了 Web2 和 Web3 優點的有機融合,是未來網絡賬號和登錄的標準。
除了能提供新的用戶體驗,同時也採取了以下技術手段來保證其安全性:
1.使用 TPM 安全芯片儲存私鑰,該芯片被設計成即使開發人員也無法接觸或提取私鑰,防止私鑰被竊取。
2.生物認證如指紋或面容識別等二次認證機制,需要結合所在設備進行驗證,使得只有持有設備的用戶能使用該身份。
3.會話密鑰採用短期失效設計,限制被盜用的時間窗口,並強制在會話結束時銷毀相關密文,降低風險。
4.公鑰加密技術使得傳輸過程中的數據被加密,外部監聽者無法得知用戶私密信息。
5.不依賴第三方身份提供商,PRIVATE KEY 由用戶自行生成和控制,不信任第三方。
6.結合 IC 區塊鏈共識機制帶來的不可篡改性,確保整個系統運轉的可靠性。
7.正在不斷更新升級相關密碼學算法和安全流程,例如加入多重簽名等更安全的機制。
8.開放源代碼和去中心化設計優化透明度,利於社區協作提升安全性。
(Internet Identity)核心團隊 / Core Team
從團隊來看,共有 200+ 員工,都是非常精英的人才。員工共發表論文 1600+,被引用 10w+,共持有專利 250+。
從學術上看,他最近的數學理論包括 Threshold Relay 和 PSC 鏈,Validation Towers and Trees 和 USCID。
從技術背景上看,他具備深厚的技術研發背景,早年就從事大數據和分佈式計算領域的研究,這為建設複雜的 ICP 網絡奠定技術基礎。
從創業上來看,他之前利用自己的分佈式系統運營了一個 MMO 遊戲,該系統託管了數百萬用戶。 2015 年 Dominic 開始啟動 Dfinity ,同時他也是 String labs 的總裁和 CTO。
從視野上來看,他早在10多年前就提出了去中心化互聯網的概念,長期推進這個宏偉項目是一個不易之舉,目前來看他的設計思路很具備前瞻性。
創始人Dominic Williams是一名加密理論家,也是連續創業的企業家。
在技術團隊上,Dfinity 的實力非常強大。 Dfinity 基金會集結了大量頂尖的密碼學和分佈式系統專家,例如Jan Camenisch,Timothy Roscoe,Andreas Rossberg,Maria D.,Victor Shoup等,甚至BLS 密碼算法作者中的“L” -Ben Lynn也在Dfinity任職。這為 ICP 的技術創新提供了強有力的支持。區塊鏈項目的成功離不開技術,而頂尖人才的聚集能帶來技術突破,這也是 ICP 一個關鍵的優勢所在。
Dfinity Foundation Team融資與經濟模型 / Fund-raising & Tokenomics
這一塊內容如果也講的話,本文就太長了,因此我決定後面單獨寫一篇文章給大家詳細分析下。本文更側重從區塊鏈行業的發展方向看,為什麼 ICP 機會很大。
應用 / Applications
ICP 上可以開發所有類型的應用,社交平台,創作者平台,聊天工具,遊戲,甚至元宇宙遊戲。
有很多人說 IC 上由於很難做到全局狀態一致,因此天然不適合做 DeFi,但是我覺得這個問題本身就是錯誤的。不是全局狀態一致難做,是低延遲下的全局狀態一致難做。如果你能接受 1 分鐘的時間,全球 1 萬台機器也可以做全局一致性。 Ethereum 和 BTC 現在這麼多節點,不是已經被迫實現了高延遲下的全局狀態一致嘛,也因此它們目前無法做到橫向的無限擴展。 IC 通過切分子網的方式首先解決橫向無限擴展的問題,至於低延遲下的全局狀態一致,通過強一致性的分佈式一致性算法,良好設計的網絡拓撲,高性能的分佈式數據同步,時間戳有效校驗,成熟的容錯機制,也是可以達成的。但是實話實說,在 IC 應用層面上做一個交易平台和現在華爾街那批人做的高性能交易平台難度會更大,不僅僅是多機房達成一致。但是,難度大不代表完全不能做,而是要先解決很多技術問題,終歸會找到一種適中的狀態,既保證了安全性,也保證了人們可以接受的體驗。比如下面的 ICLightHouse。
ICLightHouse,一個全鏈上的 orderbook dex,全鏈上什麼概念?多少技術難點要解決?在別的公鏈上這連想都不敢想,但是在 IC 上最起碼 it’s doable,讓我們看到了希望。
OpenChat,一個體驗非常棒的去中心化聊天應用,我目前在整個區塊鏈行業沒有看見過第二個這樣的產品,之前有很多其他團隊也在這個方向做過嘗試,最終都因為各種各樣的技術問題失敗了,歸根結底還是用戶覺得體驗不行,比如速度實在是太慢了,發一條消息要10 秒,接收別人的消息也要10 秒。但是,在 ICP 上三個人的一個小團隊就做出了這麼成功的產品,到底有多絲滑大家自己去體驗。歡迎加入組織,在這裡你可以享受到思想的碰撞,且一定程度上可以享受到言論自由的爽感。
Mora,一個屬於超級創作者的平台,在這裡每一個人都可以創建一個星球,打造自己的個體品牌,且你輸出的內容永遠是屬於你自己的,甚至可以支持付費閱讀。堪稱是去中心化的知識星球了,我現在已經每天都要在上面刷新文章了。
Mora - 0xkookoo
OpenChat 和 Mora 應用是我真真實實基本上每天都在用的產品,讓人有一種離不開的舒適感,兩個詞形容就是自由和充實。
目前已經有一些團隊在 IC 上開發遊戲應用了,我覺得全鏈遊戲這個敘事可能最終會由 IC 來接管。就像我之前寫的這篇文章裡面的 GameFi 部分所說的,遊戲可玩性和趣味性是項目方要考慮的事情,可玩性在 IC 上是更容易實現的,期待Dragginz的大作。
總結 / Summary
ICP 就像地球一樣,Chainkey 技術就像地球內核,它與ICP 的關係類似於TCP/IP 協議與整個互聯網行業的關係,每一個Subnet 就像亞非拉大陸一樣,當然Subnet 也可以是太平洋/大西洋,在大陸和海洋中有不同的建築和區域(Replica 和Node),每一個區域和建築上可以種植物(Canister),也有不同的動物快樂地生活著;
ICP 支持橫向擴展,每個子網自治的同時還可以在不同子網之間進行通信。不管你是什麼應用,social media,金融,哪怕是元宇宙,都可以通過這種分佈式的網絡來達成最終一致性。想要在同步的條件下達成全局賬本很容易,但是想在異步的條件下達成 ”全局狀態一致” 的挑戰就很大了,目前來看只有 ICP 有機會做到這一點。
需要注意,這裡指的不是“全球狀態一致”,而是“全局狀態一致”。 “全局狀態一致” 要求所有參與的節點【對所有的操作順序達成一致】,【最終結果一致】,【客觀一致,不依賴於節點是否發生故障】,【時鐘一致】,【即時一致,所有的操作都被同步處理】,這在IC 單子網中是可以保證的。但是如果想要保證“全球狀態一致”,就需要所有的子網作為一個整體都對同一數據和狀態達到上面的“全局狀態一致”,在實際實現上,這是不可能在低延遲內達到的,這也是目前ETH 等公鏈無法橫向擴展的瓶頸所在。因此 IC 選擇了在單子網內達成共識,其他子網通過通信的方式快速驗證其結果沒有造假,以此達到 “最終的全局狀態一致”。相當於同時結合了大型公鏈的去中心化性和聯盟鏈的高吞吐量與低延遲性,並通過數學與加密算法證明的方式實現了子網橫向無限擴展。
綜上,可以看到,按照我在文章最前面思考的區塊鏈最終發展方向,【主權】+【去中心化的多點中心化】+【透明化】+【代碼執行的控制權】+ 【線性成本的無限擴展性】,
主權是區塊鏈唯一需要解決的一個問題,包括資產主權,數據主權,言論主權等,否則沒必要有區塊鏈這個東西;
IC 完全做到了
不可篡改性是充分條件,但不是必要條件,只要你能保證我的主權不受損害,我隨便你篡改,世界上每個人的資產都被篡改同比例翻倍,有什麼區別?
IC 也做到了
完全的去中心化不可能做到,不管怎麼設計,總有“天賦”異禀者/既得利益者佔據更大話語權,也總有人會主動選擇不參與,【去中心化的多點中心化】是最終格局;
IC 就是目前所有公鏈中做得最好的,既能夠保持一定程度的去中心化,又能夠充分利用中心化實體的優勢,從而更好地實現網絡的治理和運營。
透明化是必須,這場全人類的社會實驗不就是為了讓每個人都說得上話,都能有權利保護自己的主權嗎?雖然總有人懶,總有人願意相信更專業的人,總有人為了效率最大化主動選擇放棄投票,但是,這也是他們主動做出的選擇,他們有權利但主動選擇不行使。只要一切是透明的,沒有暗箱操作,死個明白我也願意接受,輸了是我技不如人,優勝劣汰,這也符合市場經濟;
IC 完全做到了
代碼執行的控制權才是核心,否則就是脫褲子放屁,投票公示一周,最後項目方還是部署了作惡版本的代碼,哪怕不是作惡版本,也是在戲弄大家。
目前只有 IC 做到了
線性成本的無限擴展性,隨著區塊鏈與現實生活結合得越來越緊密,參與的人越來越多,需求越來越大,基礎設施上無法支持無限的擴展性,或者擴展起來太貴,都是不可接受的。
目前只有 IC 做到了
根據上面的這些事實和我的思考分析,我認為,ICP = 區塊鏈 3.0。
本文只是為了從區塊鏈行業未來發展方向來聊一聊為什麼ICP 很有可能會是區塊鏈3.0 的創新驅動者,但不可否認的是ICP 的Tokenomics 設計上確實存在一些問題,生態也暫時沒有爆發,目前ICP 距離我心目中最終的區塊鏈3.0 還需要繼續努力。不過不用擔心,這個事情本來就很難,即使是Dfinity Foundation 也已經準備好了20 年的Roadmap,主網上線才2 年就已經達成這麼大的成就了,目前也已經利用密碼學方式在對接BTC和ETH 生態,相信3 年後會更上一層樓。
Future
IC 目前已經完成了從下至上的 Infra 搭建,從上至下的應用也初見端倪。我最近的直接觀感是,IC 能打的牌越來越多了,為下一個牛市做足了準備。
IC 是一個範式的更新,而不僅僅是簡單的技術升級,是單機計算到分佈式計算的範式遷移,更是單機系統到分佈式系統的範式遷移。去中心化雲計算的概念可以讓很多小型的公司在初始階段就享受到一站式的開發體驗。
按照俞軍老師的產品價值公式:產品價值= (新體驗– 舊體驗)- 遷移成本,未來只要某些人發現加入IC 生態的體驗收益大於Migration 成本,IC 會有更多人包括項目方和用戶的加入,“雲計算” 的規模效應就會更容易體現出來。解決掉【先有雞還是先有蛋】的問題,IC 的正向飛輪也就建立起來了。
當然每個人對於體驗的定義是有主觀性的,因此總有人會選擇先加入,而有的人選擇後加入,先加入的人承擔更大的風險,但通常也會平均獲得更大的收益。
References
https://internetcomputer.org/whitepaper.pdf
https://dfinity.org/
https://forum.dfinity.org/t/llama2-c-llm-running-in-a-canister/21991/2
https://icp.guide/costs-on-the-internet-computer/
https://www.woshipm.com/pd/3055985.html
https://www.woshipm.com/pmd/2595761.html
https://foresightnews.pro/article/detail/32405
https://www.modb.pro/db/33106#:~:text=“去IOE化”最早是,架構已經成為了趨勢。
https://www.jianshu.com/p/dc146f2d5a47
https://www.tmtpost.com/498656.html
https://foresightnews.pro/article/detail/13344
https://eprint.iacr.org/2021/339
https://medium.com/dfinity/composite-queries-horizontal-scaling-for-multi-canister-dapps-e766e62bdea9
https://www.binance.com/en-NG/feed/post/141158
https://medium.com/dfinity/internet-identity-the-end-of-usernames-and-passwords-ff45e4861bf7
https://medium.com/dfinity/understanding-the-internet-computers-network-nervous-system-neurons-and-icp-utility-tokens-730dab65cae8
https://volodymyrpavlyshyn.medium.com/dfinity-a-deep-dive-into-the-internet-computer-protocol-30d2de509c1d
https://wiki.icpl.app/wiki/互聯網身份介紹/2.1什麼是互聯網身份/
https://forum.dfinity.org/t/long-term-r-d-malicious-node-security-proposal/9399/3
https://forum.dfinity.org/t/motion-proposals-on-long-term-r-d-plans/9261
https://forum.dfinity.org/t/long-term-r-d-people-parties-proof-of-human-proposal/9636
https://medium.com/dfinity/ultimate-decentralization-using-virtual-people-parties-that-deliver-proof-of-personhood-at-de575522c80
https://medium.com/dfinity/announcing-internet-computer-mainnet-and-a-20-year-roadmap-790e56cbe04a
https://twitter.com/i/spaces/1MYxNgnMOyzKw
https://medium.com/@dfinity/a-technical-overview-of-the-internet-computer-f57c62abc20f
https://yegk3-bqaaa-aaaae-aajza-cai.icp0.io/
https://u52bf-3qaaa-aaaal-qb5wq-cai.icp0.io/
https://medium.com/dfinity/internet-computer-basics-part-1-principals-and-identities-215e8f239da4
https://internetcomputer.org/docs/current/references/ii-spec/
https://medium.com/dfinity/secure-scalability-the-internet-computers-peer-to-peer-layer-6662d451f2cc
https://internetcomputer.academy/internet-identity/how-internet-identity-works/
https://internetcomputer.org/how-it-works/
https://medium.com/@dfinity/a-technical-overview-of-the-internet-computer-f57c62abc20f
https://dashboard.internetcomputer.org/