大家好,这里是链客区块链技术问答社区。
链客,专为技术开发者而生,有问必答!
多重签名
多重签名脚本设置了一个条件,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。
北京:将在区块链等领域培育形成3至5个千亿级新兴服务集群:金色财经报道,《北京市“十四五”时期现代服务业发展规划》已于11月18日正式发布,规划提出,到2025年北京现代服务业增加值占地区生产总值比重将达到70%左右,服务贸易规模超过1.3万亿元。数字经济增加值年均增速7.5%左右,在人工智能、区块链、绿色金融等领域将培育形成3至5个千亿级新兴服务集群。[2021/11/19 6:59:50]
M-of-N多重签名条件的锁定脚本设置通常形式如下:
M<PublicKey1><PublicKey2>……<PublicKeyN>NCHECKMULTISIG
其中N是列出的公钥数量,M是花费这笔支出所需的签名个数。
湖北省将重点支持在区块链等领域布局开展人工智能技术创新:湖北省科技厅相关负责人表示,未来5年,全省将重点支持在智能制造、智能网联汽车、智能北斗、区块链、智能网络安全、智慧公共安全等16个重点领域布局开展人工智能技术创新。力争通过5年努力,湖北省人工智能关键核心技术实现多点突破,获得一批标志性科研成果。(中国金融信息网)[2020/9/29]
一个2-of-3多重签名条件的锁定脚本设置如下:
2<PublicKeyA><PublicKeyB><PublicKeyC>3CHECKMULTISIG
上面的锁定脚本可以被包含签名和公钥对儿的解锁脚本满足:
<SignatureB><SignatureC>
声音 | 上海市政协常委关百豪:上海企业可落地香港 在区块链等领域进行联动发展:据大公网消息,在近日举行的中国人民协商会议上海市第十三届委员会第二次会议上,上海市政协常委,香港时富投资集团有限公司董事长、行政总裁关百豪建议,上海金融科技企业可以落地香港作为进军海外市场的桥头堡,可以在大数据领域、虚拟银行、区块链等领域进行联动发展。[2019/1/27]
或者3个公钥中的任意两个对应的私钥生成的签名的组合
两个脚本组合起来形成下面的验证脚本
<SignatureB><SignatureC>2<PublicKeyA><PublicKeyB><PublicKeyC>3CHECKMULTISIG
金色财经现场报道,火币研究院院长袁煜明:并不是所有通证必须落在区块链上:金色财经现场报道,火币研究院院长袁煜明在GoldenBlock 共识·链上未来论坛上在通证经济是否必须落在区块链的问题上表示,并不是所有通证必须落在区块链上,但社会已经对任何商业化公司的公信力丧失信心,只有区块链可以提供通证运行的系统基石。[2018/4/10]
执行时,只有在解锁脚本与锁定脚本设置的条件匹配时,此组合脚本才会评估为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,其唯一目的是修正意外成为共识规则的错误。
来自BabyDoge的可疑推文引起了人们的注意。Binance灵魂绑定Token BAB累计铸造突破39万枚:金色财经报道,据Dune Analytics数据,BNBChain灵魂绑定Token.
1900/1/1 0:00:00加密货币交易所OKX宣布推出备受期待的山寨币,其实用型代币的价格飙升。 可以看出,加密货币交易所OKX的服务代币OKB代币从当天的头几个小时开始就一直在上涨.
1900/1/1 0:00:00在信息化的网络北京下,会有与不熟悉的人进行价值交换,那么在这个过程中怎么防止不受到恶意,来做出正确的决策?区块链技术正好解决这个问题,它是一种无需信任的单个节点,创造共识网络的方法.
1900/1/1 0:00:00CoinMENA提供神秘线索:ShibaInu是下一个大上市吗?CoinMENA是著名的符合伊斯兰教法的数字资产平台,最近发布了关于其下一次潜在上市的重要暗示.
1900/1/1 0:00:00概述 在一个分布有众多节点的体系中,每个节点都具有高度自治的特征。节点之间彼此能够自由衔接,构成新的衔接单元。任何一个节点都可能成为阶段性的中心,但不具备强制性的中心控制功能.
1900/1/1 0:00:00大家好,这里是链客区块链技术问答社区,今天来给大家讲一下,在这个互联网的时代里,计算机专业是否是完美无缺的~也感谢大家的关注! 链客,有问必答! 其实完不完美并不是我们说了算的.
1900/1/1 0:00:00