如何在比特币上打造高级智能合约?_SIMP:LIC

来源/LongHash

比特币是目前为止世界上最流行的加密货币。无论是从流动性、链上交易量、还是其他任意指标看,比特币的主导地位都不言而喻。

然而由于技术原因,开发人员常常更偏爱以太坊。因为以太坊在搭建各类应用和智能合约方面更加灵活。多年来,有许多平台都专注于开发高级智能合约功能,但显然以太坊才是这个特定领域的领头人。

就在这些技术在以太坊上如火如荼地开发的时候,比特币逐渐成为价值存储工具。有人试图通过兼容以太坊的RSK侧链与TBTCERC-20代币等技术,缩小比特币与它的差距。

但是另一种选择是让比特币本身去升级脚本功能。这里就需要用到Simplicity语言。

什么是Simplicity?

Simplicity是一种全新的比特币编程语言,在构建智能合约方面比当今的比特币网络更加地灵活。而这个低级语言是由Blockstream基础架构的开发人员RussellO’Connor创建的。

Blockstream的CEOAdamBack在近期关于这一话题的网络研讨会上解释道:“这是面向比特币和包含Elements、Liquid等网络的新一代脚本语言。”

比特币创建者中本聪在项目早期出于安全原因限制了比特币脚本,而Simplicity则是在保证安全性的同时让比特币脚本更加灵活的一次尝试。

虽然并非图灵完备,但对那些想要搭建以太坊上现有的大部分同类应用程序的开发者来说,Simplicity的表达能力已足够丰富。

此外,Simplicity的目标是让开发者和用户能够更简单地验证智能合约部署是否到位、安全以及成本如何。

“处于安全考虑,我们确实希望在运行程序前先进行分析,”致力于撰写开源软件文献的技术写手DavidHarding在NodedBitcoin一期博客中说道,“对比特币来说,我们不允许图灵完备,这样我们就可以静态分析程序。Simplicity也不会达到图灵完备,这样你就可以静态地分析程序。”

值得注意的是,上面提到的TBTC近期在以太坊主网发布没多久就被创建者关掉了,因为他们在支持ERC-20代币的智能合约里发现了一个漏洞。这几年来,以太坊智能合约已经爆出了不少安全问题,比如Parity钱包的多签漏洞以及臭名昭著的DAO事件。

对比特币来说Simplicity意味着什么?

为了探索Simplicity对比特币的实质意义,LongHash联系了ParadigmResearchPartner的DanRobinson,他对Simplicity和以太坊都有研究。

Robinson告诉我们:“Simplicity将会是比特币脚本功能的广泛升级,而不是比特币历史上每次脚本升级的集合。作为一个’功能完备’的指令集,未来基本不再需要对比特币脚本功能再次升级,当然为了提高一些功能的效率,有些升级还是需要的。”

可以从软分叉的角度来看待这个问题。在过去,比特币脚本的升级是通过软分叉实现的,这需要达成社区共识才能在网络激活。如果启用了Simplicity,任何人都可以通过这个语言有效地实现一些常用的软分叉变动,而无需网络节点更新比特币共识规则。

这个方案有两大作用:比特币开发速度会比之前快,且对潜在的比特币协议僵化问题也有一定的帮助作用。不过,最终比特币协议僵化也是可取的,因为它有效反映了网络的基本规则,例如代币政策等,这些是不会变的,所以能够阻断潜在的社会攻击矢量对这个赋予比特币价值的首要因素产生影响。

“有趣的含义:如果今天的比特币部署了Simplicity这个脚本,那么它将可以进行自我扩展,”AdamBack在Reddit上写道,“Schnorr/Taproot以及SIGHASH_NOINPUT等改进方案将可以直接实现。”

这里Back例举的就是软分叉方案,是启用Simplicity后,在不改变比特币共识规则的前提下能够做出的添加种类的一种。当问他对此怎么看时,他澄清道:“我认为从技术上看,Taproot扩展方案并不能如PieterWuille所说的那样在Simplicity语言下实现——但Schnorr可以。”

