昨晚十點剛結束的分享,今天早上就有很多朋友來找密碼極客要文章了。

爲啥這麼積極?

這可是硅谷最火的區塊鏈項目,而且第一次來國內線上分享,這份整理文稿沒有人手一份都說不過去了。

畢竟 Dfinity 是公認的區塊鏈下一代,而且密碼極客邀請團隊創始成員分享的也是核心技術。不止分享,就連後面的問答也圍繞通訊委員會、治理模型等專業話題。

錯過這一次,你可能就要再等明年的密碼極客和 Dfinity 合作了。悄悄地說,密碼極客在明年三月份會有大動作。

如此“技術範”的直播,當然也離不開密碼極客的提問嘉賓:

呂晟珉:TAS 聯合創始人 &CTO,浙江大學應用數學系博士畢業。

劉星:愷英網絡高級總監,曾任迅雷“玩客雲-鏈克”項目負責人,主導區塊鏈商業落地和“迅雷鏈”的核心設計、技術落地。

在放出 Dfinity 分享文稿前,密碼極客依然要感謝 Pickin 小姐姐的翻譯幫助。Pickin 是一家全球資產數字化服務平臺,致力於全球化服務,將從全球選取分析優質項目,全球項目一小時直達,將於 2018 年 12 月 24 日上線。屆時請關注 www.pockin.me  。

能夠一次次撬動全球頂尖項目來國內分享,密碼極客也在直播過程中得到了很多小夥伴的稱讚,誇我們工作紮實又可靠。

分享正式開始

DFINITY 是一個全球各地均可訪問的分佈式計算機,提供一種全新的方法來創建網頁應用、主網站、及業務運營。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

DFINITY 是一個由礦工創建的互聯網計算機,礦工通過互聯網運行“節點”以賺取代幣。同時,它爲傳統市場提供了一種解決方案,解決了區塊鏈市場的所有特殊需求。

DFINITY 能夠滿足所有軟件系統的運行環境,實現軟件部件間便捷的相互操作。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

如果你之前不瞭解 DFINITY,我簡單給大家介紹一下我們的團隊。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

DOMINIC WILLIAMS: 主席 & 首席科學家 , 發明了核心的 DFINITY 技術 ;
BEN LYNN: 高級研究員 & 工程師 ,BLS 密碼學創始成員之一 ;
TIMO HANKE: 工程主管 , 發明了 ASIC Boost ;
MAHNUSH MOVAHEDI: 高級研究員 & 工程師 , 設計了 Rapid Chain——全分片式的高速區塊鏈協議;
ANDREAS ROSSBERG:高級研究員 & 工程師,聯合設計了 WebAssembly。

構架基礎 & 委員會

當然,DFINITY 內含多項創新,下面我們來看閾值接力(可驗證隨機函數)和概率插槽協議。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

權益證明:DFINITY 的每個節點質押固定的代幣。因此“挖礦”網絡中的所有參與者人人平等,該協議適用於所有參與者。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

DFINITY 無處不在的隨機性能夠影響下一區塊的出塊者,爲網絡參與者指派特殊角色,其中包括:構建分區、創建隨機性、建立區塊。這使得 DFINITY 能夠在應用層作用廣泛,包括賭博、交易訂單、遊戲。

因爲我們知道都有哪些節點參與網絡,那麼假設幾乎所有的節點都在線,我們就可以隨機指派任務給節點,並保證任務的正常執行。

以上就是 DFINITY 的架構基礎,今天我們將解釋隨機性在隨機數產生和區塊生產中的作用(備註:在描述“selection of blockmakers (區塊生產者的選擇)”時,避免使用確定性詞彙(此處的 selection 就是一個反面例子,因爲區塊生產者不是通過選擇產生的))。

隨機性在分片及其他領域都用處頗豐,但我們今天不討論它,因爲 DFINITY 的分片模型還處於研究階段,其基本組成要素詳見 DFINITY 官網問答區。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

