通用支付通道適用于其它在Layer1上的資產和DApps,這種可組合性讓我們可以創造出一些有趣的使用范例,例如將穩定幣進行通道化。
原文標題:《一種通用的支付通道結構及其可組合性》撰文:謝晗劍,Nervos首席架構師,秘猿科技首席執行官,前以太坊核心研發團隊成員翻譯:史迪仔,Williams
通道網絡可能是Layer2舞臺上最耀眼的角色。一個廣泛部署的通道網絡可以最大化交易吞吐量,可以最小化交易處理延遲,可以增強交易的隱私性,甚至可以為區塊鏈提供一定的互操作性。簡而言之,如果運用得當,通道網絡將會是解決問題的靈丹妙藥。
不同于基于零知識證明的協議或者其他Layer2鏈,通道網絡的基本思想非常簡單:使用直接連接雙方的網絡進行鏈下的交易互換,并確保這些交易在區塊鏈上都是可執行的,然后通過這種點對點的連接共同組合成一個網絡,在這個網絡中的任意兩個點之間都有一條或者多條路徑連接著它們。盡管通道網絡自身也存在一些問題,比如流動性效率和路徑問題,但這些問題都是可以解決的,或者說是有近似的最優解的。
相比于Layer1,Layer2協議在部署之后相對是比較容易升級的,因此實現通道網絡的最佳方案就是先啟動它然后再逐步發展改進它。閃電網絡就是一個這樣的典型案例。本文將介紹一種簡單的、可組合性強的基于CKB網絡的通用支付通道結構,希望能夠引起更多的研究和關注,引發更多關于通道網絡的討論,促進CKB上通道網絡的建設和發展。
介紹
支付通道網絡是一個去中心化的支付網絡,用來支持全球支付。通道網絡的設計主要包含兩個方面,第一:通道協議,它規定了兩個用戶在一個直接相連的通道內的鏈下信息傳遞、鏈上合約和鏈上鏈下交互;第二:網絡協議,它規定了如何將多個直接相連的通道組合成一個較長的通道,如何在兩個用戶之間找到一條路徑等等。本文主要討論一種在CKB上的通用支付通道結構。它是通用的,因為它基本適用于CKB上的任意一種資產。
通道結構最主要的問題在于,如何確保只有最新的通道狀態才會在鏈上被認為是有效的。閃電網絡使用的Poon-Dryja結構是基于撤銷懲罰實現的,這給雙方帶來了復雜的密鑰管理和狀態管理,進而增加了正確實現協議的難度和節點操作的風險。Decker-Wattenhofer結構提供了一種基于時間戳的狀態更新機制,缺點是只允許有限數量的狀態更新,這意味著Layer1和用戶都需要付出更高的成本,因為通道必須定時關閉和開啟。Decker-Russell-Osuntokun結構的eltoo是一個優雅的基于版本的解決方案,但是它需要在比特幣中引入一個新的操作碼SIGHASH_NOINPUT。以太坊提供一個有狀態的圖靈完備的智能合約模型,這使得構造基于版本的解決方案更加容易,如Sprites,ForceMove以及Perun。
BlockTower Capital于8小時前將650萬枚YGG解鎖代幣轉至幣安:金色財經報道,據推特用戶余燼監測,8 小時前,BlockTower Capital( MetaDockTeam區塊瀏覽器插件上標簽顯示)從 YGG 解鎖合約領取了 981 萬 $YGG ,然后將 650 萬枚 YGG(約 150 萬美元)轉入了 Binance。
據悉,BlockTower 是 YGG 的種子輪投資機構,自 2021 年 7 月 28 以來,BlockTower 已累計解鎖領取了 1529 萬枚 YGG 。BlockTower 解鎖領取的 1529 萬枚 $YGG 中 100 萬枚 YGG 通過 Uniswap 出售,1098 萬枚 YGG 則轉入了 Binance。按轉入交易所時價格計算,1529 萬 YGG 共計可以售得資金 3244 萬美元,均價為 2.12 美元。其中 390 萬枚 YGG 是在 2021年11月18至22日期間轉入的 Binance ,那幾天正是 YGG 歷史最高點(價格約在8-11美元)。[2023/3/16 13:07:30]
譯者注,ReplacebyVersion縮寫RbV,每個狀態有一個表示狀態版本的單調遞增的計數器。在發生爭議時,經過授權的具有最高版本的狀態被認定為最新狀態,如果另一個新的狀態具有較大的版本號,那么它將替換先前的狀態。
結構
這里描述的通用支付通道結構主要是指一個基于CKB的eltoo端口。然而,我們將看到這樣一個幾乎相同的想法在CKB上不僅更容易實現,而且還展現出比特幣/以太坊的支付通道方案中不存在的可組合性等優點,只是在設計上稍微有一點點謹慎。通道的可組合性是指通道結構可以適用于其他在Layer1上的資產和dapps。通過通道的可組合性,我們可以為所有的Layer1的資產構建一個通用的支付通道網絡。
通用支付通道結構由一個通用支付通道lock和三種不同類型的交易組成。
通用支付通道lock
GPClock是通用支付通道的關鍵組成部分,它是通道內的cells使用的lockscript。它有5個參數:
Casper Labs擴大與Google Cloud的合作關系,允許開發者在Casper上構建和擴展應用:金色財經報道,Casper Labs 宣布擴大與 Google Cloud 的合作關系,包括將其部分基礎設施和企業應用程序遷移到 Google Cloud,并為 Casper Association 捐贈接收者提供訪問 Google Cloud 技術的機會,幫助其在 Casper 協議上構建和擴展區塊鏈項目和解決方案。
Google Cloud 將為 Casper Labs 的團隊提供所需的基礎架構,以部署和管理能夠從私有和混合角度滿足客戶需求的區塊鏈解決方案[2023/3/1 12:35:10]
state:鎖狀態,一個OPEN和CLOSINGtimeout:關閉周期長度pubkey_a:Alice的公鑰pubkey_b:Bob的公鑰nonce:一個單調遞增的無符號整數一個通用支付通道可以被建模為一個簡單的有限狀態機,包含了三種狀態:OPEN,CLOSING和SETTLED。OPEN是初始狀態,OPEN和CLOSING分別用GPClock的OPEN和CLOSING狀態進行表示,而沒有GPClock就表示為SETTLED。
當GPClock被解鎖時,狀態將會發生轉變。當GPClock的狀態為OPEN時,它可以在兩種情況下被解鎖:雙向關閉和單向關閉。
交易類型
出資交易——一筆出資交易就是打開了一個新的通用支付通道。它有一個fundingoutput,該output的lock就是一個狀態為OPEN的GPClock。
關閉交易——一筆關閉交易會消費fundingoutput或者另一筆關閉交易中的output。它會有一個closingoutput,該output的lock就是一個狀態為CLOSING的GPClock。它總是會有一筆匹配的結算交易。
關閉交易的獨特之處在于它們并不會固定于一個先前的outpoint。當一筆關閉交易被簽名時,它的輸入被排除在哈希過程之外,因此簽名只會包括outputs。這個特殊的哈希過程被稱為無輸入哈希。例如,當用戶想要簽署一筆關閉交易時,他/她會序列化輸出并對其進行哈希,然后在哈希結果上進行簽名。這樣在結束交易中的輸入不會影響簽名交換。正因為一筆關閉交易可以附加到一筆出資交易或者另一筆關閉交易,并且可以在關閉交易簽名之后的一段時間后再確認連接。這樣的操作可以在CKB上直接實現,無需添加新的操作碼,因為一筆CKB交易的哈希和簽名是完全可定制的。
Opyn:支持以太坊合并,并不計劃Opyn Web應用程序中分叉:9月13日,據Opyn官方公告,Opyn將支持以太坊合并,并表示,沒有計劃在Web應用程序中支持任何分叉。目前,Opyn僅適用于正在遷移到PoS的規范鏈。如果出現規范的PoW ETH分叉,Squeeth接口將不支持分叉的PoW Squeeth、vault NFTs或Crab Vault接受代幣。
此外,Opyn官方還表示,如果合并成功,Squeeth協議將通過從工作量證明(PoW)到權益證明(PoS)的過渡并繼續正常運作,無需用戶任何操作。[2022/9/13 13:25:37]
GPClock情況1,它要求關閉交易的output0必須與其input0一致,除了它們lock中的nonce和state,這意味著它的input0只能連接到先前的使用類似GPClock的output作為它自己的output0。
結算交易——結算交易消費了一個closingoutput并關閉了一個通用支付通道。它有兩個輸出,分別將資金給到Alice和Bob。它總是會有一筆匹配的關閉交易。
示例流程
這里我會給出一個交互流程的示例。它只是一個用于解釋的草擬協議,而不是一個包含確切步驟的真正的協議。草擬和真正協議的關鍵區別在于在每次狀態轉換上是如何達成一致的。考慮到并發性和公平交換等問題,兩方協議的問題要比聽起來復雜的多。當然也是存在解決方案的,但是它已經超出了本文的范疇,并且和通用支付通道結構毫不相關。我只是假設在必要時會使用這樣一種合適的安全協議,例如在交換簽名的時候。
后續涉及具體流程,包括:開啟通道、發送交易、關閉通道等操作,建議前往譯文或者原文,以獲得更佳的閱讀體驗。
基本原理
在出資交易被簽名之前,任何一方如果不想再繼續,都可以在沒有任何損失的情況下停止。如果出資交易已經被簽名,但是通道的最初開啟人還沒有廣播它,則另一方依舊總是可以發送另一筆交易,消費和等待被廣播的出資交易相同的輸入,從而使之無效。
Optimism代幣因黑客攻擊虛假謠言曾于今晨5時左右短暫暴跌10%:8月18日消息,在推特上傳出以太坊二層擴容網絡Optimism多簽錢包被黑客攻擊的傳言后,Optimism的原生代幣OP價格曾于今日凌晨5時左右短暫暴跌。Optimism的核心團隊堅稱沒有黑客攻擊。盡管如此,OP代幣在幾分鐘內下跌了10%。在Discord消息平臺上,該團隊澄清說,資金流動是預先計劃的與Coinbase Custody相關的轉賬到投資者錢包。(CoinDesk)[2022/8/18 12:32:58]
一旦出資交易上鏈并且通道已經打開,通道的任何一方都可以發起單向關閉,如「關閉通道:糟糕的」中所述,由他/她自己關閉所有通道,如果對手發起單向關閉,一方可以等待關閉超時或更新GPClock,前提是他/她需要有一個nonce值更大的余額狀態。關閉期為任何一方提供了一個可以提交其最新狀態的窗口,在結束時通道將以nonce值最大的狀態進行結算。
可組合性
通用支付通道結構可以適用于任意一種CKB上發行的token,無論它是原生的CKByte還是UDT。此結構只涉及cell的lock,cell的data和type字段將留給智能合約開發者們去進行處理。這個小小的接口使得它可以兼容任何只使用了data和type字段的合約。sUDT就是這樣的一種合約,未來的UDT標準也將是如此。一個UDT的開發者將不需要再去考量如何將UDTs通道化,因為它隨時都可以在不需要做任何改動的情況下被通道化。這代表UDTs生來就是可通道化的,并且通道化和擴容UDTs的開發成本是「0」。所以UDTs不只是Layer1上的一等公民,也是Layer2上的一等公民,因為它可以在不做任何改動的情況下就在Layer1和Layer2之間自由的流入流出。這也給予了支付通道網絡最大的流動性,因為所有Layer1上的資產都可以在無摩擦的情況下加入Layer2的池子中。
這和比特幣和以太坊上面的支付通道完全不同。比特幣上的支付通道只有比特幣可以運作,因為比特幣是唯一的資產,并且這個區塊鏈的能力是有限的。至于以太坊上雖然有非常多種的資產,但是它的ERC20代幣和通道的可組合性卻是受限的。支付通道必須要和token通過預先已經定義好的接口進行交互,但這些接口對于不同的token而言可能是不同的。舉例來說,Celer才剛以硬編碼的方式支持ETH和ERC20代幣并且需要依賴它的approve/transferFrom的機制。即使ERCtoken遵循同一個標準接口來實現通道化,可能仍然是不安全的,因為接口的語意可能是不一樣的,近期的UniswapERC777事件已經說明了這一問題。相反的,CKB上的GPClock,根本不需要去管UDT具體是如何實現的。
Polygon 部署自定義區塊鏈擴展解決方案“Avail”:6月29日消息,Polygon 已經部署了自定義區塊鏈擴展解決方案“Avail” ,供開發人員在 Polygon 主鏈和其他區塊鏈上啟動獨特的區塊鏈應用程序。新產品將允許開發人員“脫鏈”訪問區塊鏈數據,這意味著他們不需要不斷檢查來自網絡的數據以查找部署在 Polygon 上的應用程序。Avail可以部署在任何與以太坊虛擬機 (EVM) 兼容的區塊鏈上,基于 Avail 構建的應用程序將使開發人員能夠更新、分叉和更改其區塊鏈處理執行的方式,這對于可能需要修補錯誤、試驗執行或只是減少對外部鏈依賴的 DeFi 和游戲開發人員來說至關重要。
此前4月份,Polygon曾宣布將于第二季度推出可拓展性區塊鏈網絡Avail測試網。[2022/6/29 1:40:05]
通用支付通道結構也能夠在anyone-can-pay的lock中運行,也就是說當關閉交易的時候可以用任意的lock作為輸出。通用支付通道和UDTs的可組合性,對于用戶而言是更便于使用的。例如,他們在打開通道前不需要用「Approve」方法來進行授權。他們的資金可以像往常一樣安全地放在自己的錢包里面,在任何需要的時候通過單筆簽名交易將資金發送到通道中即可。
這個結構的可組合性讓我們可以在CKB上創造出一些有趣的使用范例,例如將穩定幣進行通道化。不論你是算法穩定幣還是基于信任的穩定幣,它從第一天起就是支付通道網絡上的一等公民。穩定幣的支付通道網絡可以帶給用戶超越Visa,Paypal以及支付寶的順滑體驗,因為它是快速的,可擴展,無需許可的并且有未來的——我說的是基于APIs和IoT的流支付!
雙方共同出資
以太坊上的支付/狀態通道當通道被打開時也面臨了原子性的問題,因為以太坊上的交易只有一個發送方,但通道的資金卻可能是來自雙方的。為了允許雙方共同出資,以太坊的通道可以使用兩個獨立的出資交易,這也會給交易的對手方帶來風險,因為一方可以在另一方已經承諾出資之后終止通道,或通過使用更多的鏈上交易來模擬原子雙方共同出資,從而增加未來打開新通道的成本,同時這又會取決于ERC20特定的接口。CKB上的通用支付通道的出資交易可以擁有多個輸入,自然地就可以支持雙方共同出資。
有狀態的鎖定模式
通用支付通道的結構只依賴于lockscript。lockscript是有狀態的,它模擬了一個簡單的狀態機,然后在lockscript中使用args來維持內部的狀態。當需要一個適度復雜的狀態lock時,也可以在其他地方應用這個模式。
對于具備更復雜的狀態機的lock,有兩種替代方案可以考慮。第一種是將data變成是一個在lockscript和typescript之間可以共享的字段,這需要預先定義好數據格式,以便每個腳本可以讀/寫自己的數據,而不與其他腳本發生干擾。第二種方式是使用一個單獨的cell來維持lock的狀態,并且將鎖定的cell和鎖定狀態的cell一起轉換。這兩種方案是最明顯的,但絕對還有其他可能的模式。
未來工作展望
通用支付通道是一個簡單的結構,靈感源自eltoo,然而它不僅在CKB上更容易實現,而且還免費獲得了額外的優異性質,如上所述。cells的「狀態對象」的本質天然適合通道網絡和Layer2,我希望關于通道網絡的研究可以吸引到的來自社區的關注。這里還有一些有趣的問題:
狀態通道——狀態通道是支付通道的一種泛化,用于支持智能合約的鏈下執行。GPClock不包含支付的特定結構,這會是狀態通道建設的一個良好的開端。
通道網絡——如何連接通用支付通道,進而任何人都可以通過一些中間節點就可以直接或者間接地向通道網絡中的任何一個人進行支付?我們是像閃電網絡一樣使用HTLC還是有什么更好的解決方案?
瞭望塔——如何通過一種無需信任的方式將糾紛委托給第三方?這樣通道的參與者就可以離線去度假了
路徑——如何找到通道網絡中兩個點之間的最佳路徑?考慮到通道的開啟/關閉和通道容量的變化,整個網絡處于不斷變化的狀態中,而節點對于整個拓撲網絡僅擁有部分信息。「最佳」的定義也因人而異。由于這些限制,開發幾種不同的路徑策略并將選擇權留給用戶可能會更加合理。這一領域有很多有趣的論文。
多部分支付——一次支付的金額越大,就越難找到一條有足夠容量的路徑來傳遞它。多部分支付的概念是將大額支付拆分成數筆小額支付,并通過不同的路徑將它們發送到同一個目的地,并確保小額支付們被全部接受或者全部拒絕。
引用資料
https://lightning.network/lightning-network-paper.pdf
https://tik-old.ee.ethz.ch/file/716b955c130e6c703fac336ea17b1670/duplex-micropayment-channels.pdf
https://blockstream.com/eltoo.pdf
https://pdfs.semanticscholar.org/4d5b/9fb1c4205b61060117e3c71b04464c2a1c77.pdf
https://arxiv.org/pdf/1702.05812.pdf
https://magmo.com/force-move-games.pdf
https://eprint.iacr.org/2017/635.pdf
https://docs.nervos.org/technical-concepts/architecture.html#lock-script
https://github.com/bitcoin/bips/blob/master/bip-0118.mediawiki
https://pdfs.semanticscholar.org/208b/22c7a094ada20736593afcc8c759c7d1b79c.pdf
https://talk.nervos.org/t/rfc-simple-udt-draft-spec/4333
https://github.com/celer-network/cChannel-eth/blob/master/contracts/lib/ledgerlib/LedgerOperation.sol#L87-L114
https://defirate.com/imbtc-uniswap-hack/
https://talk.nervos.org/t/rfc-anyone-can-pay-lock/4438/6
https://github.com/celer-network/cChannel-eth/blob/master/contracts/lib/ledgerlib/LedgerOperation.sol#L87-L114
來源鏈接:talk.nervos.org
以太坊
以太坊
開放的分布式區塊鏈應用平臺,通過其專屬加密貨幣Ether以太幣提供去中心化的虛擬機,處理點對點合約。允許任何人建立和使用通過區塊鏈技術運行的去中心化應用,沒有任何欺詐、審查、第三方監管。以太坊的概念首次在2013至2014年由維塔利克·布特林VitalikButerin受比特幣啟發后提出,旨在共同構建一個更全球化、更自由、更可靠的互聯網。以太坊EthereumETHERCERCERC20ERC721ERC以太坊查看更多Nervos
融資1800萬美元的Braintrust想要改善傳統人才市場運營成本和信任問題。撰文:PaulVeradittakit,PanteraCapital合伙人翻譯:盧江飛什么是Braintrust?.
1900/1/1 0:00:002020年10月21日晚8點,BlockArk聯合創始人Warren在Uniswap中文社區對話DeFiner的創始人兼CEOJasonWu.
1900/1/1 0:00:00目前100000人已關注加入我們掃一掃下載全網最新數據報告 查看完整報告請閱讀全文 查看完整報告請閱讀全文 以上資料均從網絡公開資料收集整理而成.
1900/1/1 0:00:00關于PoW和PoS的誤解太多,想要在一篇文章中講個明白實在是一個極高難度的任務,所以這里只簡單討論兩點,一個是從經濟學上思考PoS給出的美好承諾是否可靠,另一個是PoS本質上是一種許可機制.
1900/1/1 0:00:00本文為MakerDAO中國社區負責人潘超在「洞見」第四期活動「DeFi」上的演講。在本文中,潘超極為精煉地總結出DeFi的定義、現在市場上不同DeFi項目的特點,并最終點出了去中心化金融的終極追.
1900/1/1 0:00:00為了管理管轄權,激勵陪審人員,進行基礎設施處理交易,Aragon擁有自身治理資產ANT以及專為特定目的而設計的衍生資產ANJ與ARA.
1900/1/1 0:00:00