Wormhole黃皮書

簡介

Bitcoin Cash(BCH)在區(qū)塊高度478,558上產(chǎn)生走越,一直致力于為世界帶來一種可靠的電子現(xiàn)金,履行最初的比特幣作為「點對點數(shù)字現(xiàn)金」的承諾瞳别。其具有全球無縫流通抖坪、無許可(Permissionless)創(chuàng)新等特點。在Bitcoin Cash如何實現(xiàn)發(fā)行通證(Token)邢疙,眾多的開發(fā)者已經(jīng)有過不少的研究,比如染色幣的方案Colored-Coins望薄,之后Andrew Stone 提出了Enable representative tokens via OP_GROUP on Bitcoin Cash疟游,提議增加OP_GROUP的操作碼來實現(xiàn)發(fā)Token的方案。OP_GROUP方案需要修改Bitcoin Cash的共識規(guī)則才可以實現(xiàn)痕支。更具體地說颁虐,類似于在Ethereum網(wǎng)絡上廣受歡迎的ERC20協(xié)議所具備的那些功能。

凡是需要更改共識才能實現(xiàn)的通證發(fā)行技術提議卧须,都不可避免地會遇到問題另绩。首先是技術上的風險,其次是對這種風險的顧慮常常引發(fā)技術開發(fā)社區(qū)甚至整個經(jīng)濟生態(tài)都陷入巨大的爭議花嘶。爭議中的反對方笋籽,其顧慮很可能也確實是真實的。不論這樣的爭議中誰對誰錯椭员,結果常常是有爭議的提議無法被實現(xiàn)车海。這樣的困難可以被視為一種保險機制,讓具有的風險更改很難被添加到協(xié)議之中隘击,保證協(xié)議的穩(wěn)健與安全侍芝;但是喘沿,協(xié)議的創(chuàng)新就面臨了著巨大的困難。導致了Bitcoin Cash社區(qū)獨立的區(qū)塊擴容大爭論竭贩,曠日持久而沒有共識的產(chǎn)生,就是一個更加令人不能回避的社會心理學證據(jù)莺禁。

快速活躍的創(chuàng)新留量,需要一種無需許可的環(huán)境。我們也一直在探索無許可創(chuàng)新的方法哟冬,在不需要改變共識的情況下楼熄,在Bitcoin Cash的區(qū)塊鏈上實現(xiàn)智能合約。經(jīng)過研究浩峡,我們關注到了OmniLayer協(xié)議可岂,它是一種利用OP_RETURN操作碼實現(xiàn)通證發(fā)行的方案。這個方案是廣受歡迎的泰達幣(USDT)日常發(fā)行和流通的技術基礎翰灾。Omni Layer是運行在Bitcoin的區(qū)塊鏈之上的缕粹。Omni Layer協(xié)議采用了MIT開源許可證。我們Fork了Omni Layer的協(xié)議纸淮,在Bitcoin Cash的區(qū)塊鏈上實現(xiàn)了發(fā)行通證的技術方案平斩。我們將這種技術方案命名為Wormhole協(xié)議,協(xié)議中的原生代幣命名為Wormhole Cash咽块。

安全模型和執(zhí)行流程

Wormhole 節(jié)點

節(jié)點認知

Wormhole節(jié)點是Bitcoin Cash 節(jié)點的超集绘面,是在Bitcoin Cash客戶端上增加了Wormhole協(xié)議的實現(xiàn)。

Wormhole客戶端既可以作為一個Wormhole全節(jié)點使用侈沪,同時也可以作為Bitcoin Cash全節(jié)點使用揭璃,它實現(xiàn)了Bitcoin Cash協(xié)議與Wormhole協(xié)議。

Wormhole節(jié)點接收的交易

  • 既可以接收亭罪,驗證Wormhole交易瘦馍,也可以接收,驗證Bitcoin Cash交易皆撩。

節(jié)點運行

[圖片上傳失敗...(image-320119-1534417741420)]