這裏我要說的是委員會成員。每輪都會存在委員會成員,他們的計算機團隊創建隨機,每一輪從委員池中選取一位新委員會成員。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

委員會是 DFINITY 的核心組成,可避免出現獨斷。任何時間,網絡中都有一羣活躍的委員會成員。每個委員會均由接入網絡的節點隨機組成。一個節點可加入多個委員會。在今天最後的視頻演示中,各位將看到在一個節點加入多個委員會的具體案例。

請知悉,DFINITY 採用權益證明(POS),因此平臺知曉所有的節點,並能對下線的節點進行懲罰。

出於部分原因考慮,該部分不做詳解。委員會成員需提前選出。

隨機數 & 閾值接力

給大家說個新概念: 隨機數和閾值接力。

設想一下在你打撲克的時候,你需要確保玩家無法預測或操控發出的撲克牌,因此才需要公開洗牌,可驗證性隨機函數就類似於洗牌這個過程,在去信任的節點網絡中隨機挑選“玩家”。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

使用閾值加密來創建可驗證性隨機函數。假設你有 2 把家裏的鑰匙,一把用來開門,一把用來鎖門。你可以放心的將鎖門的這把鑰匙交給任何人,畢竟沒人關心別人是否能上鎖你的門,但重點是,只有你一個人可以開門。

公鑰加密與數字簽名有類似的地方,但相比之下更抽象。你有 2 把鑰匙,一把用來簽名,另一把用來驗證簽名。在確保只有你一人能簽名的情況下,如果他人能幫你驗證簽名,這將是個不錯的事情。這就是“公 / 私鑰加密”的出處。用來簽名的鑰匙必須是私密的。

閾值加密也是類似的概念,但有一點不同:用來簽名的私鑰被分成多片,每片都能創建簽名的一部分。能湊成完整簽名的片段可與公鑰一起用來驗證。在 DFINITY 中,該執行僅需大部分人蔘與。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

我們將在隨機數燈塔中使用這一簽名。這張圖片顯示了使用公鑰加密及閾值加密的簽名過程。

至此,我們尚未討論到閾值簽名的一個驚人特點,那就是,不管用哪部分的簽名片段來創建簽名,最終得到的簽名都是一樣的!!!簡直不可思議!!!

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

這裏舉個簡單的例子,數字簽名本質上就是一種教科書式的經典亂碼,如果沒有人事先知道創建它們的內容,沒有人知道數字簽名長什麼樣。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

每個委員會有一把公鑰,每個委員會成員有一個私鑰碎片。

委員會是持有與公有密鑰對應的私有閾值密鑰片段的羣體。

如果你好奇我們爲什麼提前選擇委員會,那是因爲非交互式生成閾值密鑰對的計算成本相對較高,因此,就沒有人能知道其他人的私鑰片段了。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

這是隨機數燈塔的生成。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

既然已經知道了閾值接力是如何運轉的。我們從隨機性的來源開始。用它來選擇一個委員會,然後通過委員會成員簽署來選擇隨機的委員會。

閾值簽名將被用來選擇下一個委員會(記住我們只需要大多數的委員會成員,且單個委員會成員此時無法影響簽名的創建)。

這一過程將無限循環下去。

委員會還有另一個角色,那就是簽署區塊,但首先讓我們看一下運行中的網絡。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?
錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

對比比特幣的 10 分鐘出塊速度,我們只要幾秒鐘就能出塊。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

既然我們有了委員會和隨機性的來源,就很容易就區塊消息達成共識。

協議具有連接到網絡所有節點的列表,可結合隨機數燈塔,來輸入和輸出一個隨機排序的列表。

節點可以在創建和廣播區塊之前自己決定等級。 這節省了計算和網絡資源。我們剛剛看到創建隨機數的委員會同樣也有簽署區塊的工作。

每一個委員會的成員都要遵循同樣的規則。

他們接收到一個區塊,如果該區塊無效,則會將其丟棄。如果有效,則檢查其等級。如果等級低於他們之前收到的區塊,他們就會丟棄它。如果等級更高,他們會使用私鑰片段對其進行簽名,並廣播該區塊和簽名片段。

