该BIP (Bitcoin Improvement Proposal) 提议将需要M个签名的多重签名交易作为一种新的“标准”交易类型。这可以实现安全钱包、托管交易等需要多个签名才能赎回资金的应用场景。定义了一种新的标准交易类型 scriptPubKey,并规定了OP_CHECKMULTISIG 的使用方式和脚本结构。
fork 自 bitcoin/bips
bip-anyprevout
搜索此存储库
/
复制路径
追溯更多文件操作
追溯更多文件操作
2020年5月16日
336a83b · 2020年5月16日
打开提交详情
61 行 (37 loc) · 4.22 KB
/
顶部
预览
代码
追溯
61 行 (37 loc) · 4.22 KB
复制原始文件
下载原始文件
大纲
编辑和原始操作
BIP: 11
Layer: Applications
Title: M-of-N Standard Transactions
Author: Gavin Andresen <gavinandresen@gmail.com>
Comments-Summary: No comments yet.
Comments-URI: https://github.com/bitcoin/bips/wiki/Comments:BIP-0011
Status: Final
Type: Standards Track
Created: 2011-10-18
Post-History: 2011-10-02
## 目录<br>固定链接:目录<br>- 摘要<br>- 动机<br>- 规范<br>- 原理<br>- 实现<br>- 发布历史 |
本 BIP 建议将需要 M-of-N 签名的交易作为一种新的“标准”交易类型。
支持安全钱包、托管交易和其他需要多个签名才能赎回资金的用例。
一些有推动作用的用例:
如果买方和卖方无法达成一致,那么代理人可以在买方或卖方的合作下,决定如何处理绑定的币。 买方、卖方和代理人如何沟通以收集签名或公钥的详细信息不在本 BIP 的范围内。
一种新的标准交易类型(scriptPubKey),由客户端中继并包含在已挖掘的区块中:
m {pubkey}...{pubkey} n OP_CHECKMULTISIG
但仅适用于 n 小于或等于 3 的情况。
OP_CHECKMULTISIG 交易使用标准 scriptSig 赎回:
OP_0 ...signatures...
(由于 OP_CHECKMULTISIG 中的一个错误,需要 OP_0;它从执行堆栈中弹出了过多的项目,因此必须在堆栈上放置一个虚拟值)。
当前的 Satoshi 比特币客户端不中继或挖掘 scriptSigs 大于 200 字节的交易;为了适应 3 签名交易,这将增加到 500 字节。
OP_CHECKMULTISIG 已经是一个启用的操作码,并且是支持几个重要用例的最直接方式。
反对使用 OP_CHECKMULTISIG 的一个论点是,旧的客户端和矿工将其计为“20 sigops”,用于计算一个区块中有多少签名操作,并且每个区块的 sigops 有 20,000 的硬性限制——这意味着每个区块最多 1,000 个多重签名交易。使用多个 OP_CHECKSIG 操作创建多重签名交易允许每个区块有更多的多重签名交易。
反驳的论点是,这些新的多重签名交易将与 OP_EVAL 结合使用(参见 OP_EVAL BIP),并且将被准确计数。无论如何,随着交易量的增加,必须解决硬编码的最大区块大小,并且可以那时解决计算区块中签名操作数量的规则。
一个较弱的论点是,不应使用 OP_CHECKMULTISIG,因为它在验证期间从堆栈中弹出了过多的项目。在 scriptSig 中添加一个额外的 OP_0 占位符只会给交易增加 1 个字节,并且任何避免 OP_CHECKMULTISIG 的替代方案都会增加至少几个字节的操作码。
旧的客户端和矿工已经支持 OP_CHECKMULTISIG 作为一种非标准交易类型。
https://github.com/gavinandresen/bitcoin-git/tree/op_eval
- 原文链接: github.com/ajtowns/bips/...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!