该BIP (Bitcoin Improvement Proposal) 提议将M-of-N多重签名交易作为一种新的“标准”交易类型,旨在实现安全钱包、中间担保交易等多种应用场景,其中资金的赎回需要多个签名。提议中设定了多重签名交易的标准格式,并讨论了其合理性以及对现有客户端的修改。
forked from bitcoin/bips
vault
搜索此仓库
/
复制路径
Blame更多文件操作
Blame更多文件操作
Promote BIP 2 Draft->Active, and implement it
打开提交详情
2016年11月30日
959fecc · 2016年11月30日
打开提交详情
61 行 (37 loc) · 4.22 KB
/
顶部
预览
代码
Blame
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 个 sigop”,目的是计算一个区块中有多少个签名操作,并且每个区块的 sigop 数量有一个硬性限制,即 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/jl2012/bips/b...
- 登链社区 AI 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!