原文標題:《HashKey 崔晨:詳解 DFINITY 上線後進展與競爭優劣勢》
原文來源:崔晨,HashKey Capital Research
DFINITY 團隊成立於 2016 年,在 2018 年完成了 1.95 億美元的募資,一舉成爲明星項目。而本計劃於 2019 年上線的主網一再推遲,在這個過程中 DFINITY 的目標也轉爲互聯網計算機,不再強調區塊鏈的內容。最終在 2021 年 5 月 10 日,DFINITY 解鎖所有代幣的流通,意味着最終上線主網版本。萬衆矚目的 DFINITY 表現如何?又與其他公鏈有何差異?本文將重點解讀這兩個問題。
現在 DFINITY 網絡中已經上線 ICP 代幣且開發流通,根據 CMC 數據顯示,DFINITY 的市值排名保持在前十左右,與上線幾個月的 Polkadot 位於同一水平。DFINITY 相應的瀏覽器也已經開放,從 DFINITY 的網絡數據可以判斷其現狀。
DFINITY 以互聯網計算機爲願景,讓互聯網成爲公共計算的平臺。互聯網計算機在不宕機的容器中託管軟件,用戶可以不依賴於傳統服務器與雲計算企業。爲了保證網絡有足夠的算力,DFINITY 對節點有專業要求,尤其需要高性能的 CPU 和 RAM,因此由專業的數據中心來運行節點。一般來說,數據中心會同時運行多個節點,這些節點也在維護不同的子網。如下圖,子網可能由位於不同數據中心的不同節點來共同維護,以此避免網絡中出現中心化故障。
圖 1:數據中心與節點
目前 DFINITY 共存在 14 個子網,共由 105 個節點維護,這個節點分佈在 16 個數據中心中。其中 10 個數據中心位於美國,3 個位於新加坡,還有的位於羅馬尼亞、瑞士和德國,平均每個數據中心運行 7 個節點,這些節點共由 53 家運營商管理。目前來說,DFINITY 無論在節點數量還是分佈都顯得過於中心化。以太坊的節點同樣在美國分佈最多,佔據了 39% 的節點數量,比特幣節點分佈最多的美國所佔比例爲 19.5%。DFINITY、比特幣和以太坊網絡不同,節點不需要算力挖礦來爭奪記賬權。網絡容量通過內存表示,DFINITY 網絡的總內存爲 0.205PB。這些差距與 DFINITY 才起步有關,項目方預計在十年內的數據中心數量達到數千個,節點數量達到數百個。
DFINITY 上線兩個星期區塊高度就達到 1200 萬以上,以太坊達到同一高度花費了六年時間,目前 DFINITY 的出塊速度爲每秒 12 個區塊左右,雖然出塊速度較快,但網絡中傳輸的信息與以太坊相差百倍,這也與其仍處於起步階段有關。
DFINITY 以互聯網計算機作爲發展目標,開發者可以將應用部署在互聯網計算機中,無需使用傳統的數據庫和服務器。因此要保證網絡的可擴展性,同時也要防止攻擊、保護隱私等。爲了實現作爲互聯網計算機的功能,DFINITY 在技術上有所優化和創新,主要體現在用戶的身份驗證系統、容器、子網、共識機制和 Chain Key 等。
在目前的互聯網中,用戶通過賬戶和密碼進行登錄,並將信息上傳到服務器中。但實際上這種方式並不安全,黑客很有可能攻擊公司服務器或服務器提供商獲取數據。DFINITY 則採用數字簽名系統替代賬戶和密碼,也就是加密技術中的公私鑰,包括密鑰生成、簽名和驗證。其他區塊鏈協議同樣會使用數字簽名系統,用戶使用私鑰登錄錢包,再通過錢包進行轉賬等各種操作。如果私鑰丟失或被人竊取,就意味着永久丟失地址中的財產。DFINITY 提供了一種不同於互聯網賬戶密碼登錄,也不同於區塊鏈私鑰登錄的互聯網身份驗證系統。
DFINITY 的互聯網身份可以通過三種方式驗證登錄:設備(智能手機或筆記本電腦)中的生物識別系統,設備解鎖的密碼,或插入計算機 USB 的安全密鑰。用戶在首次註冊時會在設備的芯片中生成加密密鑰,並與生成的用戶號綁定。如果用戶的用戶號丟失,或者登錄的設備丟失,都會導致無法連接到 DFINITY 的互聯網身份,因此官方建議在同一個用戶號下添加多個設備。互聯網身份還可以爲用戶在不同容器前端賦予不同身份,這樣用戶在與每個應用交互時,應用不能將用戶在不同應用中的行爲關聯起來。
DFINITY 中的計算單位被稱爲容器,包含程序和狀態,是智能合約的一種衍化形式。容器允許應用程序與環境分離,並能儲存當前的軟件狀態和用戶交互的記錄,以及使用應用功能引起的狀態更新。容器與用戶或容器之間的交互行爲是儲存在區塊鏈上的,因此它運行的過程是不可篡改且不可阻止的,這也是互聯網計算機不需要防火牆的原因。容器也可以運行網頁前端,這是與智能合約的不同,只要有燃料供給容器就能保持運行。容器運行的燃料爲 Cycles,通過由網絡代幣 ICP 單項兌換而來。兌換比例非固定,因此可以維持 Cycles 的價格相對穩定。在容器中預存 Cycles 可以讓用戶在不持有代幣的情況下使用互聯網服務,這方面與其他公鏈不同。
容器由位於數據中心的節點負責運行,它們被分配在不同的子網上,以此來實現互聯網計算機的擴容。每個子網都運行自己的區塊鏈,鏈上的容器可以透明地調用同一子網或者其他子網上的容器。對於整個系統來說,在同一子網中調用還是跨子網調用容器是沒有區別的,背後都涉及節點間的複製和計算。在這些子網中有一個比較特殊,它負責維護互聯網計算機的治理系統,也就是網絡神經元系統(NNS,Network Nervous System)。
圖 2:節點維護子網,容器分佈在子網中
互聯網計算機中的子網由多個節點來維護,每個節點都需要保存子網所有容器的狀態,並處理新的進程。爲了網絡的安全和可靠,每個節點的備份要完全相同,消息的處理順序也要保持一致,以達成一致的狀態,因此需要節點對收到的消息進行共識。也就是節點通過點對點網絡收集外界的信息,信息在路由傳遞之前通過共識層達成統一的消息並創建公證過的區塊。在 DFINITY 中採用 VRF 和 BLS(隨機可驗證方程和門限簽名)算法,實現能滿足三分之一容錯率的區塊鏈協議。

