宇宙链 宇宙链
Ctrl+D收藏宇宙链

在区块链中,详细解析多重签名

作者:

时间:1900/1/1 0:00:00

大家好,这里是链客区块链技术问答社区。

链客,专为技术开发者而生,有问必答!

多重签名

多重签名脚本设置了一个条件,N个公钥记录在脚本中,并且需要其中至少M个提供签名才能解锁资金。这也被称为M-of-N方案,其中N是密钥的总数,M是验证所需签名个数的阈值。例如,一个2-of-3的多重签名是三个公钥被列为潜在签名者并且其中至少两个必须被用来创建签名,从而创建有效的交易花费资金。

目前,标准的多重签名脚本最多只能列出3个公钥,这意味着你可以执行从1-of-1到1-of-3之间的任意组合的多重签名。本书出版时,列出3个公钥的限制可能已经解除,因此请检查IsStandard()函数以查看网络当前接受的操作。请注意,3键的限制仅适用于标准多重签名脚本,而不适用于包含在支付到脚本哈希中的多重签名脚本。P2SH多重签名脚本限于15个键,最多允许15-of-15的多重签名。我们将在支付到脚本哈希Pay-to-Script-Hash(P2SH)中学习P2SH。

动态 | 中国在区块链等领域与美国旗鼓相当 甚至后来居上:据环球网报道,香港《亚洲周刊》12月22日(提前出版)文章《中日创新不断交换生命碎片》表示,中国的创新也为日本带来压力,像5G、人工智能、区块链、云计算、大数据等领域,中国都与美国旗鼓相当,甚至后来居上。[2019/12/16]

M-of-N多重签名条件的锁定脚本设置通常形式如下:

M<PublicKey1><PublicKey2>……<PublicKeyN>NCHECKMULTISIG

其中N是列出的公钥数量,M是花费这笔支出所需的签名个数。

一个2-of-3多重签名条件的锁定脚本设置如下:

声音 | 中国驻哈大使张霄:中哈两国在区块链等技术领域合作前景广阔:据中新网9月8日消息,中国驻哈萨克斯坦大使张霄在哈萨克斯坦总统托卡耶夫访华前夕,于努尔苏丹接受哈巴尔电视台等十余家媒体联合采访时表示,托卡耶夫总统访华对推动两国合作意义重大。张霄透露,不久前托卡耶夫总统在与其进行会见时,表达出加大两国在通讯、大数据、人工智能、区块链等领域合作的意愿。中国在这些行业优势明显,两国高科技合作前景广阔。[2019/9/8]

2<PublicKeyA><PublicKeyB><PublicKeyC>3CHECKMULTISIG

上面的锁定脚本可以被包含签名和公钥对儿的解锁脚本满足:

<SignatureB><SignatureC>

声音 | 陆金所计葵生:科技公司与传统金融可在区块链建立合格投资人的身份认可:据中国财富网消息,在“2019清华五道口全球金融论坛”上,陆金所控股首席执行官计葵生表示,科技在过去五年带来了方便性,优化成本,提高效率。如果我们现在考虑区块链、人工智能、云计算等等,它会在未来五年,对整个金融行的前中后台带来巨大的变化。他还指出,传统的优势跟效率的结合,市场的普惠性会提升。合作机会之一是共同建立新的平台 ,“科技公司跟传统金融可以在区块链建立一个公开的合格投资人的身份认可,客户做一次就等于区块链是他的护照,他去哪里投资身份就很清楚,可以降低成本,提高效率。”[2019/5/26]

或者3个公钥中的任意两个对应的私钥生成的签名的组合

两个脚本组合起来形成下面的验证脚本

动态 | 印度政府将在区块链上发布出生证明:印度西孟加拉邦的两个地方政府正在将Lynked.world(一家位于荷兰的区块链应用公司)开发的区块链系统与出生证申请整合在一起。这些出生证和其他证书将由发证机构(市政当局)进行数字认证,身份验证将存储在区块链上,以方便所有第三方组织对这些文件进行验证。Bankura市政公司和Durgapur市政公司将使用区块链技术来处理诸如处理请求和验证合法身份等管理操作,从而使诸如出生证明等法律文件的应用程序变得更加流畅。[2018/8/28]