Wormhole節(jié)點啟動后扣墩,會與網(wǎng)絡中其它節(jié)點(包含:Bitcoin Cash節(jié)點)通信,接收區(qū)塊及交易消息扛吞;當從網(wǎng)絡中收到一個新區(qū)塊時:進行如下操作

  • 先使用Bitcoin Cash協(xié)議檢測該區(qū)塊及塊中的所有交易呻惕,符合協(xié)議規(guī)則,就繼續(xù)向下執(zhí)行滥比,否則亚脆,丟棄該區(qū)塊;
  • 接著使用Wormhole協(xié)議檢測該區(qū)塊中的每個交易盲泛,使用符合Wormhole規(guī)則的交易來構建節(jié)點中的Wormhole數(shù)據(jù)集濒持;
  • 當區(qū)塊中的所有交易處理完畢后键耕,會對當前節(jié)點的Wormhole數(shù)據(jù)集做鏡像,并寫入磁盤文件柑营。

Wormhole交易

Wormhole交易本質上來說一種特殊的Bitcoin Cash交易屈雄,利用了Bitcoin Cash腳本中一個特殊的操作碼OP_RETURN,將Wormhole協(xié)議附加在該操作碼后面官套。

Wormhole交易與Bitcoin Cash交易具有如下關系

  • Wormhole交易是Bitcoin Cash交易的子集

Wormhole交易在塊鏈中具有兩種狀態(tài)酒奶,并且處于這兩種狀態(tài)的交易都是正確的Bitcoin Cash交易。

  • 有效:Wormhole交易滿足該交易類型所需的條件奶赔;
  • 無效:Wormhole交易不滿足該交易類型所需的條件惋嚎;
  • Wormhole交易類型所需的條件見:Wormhole-Spec

基于上述前提:只要是正確的Bitcoin Cash交易,Wormhole節(jié)點就會接收站刑,并打包驗證另伍,因此區(qū)塊鏈上會存在狀態(tài)失敗的Wormhole交易。

示例:當創(chuàng)建了一筆Wormhole交易绞旅,處理流程如下:

[圖片上傳失敗...(image-635b7a-1534417741420)]

Wormhole賬戶與Bitcoin Cash地址

Wormhole協(xié)議采用的是賬戶模型摆尝,每個Bitcoin Cash地址是一個賬戶,每個賬戶可以含有多種類型的Token玻靡。

WHC基礎貨幣

Wormhole系統(tǒng)創(chuàng)建了一種基礎貨幣WHC结榄,為未來智能合約Gas收費,鏈上去中心化交易所囤捻,以及創(chuàng)建各種Token提供交易媒介臼朗。

系統(tǒng)中WHC的來源是通過燃燒BCH生成;通過構建一筆燃燒交易蝎土,獲取相應金額的WHC视哑。

燃燒交易的要求如下:

  • 第一個交易輸出(索引為0):必須為燃燒輸出,即向燃燒地址轉BCH誊涯,金額必須 >= 1 BCH 挡毅。
  • 第二個交易輸出(索引為1):必須為Wormhole交易的載荷數(shù)據(jù),標識該交易為燃燒BCH獲取WHC類型的交易暴构。
  • 注意:
    • 直接向燃燒地址地址轉賬是不會生成WHC跪呈,會造成轉賬的BCH丟失;
    • 向燃燒地址轉賬的BCH金額 < 1 BCH 時取逾,也不會生成WHC耗绿,會造成轉賬的BCH丟失;

兌換比例如下:

  • 1 BCH = 100 WHC; 1 WHC = 100,000,000 C ;

燃燒地址:

  • 主網(wǎng):bitcoincash:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu08dsyxz98whc
  • 測試網(wǎng):bchtest:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqdmwgvnjkt8whc
  • 回歸測試網(wǎng):bchreg:pqqqqqqqqqqqqqqqqqqqqqqqqqqqqp0kvc457r8whc

WHC的成熟度:在創(chuàng)建燃燒交易后砾隅,相應的WHC不會立即達到發(fā)送者的賬戶误阻,需要經(jīng)過一定的確認時間(成熟度),WHC才會到達發(fā)送者的賬戶。