就Robinson而言,如果Simplicity真的添加到了比特币上,那么首先奏效的会是开发者们现在正在研究的一些改进,比如Eltoo这类支付通道的设计、新的签名算法、可能还有一些隐私方面的提升方案。

Robinson补充道:“我比较期望看到的是能开发出一种代币标准,类似以太坊的ERC-20,这样就能见到一些新的应用,比如稳定币、去中心化交易所以及杠杆交易等。”

Simplicity在以太坊和比特币上的区别

如果比特币主网上添加了Simplicity语言,那么显然会有人下这样的结论:我们没有理由继续使用以太坊了。但是,即使比特币有了Simplicity,它和以太坊之间还是会存在明显差异的。

Robinson表示,“我之所以对Simplicity感兴趣,并不是因为它能让比特币变得更’以太坊’,而是能让比特币变得更’比特币’。”

尽管使用了Simplicity,但与以太坊以账户为基础的设置相反,比特币依旧会在UTXO模式下运行。

Robinson解释道:“UTXO模型对于验证人效率而言是绝佳的选择,但它的权衡之处在于,它很难搭建出应用来满足多人与合约交互的需求。”

此外,以太坊在开发平台网络效应方面已经取得了很大的进步,至少在智能合约方面如此。

“围绕Simplicity的工具和开发者生态系统可能要很长时间才能成型,”Robinson说,“Simplicity并不是一种人类可读的语言,因此可能需要有人去开发一种语言对其进行编译,然后再供普通的开发者使用。此外,开发与UTXO模式兼容的智能合约设计平台也需要进行大量的研究。”

从开发角度看,以太坊的网络效应正解释了为什么RSK会将平台设计成与以太坊虚拟机兼容的原因。

但最终比特币用户是否还需要一些类似于以太坊网络上的加密货币应用,目前还不得而知。

Robinson表示,“比特币区块容量的溢出比以太坊要大,其10分钟出一块的速度可能也会将一些应用拒之门外。相应的,现在似乎并不清楚比特币社区是否真的希望在比特币上搭建这些应用,因为这样的应用可能会造成区块链拥堵,甚至是提高51%攻击的收益率——要是引入了新的矿工挖矿价值的话。”

就Robinson的观点而言,由于预言机问题尚存,很多比特币用户很早开始就对以太坊持批评态度。预言机问题在开发各类去中心化应用程序中已经成为人们越来越关注的问题。

Simplicity什么时候可以落实?

需要注意的是,距离Simplicity登陆比特币主网可能还有很长一段路要走。但据预计,今年晚些时候或许能先看到这个脚本语言添加到Liquid侧链上。

这是压上现实世界资产开始使用Simplicity语言的重要一步,但有些开发者,比如致力于比特币隐私钱包的开发者,已经因为Liquid侧链的联邦模型而表现的兴趣乏乏。

我们问Robinson对此怎么看,他表示:“我不认为Liquid的联邦本质会破坏交易。但这确实是会让收获大量开发者或用户变得更艰难。”

根据比特币核心长期贡献者兼Blockstream联合创始人GregMaxwell的观点,由于通过隔离见证升级引入了脚本多版本系统,Simplicity可以通过软分叉的形式添加到比特币上。当然,这是建立在能够围绕比特币共识规则的更改建立起社区共识的假设上。

在Blockstream工作的Grubles告诉我们,“我不确定如何通过软分叉来部署它,但它不会代替主网以及Liquid侧链上的任何东西。它只会是一个能够与现有地址类型一起使用的新的地址类型。”

Grubles补充道,他认为以太坊已经损害了“智能合约”的风评,因为有很多有问题的智能合约已经在该平台部署了很多年。因此,他们觉得一直关注着以太坊的比特币用户不太会愿意看到智能合约在Liquid上灵活运用。

“我认为这会是一个很有趣的议题,但还需要个几年,”Back补充道,“先例可以先在侧链上验证一下。”

LongHash,用数据读懂区块链。

郑重声明: 本文版权归原作者所有, 转载文章仅为传播更多信息之目的, 如作者信息标记有误, 请第一时间联系我们修改或删除, 多谢。

金宝趣谈

[0:62ms0-3:511ms