Wormhole: 一種基于Bitcoin Cash的智能合約實現(xiàn)方案

作者:姜家志,姜和平伐憾,溫隆

摘要

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)絡(luò)上廣受歡迎的ERC20協(xié)議所具備的那些功能。

凡是需要更改共識才能實現(xiàn)的通證發(fā)行技術(shù)提議慧耍,都不可避免地會遇到問題身辨。首先是技術(shù)上的風(fēng)險,其次是對這種風(fēng)險的顧慮常常引發(fā)技術(shù)開發(fā)社區(qū)甚至整個經(jīng)濟生態(tài)都陷入巨大的爭議蜂绎。爭議中的反對方栅表,其顧慮很可能也確實是真實的。不論這樣的爭議中誰對誰錯师枣,結(jié)果常常是有爭議的提議無法被實現(xiàn)怪瓶。這樣的困難可以被視為一種保險機制,讓具有的風(fēng)險更改很難被添加到協(xié)議之中践美,保證協(xié)議的穩(wěn)健與安全洗贰;但是,協(xié)議的創(chuàng)新就面臨了著巨大的困難陨倡。導(dǎo)致了Bitcoin Cash社區(qū)獨立的區(qū)塊擴容大爭論敛滋,曠日持久而沒有共識的產(chǎn)生,就是一個更加令人不能回避的社會心理學(xué)證據(jù)兴革。

快速活躍的創(chuàng)新绎晃,需要一種無需許可的環(huán)境蜜唾。我們也一直在探索無許可創(chuàng)新的方法,在不需要改變共識的情況下庶艾,在Bitcoin Cash的區(qū)塊鏈上實現(xiàn)智能合約袁余。經(jīng)過研究,我們關(guān)注到了OmniLayer協(xié)議咱揍,它是一種利用OP_RETURN操作碼實現(xiàn)通證發(fā)行的方案颖榜。這個方案是廣受歡迎的泰達幣(USDT)日常發(fā)行和流通的技術(shù)基礎(chǔ)。Omni Layer是運行在Bitcoin的區(qū)塊鏈之上的煤裙。Omni Layer協(xié)議采用了MIT開源許可證掩完。我們Fork了Omni Layer的協(xié)議,在Bitcoin Cash的區(qū)塊鏈上實現(xiàn)了發(fā)行通證的技術(shù)方案硼砰。我們將這種技術(shù)方案命名為Wormhole協(xié)議且蓬,協(xié)議中的原生代幣命名為Wormhole Cash。

術(shù)語

  • OP_RETURN Bitcoin Cash中的操作碼之一夺刑,包含這一指令的交易輸出是不可花費(Unspendable)的缅疟,節(jié)點可以安全地將其移出UTXO集合,從而不會影響UTXO集合的總體積遍愿。在2018年5月最新的BCH協(xié)議升級之后存淫,可以用來存儲220字節(jié)的元數(shù)據(jù)。
  • Wormhole協(xié)議 基于Omni Layer協(xié)議實現(xiàn)的沼填,在Bitcoin Cash區(qū)塊鏈上實現(xiàn)智能合約的協(xié)議規(guī)范
  • wormhole cash Wormhole協(xié)議中使用的基礎(chǔ)貨幣桅咆,簡寫"WHC"。

原理

Wormhole Cash是基于Bitcoin Cash區(qū)塊鏈實現(xiàn)的坞笙,依附于Bitcoin Cash區(qū)塊鏈岩饼,在不改變現(xiàn)有BCH共識規(guī)則的情況下,使得BCH區(qū)塊鏈實現(xiàn)通證的發(fā)行薛夜、轉(zhuǎn)移和燃燒等基本功能籍茧。

交易的元數(shù)據(jù)信息被寫在OP_RETURN上√堇剑基于Wormhole協(xié)議的通證寞冯,其生成、轉(zhuǎn)移以及燃燒都需要通過Bitcoin Cash交易完成晚伙。識別OP_RETURN里的數(shù)據(jù)才能夠完成對于Token的發(fā)行吮龄,轉(zhuǎn)移和燃燒。

