木星链 木星链
Ctrl+D收藏木星链

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

作者:

时间: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。

声音 | 腾讯副总裁:腾讯依靠在区块链等技术方面的实力,可以为湾区发展注入新活力:据中国新闻网报道,4月9日,在由广东省人民政府、香港特别行政区政府、澳门特别行政区政府联合主办的“粤港澳大湾区推介会”上,腾讯公司副总裁、腾讯金融科技负责人赖智明演讲表示,腾讯依靠多年来在大数据、区块链、AI等底层技术方面的雄厚实力,可以为湾区发展注入新活力,帮助其打造金融科技新名片。[2019/4/10]

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

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

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

动态 | 报告:我国共有 298 家公司活跃在区块链产业生态:2月28日,互联网络信息中心(CNNIC)发布第43次《中国互联网络发展状况统计报告》。报告指出,截至 2018 年 6 月,美国、中国、英国区块链企业数量分列前三位。我国共有 298 家公司活跃在区块链产业生态中,区块链企业数量排名前五的城市依次为北京、上海、深圳、杭州、广州,其中北京以 175 家区块链企业数量排名第一。[2019/2/28]

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

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

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

动态 | 北京、深圳两城在区块链行业发展中处于国内领先地位:据链塔智库数据显示,广州市区块链企业有9588家,海口有526家区块链企业(高于上海);智联招聘、猎聘网的数据显示,15个城市区块链人才需求总量是5620人,职位最多的北京是最少的海口的145倍。从15座城市的GDP排名和职位数量比较,除了北上深,杭州是行业发展最好的城市。北京以2572件区块链专利申请数量占据第一位置。15个城市包括,北京、上海、深圳、广州、重庆、天津、苏州、成都、武汉、杭州、南京、青岛、长沙、海口、贵阳。[2019/2/2]

<SignatureB><SignatureC>

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

动态 | 以太坊开发者提议在区块高度7,080,000进行君士坦丁堡升级:据Bitcoin Exchange Guide报道,以太坊开源开发团队达成一致,君士坦丁堡升级将在区块高度7,080,000时进行。[2018/12/9]

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

<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币

币安app下载热门资讯
FTM:Fantom 的第一季度并不完美,但这是投资者可以期待的

Fantom的NFT空间经历了繁荣,但开发活动有所下降。鲸鱼对FTM的兴趣也下降了,市场指标看跌。Fantom的NFT生态系统最近很活跃,Magiccats系列在交易量方面位居榜首.

1900/1/1 0:00:00
狗狗币:「崛起社区」狗狗币:8,000美元的投资在5个月内变成了 120 万美元

狗狗币在2020年至2021年之间变成了“百万富翁制造者”,以天文数字回报回报投资者。加密货币市场的利润是无法预料的,一些持有人在短时间内获得了改变生活的收益.

1900/1/1 0:00:00
FET:加密货币分析师解释了为什么他看好 $GRT、$FET 和 $LTC

一位以准确预测2018年比特币熊市底部而闻名的加密货币策略师将注意力转向了两种低市值山寨币和一种成熟代币.

1900/1/1 0:00:00
EOS:EOS到底是什么详细解析?

大家好,这里是链客区块链技术问答社区。链客,转为开发者而生,有问必答! EOS有点类似于微软的windows渠道,经过创立一个对开发者友好的区块链底层渠道,支持多个应用一起运转,为开发dAPP供.

1900/1/1 0:00:00
区块链:什么是智能合约?

什么是智能合约? 从技能上讲,智能合约只是一台计算机,它能够在没有第三方参加的情况下促进、验证或实施合约的实施。智能合约的基础是建立在区块链之上的.

1900/1/1 0:00:00
SHIB:美国政客称赞柴犬 (SHIB),称“谢天谢地,我们不是 PEPE”

美国著名家香农·布雷(ShannonBray)最近在其经过验证的推特账户上公开宣布大力支持柴犬(SHIB).

1900/1/1 0:00:00