这篇文章最初发表于 中等的.
介绍
作为 区块链和加密货币 随着空间的发展,越来越需要加强安全措施来保护数字资产。 应对这一挑战的突出解决方案之一是多重签名(多重签名)钱包。 这些钱包在执行交易之前需要多方签名,提供额外的安全层以防止未经授权的访问和 欺诈罪.
传统的多重签名钱包需要各方进行带外(链外)通信以收集所有签名。 我们引入了一种智能合约,可以直接在区块链上收集签名。 这 智能合约 跟踪这些签名,一旦达到设定的门槛,资金就可以解锁。 例如,当多重签名组中的各方彼此不认识时,这可能很有用。
传统多重签名钱包
多重签名钱包通常需要 M-of-N 签名(来自一组 N 个参与者的 M 个签名)来授权交易。 这些钱包在管理数字资产方面越来越受欢迎,特别是在以下场景中:
- 联名账户,多个家庭成员或商业伙伴需要批准交易。
- 托管服务,中立的第三方持有资金直到满足预定条件。
- 安全存储,一个用户持有多个密钥以防止未经授权的访问。
传统的多重签名钱包需要在各方之间交换部分签名的交易,然后才能将它们提交到链上。
链上签名集合
我们开发了一个多重签名智能合约,允许在接下来的步骤中收集链上签名。
- 智能合约部署在区块链上,指定最小签名数 (M) 和授权签名者列表 (N)。 它有一个状态:到目前为止收集的签名列表,初始化为零。
- 每当使用新签名调用合约时,如果它是有效的和新的,它就会被添加到状态中。
- 一旦达到阈值 M,智能合约就会支付到预定义的目标地址。
下面是用 sCrypt 编写的完整代码。
它有两个公共方法:
- 添加 — 此方法将有效签名和索引作为输入 公钥 它属于。 它首先检查此签名的有效性,如果有效则设置一个标志。
- 支付 — 此方法检查是否已达到签名阈值,例如,在此特定示例中为 3 个中的 2 个。 如果是这样,它确保下一个输出将锁定资金支付到存储在“dest”变量中的地址。
参考
观看:sCrypt 使 BSV 区块链上的智能合约成为可能
比特币新手? 查看 CoinGeek 的 比特币初学者 部分,了解更多关于比特币的终极资源指南——正如中本聪最初设想的那样——和区块链。
阅读更多