Wormhole協(xié)議復(fù)用了Bitcoin Cash的交易轉(zhuǎn)賬系統(tǒng)咆疗,它需要識別Bitcoin Cash區(qū)塊鏈上的交易漓帚、地址以及OP_RETURN等數(shù)據(jù)。

Wormhole協(xié)議是Bitcoin Cash網(wǎng)絡(luò)共識的一個超集午磁,它識別的元數(shù)據(jù)在Bitcoin Cash區(qū)塊鏈的共識協(xié)議中只是OP_RETURN數(shù)據(jù)尝抖,而Bitcoin Cash的共識規(guī)則不用理解OP_RETURN內(nèi)的數(shù)據(jù)毡们。

實現(xiàn)

Wormhole協(xié)議協(xié)議的實現(xiàn),是通過集成到Bitcoind中實現(xiàn)的牵署。但是Bitcoin Cash本身的共識規(guī)則卻不需要做出改變漏隐,集成了Wormhole協(xié)議的Bitcoind客戶端,被稱之為Wormhole客戶端奴迅。運行Wormhole客戶端的節(jié)點就能夠識別出OP_RETURNWormhole協(xié)議

安全和共識規(guī)則

Wormhole Cash的安全有兩層保護挺据。

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

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

Wormhole協(xié)議復(fù)用了整個Bitcoin Cash中UTXO的安全模型婉称,使用了Bitcoin Cash的去中心化時間戳服務(wù)器模型块仆。

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

Wormhole Cash(WHC)

Wormhole Cash(WHC)是Wormhole協(xié)議中的基礎(chǔ)貨幣俗壹,之所以引入WHC是因為:在Wormhole協(xié)議中實現(xiàn)智能合約的時候Wormhole協(xié)議層是不能控制Bitcoin Cash的科汗,這樣就無法在Wormhole協(xié)議層中實現(xiàn)事務(wù)。而且在實現(xiàn)智能合約的時候需要引入Gas作為針對網(wǎng)絡(luò)濫用的防護措施绷雏,也需要Wormhole協(xié)議存在一種原生基礎(chǔ)貨幣头滔。

WHC的生成

WHC通過燃燒生成(Proof-of-Burn)的機制生成出來的,持有BCH的用戶可以在Wormhole協(xié)議正式上線之后涎显,給bitcoincash:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu08dsyxz98whc 地址發(fā)送最低1個BCH來生成WHC且包含燃燒信息坤检。如果發(fā)送的BCH數(shù)量低于1BCH或者沒有包含燃燒信息,那么將不會有任何的WHC被生成期吓。這個燃燒生成的過程受制于BCH區(qū)塊鏈發(fā)生回滾的風(fēng)險早歇,出于安全考慮,協(xié)議約定需要在1,000個確認之后膘婶,才可以動用生成的WHC缺前。燃燒生成的兌換比例是,每1BCH的燃燒生成100WHC悬襟。

根據(jù)已知的密碼學(xué)理論和工程實踐經(jīng)驗衅码,bitcoincash:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu08dsyxz98whc地址是沒有人擁有私鑰的。在我們開始有關(guān)Wormhole協(xié)議的開發(fā)工作之前脊岳,也沒有人在Bitcoin Cash區(qū)塊鏈的歷史中使用過該地址逝段。為了防范理論上存在的極端情況——未來有一種我們目前未知的方法和理論構(gòu)建出了這個地址的私鑰——BCH協(xié)議可以考慮禁止這個地址的幣被轉(zhuǎn)出用于花費垛玻。當(dāng)然,這并不屬于本文和本文作者需要關(guān)注的事項范圍奶躯。

WHC發(fā)行后帚桩,如果WHC形成了一個流通市場,那么有需要WHC的用戶嘹黔,也可以從市場上購買到WHC账嚎。

