bips/bip-0011.mediawiki 在 vault · jl2012/bips

  • jl2012
  • 发布于 2025-06-01 18:15
  • 阅读 13

该BIP (Bitcoin Improvement Proposal) 提议将M-of-N多重签名交易作为一种新的“标准”交易类型,旨在实现安全钱包、中间担保交易等多种应用场景,其中资金的赎回需要多个签名。提议中设定了多重签名交易的标准格式,并讨论了其合理性以及对现有客户端的修改。

跳至内容

jl2012/ bips 公开

forked from bitcoin/bips

折叠文件树

文件

vault

搜索此仓库

/

bip-0011.mediawiki

复制路径

Blame更多文件操作

Blame更多文件操作

最近提交

luke-jrluke-jr

Promote BIP 2 Draft->Active, and implement it

打开提交详情

2016年11月30日

959fecc · 2016年11月30日

历史

历史

打开提交详情

查看此文件的提交历史。

61 行 (37 loc) · 4.22 KB

/

bip-0011.mediawiki

顶部

文件元数据和控件

  • 预览

  • 代码

  • Blame

61 行 (37 loc) · 4.22 KB

Raw

复制原始文件

下载原始文件

大纲

编辑和原始操作

  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 签名的交易作为一种新的“标准”交易类型。

动机

永久链接: 动机

启用安全的钱包、托管交易以及其他需要多个签名才能赎回资金的用例。

几个有意义的用例:

  • 由“钱包保护服务”(WPS)保护的钱包。将使用需要 2-of-2 签名的交易,一个签名来自带有钱包的(可能已泄露的)计算机,第二个签名来自 WPS。当发送受保护的比特币时,用户的比特币客户端将使用提议的交易联系 WPS,然后 WPS 可以联系用户以确认他们发起了该交易并且交易详细信息正确。客户端和 WPS 如何通信的详细信息不在此 BIP 的范围内。旁注:客户应坚持要求他们的钱包保护服务向他们提供用于保护其钱包的私钥副本,他们可以安全地离线存储这些私钥,以便即使 WPS 倒闭也可以花费他们的币。
  • 三方托管(买方、卖方和受信任的争议代理人)。将使用需要 2-of-3 签名的交易。买方、卖方和代理人每个人都将提供一个公钥,然后买方将把币发送到 2-of-3 CHECKMULTISIG 交易中,并将交易 ID 发送给卖方和代理人。卖方将履行其义务,然后要求买方共同签署一项交易(已经由卖方签名),该交易将锁定的币发送给他(卖方)。

如果买方和卖方无法达成一致,那么代理人可以在买方或卖方的合作下,决定如何处理锁定的币。买方、卖方和代理人如何沟通以收集签名或公钥的详细信息不在此 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

请先 登录 后评论
jl2012
jl2012
江湖只有他的大名,没有他的介绍。