《去中心化的跨鏈資產轉移》論文筆記
原論文標題為《Decentralized Cross-Blockchain Asset Transfers》
作者資訊:
Marten Sigwart 分布式系統組, 奧地利維也納
Philipp Frauenthaler分布式系統組, 奧地利維也納
Christof Spanring潘托斯有限公司, 奧地利維也納
Stefan Schulte分布式系統組, 奧地利維也納
文章目錄
- 《去中心化的跨鏈資產轉移》論文筆記
- 摘要
- 1、介紹
- 2、背景
- 3.跨鏈資產轉移
- 3.1 要求
- 3.2 基本協議
- 3.2.2 轉移確認的協議擴展
- 3.3 跨鏈通信
- 3.3.1 區塊鏈中繼
- 3.3.2 神諭Oracles
- 4、評估
- 4.1 原型
- 4.2 需求分析
- 4.3 定量分析
- 4.3.1轉移成本
- 4.3.2轉移的持續時間
- 5 相關作業文獻
- 6、結論
- 個人體會
摘要
由于現存的跨鏈資產只能解決特定資產或者特定通信,并且不能保證資產不會在轉移程序中丟失,所以本文提出了一種跨區塊鏈資產轉移協議,該協議支持任意資產,適用于不同的跨區塊鏈通信手段,并符合最終性等要求,
本文1.定義了協議規范,以實作分散、安全、不依賴于特定跨鏈通信方式的跨鏈資產轉移2.使用基于以太坊虛擬機的區塊鏈概念驗證對提出的協議進行評估,
1、介紹
由于多個領域的需求不可能由一個單一的區塊鏈來滿足,尤其是在資產在鏈上管理時,由于資產不能離開發行資產的區塊鏈平臺,所以只有唯一的供應商,因此專案將有可能面臨重大風險,所以本文主要做了以下貢獻,
1.正式定義了跨鏈資產轉移的功能需求,
2.定義了協議規范,以實作分散、安全、不依賴于特定跨區塊鏈通信方式的跨區塊鏈資產轉移,
3.使用基于evm(以太坊虛擬機,即以太坊的運行環境)的區塊鏈概念驗證對以太坊測驗網路上提出的協議進行評估,
2、背景
以下是本文中可能用到的名詞和解釋,
資產
一般可分為可替代資產和不可替代資產,
可替代性意味著同一資產的兩個物體可以互換使用,位元幣或以太幣等加密貨幣是可互換資產,
不可替代資產是唯一可識別的,即一個物體不能簡單地被另一個物體替代,例如,Cryptokitties(聚眾云吸貓的游戲,是基于以太坊平臺運行的,用戶在游戲中可以養大、買賣并繁育“電子寵物”小貓,每只小貓和繁衍的后代都是獨一無二的)是不可替代的資產,
將資產A定義為一個集合,其中集合的成員代表資產的最小不可分割物體(資產物體),例如,像位元幣這樣的可替代資產中最小的不可分割物體是Satoshi(即0.00000001 BTC位元幣,位元幣的最小單位),對于像Cryptokitties這樣的不可互換資產,最小的不可分割物體是一個單一的“cryptokitty”,因此,|A|表示資產的總供給,
定義一組區塊鏈,區塊鏈之間進行跨區塊鏈資產轉移可以在特定的集合B中發生,每個區塊鏈b∈B都可以主持多個智能合約,在這些智能合約中,一個合約負責管理b中的資產A,我們把這個特定的的智能合約記作Cb,
定義名為contract (tx)的函式來回傳由事物tx觸發的智能合約的地址,例如,如果用戶沒有足夠的資金進行轉賬或違反某些條件,事物的執行可能會失敗,所以定義了函式isSuccessful(tx),根據事務是否成功執行來回傳true或false,每筆事物在提交給區塊鏈之前都由某個鏈下用戶u∈U簽名,submitter(tx)表示簽署tx的用戶,用戶可以是每個參與區塊鏈b∈B的資產a子集的所有者,隨后,集合Abu? A定義了區塊鏈b上特定用戶u∈U所擁有的資產a的物體,最后,對于兩個區塊鏈src,dest∈B和兩個用戶(sender,recipient)∈U,定義了一個跨區塊鏈資產轉移,即一些X? A 從源于src的區塊鏈的用戶(sender)轉移到目的區塊鏈dest的用戶(recipient),
3.跨鏈資產轉移
首先,在跨區塊鏈資產轉移協議中,首先定義跨鏈資產轉移的需求,然后再使用這些需求作為定義去中心化跨鏈資產轉移協議,
3.1 要求
- 所有權,用戶只有在擁有所有權的區塊鏈才可以銷毀事物,
- 無需要不可銷毀,只有在源區塊鏈銷毀后,目標區塊鏈上的資產物體才可以被生成,
- 防止雙花,資產物體X銷毀后只能被創建一次,
- 去中心化,X銷毀后在一定時間t內應該要重新創建,
- 轉移確認,在源區塊鏈上銷毀x后,源區塊鏈會收到一個確認,是x已在其他區塊鏈上被申明,
3.2 基本協議

