風險提示:防範以"虛擬貨幣""區塊鏈"名義進行非法集資的風險。——銀保監會等五部門
資訊
發現
搜索
登錄
简中
繁中
English
日本語
한국어
ภาษาไทย
Tiếng Việt
BTC
ETH
HTX
SOL
BNB
查看行情
DFINITY密碼學研究副總裁: 互聯網計算機全新的鏈鎖技術| DFINITY上線發布會
2021-05-14 11:39
本文約3240字,閱讀全文需要約5分鐘
鏈鎖技術是互聯網計算機協議的核心.

在互聯網計算機中,計算機是由一組協議(ICP)驅動的,這些協議允許網絡擴展幾百萬個節點,可以為Canister(容器)提供可擴展且無限的計算能力。鏈鎖技術是互聯網計算機協議的核心。

那麼鏈鎖技術具備哪些優勢?鏈鎖協議具體是如何工作的?鏈鎖技術又具有哪些創新性?有關鏈鎖協議的技術細節,DFINITY 密碼學研究副總裁Jan Camenisch 在《互聯網計算機全新的鏈鎖技術》演講中為我們揭開了神秘面紗。歡迎繼續閱讀經Odaily整理的演講全文,enjoy~

大家好,我是來自DFINITY 的Jan Camenisch,這個演講是關於鏈鎖技術(chain key technology)的。在互聯網計算機中,計算機是由一組協議(ICP)驅動的,這些協議允許網絡擴展幾百萬個節點,可以為Canister(容器)提供可擴展且無限的計算能力。

鏈鎖技術是互聯網計算機協議的核心,實際上,這一組協議是我們開發的特殊邊緣密碼系統。鏈鎖技術最明顯的部分是互聯網計算機具有單個公鑰,利用單個公鑰可以驗證來自感興趣計算機發送的關於該單個公鑰的信息,這是互聯網計算機一個巨大的優勢。因此如果要進入互聯網計算機,只需要一個48字節的公鑰即可驗證所有的消息。相比之下,以太坊客戶端需要下載至少400GB的數據才能達到同樣的效果。

現在讓我們進一步解釋一下鏈鎖技術,為了擴展互聯網計算機,實際上不是所有的節點都運行在相同的Canister(容器)中,而是我們必須將Canister分佈在不同的節點,或在不同的子網(由多個節點組成)上,我們稱這一系列子網為網絡神經元(NNS)。其中有一個子網是特別的,因為它控制和支配著其他子網。

而我所說的單一的公鑰,實際上是管理所有其他子網的公鑰,以及用於生成所有其他提供密鑰的子網。我們生成公鑰,生成容器證書,以及該子網的其他主要部分。

與鏈鎖技術一樣,NNS可以從零開始,現在當用戶與NNS進行交互時,NNS用他們的Canister(容器)進行計算,並接收來自該計算的結果,他們可以通過在這些結果的子網簽名來驗證這一點。關於子網公共密鑰,子網公共密鑰可以使用子網從NNS獲得的證書進行驗證,這就像是鏈鎖技術的兩個部分。第一部分就是我們剛才講的,更高級別的子網可以為其他子網生成私鑰;第二部分是從NNS接收私鑰的子網如何管理這些私鑰。

節點可能會崩潰,因而需要更換;節點也可能會受到危害,所以需要剔除。在這兩種情況下,需要在新的節點集合之間重新共享子網已接收的私鑰,因此為了維護子網所收到關鍵信息,我們使用了Threshold Signature (門限簽名),這種特殊簽名實際上是一種聽起來像是一組必須一起運行的算法。首先我們有一個生成私鑰的算法,這就像有一個被信任的經銷商不斷產生公鑰和私鑰,然後分發給不同的參與者,當大部分的參與者同意簽名後,這些部分簽名可以組合成相對於原始公鑰的完整簽名,並進行驗證。

如何在鏈鎖技術中實現上述過程呢?一種方式是:你需要一個非交互式的密鑰生成算法門限簽名方案的標準密鑰生成算法,需要一個擁有因特網計算機的可信的老經銷商,這不太可能實現,因為我們不想信任任何一方。

為了解決這個問題,我們提出了一些新的有效的密碼學。它允許兩件事:首先,它允許經銷商無需交互直接生成這些密鑰,經銷商產生了密鑰和公鑰,但不同的是密鑰是為各方編寫的,在我們的示例中這裡的線索是數據,還生成非交互式加密圖形證明。實際上,與生成的公鑰也匹配,我們實際上開始了非交互式證明,任何一方都可以驗證共享是否正確。

第二部分是該共享方案的數學性質,即兩個不同的份額可以合併成一個共享,如果你有兩個或兩個以上的經銷商,接收交易對可以做一個數學同態運算,我們稱之為公鑰合併,不同的公鑰成為一個單一的公共密鑰,他們也可以在密鑰上做同樣的操作,從而產生一種新的共享,一種組合共享。

