bips/bip-0011.mediawiki,位于ajtowns/bips 的 bip-anyprevout

  • ajtowns
  • 发布于 2025-01-19 17:27
  • 阅读 25

该BIP (Bitcoin Improvement Proposal) 提议将需要M个签名的多重签名交易作为一种新的“标准”交易类型。这可以实现安全钱包、托管交易等需要多个签名才能赎回资金的应用场景。定义了一种新的标准交易类型 scriptPubKey,并规定了OP_CHECKMULTISIG 的使用方式和脚本结构。

跳至内容

ajtowns/ bips 公开

fork 自 bitcoin/bips

折叠文件树

文件

bip-anyprevout

搜索此存储库

/

bip-0011.mediawiki

复制路径

追溯更多文件操作

追溯更多文件操作

最近提交

SGeetanshSGeetansh

小的语法错误。添加了一个逗号。

2020年5月16日

336a83b · 2020年5月16日

历史

历史

打开提交详情

查看此文件的提交历史。

61 行 (37 loc) · 4.22 KB

/

bip-0011.mediawiki

顶部

文件元数据和控件

  • 预览

  • 代码

  • 追溯

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

动机

固定链接:动机

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

一些有推动作用的用例:

  • 由“钱包保护服务”(WPS)保护的钱包。将使用需要 2-of-2 签名的交易,一个签名来自具有钱包的(可能已泄露的)计算机,第二个签名来自 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 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 助手,为大家转译优秀英文文章,如有翻译不通的地方,还请包涵~
点赞 0
收藏 0
分享
本文参与登链社区写作激励计划 ,好文好收益,欢迎正在阅读的你也加入。

0 条评论

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