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ā)行的方案。這個方案是廣受歡迎的泰達(dá)幣(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上?;赪ormhole協(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個確認(rèn)之后,才可以動用生成的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ù)性操作,或者其他被認(rèn)定為具有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

參考文獻(xiàn)

[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)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容