| 協議1 跨區塊鏈資產轉移的基礎協議 |
|---|
| 目標:對于兩個區塊鏈src,dest和分別兩個用戶(sender,recipient),將X從src轉移到dest,將X的所有權從sender轉移到recipient, |
| 1.銷毀, 用戶(sender)創建一個新的銷毀事務txburn:=?recipient,dest,X?, |
| 2.申明,一旦txburn在區塊鏈src上成功執行,任何用戶u都可以建造申明明事務txclaim:=?txburn,prooftxburn?,變數prooftxburn包含資料,可用于證明txburn在區塊鏈src中的是否成功執行和包含在src中, |
1.(a)用戶(sender)簽字并提交txburn到參考了合約csrc的源區塊鏈src,即在src上管理資產A的合約,
(b)當被呼叫時,合約csrc執行以下操作,
(i) 驗證dest∈B,以確保指定的區塊鏈dest是跨區塊鏈生態系統的一部分,
(ii)驗證X?Asrcsender,確保用戶(sender)擁有她想在區塊鏈src上轉移的資產物體,
(iii)當所有檢查都成功時,被轉移的資產物體將被啥訓,
2.(a)用戶u向某個區塊鏈b約Cb,簽字并提交txclaim,即管理b中的資產A的合約,
(b)當被呼叫時,合約cb將執行以下步驟,
(i)驗證b = dest,以確保正在執行的區塊鏈b是預期的目的區塊鏈dest,注意,在Cb中可以使用dest、收件人和X,這些變數可以被txburn參考,
(ii)驗證txburnTburn,其中Tburn是徐璈會事物的集合,這些事務已被用于dest中的資產物體A, 這確保了銷毀事務不能被用來多次申明,
(iii)運行verifyInclusion(txburn,prooftxburn,src)來驗證txburn是否已包含在區塊鏈src中,并由足夠多的區塊進行確認,事務包含驗證的細節在3.3節中解釋,
(iv)驗證名為contract (txburn) = csrc,確保合約已被txburn呼叫,合約是授權管理區塊鏈src上的資產a的合約,
(v)驗證issuccess (txburn)是否回傳true,確保csrc的執行已經完成,并且沒發生任何錯誤,
(vi)如果timeoutreach (txburn,prooftxburn,src)回傳true,則用戶(recipient)不會按時提交txclaim,因此,提交txclaim的用戶u = submitter(txclaim)會得到獎勵Xfee,否則u不會得到任何費用(即Xfee=?),導致所有資產物體轉移至收款人(見下步),
(vii)轉讓資產物體所有權給用戶(recipient),
(viii)添加txburn到已使用的銷毀事務集,
3.2.2 轉移確認的協議擴展

