當前位置:
首頁 > 科技 > Wormhole:一種基於Bitcoin Cash的智能合約實現方案

Wormhole:一種基於Bitcoin Cash的智能合約實現方案

Bitcoin Cash(BCH)在區塊高度478,558上產生,一直致力於為世界帶來一種可靠的電子現金,履行最初的比特幣作為「點對點數字現金」的承諾。其具有全球無縫流通、無許可(Permissionless)創新等特點。在Bitcoin Cash如何實現發行通證(Token),眾多的開發者已經有過不少的研究,比如染色幣的方案Colored-Coins,之後Andrew Stone 提出了Enable representative tokens via OP_GROUP on Bitcoin Cash,提議增加OP_GROUP的操作碼來實現發Token的方案。OP_GROUP方案需要修改Bitcoin Cash的共識規則才可以實現。更具體地說,類似於在Ethereum網路上廣受歡迎的ERC20協議所具備的那些功能。

凡是需要更改共識才能實現的通證發行技術提議,都不可避免地會遇到問題。首先是技術上的風險,其次是對這種風險的顧慮常常引發技術開發社區甚至整個經濟生態都陷入巨大的爭議。爭議中的反對方,其顧慮很可能也確實是真實的。不論這樣的爭議中誰對誰錯,結果常常是有爭議的提議無法被實現。這樣的困難可以被視為一種保險機制,讓具有的風險更改很難被添加到協議之中,保證協議的穩健與安全。但是,協議的創新就面臨著巨大的困難。導致了Bitcoin Cash社區獨立的區塊擴容大爭論,曠日持久而沒有共識的產生,就是一個更加令人不能迴避的社會心理學證據。

快速活躍的創新,需要一種無需許可的環境。我們也一直在探索無許可創新的方法,在不需要改變共識的情況下,在Bitcoin Cash的區塊鏈上實現智能合約。經過研究,我們關注到了OmniLayer協議,它是一種利用OP_RETURN操作碼實現通證發行的方案。這個方案是廣受歡迎的泰達幣(USDT)日常發行和流通的技術基礎。Omni Layer是運行在Bitcoin的區塊鏈之上的。Omni Layer協議採用了MIT開源許可證。我們Fork了Omni Layer的協議,在Bitcoin Cash的區塊鏈上實現了發行通證的技術方案。我們將這種技術方案命名為Wormhole協議,協議中的原生代幣命名為Wormhole Cash。

術語

? OP_RETURN Bitcoin Cash中的操作碼之一,包含這一指令的交易輸出是不可花費(Unspendable)的,節點可以安全地將其移出UTXO集合,從而不會影響UTXO集合的總體積。在2018年5月最新的BCH協議升級之後,可以用來存儲220位元組的元數據。

? Wormhole協議 基於Omni Layer協議實現的,在Bitcoin Cash區塊鏈上實現智能合約的協議規範。

? wormhole cash Wormhole協議中使用的基礎貨幣,簡寫"WHC"。

原理

Wormhole Cash是基於Bitcoin Cash區塊鏈實現的,依附於Bitcoin Cash區塊鏈,在不改變現有BCH共識規則的情況下,使得BCH區塊鏈實現通證的發行、轉移和燃燒等基本功能。

交易的元數據信息被寫在OP_RETURN上。基於Wormhole協議的通證,其生成、轉移以及燃燒都需要通過Bitcoin Cash交易完成。識別OP_RETURN里的數據才能夠完成對於Token的發行,轉移和燃燒。

Wormhole協議復用了Bitcoin Cash的交易轉賬系統,它需要識別Bitcoin Cash區塊鏈上的交易、地址以及OP_RETURN等數據。

Wormhole協議是Bitcoin Cash網路共識的一個超集,它識別的元數據在Bitcoin Cash區塊鏈的共識協議中只是OP_RETURN數據,而Bitcoin Cash的共識規則不用理解OP_RETURN內的數據。

實現

Wormhole協議協議的實現,是通過集成到Bitcoind中實現的。但是Bitcoin Cash本身的共識規則卻不需要做出改變,集成了Wormhole協議的Bitcoind客戶端,被稱之為Wormhole客戶端。運行Wormhole客戶端的節點就能夠識別出OP_RETURNWormhole協議。

安全和共識規則

Wormhole Cash的安全有兩層保護。

第一層是Bitcoin Cash的交易安全,Bitcoin Cash採用POW的挖礦演算法作為去中心化的時間戳伺服器,該演算法已經穩定運行將近10年,UTXO模型有以下的一些好處:

? UTXO無需維護餘額

? UTXO是獨立的數據記錄單位,可以提升驗證交易的速度

? UTXO模型無需關心事務問題,只關係鎖定腳本和解鎖腳本

? UTXO在處理交易的時候具有很高的性能

Wormhole協議復用了整個Bitcoin Cash中UTXO的安全模型,使用了Bitcoin Cash的去中心化時間戳伺服器模型。

第二層保護是運行Wormhole協議的節點,不符合Wormhole協議的數據不會被Wormhole協議的節點解析,每個節點都有能力通過重新解析交易數據,計算出Wormhole Cash的最近的合法最終狀態。

Wormhole Cash(WHC)

Wormhole Cash(WHC)是Wormhole協議中的基礎貨幣,只所以引入WHC是因為:在Wormhole協議中實現智能合約的時候Wormhole協議層是不能控制Bitcoin Cash的,這樣就無法在Wormhole協議層中實現事務。而且在實現智能合約的時候需要引入Gas作為針對網路濫用的防護措施,也需要Wormhole協議存在一種原生基礎貨幣。

WHC的生成

WHC通過燃燒生成(Proof-of-Burn)的機制生成出來的,持有BCH的用戶可以在Wormhole協議正式上線之後,給bitcoincash:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu08dsyxz98whc 地址發送最低1個BCH來生成WHC。如果發送的BCH數量低於1BCH,那麼將不會有任何的WHC被生成。這個燃燒生成的過程受制於BCH區塊鏈發生回滾的風險,出於安全考慮,協議約定需要在1,000個確認之後,才可以動用生成的WHC。燃燒生成的兌換比例是,每1BCH的燃燒生成100WHC。

根據已知的密碼學理論和工程實踐經驗,bitcoincash:qqqqqqqqqqqqqqqqqqqqqqqqqqqqqu08dsyxz98whc地址是沒有人擁有私鑰的。在我們開始有關Wormhole協議的開發工作之前,也沒有人在Bitcoin Cash區塊鏈的歷史中使用過該地址。為了防範理論上存在的極端情況——未來有一種我們目前未知的方法和理論構建出了這個地址的私鑰——BCH協議可以考慮禁止這個地址的幣被轉出用於花費。當然,這並不屬於本文和本文作者需要關注的事項範圍。

WHC發行後,如果WHC形成了一個流通市場,那麼有需要WHC的用戶,也可以從市場上購買到WHC。

為什麼沒有考慮實現與BCH的雙向錨定呢?這個問題自從側鏈理論被提出後,無數的工程師醉心於雙向錨定問題的研究。但令人遺憾的是,目前並沒有可行的雙向錨定方法, 可以做到即安全又去中心化,還能夠有效應對區塊鏈不可避免的回滾風險。伊隆·馬斯克(Elon Musk)在討論有關星際旅行時就說,他移民去往火星,就打算待在那裡不回來了。Wormhole協議實現了智能合約,具有與Bitcoin Cash較為不同的編程語言,未來還有快速演進的開發計劃。這種燃燒生成的發行方式,與星際旅行的單程票非常相似。每一聰(satoshi)被燃燒的BCH,都需要做好單程星際航行的準備,前往Wormhole定居,不再回來。

燃燒生成WHC的過程是不設截止時間點的。

WHC的使用範圍

手續費常常是為了防止對網路的濫用,或者網路的使用超過了當前技術和區塊鏈基礎設施允許的性能瓶頸。Wormhole協議中,智能合約的運行,依靠Bitcoin Cash交易實現。Bitcoin Cash交易本身需要支付一定的手續費,已經可以阻遏DoS攻擊,因此我們在早期運行的Wormhole協議中,轉賬不需要支付WHC做為手續費。

需要支付WHC作為手續費的情況:

1. 新創建Token需要收1WHC的手續費。手續費會被直接燃燒掉,WHC的總供給減少。創建Token需要消耗計算資源,為了防止Wormhole節點被惡意攻擊,才收取WHC手續費

2. 大量地址轉賬。例如給所有擁有某種Token的地址都發送Token,這樣的操作需要遍歷所有的地址,因此需要支付WHC做為手續費

3. 智能合約的Gas

4. 其他事務性操作,或者其他被認定為具有DoS風險的操作類型。

Token的發行

支付了正常的BCH交易手續費和WHC創建費用之後,任何人都可以自由的在系統上創建Token。

目前,WHC協議支持3種類型的Token創建:

1.固定Token

? 創建後,創建者立即自動擁有所有Token

? 不能增發,不能燃燒

