主页 > 下载最新版imtoken钱包 > 五分钟速览比特币新语言Miniscript:简化比特币智能合约的编写

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

下载最新版imtoken钱包 2023-09-16 05:07:16

周一,比特币核心开发者和 Blockstream 联合创始人 Pieter Wuille 通过比特币开发者邮件列表披露了一种新的比特币脚本语言。 据他介绍,这种名为“Miniscript”的编程语言让比特币开发者编写智能合约和明确支出条件变得更加容易。

Miniscript 完全兼容当前的比特币脚本(无需分叉),是一种更简化的脚本,使代码编写、审计和使用更加自然。

本质上,Miniscript 是一种以结构化、可组合的方式编写(某些)比特币脚本的方法,允许进行各种静态分析、通用签名和策略编译。 该项目包括一个策略编译器,可以在您设置输出成本标准和相对概率时找到最经济的 Miniscript 兼容脚本。 开发人员不仅可以在他们的网站上使用策略编译器,而且 Miniscript 的算法支持为任何 Miniscript 兼容的脚本构建见证,而无需知道脚本策略创建的来源。

同时,Miniscript 让重用变得更容易。 在软件行业,可组合性非常重要,这意味着你可以复用你以前写过的东西,而不用浪费精力去重新造轮子。 在传统的比特币脚本语言中,脚本语言的复用并不容易,但 Miniscript 使复用变得容易。

Pieter Wuille 透露,他、Andrew Poelstra 和 Sanket Sanjalkar 已经开发这个项目将近一年了。

据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 可以在 [one day] 之后取令牌。

如果用比特币脚本语言Script实现,则如下:

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

在 Minscript 中,它是这样写的:

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

使用场景

为了让 Miniscript 语言的编程更容易,Wuille 还设计了一种“策略语言”。

输出支出条件用这种策略语言编写后,可以编译(翻译)成Miniscript脚本语言,因此可以编译成有效的Script语言并包含在比特币交易输出中。

这种策略语言的一个关键优势是它可以自动编译成最佳版本的 Miniscript,具体取决于该脚本的编码目的。

一般来说,在Script脚本语言中,or and and and的写法有很多种,而strategy语言只有一种写法or and and and 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 编译器提供了策略语言的演示,任何人都可以在 ? 上查看。

表扬和批评

Miniscript发布后,受到了各界的好评。

机构级加密资产研究机构 Digital Asset Research 的技术研究负责人 Lucas Nuzzi 评论说,Miniscript 将改变托管行业的游戏规则,因为它允许像 2FA 这样的东西在本地集成,而不需要 adhoc工程。

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

Hashcash 的发明者 Adam Back 引用比特币杂志上的一篇科普文章称,Miniscript 解锁了更广泛和模块化的使用比特币是用什么语言写的,使用通用或自定义脚本使可互操作的钱包能够共同签名和交互。

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

闪电网络开发者 ZmnSCPxj 认为,并不是所有的比特币应用程序都能从中受益,而且在发布后不久,这种新的脚本语言就给 JoinMarket、Wasabi Wallet 和 Arwen 带来了问题。 ZmnSCPxj 认为 CoinJoin(JoinMarket、Wasabi)等仅使用 P2WPKHSIGHASH_ALL 签名和 P2WPKH 输出的应用程序不会从 Miniscript 中受益。