為什么沒有考慮實現(xiàn)與BCH的雙向錨定呢?這個問題自從側(cè)鏈理論被提出后儡蔓,無數(shù)的工程師醉心于雙向錨定問題的研究郭蕉。但令人遺憾的是,目前并沒有可行的雙向錨定方法喂江, 可以做到即安全又去中心化召锈,還能夠有效應(yīng)對區(qū)塊鏈不可避免的回滾風(fēng)險。伊隆·馬斯克(Elon Musk)在討論有關(guān)星際旅行時就說获询,他移民去往火星涨岁,就打算待在那里不回來了。Wormhole協(xié)議實現(xiàn)了智能合約吉嚣,具有與Bitcoin Cash較為不同的編程語言梢薪,未來還有快速演進的開發(fā)計劃。這種燃燒生成的發(fā)行方式瓦戚,與星際旅行的單程票非常相似沮尿。每一聰(satoshi)被燃燒的BCH,都需要做好單程星際航行的準(zhǔn)備较解,前往Wormhole定居畜疾,不再回來。

燃燒生成WHC的過程是不設(shè)截止時間點的印衔。

WHC的使用范圍

手續(xù)費常常是為了防止對網(wǎng)絡(luò)的濫用啡捶,或者網(wǎng)絡(luò)的使用超過了當(dāng)前技術(shù)和區(qū)塊鏈基礎(chǔ)設(shè)施允許的性能瓶頸。Wormhole協(xié)議中奸焙,智能合約的運行瞎暑,依靠Bitcoin Cash交易實現(xiàn)。Bitcoin Cash交易本身需要支付一定的手續(xù)費与帆,已經(jīng)可以阻遏DoS攻擊了赌,因此我們在早期運行的Wormhole協(xié)議中,轉(zhuǎn)賬不需要支付WHC做為手續(xù)費玄糟。

需要支付WHC作為手續(xù)費的情況:

  1. 新創(chuàng)建Token需要收1WHC的手續(xù)費勿她。手續(xù)費會被直接燃燒掉,WHC的總供給減少阵翎。創(chuàng)建Token需要消耗計算資源逢并,為了防止Wormhole節(jié)點被惡意攻擊之剧,才收取WHC手續(xù)費
  2. 大量地址轉(zhuǎn)賬。例如給所有擁有某種Token的地址都發(fā)送Token砍聊,這樣的操作需要遍歷所有的地址背稼,因此需要支付WHC做為手續(xù)費
  3. 智能合約的Gas
  4. 其他事務(wù)性操作,或者其他被認定為具有DoS風(fēng)險的操作類型玻蝌。

Token的發(fā)行

支付了正常的BCH交易手續(xù)費和WHC創(chuàng)建費用之后蟹肘,任何人都可以自由的在系統(tǒng)上創(chuàng)建Token。

目前俯树,WHC協(xié)議支持3種類型的Token創(chuàng)建:

  1. 固定Token

    • 創(chuàng)建后疆前,創(chuàng)建者立即自動擁有所有Token
    • 不能增發(fā),不能燃燒
    • 不能發(fā)起眾籌
  2. 可眾籌Token

    • 創(chuàng)建后聘萨,自動進入眾籌
    • 創(chuàng)建后,創(chuàng)建者不擁有所有Token
    • 眾籌結(jié)束后童太,未眾籌完的Token自動轉(zhuǎn)到創(chuàng)建者地址
    • 不能增發(fā)米辐,不能燃燒
  3. 可管理Token

    • 創(chuàng)建時,Token數(shù)量為0
    • 不能眾籌
    • 可以增發(fā)书释,可以燃燒

Token的轉(zhuǎn)移

創(chuàng)建后的Token和Wormhole Cash都可以進行轉(zhuǎn)賬翘贮,1對1轉(zhuǎn)賬除支付必要的BCH交易手續(xù)費外,不需要再支付任何費用,由BCH協(xié)議決定手續(xù)費多少爆惧。

1對多轉(zhuǎn)賬需除支付必要的BCH交易手續(xù)費外狸页,還需要支付一定的WHC手續(xù)費,以WHC計價和收取扯再。1對多轉(zhuǎn)賬主要在Token空投的場景下使用芍耘。收取的WHC手續(xù)費將會直接燃燒掉。

Token的燃燒

