Algorand Co-Chain技術解讀


Algorand Co-Chain技術解讀

1. ALGORAND非許可鏈版本

區塊鏈的前景和挑戰

透明、不可篡改和素不相識者之間的信任,這些是公有非許可區塊鏈的基礎。然而,在技術發展不足的情況下,區塊鏈多年來一直是人們夢寐以求的實現目標。

ALGORAND 非許可區塊鏈

Algorand 提供真正去中心化、可擴展和安全的非許可區塊鏈。它具備真正去中心化的特點:每個代幣都可以參與共識協議,與任何其他代幣具有相同的權力。它具有可伸縮性,因為它只需使用少量的運算,即可支持數十億用戶在幾秒之內生成一個區塊。而且它很安全,因為它不可能被少數礦工或受託人或者一小部分代幣的所有者破壞。事實上,只要 Algorand 區塊鏈的大多數代幣掌握在可靠的人手中,它就能保證正常工作。

Algorand 協議依賴於全新的技術,例如其獨特的密碼抽籤和超高效的拜占庭協議。

除了完全的去中心化、可擴展性和安全性之外,Algorand 非許可區塊鏈還具有以下顯著特性:

  • 無分叉和即時交易確認。Algorand 區塊鏈不會分叉。每個新區塊都是單獨商定的,並且保證永遠留在 Algorand 鏈上。[1]因此,用戶可以立即信賴新區塊中包含的交易,而不必等待區塊在鏈中具有足夠的深度。
  • 在 Layer 1 處理標準資產和智能合約。區塊鏈在不同的層面上處理不同的交易。第 1 層是最直接和最安全的一層。傳統意義上來說,第 1 層只處理普通支付和共識協議本身,新資產的發行、智能合約和其他的所有事務都在第 2 層處理。但眾所周知,第 2 層的協議速度慢、成本高並且容易出錯。相比之下,Algorand 在第 1 層還會處理標準資產和大量智能合約的發行,包括資產代幣化、原子交易[2]和抵押借貸,並且能夠在必要時隔離和收回有爭議的交易。事實上,Algorand 在第 1 層就滿足了智能合約的大多數當前用例,並且具有與普通支付手段相同的安全性和效率。

2. ALGORAND許可鏈版本

許可型區塊鏈的主要優點是能夠保護交易不受外界干擾。[3]

在 Algorand 的非許可鏈版本中,每個原生代幣(除了作為本地貨幣 (Algo) 的計量單位之外)都可以參與共識協議,並具有與其他代幣相同的權力。但是,在 Algorand 的許可鏈版本中,企業 E 只能將給定的 10M 代幣池用於共識協議,並以任何方式將其劃分到自己選擇的驗證節點集合 V 中。例如,E 可以選擇 V 僅包含 5 個驗證節點,併為每個驗證節點分配 2M 共識代幣。這樣做的結果是,E 為五個驗證節點中的每一個提供了生成新區塊的相同能力。另舉一例,E 可以選擇 55 個驗證節點,為前 5 個驗證節點每個分配 1M 代幣,併為另外 50 個驗證節點每個分配 100K 代幣。這樣的話,E 為前 5 個驗證節點分配的區塊生成能力就是其他 50 個驗證節點的 10 倍。

Algorand 的許可型版本具有極細的顆粒度級別,可以為不同的驗證節點分配不同的權重。

通過Algorand 許可區塊鏈,而不是從頭開始構建自己的許可鏈或採用另一個許可鏈,E 獲得了以下主要優勢:

a) 按需分配的加權去中心化。選擇任意數量(任意權重)的驗證節點是至關重要的。實際上,E 可能想做出這種選擇來提高自己區塊鏈的安全性,或者擴大它所服務的社區。最初為少量金融機構服務的區塊鏈可以從少量的驗證節點開始。但是,如果以後它想要為中小型銀行和信用合作社服務,而所有這些機構都希望參與區塊生成,該怎麼辦?適用於少數參與者的共識算法可能無法有效地適用於成百上千的參與者。而中途改變策略可能相當具有挑戰性!通過允許共識協議擴展到數十億個驗證節點,E 能夠保證在任何時候毫無問題地擴大驗證節點集。縮小規模容易,擴大規模就難了。