圖 3:DFINITY 中信息的處理過程
在 DFINITY 中,共識通過四步達成:產生區塊,公證,隨機數信標,以及最終確認。在每輪共識開始時,節點將收集到的消息彙總成區塊並進行廣播,再由節點進行簽名公證,在公證達成一致後,各公證節點的簽名會壓縮成多籤以節約空間。隨機信標的引入是防止在同一區塊高度上出現多個區塊,並且促使共識快速達成。每個區塊都存在一個隨機信標,它是由節點通過 BLS 的方式生成且不可預測。在收到區塊的隨機信標後,節點使用 BLS 框架對其進行簽名,如果一個區塊有超過 50% 的公證者簽名,區塊上的簽名會被聚集成多籤的同時產生隨機數信標。
圖 4:隨機信標的生成
通過隨機信標可以對節點進行排名,區塊的公證時間被分割,排名在先的節點先進行公證,如果超時換爲下一位。如果存在多個公證區塊,那麼排名在先的公證區塊成爲最終區塊。公證節點在觀察到高度爲 h 的區塊後,如果決定不再公證高度小於等於 h 的區塊,則對此區塊發起最終簽名確認,超過三分之二的節點對同一區塊進行確認後,則達成了區塊的最終確認。
Chain Key Technology
Chain Key 是 DFINITY 實現子網擴建和進行密鑰管理的技術,能夠保證網絡的安全可用。Chain Key 關係到互聯網計算機的密鑰系統,包括對信息的驗證,密鑰的管理和分配方式,主要應用了 BLS(門限簽名)和非交互的密鑰生成系統技術。在 DFINITY 中,可以使用唯一的公鑰驗證信息,而不是需要像其他區塊鏈一樣下載全節點賬簿。而且每個子網都存在一個由 NNS 發放的固定公鑰,公鑰可以驗證來自子網發送的簽名信息。在發送信息時,不是由節點單獨進行簽名,而是由子網中節點共同簽名,即使用門限簽名的方式對信息進行簽名確認,保證足夠容錯率的同時確保信息經過足夠多的節點確認。門限簽名指的是對消息進行簽名時,需要多個私鑰且達到一定數量的簽名纔可以進行彙總表示子網整體對信息的確認。
NNS 網絡對密鑰管理和分配需要無交互的分佈式密鑰生成系統,它可以對密鑰進行拆分,增加密鑰持有者的節點數,同時不破壞整體的密鑰。在 DFINITY 中,每個子網都有一個永久的公鑰用於驗證子網發送的信息,而子網的私鑰被拆分給各節點,節點持有這些被拆分的私鑰進行門限簽名來傳輸信息。私鑰拆分與分享通過委託商執行,他要將加密後的私鑰和公鑰發送給各節點,同時發送一個無需交互的零知識證明,以求在不展示私鑰分片的情況下可以證實節點收到的部分是正確有效的。