手動管理的Token支持直接燃燒熄阻,燃燒之后的Token在Wormhole協(xié)議中會顯示燃燒之后的總量

Wormhole路線圖

Wormhole協(xié)議的發(fā)展分為四個階段:Earth(初始)斋竞、Tropos(融合)、Ionize(電離)秃殉、Exophere(散逸)

Earth(初始)

Wormhole協(xié)議從Omni Layer協(xié)議分離坝初,并在BCH上實現(xiàn)智能合約的解決方案,首先聚焦于去中心化通證發(fā)行管理功能的實現(xiàn)钾军。

為了確保整個協(xié)議的安全鳄袍,并且可以盡快上線,我們在這個階段暫時不支持了Omni Layer協(xié)議中的去中心化交易功能吏恭。

Earth階段需要完成的工作:

  • Wormhole Core實現(xiàn):將Token功能移植到Bitcoin ABC 0.17.2版本上,后續(xù)會隨著Bitcoin ABC的更新而更新
  • 發(fā)布Wormhole協(xié)議白皮書

預(yù)計完成時間2018年8月

Tropos(融合)

需要完成的工作:

  • 基于Wormhole協(xié)議實現(xiàn)的去中心化交易所協(xié)議在經(jīng)過謹(jǐn)慎的測試之后重新上線
  • Wormhole的Android錢包參考實現(xiàn)
  • Wormhole的iOS錢包參考實現(xiàn)
  • Wormhole的PC端錢包參考實現(xiàn)

預(yù)計完成時間2018年11月

Ionize(電離)

需要完成的工作:

  • 在Wormhole協(xié)議中實現(xiàn)ERC721
  • 開發(fā)Wormhole多語言實現(xiàn)SDK拗小。為了方便開發(fā)者更加簡單的在Wormhole進行開發(fā),我們會提供解析Wormhole的多語言SDK砸泛。
  • Wormhole Cash的冷錢包解決方案

預(yù)計完成時間2019年1月

Exophere(散逸)

需要完成的工作:

  • 無需許可的智能合約十籍。Omni Layer本身不是一種無許可創(chuàng)新的機制蛆封。任何新型的合約類型,都必須被合并到程序代碼之中才能夠被識別勾栗。我們會在Exophere階段惨篱,實現(xiàn)無許可的智能合約平臺。也就是說围俘,在遵守維護協(xié)議安全的必要規(guī)則后砸讳,任何開發(fā)者都可以發(fā)布智能合約到網(wǎng)絡(luò)中運行。
  • 實現(xiàn)Plasma協(xié)議界牡,實現(xiàn)擴容簿寂。我們在內(nèi)部研究中,可能已經(jīng)發(fā)現(xiàn)了一種有效的Plasma實現(xiàn)方法宿亡,我們在進一步研究之后將可能將其實施常遂。與此同時,Vitalik也在Twitter上宣布他們發(fā)現(xiàn)了一種Plasma的實現(xiàn)方法挽荠,我們屆時也可以考慮采用Vitalik即將發(fā)布的實現(xiàn)方法克胳。
  • 新一代的智能合約虛擬機。Solidity作為將智能合約這一古老概念變?yōu)閷崿F(xiàn)的編程語言圈匆,受到了計算機專家的廣泛審視漠另。近些年也有更好的想法被提出來。我們將考慮開發(fā)一些新型編程語言的虛擬機跃赚,讓最有效率笆搓、開發(fā)者基礎(chǔ)最廣泛的計算機語言被用于構(gòu)建DApps。

預(yù)計完成時間2019年6月

總結(jié)

首先要感謝Omni Layer纬傲,他們在USDT上的廣泛應(yīng)用满败,讓我們看到了基于Bitcoin Cash可以做到更多的事情。Omni協(xié)議是一套非常完整的協(xié)議實現(xiàn)嘹锁,它完全利用了UTXO模型的特點葫录,在不更改共識和協(xié)議的情況實現(xiàn)Token的管理。在我們開發(fā)的過程Omni團隊也給予了很多的幫助领猾。同時米同,Omni Layer也秉承了開源運動的精神,采用了MIT許可證摔竿,是我們可以實現(xiàn)無許可創(chuàng)新的重要基礎(chǔ)面粮。
智能合約的缺失一直是基于UTXO模型的公鏈的一大弱點,Wormhole協(xié)議可以在完全復(fù)用UTXO的安全可靠等特性的情況下继低,也可以實現(xiàn)智能合約熬苍,Wormhole協(xié)議將會給Bitcoin Cash帶來更多的可能性。

