五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写

作者:LeftOfCenter,本周一,比特币核心开发者兼 Blockstream 联合创始人 Pieter Wuille 通过比特币开发者邮件列表公开了一门新的比特币脚本语言,根据其介绍,这种叫做「Miniscript」的编程语言能
让比特币开发者编写智能合约和明确花费条件变得更加简单。,完全兼容当前的比特币脚本(不用分叉),Miniscript 是一种更加简化的脚本,让代码编写、审计和使用都更加自然。,本质上,Miniscript 是一种以结构化、可组合的方式编写(某些)比特币脚本的方法,允许各种静态分析、通用签名和策略编译。该项目包括一个策略编译器,当你设置好输出花费条件和相对概率,它能够找到最经济的 Miniscript 兼容脚本。开发者不仅可以在网站上使用策略编译器,而且,在无需知道脚本策略创建来源的情况下,Miniscript 的算法支持为任何兼容 Miniscript 的脚本构建见证。,同时,Miniscript 让复用变得更容易。在软件行业中,可组合行非常重要,这意味着你可以复用之前已经写好的东西,不用浪费精力重复造轮子,在传统的比特币脚本语言中,复用脚本语言并不简单,但 Miniscript 让复用变得很容易。,Pieter Wuille 透露,他和 Andrew Poelstra 、Sanket Sanjalkar 三人一起为这个项目
开发了近 1 年时间。,据 Block123.com 显示,Pieter Wuille 是 Blockstream 联合创始人兼比特币核心开发者。Pieter Wuille 在提交比特币核心代码方面,排名第二,负责过比特币的重要改进,比如 BIP 66、libsecp256k1、Segregated Witness 等。其擅长的编程语言,包括 C++、C、Perl、Java、Bash、(PG) SQL、Haskell、OCaml、PHP 系统管理等等。,五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写,Andrew Poelstra 则是一名数学家,领导 Blockstream 的研究团队。在过去的二十年里,他一直从事软件开发,有十年开源、密码学的经验。他于 2011 年底接触到比特币,加入 Greg Maxwell 与 Pieter Wuille 联合创办的 Blockstream,开发 libsecp256k1 高性能加密库。,五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写,Sanket Sanjalkar :Blockstream 前实习生。计算机科学在读,比特币极简主义者和发烧友。,五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写,在介绍 Miniscript 之前,不得不先介绍比特币的脚本语言 Script。,比特币的脚本语言 Script,允许用户在花掉比特币之前设定某些特定的条件。比如说,将资金锁定,直到过了某个特定的时间点才能被花费。又或者,交易双方必须签名之后才能移动资金,这个概念在密码学中被称为「多重签名」。,而 Miniscript 则是建立在 Script 之上的改进方式,
能够「编译」为比特币的原生语言。根据 Pieter Wuille 的说法,这种语言结构更易于人类理解,Wuille 用以下这个案例进行了解释:允许 A 随时拿走代币,然后在 [一天] 后允许 B 拿走代币。,如果用比特币脚本语言 Script 实现,是以下这样的:

五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写

在 Minscript 中,则是这样写的:

五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写,为了让使用 Miniscript 语言编程变得更容易,Wuille 还设计了一种「策略语言」。,用这种策略语言写好输出花费条件后,可以被编译(翻译)成 Miniscript 脚本语言,因此可以编译成有效的 Script 语言,从而包含在比特币交易输出中。,这种策略语言的一个关键优势是,它可以自动编译成最优的 Miniscript 版本,具体取决于该脚本编码的具体内容。,一般来说,在 Script 脚本语言中,有多种不同的方式去写 or 和 and,而策略语言则只有唯一一种方式写 or 和 and 等, Pieter [Wuille] 编写了一个最优的编译器,可将这些逻辑运算符转换为 Miniscript,并以最优化的方式完成。,Miniscript 不仅是一个理论概念,事实上,它已经在实际的场景中开始使用了。虽然当前版本的 Miniscript 和策略编译器病不是最终版,但 Miniscript 语言已经被 Blockstream 团队用于实现比特币侧链 Liquid 的功能开发了。,Ciphrex 首席技术官 Eric Lombrozo 发布推特称,Miniscript 让比特币钱包部署脚本更容易。,「比特币原教旨主义者」Jimmy Song 表示,甚至可以用于支撑闪电网络。和以太坊语言 Solidity 不同,用 Miniscript 编写智能合约的可能性少得多,但这样反而可以减少「复杂度」和「受攻击面」。,Andrew Poelstra 指出,与原始的 Script 脚本相比,使用优化过的编译器,
为 Blockstream 节省了 22 字节的空间。,Pieter Wuille 为 Miniscript 编译器提供了一个策略语言的演示版本,供任何人在 
http://bitcoin.sipa.be/miniscript/ 查看。,Miniscript 发布后,获得了来自各界的好评。,机构级加密资产研究机构 Digital Asset Research 技术研究负责人 Lucas Nuzzi 评价,Miniscript 将会改变托管行业的游戏规则,因为它允许像 2FA 这样的东西本地集成,而不需要 adhoc 工程。,五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写,Hashcash 的发明者 Adam Back 引述了比特币杂志的科普文章称,Miniscript 解锁了更广泛和模块化的使用,使用通用或自定义脚本可实现可互操作的钱包共同签名和进行交互。,五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写,闪电网络开发者 ZmnSCPxj 则认为,并不是所有的比特币应用都受益于此,就在发布后不久,这门新的脚本语言导致 JoinMarket、 Wasabi 钱包和 Arwen 出了问题。ZmnSCPxj 认为,对于 CoinJoin (JoinMarket,Wasabi)这类只是使用 P2WPKH
SIGHASH_ALL 签名和 P2WPKH 输出的应用来说,不会受益于 Miniscript。,来源链接:
bitcoinmagazine.com,而 Miniscript 则是建立在 Script 之上的改进方式,
能够「编译」为比特币的原生语言。根据 Pieter Wuille 的说法,这种语言结构更易于人类理解,Wuille 用以下这个案例进行了解释:允许 A 随时拿走代币,然后在 [一天] 后允许 B 拿走代币。,如果用比特币脚本语言 Script 实现,是以下这样的:

五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写

在 Minscript 中,则是这样写的:

五分钟速览比特币新语言 Miniscript:简化比特币智能合约编写,Ciphrex 首席技术官 Eric Lombrozo 发布推特称,Miniscript 让比特币钱包部署脚本更容易。

原创文章,作者:链闻速递,如若转载,请注明出处:http://www.lianchaguan.com/archives/31926

发表评论

电子邮件地址不会被公开。 必填项已用*标注