b) 交易最終性和第 1 層智能合約。無論是私有還是公有區塊鏈,許可型還是非許可型區塊鏈,對於任何區塊鏈來說,交易最終性都是一個至關重要的屬性。在第 1 層處理大多數智能合約需求的能力也是如此。通過在 Algorand 中增加權限控制特性,E 從而獲得一個許可型區塊鏈,該區塊鏈會自動繼承這些至關重要並且很難擁有的屬性。

c) 可升級性和持續創新。無論何時將升級改進和創新添加到核心的無許可型 Algorand 主鏈,使用許可型版本的 Algorand 協議均會自動為 E 提供未來的升級改進和創新。

3. ALGORAND Co-Chain:定義和挑戰

定義

Algorand Co-Chain是特殊的 Algorand 許可鏈版本。因此,它是一個可擴展的許可鏈框架,可按需實現去中心化,具有交易即時確認和第 1 層智能合約等特性。它還滿足一個額外的關鍵特性:

(d) 與其他Co-Chain的互操作性。許可型區塊鏈能讓給定範圍內的用戶安全地進行互動。但它可能不允許他們與其他實體和個人進行互動。這是一個很大的限制,因為“外部”的世界比“內部”的世界更大,我們可能想要與更大的世界互動。一組金融機構可能想建立他們自己的許可鏈。但是一些醫療機構可能也想這樣做。由於醫療保健是經濟的重要組成部分,所以金融機構鏈想必希望與醫療機構鏈進行交互和資產交換。如果沒有外部的互操作性,許可鏈的成員就可能被困在自己的鏈中。

Co-Chain是 Algorand 許可鏈,它能保證 Algorand 無許可鏈與其他Co-Chain之間高效和安全的互操作性。

第一個挑戰:安全性

許可鏈之間的互操作性很容易聲明,但很難得到保證。考慮一個簡單的例子。用戶a擁有資產x,他希望與擁有資產 y的另一用戶 b進行交換。

如果 a和 b屬於 Algorand 無許可鏈或同一個 Algorand Co-Chain,此問題可以在 5 秒內解決,並且具有最終性和安全性。實際上,他們可以使用原子交換,這是 Algorand 中作為第 1 層交易可用的主要工具之一。但是,如果 a是Co-Chain A 的成員,b是另一個Co-Chain B的成員,該怎麼辦?

不同鏈間的資產交換通常通過哈希鎖定協議來實現的。但是這種方法存在相當大的問題。除了需要多個邏輯複雜的步驟之外,它還容易受到拒絕服務攻擊。這樣的攻擊可以使欺騙一方保留自己的資產,同時獲得另一方的資產。為了避免這種情況,協議可能需要持續很長一段時間,這可能使拒絕服務的成本高於相關資產的價值。

第二個挑戰:明確所有權

但是,這又會產生另一個問題,並且該問題適用於僅涉及x和y及其各自區塊鏈A和B的任何協議。也就是說,由於A 和B是許可型的私有鏈,最多隻有它們的成員知道x和y交換了原始資產,因此,b現在由鏈A的成員擁有。如果鏈B 損壞,沒有什麼能夠阻止y多次向其他區塊鏈的成員出售b或用其交換其他資產!從本質上講,這相當於資產交換的雙重支付。

如果許可鏈的大多數驗證節點是惡意的,或者其密鑰已洩露,那麼該許可鏈就算是腐敗了。在腐敗的鏈中,原始區塊可以被替換為假區塊,這樣就再也無法弄清楚誰擁有哪些資產。(這就是去中心化對安全來說至關重要,以及幾百個驗證節點比幾十個更好的原因!)許可鏈的損壞具有很強的隱匿性,因為它的私密性可以防止外部人員注意到這種腐敗。鏈的損壞是比較罕見的事件,但當它發生時,應該隻影響鏈的成員,而不應該影響誠實鏈!沒人能夠保證另一條鏈可以保持誠實。但是……

