比特币上的有状态多重签名 – CoinGeek

比特币上的有状态多重签名 – CoinGeek

这篇文章最初发表于 中等的.

介绍

作为 区块链和加密货币 随着空间的发展,越来越需要加强安全措施来保护数字资产。 应对这一挑战的突出解决方案之一是多重签名(多重签名)钱包。 这些钱包在执行交易之前需要多方签名,提供额外的安全层以防止未经授权的访问和 欺诈罪.

来源: 币台

传统的多重签名钱包需要各方进行带外(链外)通信以收集所有签名。 我们引入了一种智能合约,可以直接在区块链上收集签名。 这 智能合约 跟踪这些签名,一旦达到设定的门槛,资金就可以解锁。 例如,当多重签名组中的各方彼此不认识时,这可能很有用。

传统多重签名钱包

多重签名钱包通常需要 M-of-N 签名(来自一组 N 个参与者的 M 个签名)来授权交易。 这些钱包在管理数字资产方面越来越受欢迎,特别是在以下场景中:

  1. 联名账户,多个家庭成员或商业伙伴需要批准交易。
  2. 托管服务,中立的第三方持有资金直到满足预定条件。
  3. 安全存储,一个用户持有多个密钥以防止未经授权的访问。

传统的多重签名钱包需要在各方之间交换部分签名的交易,然后才能将它们提交到链上。

链上签名集合

我们开发了一个多重签名智能合约,允许在接下来的步骤中收集链上签名。

  1. 智能合约部署在区块链上,指定最小签名数 (M) 和授权签名者列表 (N)。 它有一个状态:到目前为止收集的签名列表,初始化为零。
  2. 每当使用新签名调用合约时,如果它是有效的和新的,它就会被添加到状态中。
  3. 一旦达到阈值 M,智能合约就会支付到预定义的目标地址。

下面是用 sCrypt 编写的完整代码。

它有两个公共方法:

  1. 添加 — 此方法将有效签名和索引作为输入 公钥 它属于。 它首先检查此签名的有效性,如果有效则设置一个标志。
  2. 支付 — 此方法检查是否已达到签名阈值,例如,在此特定示例中为 3 个中的 2 个。 如果是这样,它确保下一个输出将锁定资金支付到存储在“dest”变量中的地址。

完整的代码,连同 测试可以在我们的 样板存储库.

参考

观看:sCrypt 使 BSV 区块链上的智能合约成为可能

Youtube 视频

比特币新手? 查看 CoinGeek 的 比特币初学者 部分,了解更多关于比特币的终极资源指南——正如中本聪最初设想的那样——和区块链。


阅读更多

About crypto

Check Also

随着价格回升,Michael Saylor 公布了重要的比特币声明 — TradingView 新闻

随着价格回升,Michael Saylor 公布了重要的比特币声明 — TradingView 新闻

截至今天周日下午,比特币价格 …

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注