11月16日,波卡生態(tài)技術(shù)流項(xiàng)目ChainX即將發(fā)布全球首個(gè)比特幣智能合約平臺(tái)。這將帶來什么樣的改變?比特幣的智能合約可以做什么呢?
1、比特幣作為一種加密貨幣,為什么需要合約功能?簡單交易它不就可以嗎?
這是個(gè)好問題,其實(shí)我們可以來回顧一下比特幣的交易和普通轉(zhuǎn)賬交易有什么區(qū)別。
實(shí)際上比特幣的交易并不是A轉(zhuǎn)賬給B這一條記錄這么簡單,比如銀行,支付寶轉(zhuǎn)賬,就是A-》B的轉(zhuǎn)賬記錄。但是實(shí)際上比特幣在A和B之間的轉(zhuǎn)移,本質(zhì)上是達(dá)成了一個(gè)條件才轉(zhuǎn)移的。這個(gè)條件可以設(shè)置成多種多樣。稍微對比特幣技術(shù)有了解的人應(yīng)該知道,比特幣交易的構(gòu)成要由上一筆交易的txout和這筆交易的txin匹配后才是合法的,因此這里的txout中含有的可以相當(dāng)于是一個(gè)問題的謎面,而txin含有的就是這個(gè)問題的謎底。
只是大部分情況下txout中的謎面會(huì)設(shè)置成公鑰(或地址),而轉(zhuǎn)賬提供的txin的謎底是簽名。
顯然,這里的謎面和謎底可以設(shè)計(jì)成多種多樣,比如設(shè)計(jì)成一個(gè)問題的答案,或者某種特殊的條件,亦或者存在一定邏輯的代碼。
這實(shí)際上在我看來是比特幣給交易系統(tǒng)所帶來的一個(gè)革新,也就是比特幣腳本。更詳細(xì)可參考我寫的這篇文章:
https://zhuanlan.zhihu.com/p/27512347
這種比特幣的腳本“自動(dòng)化”地執(zhí)行著一段代碼,使得交易的過程能夠去第三方的自動(dòng)化處理一些邏輯。但是由于比特幣腳本過于簡單且底層,并且在utxo模型下,所以大家目前看到比特幣腳本并非這么廣為人知,也沒有產(chǎn)生很多奇妙的運(yùn)用。
因此從以太坊開始提出了在狀態(tài)模型下的圖靈完備智能合約體系。在這個(gè)體系下,utxo模型的腳本在功能實(shí)現(xiàn)上屬于狀態(tài)模型智能合約體系的一個(gè)子集,因此通過智能合約體系可以完成遠(yuǎn)超比特幣模型下可以完成的事,也是目前Defi、通證經(jīng)濟(jì)等概念的基石。正是由于智能合約的能力,可以給比特幣帶來新的運(yùn)用場景,能在去中心化的體系下做到更廣泛的事情。
2、智能合約可以給比特幣帶來什么?
我認(rèn)為有以下兩點(diǎn):
1. 使得比特幣更智能化
正如剛才提到的,若只能交易,則只能完成價(jià)值轉(zhuǎn)移,但是沒法 “智能地” 完成價(jià)值轉(zhuǎn)移。但是比特幣腳本功能有限,現(xiàn)在用的稍微復(fù)雜一些的場景就是多重簽名,或者設(shè)計(jì)一些謎題。要是想實(shí)現(xiàn)抵押借貸、投票、拍賣等等一系列在以太坊中出現(xiàn)的場景是不可能的。
2. 更好的發(fā)揮出比特幣的價(jià)值屬性
一個(gè)東西的真正的價(jià)值要體現(xiàn)在流通上,只有流動(dòng)才能帶來真正的價(jià)值。正如假設(shè)你有100塊錢人民幣,如果你不花出去,只是拿在手上,那它就是一張廢紙。只要當(dāng)他真正交換給其他人,流動(dòng)出去的那一瞬間,才會(huì)產(chǎn)生它真正的價(jià)值。也就是說錢這個(gè)東西,只有花的(流通的)時(shí)候才是錢。而智能合約就是提升流通性很重要的一種手段,因?yàn)橹悄芎霞s比起比特幣腳本能夠賦予的功能不是一個(gè)級別的。對于已有的,可以把以太坊上實(shí)現(xiàn)的東西拿過來在比特幣這邊再實(shí)現(xiàn)一遍,對于未來,可以設(shè)計(jì)出更豐富的Dapp應(yīng)用。
3、我們已經(jīng)有以太坊的智能合約,為什么還需要比特幣的智能合約?
共識(shí)是一個(gè)很神奇的東西,它代表著大部分人的意志。正如目前雖然以太坊比起比特幣能做更多的事情,但是比特幣的市值就是遠(yuǎn)超以太坊。因此比特幣和以太坊兩者所代表的價(jià)值符號(hào)是完全不一樣的,在“共識(shí)”未發(fā)生顯著變化的情況下,其背后代表的價(jià)值的符號(hào)就是顯然不同的。這就是為什么比特幣才是“真正的共識(shí)”,而以太坊從未持有過這一名聲。因此我的第一個(gè)觀點(diǎn)就是,以太坊和比特幣其在共識(shí)上的價(jià)值是完全不一樣的,但是以太坊有比特幣沒有的東西,而區(qū)塊鏈又是一個(gè)個(gè)價(jià)值孤島,因此就要把以太坊好的東西拿過來在比特幣上用。
第二個(gè)觀點(diǎn)是當(dāng)前鏈之間分工越來越明確,譬如BTC發(fā)揮數(shù)字黃金作用,流入其他鏈作為基礎(chǔ)貨幣發(fā)揮價(jià)值存儲(chǔ)作用,Libra可以進(jìn)入其他鏈平臺(tái)發(fā)揮交易媒介作用,Zec可以幫助其他鏈增強(qiáng)隱私功能,以太坊提供了智能合約,鏈和鏈之間可以有所分工,各自專注于專業(yè)化和垂直化。但是作為本幣的價(jià)值在流動(dòng)到別的鏈上時(shí)要經(jīng)過交易所,總歸是會(huì)帶來各種麻煩的。因此若直接給比特幣賦予了智能合約,則跳過了中間價(jià)值轉(zhuǎn)換的過程。從商業(yè)角度,比特幣依然擁有最大的商業(yè)慣性力量。它在加密生態(tài)中的市場價(jià)值、流動(dòng)價(jià)值、商業(yè)價(jià)值、用戶基礎(chǔ)等方面依然無法替代。
我的第三個(gè)觀點(diǎn)是比特幣模型截止目前為止沒有太大的變化,因此需要給比特幣注入新興的力量。而智能合約正是給比特幣賦予新的力量的一種方式。這要是調(diào)動(dòng)起比特幣圈子用戶的方式。
4、比特幣的智能合約跟以太坊的智能合約有什么區(qū)別?
如果是模型上的話,我們ChainX這邊實(shí)現(xiàn)的智能合約在模型上和以太坊沒有特別大的差距,都是基于狀態(tài)模型的智能合約。不過在實(shí)現(xiàn)上以太坊的EVM使用的是以太坊的指令集,在效率上有一定折損,我們使用的WASM。在合約編寫上solidity限制很多,稍微復(fù)雜的合約就不是很好編寫。目前我們這邊使用的是Rust編寫合約,整體情況好得多。
5、ChainX 是怎么實(shí)現(xiàn)比特幣的智能合約功能?跟 Substrate 有什么關(guān)系嗎?
要分以下幾步說明
1. 比特幣到ChainX鏈上
2. ChainX上具備合約的功能
3. 把比特幣引入到合約模塊中
其中我們ChainX已經(jīng)通過輕節(jié)點(diǎn)加信托托管的方式實(shí)現(xiàn)了第一步,也就是ChainX鏈上的X-BTC。因此實(shí)際上ChainX通過比特幣跨鏈的方式已經(jīng)把比特幣Relay到了ChainX上,也就是把比特幣的價(jià)值流通到了ChainX上。ChainX已經(jīng)能讓比特幣2s轉(zhuǎn)賬而不是等到10分鐘成為了現(xiàn)實(shí),實(shí)現(xiàn)了秒級轉(zhuǎn)賬。
第二步是在ChainX上增加智能合約的功能。我們的智能合約采用的是的Substrate的WASM合約模塊,并在其基礎(chǔ)上進(jìn)行更改裁剪,增加一些功能。Substrate的合約模塊設(shè)計(jì)了一個(gè)rent的存儲(chǔ)租賃模型,但是這個(gè)模型使用起來有很多困難,而且對用戶很不友好。我們移除了它。其余部分,我們更改了一些Substrate的底層,使得在ChainX鏈上能夠與Substrate合約模塊很好地兼容。
第三步我們考慮了很多,本身Substrate的合約模型就是只支持單資產(chǎn),而ChainX主打的是多資產(chǎn)方案。因?yàn)槲覀兙C合考慮開發(fā)者的接收度、修改合約模塊的難度、工具的成熟度等方面,目前提出使用將ChainX的資產(chǎn)轉(zhuǎn)換為ERC20資產(chǎn)的方案。也就是說我們將會(huì)在合約平臺(tái)中設(shè)立一個(gè)ERC20 Token,代表比特幣,用戶可以將自己的比特幣和ERC20 Token 比特幣互相轉(zhuǎn)換。
用戶持有X-BTC,可以發(fā)起一個(gè)交易,將自己的X-BTC轉(zhuǎn)換為合約模型中的ERC20的BTC。而只要向ERC20合約發(fā)起一個(gè)合約調(diào)用,就可以把ERC20的Token置換為X-BTC。
這里采用ERC20的方案主要還是考慮開發(fā)者的便捷。因?yàn)橹耙蕴缓霞s的開發(fā)者很多,他們操控資產(chǎn)的方式都是與ERC20的Token進(jìn)行對接,因此我們將合約中的比特幣設(shè)計(jì)成ERC20的接口,就可以讓開發(fā)者以比較低的學(xué)習(xí)成本接入我們的合約平臺(tái)。
6、閃電網(wǎng)絡(luò)也是比特幣上的一種智能合約,跟 ChainX 提出來的智能合約有什么區(qū)別?
呃首先閃電網(wǎng)絡(luò)不是比特幣上的智能合約,它是把比特幣質(zhì)押到近似中心化系統(tǒng)中交換,以達(dá)到快速轉(zhuǎn)賬。相當(dāng)于剛才我提到的第一步。
而像RSK(rootstock)、WBTC、TBTC這些和我們才比較像。這些項(xiàng)目有一些和我們相似,一些差別比較大。RSK的智能合約看起來像是EVM改過來的,然后是pow挖礦,而我們用的是wasm,是pos,出塊速度也比它快;TBTC設(shè)計(jì)上高度復(fù)雜,探索了資產(chǎn)跨鏈技術(shù)在去中心化和安全上維度上新高度,但易用性上極其反人性;WBTC是雙向托管方案,而我剛才介紹過,我們是單向輕節(jié)點(diǎn)Relay,單向托管,性質(zhì)也不一樣。
具體而言,對于他們之間的比較可以看這篇文章:
https://github.com/toxotguo/thinking/blob/master/%E6%B5%85%E8%B0%88%E8%B5%84%E4%BA%A7%E8%B7%A8%E9%93%BE.md
7、哪些應(yīng)用可以基于比特幣智能合約來開發(fā)?
第一個(gè)是目前以太坊上開發(fā)過的合約都可以移動(dòng)到ChainX上做一次,因此比如游戲、拍賣、競猜等都可以,這些參照以太坊的合約應(yīng)用發(fā)展即可。另一方面,Defi也是一個(gè)非常熱門的點(diǎn)。因?yàn)楸旧砣绻皇荄efi在其他平臺(tái)上話,沒有很好的價(jià)值屬性,而在ChainX上,一方面可以使用pcx的價(jià)值,而另一方面就可以使用上比特幣的價(jià)值,會(huì)能給Defi的很多方案帶來真正的價(jià)值。比如新興的借貸、質(zhì)押等等。
8、ChainX 比特幣智能合約測試網(wǎng)大概什么時(shí)間發(fā)布?接下來怎么幫助開發(fā)者來進(jìn)行比特幣智能合約的開發(fā)?
我們目前將會(huì)在11月16日發(fā)布ChainX的合約測試網(wǎng),這個(gè)測試網(wǎng)預(yù)期將會(huì)集成好ERC20的比特幣方案。當(dāng)然后續(xù)根據(jù)開發(fā)者的反饋我們也可能采取其他的比特幣集成方案。但是總之ChainX上有比特幣,然后ChainX上有合約,那么只要結(jié)合起來就可以。
我們在11月16日將會(huì)展示一些合約開發(fā)的細(xì)節(jié),同時(shí)在發(fā)布會(huì)上會(huì)展示幾個(gè)用ChainX合約開發(fā)的Dapp應(yīng)用作為案例,并放出相應(yīng)的文檔,包含調(diào)試節(jié)點(diǎn),合約開發(fā),合約開發(fā)案例,合約部署工具等等,對于這個(gè)新的測試網(wǎng),我們也會(huì)提供對應(yīng)的瀏覽器,api,錢包等。同時(shí)我們ChainX版的MetaMask也會(huì)在不久后放出,與合約開發(fā)者聯(lián)動(dòng)。
責(zé)任編輯;zl
評論
查看更多