2019,公鏈的創(chuàng)新與升級,依舊是區(qū)塊鏈發(fā)展的重中之重。第二層擴展方案作為熱點技術(shù)方向,究竟蘊含了什么樣的價值和意義呢?目前區(qū)塊鏈交易
2019,公鏈的創(chuàng)新與升級,依舊是區(qū)塊鏈發(fā)展的重中之重。第二層擴展方案作為熱點技術(shù)方向,究竟蘊含了什么樣的價值和意義呢?
目前區(qū)塊鏈交易吞吐量有很大的局限性,這主要歸結(jié)于為了安全和保持去中心化,所有節(jié)點都需要處理系統(tǒng)里每一筆交易。
鏈下擴展技術(shù)允許相互不信任的用戶群在本地處理交易達到共識,而不用上鏈達到全網(wǎng)共識。這項技術(shù)的難關(guān)是建立鏈下狀態(tài)機機制,使得當當?shù)爻霈F(xiàn)爭議的時候成員可以提供欺詐證據(jù),該爭議也會在鏈上得到利落的解決。通常,我們稱這些技術(shù)稱之為“第二層擴展方案,或者鏈外擴展方案”
“鏈外擴展方案”的項目早已存在。閃電網(wǎng)絡無需節(jié)點間的信任,通過支持hashlock和時間鎖的HTCLs來提供可行的小額支付通道。Plasma以太坊的智能合約上運行。這些智能合約扮演著Plasma子鏈的根基的角色。當子鏈處理小額支付交易時,子鏈的根基保障了交易安全性和最終性。Counterfactual引進了和上述支付通道類似的狀態(tài)通道,除了可以作為支付通道,它還可以擴展其他鏈上需要狀態(tài)的功能。
智能合約在JURA網(wǎng)絡中是以FUSUS數(shù)據(jù)的形式存在的。它是由外部賬戶或者另一個智能合約初始化的,由賬戶里的代碼控制。它有可以反映狀態(tài)的儲存空間。接收交易與信息在FUSUS數(shù)據(jù)中構(gòu)成DAG。 當交易需要整理結(jié)算的時候,相應的發(fā)送交易或者消息由代碼自動生成。這和外部賬戶通過給自己發(fā)送交易結(jié)算很像。每一單發(fā)送交易(消息)的時候都需要計算最新的狀態(tài)。
發(fā)送交易在FUSUS數(shù)據(jù)中構(gòu)成了一條發(fā)送鏈。通過兩筆發(fā)送之間的接受交易(消息),在下次發(fā)送交易的時候,你可以知道新狀態(tài)的和相應的轉(zhuǎn)換。 關(guān)于狀態(tài)轉(zhuǎn)換的Merkel 證明會在每次發(fā)送交易時候生成。
第二層解決方案不會提交每次的狀態(tài)轉(zhuǎn)移給鏈上全球賬本,因此需要設計一種支持多參與者的智能合約,該智能合約支持當鏈下出現(xiàn)爭議時提交狀態(tài)來與主鏈交流,這種智能合約可以通過其他去中心化項目的智能合約繼承,初始的時候移進合約定金,初始化交易狀態(tài),并確定狀態(tài)機的計算方式。我們稱這種合約叫第二層智能合約。
為了創(chuàng)造一個多參與者鏈外狀態(tài)通道,我們需要啟動帶有一定定金的第二層智能合約。然后參與者就可以在里面活動:進行交易,下棋,買保險等。
參與者通過發(fā)送交易或者信息接收進行互動。 FUSUS智能合約把每一次互動記錄為接受交易。如果這些交易(消息)順序并不重要,如屬于不同的參與者或者交易相互獨立。 那么這些交易將構(gòu)成DAG,這將增加交易或信息的吞吐量。 但在每次FUSUS得到有依存關(guān)系的交易時,它會生成一條相應的發(fā)送信息以便狀態(tài)轉(zhuǎn)換,交易間順序自然而然地進行了組織。
在第二層智能合約中,我們把兩個連續(xù)的發(fā)送交易之間的交易行為稱為互動回合。 每一次互動回合的狀態(tài)轉(zhuǎn)變和必須讓所有相關(guān)的參與者簽名。
FUSUS賬戶的發(fā)送交易指令下達之后,將進行狀態(tài)轉(zhuǎn)移。當?shù)诙又悄芎霞s處理鏈外狀態(tài)轉(zhuǎn)換時,相關(guān)用戶必須認可當前交易狀態(tài)才能進行下一步。智能合約會在儲存數(shù)據(jù)里儲存利益相關(guān)參與者的狀態(tài)。關(guān)于利益相關(guān)者,只要在互動回合中他的狀態(tài)改變就要由所有的利益相關(guān)參與者簽名確認。那么下一個狀態(tài)就要以之前簽過的利益相關(guān)者簽名后的hash作為需要簽名數(shù)據(jù)的一部分,以保證安全和完結(jié)性。
利益相關(guān)者狀態(tài)是鏈下狀態(tài)機計算的結(jié)果,鏈下的共識可能會因為計算環(huán)境不同等達不到,這也規(guī)定了鏈下只需要利益相關(guān)者狀態(tài)達到共識即可。
智能合約也保持一個“總結(jié)狀態(tài)”,這可以解釋為合約總的結(jié)論。如果狀態(tài)通道就是支付通道,那么“總結(jié)狀態(tài)”記錄就是這個通道所有的余額。“總結(jié)狀態(tài)”允許新的參與者進入狀態(tài)通道。因為JURA網(wǎng)絡嚴格區(qū)分接收交易和發(fā)送交易,當有個新的參與者想加入時,他可以發(fā)送一些token到智能合約上,智能合約會更新總狀態(tài)并將收到的錢存在總賬戶里。“相關(guān)輸出”也會加入新參與者的賬戶及其通道余額進行更新。
但是對于那些不是只想進行一次發(fā)送交易的參與者,我們鼓勵他們存進更多存款,好讓智能合約不用分次上鏈去公布總結(jié)狀態(tài)達到共識。
在此通道中,“總結(jié)狀態(tài)”必須和所有參與者個人狀態(tài)的匯總符合。在支付通道中,這意味著每個參與者在此通道的余額必須加起來等于此通道的總存款。
第二層智能合約可以讓一個驗證人維護,這個人必須有權(quán)提出該通道鏈下的所有參與者的新狀態(tài)。
參與者離開通道不像進來那么容易。參與者在驗證人故意阻止交易,或者不想再進行鏈下互動的情況下會離開。脫離的程序要求鏈上狀態(tài)更新,脫離的人要在通道上公布狀態(tài)信息,之后他的狀態(tài)就不會再更新。我們不期待此人可以提供鏈下最新的狀態(tài),因為鏈下狀態(tài)可以非??臁?/p>
但一旦該人提供merkel證明,需要等其他通道參與者給出反證。如果其他通道參與者提供一個想離開參與者簽署的更新的自己的狀態(tài),證明這個人不守信,那么這個人就需要交罰金。我們還有一些在離開狀態(tài)通道時候不需要提供最新狀態(tài)的案例,我們會在下一節(jié)詳細描述。
OP_RETURN操作碼的調(diào)用,可以這樣簡單的理解,將BCH鏈上的交易添加“備注信息”,因為BCH鏈上數(shù)據(jù)不可篡改,有時間戳可以追溯,將Bitcoin Cash的區(qū)塊鏈里的OP_Return數(shù)據(jù)提取出來。
元數(shù)據(jù)存儲在BCH鏈上,合約執(zhí)行在蟲洞客戶端上。這樣分層設計,可以保證數(shù)據(jù)的安全性,雖然不能保證數(shù)據(jù)回滾也就是雙花,但是雙花成本過高基本上可以忽略不計。
JURA第二層解決方案可以運用到目前對支持智能合約的項目,如以太坊的智能合約和比特幣的“蟲洞”智能合約項目。在這些項目中,任何一個節(jié)點可以通過智能合約并配合JURA展方案實現(xiàn)鏈外通道和狀態(tài)通道的轉(zhuǎn)換。
總而言之,無論怎么發(fā)展,整個區(qū)塊鏈的技術(shù)源頭和代表,都是公鏈。幾乎所有的應用場景,也都基于公鏈技術(shù)的發(fā)展而不斷拓展的。2019,公鏈的創(chuàng)新與升級,依舊是區(qū)塊鏈發(fā)展的重中之重。
關(guān)鍵詞: 公鏈 鏈外擴展 創(chuàng)新