11月16日,波卡生态技术流项目ChainX即将发布全球首个比特币智能合约平台。这将带来什么样的改变?比特币的智能合约可以做什么呢?
1、比特币作为一种加密货币,为什么需要合约功能?简单交易它不就可以吗?
这是个好问题,其实我们可以来回顾一下比特币的交易和普通转账交易有什么区别。
实际上比特币的交易并不是A转账给B这一条记录这么简单,比如银行,支付宝转账,就是A-》B的转账记录。但是实际上比特币在A和B之间的转移,本质上是达成了一个条件才转移的。这个条件可以设置成多种多样。稍微对比特币技术有了解的人应该知道,比特币交易的构成要由上一笔交易的txout和这笔交易的txin匹配后才是合法的,因此这里的txout中含有的可以相当于是一个问题的谜面,而txin含有的就是这个问题的谜底。
只是大部分情况下txout中的谜面会设置成公钥(或地址),而转账提供的txin的谜底是签名。
显然,这里的谜面和谜底可以设计成多种多样,比如设计成一个问题的答案,或者某种特殊的条件,亦或者存在一定逻辑的代码。
这实际上在我看来是比特币给交易系统所带来的一个革新,也就是比特币脚本。更详细可参考我写的这篇文章:
https://zhuanlan.zhihu.com/p/27512347
这种比特币的脚本“自动化”地执行着一段代码,使得交易的过程能够去第三方的自动化处理一些逻辑。但是由于比特币脚本过于简单且底层,并且在utxo模型下,所以大家目前看到比特币脚本并非这么广为人知,也没有产生很多奇妙的运用。
因此从以太坊开始提出了在状态模型下的图灵完备智能合约体系。在这个体系下,utxo模型的脚本在功能实现上属于状态模型智能合约体系的一个子集,因此通过智能合约体系可以完成远超比特币模型下可以完成的事,也是目前Defi、通证经济等概念的基石。正是由于智能合约的能力,可以给比特币带来新的运用场景,能在去中心化的体系下做到更广泛的事情。
2、智能合约可以给比特币带来什么?
我认为有以下两点:
1. 使得比特币更智能化
正如刚才提到的,若只能交易,则只能完成价值转移,但是没法 “智能地” 完成价值转移。但是比特币脚本功能有限,现在用的稍微复杂一些的场景就是多重签名,或者设计一些谜题。要是想实现抵押借贷、投票、拍卖等等一系列在以太坊中出现的场景是不可能的。
2. 更好的发挥出比特币的价值属性
一个东西的真正的价值要体现在流通上,只有流动才能带来真正的价值。正如假设你有100块钱人民币,如果你不花出去,只是拿在手上,那它就是一张废纸。只要当他真正交换给其他人,流动出去的那一瞬间,才会产生它真正的价值。也就是说钱这个东西,只有花的(流通的)时候才是钱。而智能合约就是提升流通性很重要的一种手段,因为智能合约比起比特币脚本能够赋予的功能不是一个级别的。对于已有的,可以把以太坊上实现的东西拿过来在比特币这边再实现一遍,对于未来,可以设计出更丰富的Dapp应用。
3、我们已经有以太坊的智能合约,为什么还需要比特币的智能合约?
共识是一个很神奇的东西,它代表着大部分人的意志。正如目前虽然以太坊比起比特币能做更多的事情,但是比特币的市值就是远超以太坊。因此比特币和以太坊两者所代表的价值符号是完全不一样的,在“共识”未发生显著变化的情况下,其背后代表的价值的符号就是显然不同的。这就是为什么比特币才是“真正的共识”,而以太坊从未持有过这一名声。因此我的第一个观点就是,以太坊和比特币其在共识上的价值是完全不一样的,但是以太坊有比特币没有的东西,而区块链又是一个个价值孤岛,因此就要把以太坊好的东西拿过来在比特币上用。
第二个观点是当前链之间分工越来越明确,譬如BTC发挥数字黄金作用,流入其他链作为基础货币发挥价值存储作用,Libra可以进入其他链平台发挥交易媒介作用,Zec可以帮助其他链增强隐私功能,以太坊提供了智能合约,链和链之间可以有所分工,各自专注于专业化和垂直化。但是作为本币的价值在流动到别的链上时要经过交易所,总归是会带来各种麻烦的。因此若直接给比特币赋予了智能合约,则跳过了中间价值转换的过程。从商业角度,比特币依然拥有最大的商业惯性力量。它在加密生态中的市场价值、流动价值、商业价值、用户基础等方面依然无法替代。
我的第三个观点是比特币模型截止目前为止没有太大的变化,因此需要给比特币注入新兴的力量。而智能合约正是给比特币赋予新的力量的一种方式。这要是调动起比特币圈子用户的方式。
4、比特币的智能合约跟以太坊的智能合约有什么区别?
如果是模型上的话,我们ChainX这边实现的智能合约在模型上和以太坊没有特别大的差距,都是基于状态模型的智能合约。不过在实现上以太坊的EVM使用的是以太坊的指令集,在效率上有一定折损,我们使用的WASM。在合约编写上solidity限制很多,稍微复杂的合约就不是很好编写。目前我们这边使用的是Rust编写合约,整体情况好得多。
5、ChainX 是怎么实现比特币的智能合约功能?跟 Substrate 有什么关系吗?
要分以下几步说明
1. 比特币到ChainX链上
2. ChainX上具备合约的功能
3. 把比特币引入到合约模块中
其中我们ChainX已经通过轻节点加信托托管的方式实现了第一步,也就是ChainX链上的X-BTC。因此实际上ChainX通过比特币跨链的方式已经把比特币Relay到了ChainX上,也就是把比特币的价值流通到了ChainX上。ChainX已经能让比特币2s转账而不是等到10分钟成为了现实,实现了秒级转账。
第二步是在ChainX上增加智能合约的功能。我们的智能合约采用的是的Substrate的WASM合约模块,并在其基础上进行更改裁剪,增加一些功能。Substrate的合约模块设计了一个rent的存储租赁模型,但是这个模型使用起来有很多困难,而且对用户很不友好。我们移除了它。其余部分,我们更改了一些Substrate的底层,使得在ChainX链上能够与Substrate合约模块很好地兼容。
第三步我们考虑了很多,本身Substrate的合约模型就是只支持单资产,而ChainX主打的是多资产方案。因为我们综合考虑开发者的接收度、修改合约模块的难度、工具的成熟度等方面,目前提出使用将ChainX的资产转换为ERC20资产的方案。也就是说我们将会在合约平台中设立一个ERC20 Token,代表比特币,用户可以将自己的比特币和ERC20 Token 比特币互相转换。
用户持有X-BTC,可以发起一个交易,将自己的X-BTC转换为合约模型中的ERC20的BTC。而只要向ERC20合约发起一个合约调用,就可以把ERC20的Token置换为X-BTC。
这里采用ERC20的方案主要还是考虑开发者的便捷。因为之前以太坊合约的开发者很多,他们操控资产的方式都是与ERC20的Token进行对接,因此我们将合约中的比特币设计成ERC20的接口,就可以让开发者以比较低的学习成本接入我们的合约平台。
6、闪电网络也是比特币上的一种智能合约,跟 ChainX 提出来的智能合约有什么区别?
呃首先闪电网络不是比特币上的智能合约,它是把比特币质押到近似中心化系统中交换,以达到快速转账。相当于刚才我提到的第一步。
而像RSK(rootstock)、WBTC、TBTC这些和我们才比较像。这些项目有一些和我们相似,一些差别比较大。RSK的智能合约看起来像是EVM改过来的,然后是pow挖矿,而我们用的是wasm,是pos,出块速度也比它快;TBTC设计上高度复杂,探索了资产跨链技术在去中心化和安全上维度上新高度,但易用性上极其反人性;WBTC是双向托管方案,而我刚才介绍过,我们是单向轻节点Relay,单向托管,性质也不一样。
具体而言,对于他们之间的比较可以看这篇文章:
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、哪些应用可以基于比特币智能合约来开发?
第一个是目前以太坊上开发过的合约都可以移动到ChainX上做一次,因此比如游戏、拍卖、竞猜等都可以,这些参照以太坊的合约应用发展即可。另一方面,Defi也是一个非常热门的点。因为本身如果只是Defi在其他平台上话,没有很好的价值属性,而在ChainX上,一方面可以使用pcx的价值,而另一方面就可以使用上比特币的价值,会能给Defi的很多方案带来真正的价值。比如新兴的借贷、质押等等。
8、ChainX 比特币智能合约测试网大概什么时间发布?接下来怎么帮助开发者来进行比特币智能合约的开发?
我们目前将会在11月16日发布ChainX的合约测试网,这个测试网预期将会集成好ERC20的比特币方案。当然后续根据开发者的反馈我们也可能采取其他的比特币集成方案。但是总之ChainX上有比特币,然后ChainX上有合约,那么只要结合起来就可以。
我们在11月16日将会展示一些合约开发的细节,同时在发布会上会展示几个用ChainX合约开发的Dapp应用作为案例,并放出相应的文档,包含调试节点,合约开发,合约开发案例,合约部署工具等等,对于这个新的测试网,我们也会提供对应的浏览器,api,钱包等。同时我们ChainX版的MetaMask也会在不久后放出,与合约开发者联动。
责任编辑;zl
评论
查看更多