鏈的互操作性應該保證誠實鏈的成員所獲得的任何資產都有明確的所有權。即便從腐敗的鏈的成員處獲得的資產也是如此。

4. ALGORAND(簡化版)Co-Chain體系結構

現在,我們來概述一下 Algorand Co-Chain如何互操作。為簡明起見,我們先忽略隱私特性。

序言

我們用 MAIN來表示 Algorand 的主網,它是無許可並且公開的。相應地,每個Co-Chain監控 MAIN的區塊。對於每個Co-Chain C,MAIN維護

  • C的驗證節點的最新列表VALIDATORSC,
  • 以及C的成員擁有的,可以轉讓給其他鏈的所有資產的最新列表ASSETSC。

最初,當一個Co-Chain形成時,這兩個列表都可能被包含在本質上是C在“MAIN中的創世區塊”。(這個創世區塊與C的原始創世區塊不同,它指示哪些是C的初始公鑰,以及這些密鑰最初擁有哪些資產。)

隨著時間的推移,VALIDATORSC和 ASSETSC都通過 C在 MAIN中發佈由 C的最新驗證節點列表(適當多數)簽署的適當交易進行更新。

需要強調的是,MAIN不僅對Co-Chain C 中發生的交易一無所知,而且也不知道 C的實際公鑰,更不用說使用這些密鑰的實際用戶了!事實上,ASSETSC不會透露有關 C中控制ASSETS中資產的公鑰的任何信息。

從 Algorand Co-Chain 到主鏈的資產轉移

Algorand Co-Chain A 的用戶 x可能想要通過公鑰 tx將他擁有的資產 a轉移到 MAIN。用戶 x這樣做可能出於多種原因。例如,x可能想拍賣 a,而“出價的人越多,價格就越高”。因此,與其在 A上拍賣 a,用戶 x可能更願意在 MAIN上拍賣,這樣不僅有 A的成員報價,還有MAIN或其他Co-Chain的成員報價。事實上,Co-Chain的任何成員都可以輕鬆地向 MAIN轉移穩定幣,唯一的目的就是參加拍賣。

與Co-Chain A 中普通的轉移相同,將 a從 tx轉移到 MAIN的操作由 tx 的數字簽名授權,用符號表示為 SIGx(tx, a, MAIN)。由於 tx擁有 a ,並且轉移得到了適當的授權,SIGx(tx, a, MAIN)會進入經 A的驗證節點適當認證的 A的一個新區塊 X。此時,Co-Chain A 的所有成員意識到 tx和 A中的任何其他公鑰均不擁有資產 a。因此(除非 A已損壞),tx不能再授權 a在A內或 A外的轉移。

與 A的所有其他區塊相同,X的結構是為了便於將 SIGx (tx,a, MAIN)和轉到 MAIN的所有其他資產轉移與所有其他信息隔離開來,這些信息必須僅對 A的成員保持可見。從概念上來說,表示方式如下:

X= (SIGx (tx, a, MAIN), other transfers to MAIN, H)

其中H是A中所有交易的單向哈希(通常長度為 256 位),必須在A中保持私密。需要注意的是,X的格式非常緊湊。實際上,除了打算傳遞給 Algorand 主鏈的信息外,它只包含 256 個字節。

此格式的區塊X以及它在A中的證書會傳播到MAIN的節點。

由於Co-Chain A運行與MAIN相同的共識算法,並且MAIN知道 A 的驗證節點,因此MAIN的驗證節點可以解析X的證書,並瞭解到

  • tx是A擁有資產a的密鑰,並且
  • 密鑰tx的所有者希望將 a轉移到 Algorand 的主鏈。