燃燒成熟度:

  • 主網(wǎng):在1000個區(qū)塊確認后究反,相應的WHC會到達發(fā)送者的賬戶寻定;在隨后的區(qū)塊中,允許對這筆到賬的WHC進行花費或轉賬等精耐。
    • 示例:在區(qū)塊高度500時狼速,確認了1筆有效的燃燒交易(tx1),此時燃燒成熟度為1卦停;在區(qū)塊高度1499時唐含,該筆燃燒交易(tx1)被確認了1000次,此時燃燒成熟度為1000沫浆,WHC到達發(fā)送者的賬戶。在區(qū)塊高度1499后滚秩,允許對這筆燃燒得到的WHC進行花費专执。
  • 測試網(wǎng):在3個區(qū)塊確認后,相應的WHC會到達發(fā)送者賬戶郁油。
  • 回歸測試網(wǎng):在1個區(qū)塊確認后本股,相應的WHC會到達發(fā)送者賬戶。

Wormhole節(jié)點處理區(qū)塊的流程

在Wormhole的節(jié)點中桐腌,每個接收的新區(qū)塊需要被鏈接到主鏈拄显,此時會有兩種情況出現(xiàn);

  • 將接收的區(qū)塊追加到當前主鏈的尾部案站;
    • 當節(jié)點接收新區(qū)塊后(未發(fā)生鏈重組)躬审,先對該區(qū)塊中的所有交易進行Bitcoin Cash協(xié)議的檢查,不符合Bitcoin Cash協(xié)議規(guī)則的區(qū)塊會被丟棄蟆盐;符合Bitcoin Cash協(xié)議規(guī)則的區(qū)塊會進行Wormhole協(xié)議的檢查承边,在這步,遍歷區(qū)塊中所有的交易石挂,找到符合Wormhole規(guī)則的交易并進行驗證博助,更新Wormhole節(jié)點的Wormhole數(shù)據(jù)記錄,當區(qū)塊中的所有交易都處理完畢后痹愚,會將當前系統(tǒng)中的Wormhole數(shù)據(jù)寫入磁盤文件富岳,作為當前區(qū)塊高度的鏡像。
  • 接收新塊后拯腮,發(fā)生塊鏈重組窖式;
    • 當節(jié)點處于鏈重組狀態(tài)時,Wormhole節(jié)點會先刪除內存中重組區(qū)塊高度后的所有數(shù)據(jù)疾瓮,然后加載分叉點區(qū)塊的磁盤鏡像文件脖镀,如果加載成功,則從分叉點重新掃描新鏈的區(qū)塊,構建Wormhole數(shù)據(jù)集蜒灰,每個區(qū)塊處理完后弦蹂,將當前系統(tǒng)的狀態(tài)寫入磁盤,作為當前區(qū)塊高度的鏡像强窖;如果加載鏡像文件失敗凸椿,Wormhole系統(tǒng)刪除內存中所有的Wormhole數(shù)據(jù)集,然后從部署該功能的區(qū)塊高度開始翅溺,重新掃描主鏈上的所有區(qū)塊數(shù)據(jù)脑漫,構建Wormhole數(shù)據(jù)集。

Wormhole的安全模型

Wormhole的安全有兩層保護咙崎。

第一層是Bitcoin Cash的交易安全优幸,Bitcoin Cash采用POW的挖礦算法作為去中心化的時間戳服務器,該算法已經(jīng)穩(wěn)定運行將近10年褪猛,UTXO模型有以下的一些好處:

  • UTXO無需維護余額
  • UTXO是獨立的數(shù)據(jù)記錄單位网杆,可以提升驗證交易的速度
  • UTXO模型無需關心事務問題,只關心鎖定腳本和解鎖腳本
  • UTXO在處理交易的時候具有很高的性能

Wormhole協(xié)議復用了整個Bitcoin Cash中UTXO的安全模型伊滋,使用了Bitcoin Cash的去中心化時間戳服務器模型碳却。