正如我們已經知道的,所有的分享都是正確的,因為這些神經知識的證明,這種同態組合實際上將確保只要一個經銷商做得正確,那麼我就沒有洩露這個密鑰,那總體組合的密鑰也將是安全的,因為它們包含足夠的隨機性。這種同態操作的優良特性是:它將確保只要單個共享被正確地完成,即密鑰被隨機地生成,並且不會在任何地方洩漏,那就結合生成了密鑰和公鑰。因此,這允許互聯網開始新的子網,以生成子網的密鑰。更確切地說,NNS的每一個節點都會做這樣的分享,把信息傳遞到新的節點上。

現在我們講第二部分,節點必須維護他們最初從NNS收到的密鑰信息,現在因為不能具體聯繫,彼此間也將用加密的方式傳遞,我們就需要第二個加密圖形工具,但不是生成新的密鑰,他們需要證明他們的密鑰加密信息與共享密鑰是一致的,然後將其提供給所有其他節點,而一旦達到一定要求門檻,全部節點可以重新對外分享一個新的密鑰。

下面我們看下,如何使用非交互式的方法重新恢復子網中丟失的密鑰。例如,我們示例中有四個節點,其中一個崩潰了,丟失了所有狀態,丟失了所有密鑰信息,因為我們使用的是四個密鑰共享方案中的三個,所以剩餘的節點仍然可以操作,此時NNS將分配新的節點到子網,再次將其存儲到四個節點中。但是,如果丟失的是兩個節點,那就是災難了。

另一方也注意到,這就像是他分享的一個密鑰,對於這一點以及原始記錄,我們保證了新節點集合的保密性,這四個節點採用了非吸引特性的免費共享技術。在此之後,四種新節點中的每一種都將具有與公鑰相對應的密鑰共享,這就是我們如何從子網中替換掉那些已經崩潰的節點,並保持其繼續運作。

對於那些密鑰信息還不具備資格加入的節點,其如果想加入一個子網,需要具體:首先全部私鑰必須同意其加入子網;子網對其狀態驗證並授權;包含最近的全部區塊狀態。由於單個節點不可信,因此節點必須一起驗證最新狀態,然後我們設置一個聯合狀態即新節點,我們將確定接收到的狀態實際上是真正的狀態,即開始的正確狀態。

這些操作消耗都非常大,我們不能每一輪都做,我們需要在指定的時間間隔內進行,在這個間隔中我們產生認證狀態,把這兩個放在一起,我們稱之為Catchup 包。它允許節點跟上其他節點,並與它們一起操作,這個Catchup 包實際上非常強大,因為它們不僅不允許我們更換,而且它們還允許恢復節點,因此如果節點沒有崩潰但可能由於其他原因而離線,如果時間太長了,那要趕上前面的節點,可以下載最新的catchup包,然後解壓並恢復操作。

在災難性的情況下,超過三分之一的節點會崩潰或失去它們的狀態,即便如此,我們也能夠恢復子網。只要我們還有一個Catchup包,NNS就可以拿那個Catchup包,只增加一個新分享的密鑰,因為之前的不再有效,然後從原始的Catch-up 包開始,創建一個新的子網。此外,可能最重要的是Catch-up包還允許我們升級協議,因為Catchup包定義了子網的明確狀態。我們可以說在某個Catch-up包之後,所有新節點都會下載新的協議版本,並從該Catchup包運行新的協議版本,非交互式dkg和密鑰再共享,或者僅僅是變更技術的兩個要素。

鏈鎖技術的核心是共識協議,協調所有協議的差異共識。它的主要任務是收集和評估來自用戶的消息,並讓它們得到執行,但它也必須協調非互動的組織和所有不同節點之間的重新分享,確保計算正確完成。即使一些問題發生了,比如硬盤故障或一些其他小故障,這個容器的一些部分問題不會影響到命令執行;但仍然涉及其協調狀態的恢復和同步,從而協調所有的升級,從給定的丟失狀態開始。另一個有趣的特徵是,共識協議實際上還提供了恢復隨機性應用,我們將很快就所有這些細節進行技術討論,我們也將公佈有關這方面的規格。

總之,鏈鎖技術使互聯網計算機能夠擁有一個單一的公鑰,可以使用公鑰來驗證接入網絡的計算機;鏈鎖技術還允許NNS 添加新的子網並永遠擴展網絡;如果有太多節點失敗,鏈鎖技術可以再激活一個子網;鏈鎖技術還可以替換崩潰的節點;最後鏈鎖技術還可以更新IC協議,修復Bug,以及添加新的功能。

DFINITY
隱私計算