? 不能發起眾籌

2.可眾籌Token

? 創建後,自動進入眾籌

? 創建後,創建者不擁有所有Token

? 眾籌結束後,未眾籌完的Token自動轉到創建者地址

? 不能增發,不能燃燒

3. 可管理Token

? 創建時,Token數量為0

? 不能眾籌

? 可以增發,可以燃燒

Token的轉移

創建後的Token和Wormhole Cash都可以進行轉賬,1對1轉賬除支付必要的BCH交易手續費外,不需要再支付任何費用,由BCH協議決定手續費多少。

1對多轉賬需除支付必要的BCH交易手續費外,還需要支付一定的WHC手續費,以WHC計價和收取。1對多轉賬主要在Token空投的場景下使用。收取的WHC手續費將會直接燃燒掉。

Token的燃燒

手動管理的Token支持直接燃燒,燃燒之後的Token在Wormhole協議中會顯示燃燒之後的總量。

Wormhole路線圖

Wormhole協議的發展分為四個階段:Earth(初始)、Tropos(融合)、Ionize(電離)、Exophere(散逸)

Earth(初始)

Wormhole協議從Omni Layer協議分離,並在BCH上實現智能合約的解決方案,首先聚焦於去中心化通證發行管理功能的實現。

為了確保整個協議的安全,並且可以儘快上線,我們在這個階段暫時不支持了Omni Layer協議中的去中心化交易功能。

Earth階段需要完成的工作:

? Wormhole Core實現:將Token功能移植到Bitcoin ABC 0.17.2版本上,後續會隨著Bitcoin ABC的更新而更新

? 發布Wormhole協議白皮書

預計完成時間2018年8月

Tropos(融合)

需要完成的工作:

? 基於Wormhole協議實現的去中心化交易所協議在經過謹慎的測試之後重新上線

? Wormhole的Android錢包參考實現

? Wormhole的iOS錢包參考實現

? Wormhole的PC端錢包參考實現

預計完成時間2018年11月

Ionize(電離)

需要完成的工作:

? 在Wormhole協議中實現ERC721

? 開發Wormhole多語言實現SDK。為了方便開發者更加簡單的在Wormhole進行開發,我們會提供解析Wormhole的多語言SDK

? Wormhole Cash的冷錢包解決方案

預計完成時間2019年1月

Exophere(散逸)

需要完成的工作:

? 無需許可的智能合約。Omni Layer本身不是一種無許可創新的機制。任何新型的合約類型,都必須被合併到程序代碼之中才能夠被識別。我們會在Exophere階段,實現無許可的智能合約平台。也就是說,在遵守維護協議安全的必要規則後,任何開發者都可以發布智能合約到網路中運行。

? 實現Plasma協議,實現擴容。我們在內部研究中,可能已經發現了一種有效的Plasma實現方法,我們在進一步研究之後將可能將其實施。與此同時,Vitalik也在Twitter上宣布他們發現了一種Plasma的實現方法,我們屆時也可以考慮採用Vitalik即將發布的實現方法。

? 新一代的智能合約虛擬機。Solidity作為將智能合約這一古老概念變為實現的編程語言,受到了計算機專家的廣泛審視。近些年也有更好的想法被提出來。我們將考慮開發一些新型編程語言的虛擬機,讓最有效率、開發者基礎最廣泛的計算機語言被用於構建DApps。

預計完成時間2019年6月

總結

首先要感謝Omni Layer,他們在USDT上的廣泛應用,讓我們看到了基於Bitcoin Cash可以做到更多的事情。Omni協議是一套非常完整的協議實現,它完全利用了UTXO模型的特點,在不更改共識和協議的情況下實現Token的管理。在我們開發的過程中Omni團隊也給予了很多的幫助。同時,Omni Layer也秉承了開源運動的精神,採用了MIT許可證,是我們可以實現無許可創新的重要基礎。

智能合約的缺失一直是基於UTXO模型的公鏈的一大弱點,Wormhole協議可以在完全復用UTXO的安全可靠等特性的情況下,也可以實現智能合約,Wormhole協議將會給Bitcoin Cash帶來更多的可能性。

文檔歷史

1.Version 0.1 WormholeCash第一期完成的內容 2018-05-23

2.Version 0.2 WormholeCash路線圖 2018-06-20

3.Version 0.3 WormholeCash alpha版本 2018-07-15


喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 區塊鏈 的精彩文章:

別怕,BCH無懼攻擊
BFX.NU—全球首家推出交易挖礦的合約交易平台

TAG:區塊鏈 |