没,没有摘要~
本文不会对签名方案展开算法上的研究,RSA都头大的我是不会强迫自己学习Schnorr、ECDSA···的。╮(╯▽╰)╭
去年,受到EOS多权限分权重的账号管理模式影响,又在老班的威逼利诱下写了“基于以太坊的多重签名”创新创业计划书,最后竟然还拿奖了。市里给了3000报销额度,转手就搭了图床:cnmf.net.cn(欢迎巨佬们换友链)。现在总结下自己的理解。作为ctf端茶手,初次涉及合约,不好、有错之处,老爷们请随意摩擦。
多重签名就是多个用户对同一个消息进行数字签名的过程。 在最早的btc中也是只能通过一个私钥进行管理。这样出现了很多问题。例如:无法满足权限的分配,一个私钥容易导致丢失等。对于一个可靠安全的系统来说,不能没有‘免疫单点故障’的能力,最初是通过秘钥分片(Secret Sharing Scheme)来解决这个问题的。通过将秘钥分开保存,需要使用时再集合到一起。然而这个鸡肋的方法被多重签名取代了。 在BIP11(https://github.com/bitcoin/bips/blob/master/bip-0011.mediawiki)也就是M-of-N Standard Transactions这个提议被通过后,btc可以使用多签的方式发布一个交易。只要N个中的M个私钥持有者同意这笔交易才能进行部署。
在以太坊合约中,‘多签机制’被发挥的更加灵活出色。在合约中我认为这是一种“将多个签名交易打包成数组待确认”的方法,并不是传统意义上的基于算法的签名。例如在辉哥的《无多签硬件钱包时,如何实现以太坊通证的多签合约?》这片文章中,实现了可商用的多签合约例子,通过判断待审批事务的确认数来确认是否通过执行。还有组里Leo大佬对WeIdentity中权限控制的多签升级,通过对一个交易的签名数变量控制来判定是否执行。在师傅们的肩膀上,我也完成了一个合约中的多签控制。https://github.com/xiaoyue2019/mul_sig_eth。不过,好像在EIP-191提供了合约中处理签名的方法。那么是不是在合约中处理多签就方便好多了?
如果觉得我的文章对您有用,请随意打赏。你的支持将鼓励我继续创作!