| 協議2 擴展源區塊鏈上的轉移確認 |
|---|
| 目標:對于兩個區塊鏈src,dest上分別的兩個用戶(sender,recipient),將X從src轉移到dest,并將X的所有權從sender轉移到recipient, 確認在src上完成轉移,銷毀, |
| 1.與協議1相似,用戶(sender)創建一個新的銷毀事務txburn:=?recipient,dest,X,Y?, 與協議1相反的是,txburn包含一個額外的變數Y,代表權益,權益表示為一旦在dest上完成資產轉移,用戶會得到向src提交確認事務的獎勵, |
| 2.申明, 若要在目的區塊鏈dest上成功證明了資產A的物體,則執行與協議1中的TXclaim相同的步驟, |
| 3.確認, 一旦TXclaim在塊鏈dest上成功執行,任何用戶u現在都可以構造一個確認事務txconfirm:=tx ?txclaim,prooftxclaim?, 變數Proof txclaim中的資料資料可用于證明txclaim包含在區塊鏈dest中被成功執行, |
(a)用戶u簽字并向呼叫合約csrc的源區塊鏈src提交txconfirm,
(b)當被呼叫時,合約Cstc會執行以下步驟,
(i)核實txclaim不屬于Tclaim,其中Tclaim是一組申明事物,這些事物已被用于src上的轉讓的最后確定, 這確保了宣告事務不能多次使用,
(ii)驗證calledContract(txburn)=Csrc確保txconfirm和txburn呼叫了相同的合約
(iii)運行函式verifyInclusion((txclaim,prooftxclaim,dest),以驗證TXclaim已被包含在區塊鏈dest中,并由足夠的塊確認, 第3.3節解釋了事物包含查驗的細節,
(iv)驗證calledContract(txclaim) = cdest,以確保txclaim呼叫的合約是txburn預期在dest上管理資產A的合約,
(v)驗證isSuccessful(txclaim)回傳true,以確保cdest的執行已經沒有任何錯誤的完成,
(vi)如果所有檢查都成功,則確保X已經在src上被銷毀,并在dest上宣告, 因此,跨區塊鏈資產轉移可以看作是被確認的,
(vii)檢查是否達到了提交txconfirm的超時時間, 如果是,用戶(sender)沒有及時提交txconfirm, 因此,提交txconfirm的用戶u=submitter(txconfirm)收到txburn的特定權益,作為提供相應申明確認的獎勵,即Asrc u=Asrc u∪Y, 如果不是,用戶(sender)將可以重新使用被鎖定的權益,即A src sender=A src sender∪Y,而不管哪個用戶提交txconfirm,
(viii)將txclaim添加到已使用的申明事物中,
3.3 跨鏈通信
章節3.2中描述的協議都依賴于所涉及的區塊鏈,它們能夠驗證各自其他區塊鏈上交易的包含和確認,例如,區塊鏈dest必須能夠驗證某些事務tx是否包含在區塊鏈src中并被確認,反之亦然,為了成功進行事務包含驗證,需要將一個區塊鏈的狀態資訊傳遞給另一個區塊鏈,理想情況下,這種跨區塊鏈通信是去中心化的,因為不需要信任中心化的一方來確保資訊的有效性,在本節中,我們將詳細介紹用于跨區塊鏈通信的現有解決方案,并描述如何利用這些解決方案以去中心化的方式支持事務包含驗證,
3.3.1 區塊鏈中繼
區塊鏈中繼是實作事物包含驗證的一種跨區塊鏈通信技術, 區塊鏈中繼通過一組鏈下客戶端連續地將塊頭中繼從源區塊鏈到目標塊鏈來操作,從而導致源區塊鏈復制到目標塊鏈中, 每個塊頭中繼根據源區塊鏈的驗證規則在目標區塊鏈上進行驗證, 由于塊頭不包含任何事務,因此在目標區塊鏈上只消耗了存盤完整塊所需空間的一小部分,
3.3.2 神諭Oracles
在基于投票的oracle中,如果想要驗證在源區塊鏈src中包含某些事務tx的目標區塊鏈上的智能合約,區塊鏈將通過發布問題“tx是否包含在區塊鏈src中并被足夠多的后續塊確認?”開始投票,這時這個問題轉換為目標服務器區塊鏈上的特殊oracle合約,oracle合約開始了一個投票期,在此期間,其他用戶可以上傳他們的答案(是或否),當投票結束時,得票最多的答案獲勝,并回傳到開始投票的合約中,為獲勝答案投票的用戶將獲得獎勵,所以這是一種激勵機制,即提交一份可能被大多數人投票的答案,有機會獲得獎勵,
基于投票的oracle的挑戰包括女巫攻擊(如果網路中存在一個惡意節點,那么同一個惡意節點可以具有多重身份,就如電影里的女主角都可以分裂出16個身份,原來需要備份到多個節點的資料被欺騙地備份到了同一個惡意節點(該惡意節點偽裝成多重身份),這樣一來作惡的節點,就有可能掌握網路的控制權)或懶惰投票攻擊,
4、評估
本節根據定義的需求評估提議的跨區塊鏈資產轉移協議,并進行定量分析,評估轉移成本和持續時間,為了進行分析,提供了基于evm的區塊鏈(如以太坊和以太坊經典)協議的成熟的概念,用于獲得4.3節所述結果的原型和評估腳本可以在GitHub2上的開源專案中獲得,
4.1 原型
優點:
基于evm的區塊鏈的優勢是雙重的,
首先,基于evm的區塊鏈,如以太坊,是當今在去中心化應用(DApps)和數字資產方面最受歡迎的區塊鏈之一,因此,基于evm的區塊鏈的跨區塊鏈傳輸能力可以增強大多數可用資產的效用,
第二個原因相當實際,由于存在相當多的基于evm的區塊鏈,多個區塊鏈可以通過一個單一的實作作為目標,
缺點:
然而,請注意,提議的協議對具體跨鏈通信的方法沒有任何限制, 只要區塊鏈提供足夠的腳本功能來實作協議的概念以及某種跨鏈通信(例如,oracle或中繼),解決方案就可以很容易地在基于evm的區塊鏈之外被采用,
以太坊中的交易由nonce, gasPrice, gasLimit, to, value, data和一個簽名(v, r, s)[36]組成,欄位資料包含事務的引數(例如,智能合約呼叫的引數),欄位包含了被事務呼叫的智能合約的地址(例如,在我們的協議中稱為合約(tx)的函式),事務的提交者(submitter(tx))可以從簽名欄位v、r和s中計算出來,

4.2 需求分析
要求1:所有權
這個要求宣告了用戶(sender)必須擁有源區塊鏈src上的資產a的子集,然后用戶才能轉移它,
要求2:沒有申明就不銷毀
首先,驗證了txburn包含在源區塊鏈src中,并由足夠的塊確認(參見步驟2. (b)協議1第三條),
第二,協議檢查txburn確實在源區塊鏈src上呼叫了資產合同csrc(參見步驟2. (b)協議1第四條),
第三,檢查合約cdest驗證txburn的執行是否成功(參見步驟2. (b)協議1), 當且僅當它們已被源區塊鏈SRC上的合約CSRC成功銷毀時,這三個檢查確保資產只在目標區塊鏈dest上創建,
要求3:雙花預防
為了防止用戶通過重用相同的銷毀事務txburn,需要滿足兩個條件,
首先,不應該使用相同的銷毀事務txburn多次宣告目標區塊鏈dest上的資產,
其次,不應該使用txburn對除dest以外的任何區塊鏈資產進行申明,
為了確保第一個條件,在銷毀事務中已經使用的所有銷毀事務都存盤在資產合約cdest內的一個tburn集合中,當新的申明事務txclaim呼叫cdest時,它僅在提供的銷毀事務txburn還沒有包含在Tburn的情況下執行該申明(參見協議1的步驟2.(b)ii),
第二個條件是通過在銷毀事務中編碼所需目標區塊鏈dest的識別符號來實作的,當包含txburn的申明事務呼叫某個區塊鏈b中的資產合約cb時,cb可以通過比較b = dest(協議1的步驟2.(b)i)來驗證它是否是預期的目標合約,如果不是,則申明被拒絕,
由于協議確保了這兩個條件,因此也可以認為滿足了需求3,
要求4:去中心化的確定性
去中心化的確定性要求每個成功執行的源區塊鏈src的銷毀事務txburn的轉移最終由提交到目標區塊鏈dest的相應銷毀事務txclaim完成,并且這個結束程序不依賴于某一個參與者,對于最終性的分析,我們使用了BAR (Byzantine, Altruistic, Rational分布式記錄賬本)模型,該模型已經在區塊鏈協議和擴展的安全性分析中得到了應用,在這個模型下,拜占庭用戶可以出于任何原因任意地離開協議,例如,他們可能是錯誤的或惡意的;無私的用戶遵守協議規則,不管不遵守規則是否會導致更高的利潤;而理性的用戶目的是最大化使用函式的利潤,這意味著如果他們認為這么做的利潤比遵循協議規則高,他們就會不遵守協議,
因此,即使動機完全一致,也不能保證理智用戶遵守協議規則,事實上,建立一個開放的、無許可的系統來抵御所有潛在的不遵守協議規則的參與者從根本上就顯得很重要, 因此,在我們的協議中,不僅允許直接參與轉移的用戶可以發布申明事務,而且系統的任何用戶都可以這樣做, 這提供了更強的確定性性保證,因為最終確定不依賴于單個表現誠實的用戶, 相反,如果所有用戶中有一個用戶可以無私的確保確定性,那就足夠了,
要求5:轉讓確認(可選)
在協議1中,只有目的區塊鏈才知道何時完成轉移, 源區塊鏈src沒有辦法知道最終的結果, 因此,我們提議協議2作為協議1的延伸,以滿足向src提供最后確認的額外要求, 確認以提交給src的額外事務txconfirm的形式發生,
為了滿足需求2,資產合約csrc在被確認事務txconfirm呼叫時會執行以下檢查, 首先,csrc驗證txclaim是被包含在區塊鏈dest中,并由足夠的區塊確認(參見步驟3, (b)協議2iii), 第二,合約驗證了所提供的申明事務txclaim確實在區塊鏈dest上呼叫了資產合約cdest(參見步驟3, (b)協議2 iv), 第三,csrc檢查txclaim已在區塊鏈dest上成功執行(見步驟3.(b)v協議2 ), 由于這些適當的檢查,要求2也適用于確認事物的支持,為了滿足需求3,不應該在區塊鏈src上多次使用相同的申明事務txclaim,也不應該可能在src以外的任何區塊鏈上使用txclaim來確認是否轉移, 第一個條件是通過將已成功確認的每個申明事務txclaim添加到集合申明中確保(參見步驟3, (b)協議2viii), 每當呼叫csrc時,都會檢查txconfirm中提供的txclaim是否包含在Tclaim中(參見步驟3, (b)協議2i), 如果是,請求將被拒絕, 為了確保第二個條件,被txclaim中包含的銷毀事務呼叫的資產合約與csrc進行比較(參見步驟3, (b)協議2), 如果它們匹配,csrc是最終確認的預期接收方,
4.3 定量分析
在公共以太坊測驗網路Rinkeby和Ropsten之間進行跨鏈資產轉移, 對于以太網虛擬機(EVM)和塊間時間(約15秒),Rinkeby和Ropsten是相同的, 主要區別是采用的一致性演算法, Rinkeby使用權威證明(Po A),Ropsten使用作業量證明(Po W), 然而,智能合約的執行獨立于一致性演算法, 因此,評估一個方向的轉移提供了對轉讓成本和持續時間的充分估計, 本文的評估包括進行500次將1個ERC20令牌從Rinkeby轉移到Ropsten,即銷毀和確認事務提交給Rinkeby,而申明事務則放在Ropsten上, 出于簡單的原因,由于協議擴展(協議2)也包括協議1的步驟,我們只使用協議擴展的實作(參見Protocol2.sol6)進行實驗, 相應的智能合同已經部署在Rinkeby和Ropsten上,
4.3.1轉移成本
對于每一次轉移的執行,我們測量所有三種事務型別的燃料消耗, 所獲得的結果如下圖所示,

執行txburn是最便宜的,其次是txclaim,其次是txconfirm, 價格差異可以通過每個事務型別的不同有效載荷來解釋, 由于txburn的有效載荷不包括任何其他事務和證明資料,因此需要將較少的資料傳遞給資產合約并由其處理,從而導致較低的燃料消耗, 相反,txclease包含txburn以及txburn和txconfirm的證明資料,以及相應的證明資料,導致總的燃料消耗較高,事物包含驗證的燃料消耗取決于跨區塊鏈通信的具體手段,即在我們的例子中:Testium中繼, 需要成員資格的Merkle證明作為證明資料傳遞給中繼, 因此,中繼的燃料消耗不僅包括執行成本,而且還包括執行所需資料的成本, 在我們的情況下,中繼的燃料消耗高于單獨協議的氣體消耗, 其他包含驗證機制可能表現出不同的燃料消耗,
4.3.2轉移的持續時間
圖5顯示了每個事務型別以及兩個協議的平均持續時間, 平均持續時間91秒(標準差9秒),銷毀事物明顯達到最小持續時間,其次是確認(平均持續時間114秒,標準差22秒),其次是申明事物(平均持續時間191秒,標準差103秒), 申明和確認事物的持續時間在很大程度上取決于使用的事物包含驗證機制, 如果使用其他機制,如基于投票的oracle,這些事務型別的持續時間可能會改變,協議1的總持續時間是通過銷毀和申明事物的持續時間的和來計算的,而協議2的總持續時間也包含確認事物的持續時間, 這產生了協議1的平均傳輸持續時間282秒(標準差103秒)和協議2的平均持續時間395秒(標準差106秒, 與協議2的轉移顯然需要更長的時間,因為需要額外的事物,

5 相關作業文獻

6、結論
在這項作業中,我們定義了跨區塊鏈資產轉移協議的一般要求和規范,通過提供所提議的協議的概念驗證實作,我們已經表明,諸如去中心化的確定性和轉移確認之類的要求可以在不依賴于集中式物體的情況下得到滿足,通過將該協議從跨區塊鏈通信的特定手段中分離出來,該協議可以被廣泛地用于、區塊鏈,在未來的作業中,我們將研究如何擴展這項作業的概念,以提供超越資產轉移的互操作性,例如區塊鏈之間的通用訊息傳遞,
個人體會
對于現在存在的對特定資產和特定通信的轉移技術,由于不能滿足大部分情況,本文定義了一個協議和一個協議擴展來滿足大部分的情況,
簡單來說,協議一是源區塊鏈的用戶向目標區塊鏈轉移資產時,首先應在源區塊鏈銷毀對應的資產事物,然后才可以從目標區塊鏈增加對應的資產事物,
而協議擴展是在上一個協議完成后,向源區塊鏈發送獎勵以確認資產確實成功轉移,
本文通過區塊鏈中繼提供了事務包含驗證,且用到了投票方法以確保事務包含在區塊鏈中,對協議進行了需求分析、定量分析、時間和成本分析,最后得出結論協議2耗費比協議一高,但是此協議是可行的,可以被廣泛地用于區塊鏈中,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/237699.html
標籤:區塊鏈
上一篇:Linux常用環境變數
下一篇:事件驅動的雙均線策略示例