<SignatureB><SignatureC>2<PublicKeyA><PublicKeyB><PublicKeyC>3CHECKMULTISIG

执行时,只有在解锁脚本与锁定脚本设置的条件匹配时,此组合脚本才会评估为TRUE。在这种情况下,条件是解锁脚本是否具有来自3个公钥中的两个对应私钥的有效签名。

CHECKMULTISIG执行中的一个错误

在CHECKMULTISIG的执行过程中有一个错误,需要稍微解决一下。当CHECKMULTISIG执行时,它应该消耗堆栈中的M+N+2个项目作为参数。但是,由于该错误,CHECKMULTISIG会弹出额外的值或超出预期的值。

让我们用前面的验证示例更详细地看一下:

<SignatureB><SignatureC>2<PublicKeyA><PublicKeyB><PublicKeyC>3CHECKMULTISIG

首先,CHECKMULTISIG+弹出顶部元素,它是+N。然后它弹出N个元素,这是可签名的公钥。在这个例子中,是公钥A,B和C。然后,它弹出一个项目,即M,仲裁数。这里M=2。此时,CHECKMULTISIG应该弹出最后的M个元素,这是签名,并查看它们是否有效。然而,不幸的是,实现中的一个错误会导致CHECKMULTISIG弹出另一个元素。额外的项目在检查签名时被忽略,因此它对CHECKMULTISIG本身没有直接影响。但是,必须存在额外的值,因为如果它不存在,当CHECKMULTISIG试图弹出空堆栈时,它将导致堆栈错误和脚本失败。由于额外的项目被忽略,它可以是任何东西,但通常使用0。

由于这个bug成为了共识规则的一部分,现在必须永久复制。因此,正确的脚本验证将如下所示:

0<SignatureB><SignatureC>2<PublicKeyA><PublicKeyB><PublicKeyC>3CHECKMULTISIG

所以,正确的解锁脚本不是

<SignatureB><SignatureC>

而是:

0<SignatureB><SignatureC>

从现在起,如果你看到一个multisig解锁脚本,你应该在开始时看到一个额外的0,其唯一目的是修正意外成为共识规则的错误。

标签:MULTICHEHECMULTI价格MULTI币CHE币CHE价格HEC价格HEC币

火币交易所热门资讯
「崛起社区」你知道吗:国际货币基金组织在2018 年默默地认可了XRP

国际货币基金组织(IMF)开始帮助政府开发中央银行数字货币(CBDC),但XRP始终处于循环之中.

1900/1/1 0:00:00
货币创始人都讲了什么?

《货币:创始人的故事》(由艾美奖10次获奖得主GregKohs执导。该影片和每一个起源故事一样——无论是英雄或反派——从BrianArmstrong的童年开始,讲述他对计算机和万维网的迷恋.

1900/1/1 0:00:00
Limbo 中的精英加密货币:投资者是时候超越BTC和ETH 思考了吗?

几周来,主流加密货币市场或多或少已经死了。比特币在过去7天内下跌了1.88%。以太坊的表现稍好一些,在同一窗口内下跌了0.66%.

1900/1/1 0:00:00
SHIB 可能达到 0.01 美元吗?谷歌巴德人工智能(AI)给出答案

ShibaInu社区继续希望SHIB能够在不久的将来出现显着的价格反弹,达到某些高价位。在撰写本文时,去中心化meme代币的价格中仍然存在许多零,社区成员一直在关注0.01美元的价格点.

1900/1/1 0:00:00
它以高达 237 美元的价格打破了记录!流行的山寨币秋天来了!

Filecoin(FIL)在2021年4月1日创下237美元的历史新高,在4小时价格图表上显示出下降趋势三角旗的形成.

1900/1/1 0:00:00
加密货币市场展望:Mark Yusko 预测大规模比特币牛市的时间表

摩根溪资本(MorganCreekCapital)创始人兼首席信息官MarkYusko最近在接受CNBC采访时分享了他对比特币(BTC)和加密货币市场的乐观看法,表明它们已进入看涨阶段.

1900/1/1 0:00:00