一旦區塊收集了必要數量的可創建完整和可驗證簽名的簽名片段,則其被視爲“已公證”區塊,並將被添加到鏈中。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

這就是閾值接力如何允許我們通過概率插槽協議來簽署區塊。

錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?
錯過再等一年,硅谷最火的 DFINITY 在密碼極客透露了什麼?

這是我今天的講話分享,感謝大家的收聽。可以通過 dfinity.org/jobs 加入我們,或者通過 [email protected] 直接聯繫我們,如果你想了解更多的 Difinity,可以通過 subject:Autoresponder 瞭解。

Q&A

呂晟珉

Q:我是 TASchain 的呂晟珉,看了 dfinity 的技術白皮書後有幾個問題想向 Arthur 請教。

從 DFINITY 技術白皮書可知:一個委員會成員會達到 400 人,而通訊量是 O(n^2) 的會很大。請問實際測試網絡的通訊量具體是多少?difinity 官網寫節點網絡配置需要 50MB 的上行速率。

A:我沒有確切的數據。基本系統開銷很低,因爲這些節點之間需要交換的只是區塊頭(存儲區塊的頭信息)和默克爾樹(一種數據結構),在此過程中需要包含幾個塊。

我們期望需要一個強大連接的原因不是爲了網絡操作,而是因爲這些節點將被要求爲用戶提供和接收數據。

Q : DFINITY 的委員會建組策略具體是什麼?如何避免某個時刻,同一個用戶註冊大量 id 來申請加入委員會,從而控制超過 51% 的委員會組員,即可控制整個委員會決議。

A : 我不是很清楚第一個主題。塊創建者是隨機選擇的,其輸出由節點庫的隨機樣本驗證,因此具有很高的安全性。我們有一個專注於開發高性能網絡層的內部團隊。我們投入了大量的資源來優化 P2P 層。

因爲用了 POS 所以需要抵押金,這是不可能的事情。

Q : DFINITY 的經濟激勵制度是什麼?門限簽名只需部分組員參與既能完成最終簽名,鑄塊獎勵是按組的,還是實際落實到具體參與簽名的個人?

A : 這是個很好的問題。是的,我們有經濟激勵制度。具體內容還有待公佈,我們計劃既獎勵委員會也獎勵區塊生產者

劉 星

Q : 在治理模型方面 Dfinity 與 Tezos 和 Polkadot 有什麼區別和優勢?

A:Tezos 有一個動態治理機制。Dfinity 和 Polkadot 仍然在發展他們的計劃。我今天只能說這麼多,也就是他們的建立在一定程度上是基於代幣持有人的投票。

Q : Dfinity 實現無限容量的關鍵難點在哪裏和解決難點的思路?

A : 這個問題很有挑戰性。有很多方法。分片、側鏈和狀態通道。DFINITY 的策略是用所有工具來進行擴容。部分細節詳見 dfinity.org/faq。

Q : Dfinity、Algorand 和 Thunder 這三個項目的共識體系有什麼異同?Dfinity 最大的特色或者優勢是什麼?

A : 儘管這些項目非常優秀,但 DFINITY 提供了最短的出塊時間。我會找出每個人的不同。

Algorand 在區塊已經廣播後才選擇出塊人,增加了網絡開銷。

Thunder 採用了一種傳統實用的拜占庭式容錯共識,當區塊生產者拒絕服務器攻擊後,Thunder 允許網絡減慢或者停止服務。因爲區塊生產者是預先知道的。(這比我剛纔描述的要複雜得多)。

DFINITY 不會選擇一個出塊人,它只是決定出塊人可能是誰。這可以防止 DOS 攻擊,還可以減少網絡開銷。

(由於全程英文分享,所以還有一些沒有翻譯清楚的內容。當然我們把昨晚的分享錄音上傳到了喜馬拉雅 FM,大家搜索“密碼極客”即可。)