圖 5:對密鑰進行可驗證地拆分
除此之外,爲了防止發送公私鑰的委託商作惡,委託商還要採用分佈式的方式。只要有一個委託商是誠實的,生成的密鑰足夠隨機,就不會影響到節點得到的密鑰。在子網中添加節點時,還可以對已存在節點的私鑰進行「再分享」(re-sharing)。進行再分享後,持有私鑰的節點會改變,但整體子網的公鑰不會變。這讓 NNS 很容易地對子網中的節點進行管理,同時在外界看來子網的驗證公鑰不變,不影響子網對外保持通信,保持安全可信賴的環境。
圖 6:密鑰的分享以及再分享
新的節點加入子網或者節點掉線時,都需要更新子網中儲存容器的狀態,每隔一段時間節點會簽署一個「catchup package」來解決這個問題。如果子網中超過三分之一的節點損壞,NNS 可以再重新部署子網,「catchup package」還可以用於子網的恢復以及子網升級場景。
DFINITY 通過網絡神經元系統(NNS,Network Nervous System)治理,每個持有 ICP 的人都可以鎖定成立神經元來參與 DFINITY 鏈上治理。參與治理可以獲得系統獎勵,類似於 PoS 中的 Staking 行爲。投票獎勵會逐漸減少,從 10% 到第八年減少到 5%。鎖定在神經元 ICP 的數量比例和解鎖延遲時間代表了其投票權重,用戶需要爲自己的選擇負責。如果提案和投票的內容損害網絡發展,那麼鎖定在神經元的 ICP 價值也會下降。要注意的是,解鎖時的溶解時間的意思是從提現開始,到完全恢復流動性的時間,而非其他公鏈中的鎖定時間。如果神經元無法判斷決策的內容,它可以選擇棄票,或者追隨信任的神經元投票。這種追隨關係是非固定且不可見,被稱爲流動民主,所以可以隱藏神經元真實的投票權重。
圖 7:ICP 治理獎勵
NNS 最主要的工作在於協調節點與子網的關係以及密鑰分配,上文中提到的非交互的密鑰分享系統就是通過 NNS 實現的。NNS 通過兩種容器實現:一個是治理容器,其中包括可以進行投票的提案和神經元信息,第二種包括互聯網計算機中的各種配置。神經元支持的提案包括添加節點,節點獎勵的發放等。
DFINITY 的願景爲互聯網計算機,這會比普通區塊鏈公鏈囊括更多的應用。在過去的應用開發和 IT 部署中,存在開發成本高的問題,需要選擇商業雲服務平臺,維護數據庫和防火牆,使用購買專業或開源的操作系統等,而且後期維護也要花費很大成本,互聯網計算機的應用則節約了這部分成本。基於此,DFINITY 沒有像其他公鏈一樣,應用完全集中在 DeFi 和 NFT 領域,而是分佈在各個領域。
近期 DFINITY 基金會啓動了 2.2 億美元的開發者獎勵計劃,這個計劃是直接發放獎勵,不是以投資的方式參與項目。目前基金會鼓勵的項目包括幾方面,包括開發工具包,開發者工具,基礎設施,應用和開放互聯網服務等。
表 1:部分 DFINITY 基金會發放的 Grant
除此之外,DFINITY 的社交媒體平臺 CanCan 也受到了很多關注,它的運營方式很類似於 TikTok,用戶可以獲得激勵積分的獎勵並兌換爲治理代幣。CanCan 已經將代碼開源,應用程序不到 1000 行代碼,並且不需要 Web 服務、防火牆或外部數據庫等。DFINITY 設立了 Beacon Fund 來進行項目投資。下圖是目前 DFINITY 中已存在的社區項目。
圖 8:DFINITY 的生態應用(圖源:ICPSquad)
上圖中可以看出,除了本身受到很多關注的 DeFi 應用外,DFINITY 中社交應用也佔據了很大比重,這與 DFINITY 網絡擴展性足以支持社交軟件應用有關,也和官方最初支持產品是社交類應用有關。一個有趣的現象,DFINITY 中的社交軟件很多都是模仿已經存在的媒體應用,在已有應用的基礎上加入了經濟獎勵。實際上其他公鏈已經進行了此方面的嘗試,但 DFINITY 生態中應用的前端同樣可以放在容器中運行,而且身份驗證系統讓用戶更容易地接觸到互聯網計算機,DFINITY 中的社交應用與公鏈中的社交應用會有所差異。
DFINITY 雖然在規劃中不重點提及區塊鏈的內容,但 DFINITY 的底層還是基於區塊鏈系統,其中涉及了公私鑰的密碼學應用,不可篡改執行的容器,共識機制,代幣的激勵機制,以及治理等,這些方面的設計與其他公鏈有些相似。例如和智能合約很類似的容器概念,抵押參與治理並獲得獎勵,使用共識機制達成節點統一,使用燃料 Cycles 推動容器運行等。
在細節上,DFINITY 與其他公鏈又存在很多不同。相較於其他公鏈而言,DFINITY 的 NNS 治理系統被賦予了很大權力。雖然究其本質是還是投票數量和質押時間長的用戶治理比重大,但用戶質押 ICP 的溶解時間是在鎖定成爲神經元的一刻就已決定了,溶解時間意味着用戶決定取消鎖倉到用戶拿到解鎖 ICP 的時間。相較於其他公鏈來說,DFINITY 治理鎖定代幣的時間會更長,與神經元在系統中具有最高權力有關。
雖然 DFINITY 是開放的網絡,但節點的加入和分配都需要經過 NNS 系統提案纔可以完成,這方面與其他公鏈有所不同。運行節點需要專業的數據中心,個人用家庭電腦不能滿足 DFINITY 的運行需求。節點加入、子網分配和擴容也是通過 NNS。DFINITY 系統中有創新的 Chain Key 技術,可以保證在不影響子網通信的情況下,增減子網的節點並擴充子網,這點其他公鏈很難做到。
在 Token 的設計上,DFINITY 的雙幣模型區別於其他公鏈,支持容器運行的燃料 Cycles 需要使用 ICP 兌換購買,兌換比例的不固定可以讓 Cycles 維持一個穩定的價格,避免由於 ICP 的價格漲跌而影響到 Cycles,這樣讓容器運營者的花費維持穩定。
對於 DFINITY 的用戶,登錄認證系統不同於其他公鏈。登錄時無需使用錢包,通過硬件設施、電腦或智能手機就可以完成用戶 ID 的註冊和使用,極大縮減了用戶的學習和使用成本。容器的燃料 Cycles 不需要使用者進行儲存,實際上用戶在使用容器時是無感的,而大多數公鏈需要使用者支付運行智能合約的費用。
生態應用上,DFINITY 也表現出了與其他公鏈的不同。在目前的環境下,很多公鏈聚焦在 DeFi 或 NFT 應用,模仿以太坊上的熱門應用來進行競爭。可以看出,DFINITY 中的應用以「復刻」互聯網應用,並加之經濟激勵爲主。但礙於可擴展性和用戶門檻,這條路在以太坊及其他公鏈上沒有走通。
DFINITY 的願景在於讓人們將應用直接部署在互聯網中來保證安全,這需要使用區塊鏈作爲底層來實現不可篡改和防作惡。區塊鏈的擴展性往往限制了其使用,因此在 DFINITY 中的優化與創新就在解決這些問題。DFINITY 需要數據中心承擔運行節點的需求,保證網絡的可靠。NNS 負責子網與節點的管理,能夠在系統必要時添加子網,在子網中實現對節點數量增減的管理,因此來保證網絡活性。共識中的門限簽名和可驗證隨機函數可以讓節點迅速達成共識。技術以及權力更大的治理機制讓 DFINITY 有別於其他公鏈。DFINITY 中的身份驗證系統也降低了學習門檻,讓用戶在使用時更貼近於互聯網的體驗。
在這些技術的支撐下,DFINITY 中的應用更偏向於傳統互聯網,而非以 DeFi 爲主。目前 DFINITY 上的應用大多爲模仿互聯網應用,讓本來的互聯網應用加上通證以及治理系統。例如 DSCVR,界面也與 Reddit 很相似。但 DFINITY 的目標不侷限於區塊鏈公鏈。對於企業來說,部署在互聯網計算機上可以節約成本;對於用戶來說,使用互聯網計算機接近於互聯網的體驗。完全模仿互聯網應用的區塊鏈應用能否成爲爆款,是值得關注的地方。作爲互聯網計算機,發展分佈式商業將成爲 DFINITY 的機會。
DFINITY 未來的計劃還包括集成以太坊,通過在 DFINITY 中創建特殊的智能合約實現容器與智能合約的互操作性。現在處於理論概念階段,如果能夠實現互通,這兩者都將發生巨大改變,DFINITY 會作爲以太坊的類二層網絡運行,以太坊也可以直接使用 DFINITY 的身份驗證系統。
歡迎加入律動 BlockBeats 官方社群:
Telegram 訂閱群:https://t.me/theblockbeats
Telegram 交流群:https://t.me/BlockBeats_App
Twitter 官方帳號:https://twitter.com/BlockBeatsAsia