文檔歷史

  1. Version 0.1 WormholeCash第一期完成的內(nèi)容 2018-05-23
  2. Version 0.2 WormholeCash路線圖 2018-06-20
  3. Version 0.3 WormholeCash alpha版本 2018-07-15

參考文獻

[1] Satoshi Nakamoto. Bitcoin: A Peer-to-peer Electronic Cash System.
https://bitcoin.org/bitcoin.pdf,Oct 2008.
[2] OP_RETURN https://en.bitcoin.it/wiki/OP_RETURN
[3] OmniLayer https://github.com/OmniLayer/spec
[4] ERC20 Token Standard https://theethereum.wiki/w/index.php/ERC20_Token_Standard
[5] The Colored Coins Protocol https://github.com/Colored-Coins/Colored-Coins-Protocol-Specification/wiki
[6] Andrew Stone : Enable representative tokens via OP_GROUP on Bitcoin Cash https://github.com/BitcoinUnlimited/BUIP/blob/master/077.mediawiki
[7] ERC-721 http://erc721.org/

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市柴底,隨后出現(xiàn)的幾起案子婿脸,更是在濱河造成了極大的恐慌,老刑警劉巖柄驻,帶你破解...
    沈念sama閱讀 211,817評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件狐树,死亡現(xiàn)場離奇詭異,居然都是意外死亡鸿脓,警方通過查閱死者的電腦和手機抑钟,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,329評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來野哭,“玉大人在塔,你說我怎么就攤上這事〔η” “怎么了蛔溃?”我有些...
    開封第一講書人閱讀 157,354評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長篱蝇。 經(jīng)常有香客問我城榛,道長,這世上最難降的妖魔是什么态兴? 我笑而不...
    開封第一講書人閱讀 56,498評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮疟位,結(jié)果婚禮上瞻润,老公的妹妹穿的比我還像新娘。我一直安慰自己甜刻,他們只是感情好绍撞,可當(dāng)我...
    茶點故事閱讀 65,600評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著得院,像睡著了一般傻铣。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上祥绞,一...
    開封第一講書人閱讀 49,829評論 1 290
  • 那天非洲,我揣著相機與錄音,去河邊找鬼蜕径。 笑死两踏,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的兜喻。 我是一名探鬼主播梦染,決...
    沈念sama閱讀 38,979評論 3 408
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了帕识?” 一聲冷哼從身側(cè)響起泛粹,我...
    開封第一講書人閱讀 37,722評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎肮疗,沒想到半個月后晶姊,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,189評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡族吻,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,519評論 2 327
  • 正文 我和宋清朗相戀三年帽借,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片超歌。...
    茶點故事閱讀 38,654評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡砍艾,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出巍举,到底是詐尸還是另有隱情脆荷,我是刑警寧澤,帶...
    沈念sama閱讀 34,329評論 4 330
  • 正文 年R本政府宣布懊悯,位于F島的核電站蜓谋,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏炭分。R本人自食惡果不足惜桃焕,卻給世界環(huán)境...
    茶點故事閱讀 39,940評論 3 313
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望捧毛。 院中可真熱鬧观堂,春花似錦、人聲如沸呀忧。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,762評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽而账。三九已至胰坟,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間泞辐,已是汗流浹背笔横。 一陣腳步聲響...
    開封第一講書人閱讀 31,993評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留咐吼,地道東北人狠裹。 一個月前我還...
    沈念sama閱讀 46,382評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像汽烦,于是被迫代替她去往敵國和親涛菠。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,543評論 2 349

推薦閱讀更多精彩內(nèi)容