第二層保護是運行Wormhole協(xié)議的節(jié)點,不符合Wormhole協(xié)議的數(shù)據(jù)不會被Wormhole協(xié)議的節(jié)點解析笑旺,每個節(jié)點都有能力通過重新解析交易數(shù)據(jù)昼浦,計算出Wormhole的最近的合法最終狀態(tài)。

未來方向

Wormhole 路線圖 : https://github.com/copernet/spec/blob/master/whcwhitepaper.md#wormhole路線圖

結論

智能合約的缺失一直是基于UTXO模型的公鏈的一大弱點筒主,Wormhole協(xié)議可以在完全復用UTXO的安全可靠等特性的情況下关噪,增加了賬戶模型,來實現(xiàn)智能合約乌妙,將會給Bitcoin Cash帶來更多的可能性色洞。

本文由 Wormhole團隊 姚永芯 寫作,轉載無需授權冠胯。

?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末火诸,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子荠察,更是在濱河造成了極大的恐慌置蜀,老刑警劉巖,帶你破解...
    沈念sama閱讀 212,332評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件悉盆,死亡現(xiàn)場離奇詭異盯荤,居然都是意外死亡,警方通過查閱死者的電腦和手機焕盟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,508評論 3 385
  • 文/潘曉璐 我一進店門秋秤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事灼卢∩馨ィ” “怎么了?”我有些...
    開封第一講書人閱讀 157,812評論 0 348
  • 文/不壞的土叔 我叫張陵鞋真,是天一觀的道長崇堰。 經(jīng)常有香客問我,道長涩咖,這世上最難降的妖魔是什么海诲? 我笑而不...
    開封第一講書人閱讀 56,607評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮檩互,結果婚禮上特幔,老公的妹妹穿的比我還像新娘。我一直安慰自己闸昨,他們只是感情好敬辣,可當我...
    茶點故事閱讀 65,728評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著零院,像睡著了一般。 火紅的嫁衣襯著肌膚如雪村刨。 梳的紋絲不亂的頭發(fā)上告抄,一...
    開封第一講書人閱讀 49,919評論 1 290
  • 那天,我揣著相機與錄音嵌牺,去河邊找鬼打洼。 笑死,一個胖子當著我的面吹牛逆粹,可吹牛的內容都是我干的募疮。 我是一名探鬼主播,決...
    沈念sama閱讀 39,071評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼僻弹,長吁一口氣:“原來是場噩夢啊……” “哼阿浓!你這毒婦竟也來了?” 一聲冷哼從身側響起蹋绽,我...
    開封第一講書人閱讀 37,802評論 0 268
  • 序言:老撾萬榮一對情侶失蹤芭毙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后卸耘,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體退敦,經(jīng)...
    沈念sama閱讀 44,256評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,576評論 2 327
  • 正文 我和宋清朗相戀三年蚣抗,在試婚紗的時候發(fā)現(xiàn)自己被綠了侈百。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,712評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖钝域,靈堂內的尸體忽然破棺而出讽坏,到底是詐尸還是另有隱情,我是刑警寧澤网梢,帶...
    沈念sama閱讀 34,389評論 4 332
  • 正文 年R本政府宣布震缭,位于F島的核電站,受9級特大地震影響战虏,放射性物質發(fā)生泄漏拣宰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,032評論 3 316
  • 文/蒙蒙 一烦感、第九天 我趴在偏房一處隱蔽的房頂上張望巡社。 院中可真熱鬧,春花似錦手趣、人聲如沸晌该。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,798評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽朝群。三九已至,卻和暖如春中符,著一層夾襖步出監(jiān)牢的瞬間姜胖,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,026評論 1 266
  • 我被黑心中介騙來泰國打工淀散, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留右莱,地道東北人。 一個月前我還...
    沈念sama閱讀 46,473評論 2 360
  • 正文 我出身青樓档插,卻偏偏與公主長得像慢蜓,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子郭膛,可洞房花燭夜當晚...
    茶點故事閱讀 43,606評論 2 350

推薦閱讀更多精彩內容