相應地,

  • 資產a會從 ASSETSA中移除,並且
  • 密鑰tx會被記錄為MAIN擁有(在MAIN中!)資產a的(可能為新的)密鑰。

注意:步驟 1 中使用的MAIN既是公有的,也是非許可的。具體來說,MAIN為非許可型這一事實能夠保證tx成為MAIN中的密鑰,不會出現任何問題。並且MAIN是公有的這一事實能夠保證所有人意識到資產a現在位於MAIN中。這能夠保證y將(在下一個步驟中)獲得a的明確所有權。事實上,無論Co-Chain A 是否損壞,x和A中的任何其他成員均無法將a轉移給任何其他Co-Chain的任何成員。

從主鏈轉回Co-Chain的資產轉移

在 MAIN中出售 a後,tx可能會想將拍賣所得的穩定幣轉移給 A。

更普遍的情況下,如果 tx是 MAIN和 A兩者的公鑰,tx可能會想將它在 MAIN中擁有的資產 b轉移到 A。同樣,這樣的轉移可能是由 tx的數字簽名授權的,用符號表示為 SIGx (tx,b, A),它會進入 MAIN的一個新區塊。由於 MAIN為非許可型,A的驗證節點可能會看到 SIGx (tx,a, A)出現在 MAIN的區塊中,或者它們可以通過 tx本身看到這種出現的適當緊湊證明。無論哪種情況,A的驗證節點都將導致 tx成為 A中資產 b的當前所有者,因為它已經是 A中的一個密鑰。同時,只要 SIGx(tx, a, A)出現在 MAIN的區塊中,tx便不再擁有 MAIN中的 b,並且ASSETS A將更新為包含資產 b。

Co-Chain互操作性

接下來,我們使用上面提到的相同資產交換示例來說明Co-Chain是如何互操作的。現在,A和 B是不同的 Algorand Co-Chain。具體來說,資產 a在 A中由公鑰 tx控制,其私鑰為 x所知,而資產 b在 B中由公鑰 ty控制,其密鑰為 y所知。

要交換它們的資產,x和y通過以下概念步驟利用MAIN。

1. 在鏈A中,tx“將a轉移到MAIN”,並向MAIN提供轉移證明。在鏈B中,ty“將b轉移到MAIN”,並向MAIN提供轉移證明。

2. 在MAIN中,tx和 ty通過原子互換交換a和b。

3. 在MAIN中,tx將b轉移到A,並且 ty將a轉移到B。鏈A 和B都能看到這兩項轉移。

步驟 1 的說明

步驟 1 可以通過tx在MAIN的區塊中發佈 SIGx (tx, a, A) 來實現,如上所述。相應地,在MAIN中,

  • 資產a會從 ASSETA中移除,並且資產b會從 ASSETB中移除。
  • 密鑰tx不再擁有a。

類似地,對於ty來說也是如此。

步驟 2 的說明

從現在開始,在 MAIN中,tx 擁有a,並且ty擁有b,它們可以在幾秒鐘之內以超級安全的方式交換這些資產。實際上,所採取的方式是第 1 層原子交易,這是 Algorand 非許可鏈的主要功能特性之一。

步驟 3 的說明

如前所述,在 MAIN中,tx 將b轉移給 A 中的自己,因為tx仍然是A的批准密鑰。類似地,對於ty來說也是如此。

附加說明

我們可以注意到,整個過程非常快。實際上,以上三個步驟中的每一步都可以在生成新區塊所需的時間內執行。這一時間在 Algorand 的主鏈中不超過 5 秒。但是在 Algorand Co-Chain中生成區塊可能會快很多。實際上,在 Algorand 協議中,可以在確保大多數驗證節點看到區塊所需的時間內生成一個區塊。在網絡速度很快的Co-Chain中,這一時間可以忽略不計。

我們還注意到,整個過程發生在第 1 層,因此無論是在主鏈中還是在Co-Chain中,都具有更高的安全性。

