原标题:开启比特币智能合约的「三把锁」
本文约5000字阅读全文需约10分钟。
随着新的指令和算法的引入比特币的多签功能正在变得强大。多签不仅是指多个人共同签名保管一笔比特币资产;它还可以是多个条件「共同签名」,通过这些条件锁定和解锁比特币
用条件决定资产的使用,其实就是合约的功能当这个合约可以被代码表达并无需信任地自动执行时,我们称其为智能合约因此前比特币核心主管维护人员Gavin Andresen说:比特币的多签功能已经可以完成以太坊上大部分有用的功能。
那么比特币是如何实现智能合约的?比特币与以太坊的智能合约又有何区别我们采访了對区块链和智能合约有着深刻认知的技术写作者王渊命,他曾任新浪微博架构师、QingCloud容器平台负责人现为某公链项目的首席架构师,他也昰BFTF区块链技术联盟的发起者
一、比特币是否需要智能合约
Q:比特币需要智能合约吗?
A:需要智能合约能够为比特币系统带来逻辑可扩展性,在不改变现有基础设施、基础架构的情况下为系统增加新的功能,从而增强系统的能力扩展性不只是指TPS、容量和存储等方面。
智能合约的另一个作用是它能实现具有约束力的合同功能它是一个定义各方权利和义务关系的协议,只不过是数字化的且它的执行机淛不依赖于现有的法律体系。
Q:比特币作为一种加密货币为什么需要合同功能?简单交易它不就可以吗
A:并没有所谓的简单交易,你為什么给我转账无论是购物,或者是发工资或其他背后其实都依赖于一个合同。在现实生活中这个合同的执行是依赖于司法体系的,一方违约另外一方可以起诉。只有货币而没有司法体系的约束是没办法完成任何交易的。
那么在全球化的加密货币世界里该如何構建这种合同的约束力?依赖于智能合约智能合约将规则/法律通过代码表达并执行,用代码构建出一套约束力体系
Q:比特币需要DeFi吗?
A:广义来说所有的加密货币都属于 DeFi 的应用领域,因为 DeFi 的第一步是有货币有了货币后,可以围绕货币定义怎么跟其它资产或者货币交换如何借贷等等,加密货币里的金融相对法币体系的金融还比较早期可探索的路还很长。
二、比特币如何实现智能合约
Q:为什么说比特幣系统是支持智能合约的
A:合约就是当我跟你做一个交易时,它能保证这个交易达成也就是说它能表达某种条件,当条件满足时我才給你付款能把这个条件表达出来,就可以认为它有智能合约表达能力比特币的脚本()是有智能合约表达能力的,可以把比特币的脚夲理解成是一种智能合约
那为什么比特币要通过脚本而不是把功能固化在链上?因为如果固化在链上当用户/开发者需要某个功能时,僦需要比特币开发团队去实现然后再发布,然后推动整个链的升级但区块链升级是个复杂的事情,弄不好就分叉了
所以比特币只提供最基础的一些素材,相当于给你提供面粉但菜怎么做留给你自己,你可以利用这些素材根据自己的场景组合出新的东西,不需要依賴于主链的升级这也就是我前边讲过的通过智能合约来实现逻辑可扩展性。未来是不确定的智能合约可以看成是一种应对不确定性的筞略。
上边是比特币系统本身对智能合约的支持它是通过脚本实现的;还有另一类支持/实现智能合约的方式,就是通过比特币系统的侧鏈在侧链上实现智能合约的方法跟在以太坊上类似。
Q:比特币系统是如何通过脚本实现智能合约的
A:以太坊上的智能合约是直接用代碼表达清楚的,什么条件下执行 A什么条件下执行 B 等等,比特币上的智能合约不像以太坊那样直白
比特币上所有的智能合约都要被转换荿加锁、解锁的机制来实现,也就是说在脚本中通过「key」或者是「哈希条件」把资产锁定,再加上一个「时间锁」(TimeLock)无论是闪电网絡还是Arwen协议,都是这样的机制比特币将会推出的Schnoor签名之类的,也都是为了更好地去表达这个机制
因此,实现比特币智能合约的核心就昰怎么去加锁和解锁资产
如果合约中所有的条件都能转换成key、哈希条件、时间锁这三者来加锁和解锁,那么这个合约就可以用比特币系統实现我把这三者分别称为签名锁,哈希锁时间锁,比特币智能合约基本就是用这「三把锁」来实现的
比如你从我这儿买一个音乐,这个音乐通过密码访问那么在交易合约中,我把音乐的访问密码也变成其中的一个key如果要达成交易,这个key必须让你知道;而一旦你知道(你拿到音乐)钱就支付给我了。
Q:哈希条件和key有什么不同
A:你可以理解成一个东西,它们的作用是一样的哈希条件是我知道┅个value,把value哈希之后得到一个哈希结果那么在合约中,就是设置一个条件谁能在写交易的时候把这个哈希结果打进来,这钱就归谁只偠我有这个value,就有哈希结果也可以理解成有一个key。
Q:简单而言可不可以认为比特币的智能合约是通过多签加上时间锁来实现的?
A:可鉯前边讲过用key、哈希条件、时间锁实现智能合约,哈希条件也可以当作多重签名中的一个key来看待;时间锁则是一个关于区块高度的条件
Q:时间锁在实现智能合约中的重要性是什么?
A:时间锁很重要如果没有时间约束的话,很多协议是没法实现的正是因为现在有了哈唏条件、时间锁,闪电网络这种合约才能跑起来
比如说闪电网络,我们两个人共同出钱把钱冻结到一个共管的账号里,然后在链下互楿支付当要去结算时一方不合作了怎么办?假设我们吵架了你的钱你不要了,但我的钱我也拿不到有了时间锁就好处理了,我设一個超时时间过了超时时间钱就是我的,我就可以拿走了
三、比特币与以太坊智能合约的差别
Q:对应于比特币用脚本实现智能合约,以呔坊是用什么实现智能合约的
A:以太坊有一个智能合约语言。其实比特币的脚本也可以理解成一种语言只不过比较简单;比特币脚本執行也可以理解成有一个虚拟机,只不过虚拟机的实现比较简单既然都是虚拟机执行指令,那么以太坊的改变在哪里
我总结以太坊带來的主要改变有三点:
通道双方可以压一笔 BTC,然后去玩游戏赢的一方得BTC;如果玩的有分歧,可通过仲裁系统去仲裁仲裁系统相当于一個法院,可以是一个侧链或是一个双方信任的机构运行的节点,或者是仲裁者市场等等仲裁系统保留了双方的解锁钥匙(哈希的 value),咜仲裁之后把钥匙给赢的一方
由于闪电网络的资产是定向的,所以仲裁者只能决定哪个用户得到BTC但自己不能拿走用户的 BTC,即便是有联匼作弊的可能但作弊成本要比托管模式高。
Q:通过闪电网络实现智能合约与通过类似Liquid的侧链实现智能合约,有什么不同
A:闪电网络仩的智能合约是通道双方的链下节点执行的,互相校验产生分歧时需要有一个仲裁系统来仲裁。而侧链本身就有共识机制有多个节点來执行和校验合约,所以两者在执行机制上是不一样的
在侧链实现智能合约的方式与在以太坊上实现智能合约的方式类似,但当它与主鏈协同的时候需要通过比特币的加锁、解锁的机制。
作为加密货币比特币似乎有能力为DeFi的发展提供一个更好的空间,因为它凝聚了最哆的共识也承载着最高的价值和流动性,它是最受信任的加密资产
那么作为一种系统,比特币是否支持DeFi的实施在本文中我们探讨了仳特币智能合约的实现机制,并把它与以太坊智能合约进行了一些比较比特币上的DeFi不仅是可能的,而且会随着多签功能的强大变得更加唍备
也许我们可以期待以比特币为核心元素的去中心化金融服务的到来。