比原鏈研究院 | 一種基於MOV/OFMF框架的交叉跨鏈系統

買賣虛擬貨幣


交叉跨鏈系統

交叉跨鏈與化身資產,是實現多個異構公鏈生態進行主動融合互通的最直接有效方式。
在過往,單一公鏈一直無法突破自身生態邊界,即便引入當下諸多跨鏈手段,依然屬於被動式對映主流資產,使用者並不會主動隨著資產對映而來,生態規模依然拘束於自身公鏈上應用場景的豐富度和接受度;對映資產再優質卻無法再次流通,使用者缺乏在不同公鏈應用間自由切換實施套利以及獲取資產的最短路徑,自身公鏈生態也就無法被更大公鏈的生態、應用和使用者所主動接納;跨鏈對映的主流資產成為“一潭死水”,跨鏈也就成了偽命題,自身公鏈生態的邊界依然無法打破,使用者和應用得不到增量式增長。
拓寬自身公鏈生態的邊界,打造應用“出圈”和新使用者“入圈”,生態有界,應用有邊,但資產無形,著力建設一種新的生態維度——“化身資產”,即在完成主流資產跨入對映的同時,建立起對映資產在不同公鏈生態間的自由進出和共享,讓化身資產隨著應用需求自由流轉於目標公鏈,同時為“新維度”建立起移動座標軸——“交叉跨鏈系統”,一種更為強悍而普適的跨鏈體系,可以讓化身資產自由穿梭在多個不同公鏈間,使多種公鏈的應用生態發生摺疊。
mov 交叉跨鏈系統,是基於 ofmf 框架建設的一個無准入(permission-less)拜占庭容錯分散式網路系統,構建在多種公鏈體系之上的通用協議層服務,並不專屬於 mov 體系。其核心功能升級為透過安全多方計算(smpc)和共識演算法協調所有 fednodes 進行跨鏈資產的去中心化安全託管和轉移,以及跨鏈交易的解析和執行。fednodes 是更為開放的聯邦節點,是交叉跨鏈系統的核心角色,為分散式閘道器網路貢獻 cpu 和儲存,準確執行安全多方計算程式,任何生態的任何角色都可以透過抵押成為 fednodes。
交叉跨鏈系統最引入注目的創新是,改變以往跨鏈系統單一的資產流向,升級為主動式全連結跨入網路。假定 mov 交叉跨鏈系統底層適配了 eth、btc、btm、polkadot 四種公鏈體系,目前是其他三種公鏈上的資產被動式向 btm 生態遷徙,並在 btm 生態尋找應用的場景,最終生命週期將在 btm 生態終止,重新被提取回原始公鏈。在交叉式跨鏈系統的支援下,btm 上的資產,不論是 btm 原生生態資產還是從其他公鏈跨入的化身資產,都可以主動式進入到任何其他三種公鏈體系,去拓寬自己的應用場景。
ofmf 框架實行“多籤+門限”的託管方案,交叉跨鏈系統將更為廣泛地實施基於安全多方計算的門限簽名託管方案。所有成為 fednodes 的節點共同組成一個分散式的多方計算網路,由拜占庭容錯共識演算法調控系統的 liveness 和 safety,確保多方計算程式可以持續執行。fednodes 節點定期選舉產生,進行權力的每屆更迭。得益於抵押型共識系統的引入,快速更迭 fednodes 可以在交叉跨鏈系統中成為現實,真正走向完全開放式的聯邦閘道器網路,這也極大提升了聯邦見證的系統效率和靈活性,使跨鏈體驗更為迅速和安全。fednodes 的抵押資產也給跨鏈系統帶來更為可靠的安全邊際。

跨鏈交易型別

在打通 btc、btm、eth 三種公鏈體系的交叉跨鏈系統中,一共存在五種跨鏈交易型別(可歸結為三大類):
(1)將 btc 資產從 btc 主網傳送到 btm 生態(type 1:鎖定——鑄幣)
(2)將 btm 生態的 btc 資產提取到 btc 主網(type 2:燃燒——釋放)
(3)將 btm 生態的 btc 資產提取到 eth 主網(type 3:燃燒——鑄幣)
(4)將 eth 主網上的 btc 資產提取到 btm 生態(type 3:燃燒——鑄幣)
(5)將 eth 主網上的 btc 資產提取到 btc 主網(type 2:燃燒——釋放)
我們把這種全連結式的跨鏈方式稱為交叉跨鏈。交叉跨鏈擁有以下四個深遠意義:
(a)btc資產可以在多個公鏈生態體系內無縫切換,隨應用而流轉,讓小生態公鏈體系可以與大生態公鏈體系重合,獲得更多使用者和流量,而大生態公鏈體系可以捕獲更為強悍的二層網路和化身資產;
(b)定義可程式設計跨鏈時代的來臨。交叉跨鏈也是一個分散式系統,擁有抵押治理和共識容錯,它可以靈活解析來自使用者發起的任何型別的跨鏈交易,包括方向、數量、附加資料和更為具體的指令,比如跨鏈切分、部分延遲、條件式觸發等;
(c)發展成為一種被廣泛接受的統一跨鏈標準、協議層;
(d)發掘最優跨鏈路徑和最最佳化身資產。

可程式設計跨鏈閘道器

使用者可在交叉跨鏈系統介面自由定義一組跨鏈交易的指令碼:
(1)一筆鎖定資產向不同公鏈鑄幣,數量、時間、對映地址都可以設定;
(2)一筆鎖定資產,先定義向公鏈 a 鑄幣,再定義將 a 的鑄幣燃燒,並在公鏈 b 上鑄幣;
(3)一筆鎖定資產,延遲觸發。
可以讓一筆資產徹底無法追蹤,可以實現事件驅動的跨鏈。

聯邦分散式系統

分散式系統的必要性

跨鏈閘道器係統最高效的實現是見證人機制,ofmf 在見證人機制的基礎上將閘道器節點進一步開放出去,以尋求去中心化的權力構成,符合一個公鏈生態擴大自身規模的願景。但見證人機制的效能瓶頸受制於兩方面,一是所連結的兩條公鏈上原生交易的確認速度,二是見證人系統自身的決策效率。前者沒有太大最佳化空間,後者的瓶頸可以進一步拆分成兩種:
(i)見證人共同執行跨鏈簽名的效率;
(ii)見證人重組的效率。
最理想的跨鏈閘道器係統是一個可以主動獲取可靠原始驗證資料並自主進行分散式決策的自動化網路,並不需要人工去操縱跨鏈簽名的合法性判斷和生成,能夠引入成熟機密資訊管理保管線上秘密和金鑰,能夠迅速主動捕獲兩公鏈上隨時發生的跨鏈事件並建立儲存,然後在判斷交易合法性的前提下進行安全多方計算快速生成跨鏈交易簽名,依靠分散式容錯共識演算法自動去除惡意節點的干擾,依託門限簽名節省多方簽名的費用成本和時間成本,尤其是在閘道器網路規模不斷擴大走向更為開放的程序中,效用更為顯著。mov 交叉跨鏈系統也是在 ofmf 框架上升級為完全分散式網路系統,更大程度的利用安全多方計算和共識演算法決策的性質,來提升整個跨鏈閘道器的效率和安全。
由 fednodes 組成的分散式系統,每週期換屆選舉出新的決策 fednodes 節點集合,跟一條鏈系統有著本質的相似,但沒有資產和賬戶體系,沒有轉賬交易,只對跨鏈事件進行共識見證,並協作執行門限簽名進行鑄幣、燃燒和釋放等操作,能夠準確解析使用者的每一筆跨鏈交易請求或者指令碼。
由於交叉跨鏈系統的無准入特性,以及門限簽名的合成是一個多方線上互動驗證的分散式協作過程,當存在未知數量的惡意節點或者網路出現分割槽的情況下,可能無法就某一筆跨鏈交易進行共識驗證並生成合法的門限簽名,導致閘道器網路的阻塞或者被攻擊,影響跨鏈系統的效率以及安全性。針對每一筆跨鏈請求,fednodes 需要能夠就跨鏈請求序列(包括交叉跨鏈系統記錄的請求序列以及跨鏈交易在鏈上被打包區塊並確認的序列)、跨鏈請求的正確性(類似區塊鏈上的轉賬交易的正確性)達成一致,並且對每一筆合法跨鏈請求執行(execute)安全多方計算過程,該過程依然是一個依託共識網路完成門限簽名的過程,確保在有限時間內完成合法門限簽名的簽署和執行。
smpc 過程涉及多次(併發/多輪)隨機秘密份額的分散式生成與互動驗證(dkg/vss/rng/arithmetic operation/inverse/multiplicativ-to-additive),是實現多方安全計算的核心,並且處於非同步網路通訊環境裡,延遲不可預測,另外惡意節點會對節點間份額集合的一致性進行干擾攻擊,例如惡意節點給一部分誠實節點一種秘密份額子集,但是給另一部分誠實節點另外一種子集,在缺乏多輪互動確認以及可靠廣播通道的系統裡這種行為極具破壞性。因此 fednodes 的分散式網路應該是一種拜占庭容錯的一致性系統,即便閾值範圍內的節點出現 slow/fault/failure/crash 或者 byzantine 行為,也不妨礙系統繼續完成協作,否則整個系統的效率將極大被阻塞影響。這種拜占庭容錯系統可以更細分為 replicated state machines 和 byzantine quorum systems 兩種。後者一般適用於只涉及讀和寫等簡單的語義,基於前者 mov 交叉跨鏈系統將實現一種契合安全多方計算過程的 asynchronous byzantine broadcast protocols,用於訊息(見證跨鏈事件/安全多方計算門限簽名)的防拜占庭可靠傳輸,並靈活適配於各種網路模型(同步網路/半同步網路)。

reliable broadcast

我們構建 reliable broadcast(rbc),一種針對拜占庭將軍問題的廣播模型,滿足下面特性: 

validity:如果一個誠實節點廣播(r-broadcast)一條訊息 <id.j.s, m>,那麼所有的誠實節點都將收到(r-deliver)同樣的訊息。

consistency:如果一些誠實節點 r-deliver 了訊息 <id.j.s, m>,另一些誠實節點 r-deliver 了訊息 <id.j.s, m′>,那麼 m = m′。

totality:如果一些誠實節點 r-deliver 了序號為 id.j.s 的訊息,那麼所有的誠實節點都將 r-deliver 同樣序號的訊息。

integrity:每個誠實節點只能 r-deliver 最多一條 id.j.s 標識下的訊息 m。
efficiency:每個 d.j.s 序號下的 broadcast 例項的通訊複雜度都是 uniformly bounded。  


validity 保證了演算法的 liveness,consistency 和 totality 是對傳統定義 agreement 的拆分,拆分的緣由之一是不保證 totality 的 reliable broadcast 也是一 種有用的方法。     
基於此我們構建協議如下 ——
(1)當收到訊息 (id.j.s, in, r-broadcast, m),執行:
(廣播/r-send)
(2)當節點收到來自 leader 節點 pι 的訊息 (id.j.s, r-send, m),執行:
(廣播/r-echo/第一階段)
(3)當節點收到來自其他節點的訊息 (id.j.s, r-echo, d):     
(滿足閾值後廣播/r-ready/第二階段)
(4)當節點收到來自其他節點的訊息 (id.j.s, r-ready, d):     
(滿足拜占庭容錯閾值後輸出/r-deliver/第三階段)
(*)在收到訊息 (id.j.s, r-request) 後執行:     
(獲取最新訊息內容/r-answer)
rbc 傳承了經典拜占庭容錯共識的三階段,同時引入了更為可靠的訊息傳輸,十分適合安全多方計算網路的秘密份額傳輸和合成。reliable broadcast 分為 “echo” 和 “ready” 兩個關鍵階段,echo 階段保證每個節點都 accept 到了同樣的訊息(consistency),ready 階段保證如果一個人 accept 了一條訊息 m,那麼其他所有節點也都 accept 了 m(reliability)。     
整體上訊息複雜度是 o(n^2)。如果沒有 fault 出現,複雜度可降為:
注:m 是傳送的訊息,k′ 是 hash 的長度。但是需要注意的是惡意攻擊者會阻塞 r-send 過程導致開銷增大。

安全多方計算

門限 ecdsa 簽名

近些年來人們在不斷追尋更為通用和靈活的 (t, n) 門限方案,即 n >= t+1,且只需要 t+1 方即可完成簽名。但是更多的阻礙出現在了分散式金鑰生成協議(dkg)上,往往都是極具消耗性的,難以用於實際生產。
在通用的 dsa 簽名演算法中,假設迴圈群 g 由素數階 q 和基點 g 來定義,金鑰(secret key) x 統一從以素數 q 為模數的有限域 z/q 中隨機選取,從 z/q 中隨機選取 k。對 dsa 門限簽名的實現難度在於需要多方共同來計算 r(涉及 g 求冪和 k 求反操作)和 s(涉及兩個秘密值 k 和 x 的乘操作),這種非線性的計算對多方安全計算來說是十分困難的。[1] 受到著名的 mpc 實現 spdz [2] 的啟發,採用了一種不同的多方計演算法:假設有兩個秘密值 a 和 b 在多方之間分享,有 a = a1+...+an,b = b1+...+bn,對於參與方 pi 擁有 ai 和 bi;此時我們需要生成 c = ab 的分享,注意到有
需要對每一項秘密值 aibj 都進行分享;這給予的啟示是,可以讓參與方們根據各自擁有的 a 和 b 的秘密份額兩兩配對組合生成秘密值 aibj,基於此建立一種簡單而又優雅的門限 ecdsa 協議。根據上面提到的原理計算乘法分享: 
因此可以獲得 r 的多方計算:
簽名的 s 值分享組合:
至此,門限 ecdsa 簽名的實現原理已經清晰。

零知識證明

我們用到了零知識證明(zk proofs)來檢測成員裡的惡意行為,採取先簽後驗的方式,即如果最終的簽名未驗證透過則證明至少一個成員未遵循規則。但是我們需要確保這個過程中(正確執行和中止執行)誠實成員暴露的資訊不會被惡意利用。

通訊模型

假設存在一個點對點的廣播通道(broadcast channel)用於連線每一對成員通訊。惡意攻擊者至多控制 t 個成員(dishonest majority),且 t <= n-1,我們假設攻擊者是最後“說話”的,即看到誠實成員的資訊後選擇自己的資訊方案。目前的協議並不保障 liveness,即可能無法完成協議執行。

加法同態加密

對於給定的兩個基於同態加密演算法 e 的密文:
定義同態加操作:
定義標量乘法操作:

不可延展的陷門承諾協議

通常一個(非互動)陷門承諾(trapdoor commitment)機制包含四部分演算法:
(1)kg:金鑰生成演算法,輸入一個安全引數,輸出金鑰對 {pk, tk},其中 pk 是與承諾機制有關的公鑰,tk 為陷門;
(2)com:承諾演算法;
(3)ver:驗證演算法;
(4)equiv:透過給定的陷門開啟承諾演算法。
一個陷門承諾需要滿足以下屬性:
(a)correctness;
(b)information theoretic security(資訊理論安全);
(c)secure binding。
所謂承諾是不可展的(non-malleable)指,對於給定資訊 m 的承諾 c,攻擊者在看到承諾開啟後,不可能找到另一個承諾 c',使之可以成功解承諾後得到訊息 m',否則攻擊者可以換成自己的承諾,使真正的承諾無效。

可驗證秘密分享協議

即 feldman's vss
對於一個可驗證秘密分享協議,會有一個輔助資訊(auxiliary information)被公開,以便允許成員可以據此驗證它們的秘密碎片是否始終如一併可以構建出唯一的秘密。feldman 方案便是對於 shamir 秘密分享的一種可驗證擴充套件。 

份額變換

是計算秘密值乘法運算的重要 mpc 原語。假定 alice 和 bob 分別擁有秘密 a 和 b,對於 ab 的乘法分享,令 x = ab mod q,alice 和 bob 需要計算 x 的秘密加法分享
這裡我們呈現一個基於加法同態的協議。
(1)alice 初始化協議:
向 bob 傳送
(2)bob 計算密文
bob 設定他的分享
回覆 alice。
(3)alice 解密 cb 得

smpc 協議

我們假設每個成員 pi 都擁有加法同態加密機制下的公鑰 ei。
(1)金鑰生成協議
共存在 n 個併發 vss 協議分發成員各自的秘密值,每個成員收集拼裝來自其他 n-1 個成員的秘密值碎片,所以理論上在復現最終總私鑰時,需要進行 n 次多方計算。
(2)生成簽名
(a)phase 1:每個成員選擇各自的秘密值
(b)phase 2:兩兩一對參與到一個兩方“乘轉加”(multiplicativ-to-additive)份額變換(share conversion)的子協議中(詳見[1]),計算出 ——
依此進一步得到 r。
(c)phase 3:
每個成員 pi 設定各自的
注意到有
為對 s 的一個 (t, t) 分享,最終得

引用

[1] rosario gennaro and steven goldfeder. “fast multiparty threshold ecdsa with fast trustless setup”. english. in: acm, 2018, pp. 1179– 1194. isbn: 9781450356930;1450356931;
https://eprint.iacr.org/2019/114.pdf
[2] software for the spdz, mascot, and overdrive secure multi-party computation protocols. 
https://github.com/bristolcrypto/spdz-2

免責聲明:

  1. 本文版權歸原作者所有,僅代表作者本人觀點,不代表鏈報觀點或立場。
  2. 如發現文章、圖片等侵權行爲,侵權責任將由作者本人承擔。
  3. 鏈報僅提供相關項目信息,不構成任何投資建議

推荐阅读

;