最後請注意,給定Co-Chain的資產累計價值可能超過 Algorand 主鏈的估值。然而,Algorand 的主鏈並不用於保護任何Co-Chain的資產。在給定的時間點,它僅用於處理給定Co-Chain的少量資產,並且僅持續幾秒鐘。也就是說,它用於處理Co-Chain想與另一個鏈交換的資產。

增強私密性

Algorand Co-Chain之間資產交換的隱私性可以大幅增強。

具體而言,tx和 ty可以是臨時密鑰,僅供 x和 y在本次資產交換中使用。也就是說,在開始上述的三步流程之前,x生成臨時公鑰 tx 並將資產 a從之前持有a的任何公鑰轉移到 tx。完成步驟 3,並且 tx 在 A中擁有資產 b後,x可以將 b從 tx 轉移到他選擇的任何其他公鑰。通過這樣的方式,Algorand 的主鏈永遠不知道 A中的哪個公鑰最初擁有資產 a,以及哪個公鑰最終會擁有 b。

____________________

[1]Algorand 共識不是一個漫長的過程。隨著越來越多的區塊被附加到給定的區塊 B 上,人們越來越有可能對 B 達成共識。Algorand 單獨對新的區塊達成協議,這一過程完成後,再對下一個區塊達成協議,以此類推。

[2]原子交易讓多名用戶能夠通過單筆交易交換資產,或者以多種貨幣執行多筆支付。因此,原子交易中的任何參與者都無法欺騙其他參與者,並且沒有人害怕自己是第一個嘗試的人。

[3]另一個經常提到的選擇許可型區塊鏈的原因是安全。然而,這個理由忽略了一點,即去中心化本身就是安全性的主要來源。

* 完整技術論文將於近期發佈,敬請關注。

Algorand Co-Chain技術解讀

SERGEY GORBUNOV | 加密部門主管

Sergey 是滑鐵盧大學的助理教授。他主要研究基礎密碼學以及大型安全系統、計算機網絡、協議和區塊鏈的設計。他於 2015 年獲得麻省理工學院博士學位,同時也是微軟博士獎學金的獲獎者。他的論文主題是使用基於格的密碼技術構建高級加密協議,並因此獲得麻省理工學院計算機科學領域的 Sprowl 博士論文獎。加入 Algorand 之前,他曾是 Stealth Mine的創始人兼首席技術官,並在 IBM T.J.Watson 研究中心工作過一段時間。

Algorand Co-Chain技術解讀

MAURICE HERLIHY

Herlihy 教授是分佈式計算領域的世界級專家。他曾獲得 2003 年 Dijkstra 分佈式計算獎、2004 年哥德爾理論計算機科學獎、2008 年 ISCA 影響力論文獎、2012 年 Edsger W. Dijkstra 獎和 2013 年 Wallace McDowell 獎。他是 ACM 的研究員,同時還是美國發明家學院、美國國家工程學院和美國藝術與科學學院的研究員。

Herlihy 教授擁有麻省理工學院的計算機科學博士學位。

Algorand Co-Chain技術解讀

SILVIO MICALI | 創始人

Silvio Micali 從 1983 年起在麻省理工學院電子工程和計算機科學系任教。Silvio 主要研究密碼學、零知識、偽隨機數生成、安全協議以及機制設計。2017 年,Silvio 創辦了 Algorand,這是一個完全去中心化、安全、可擴展的區塊鏈,為去中心化的經濟提供了一個構建產品和服務的公共平臺。在 Algorand,Silvio負責監督所有的研究,包括理論、安全和加密金融。

Silvio 是圖靈獎(計算機科學)、哥德爾獎(理論計算機科學)和 RSA 獎(密碼學)的獲得者。他是美國國家科學院、美國國家工程學院和美國藝術與科學學院的成員。Silvio 在羅馬大學獲得了數學學士學位,並在加州大學伯克利分校獲得了計算機科學博士學位。



分享到:


相關文章: