“Oneblock 百科”是 Oneblock 社区特别策划的 Web3 行业术语和专业概念解读专栏。本栏目将聚焦区块链领域技术基础名词和行业热点新词,从溯源、梳理和解读基本概念入手,为大家呈现高质量的科普向短文。希望能够使 Web3 领域从业者和爱好者快速掌握区块链前沿知识,并给予新手开发者以知识增益,进而在概念释读中获取一些新的启发。下文是本栏目的第十期,将聚焦波卡多重签名账户。
多重签名账户
多重签名(Multi Signature)是区块链上多人联合控制一个账户的功能。拥有某一账户权限的用户发起多重签名操作时,在权限列表内的所有或部分人签名权重之和达到阈值及以上时方可执行。目前,多重签名可被看做是最安全、最受欢迎的大额资产多人共管方案之一。
波卡生态用户可以在基于 Substrate 的链中创建多重签名帐户(multisig)。多重签名由一个或多个地址和一个阈值组成,该阈值定义了需要多少签名者(参与地址)同意提交外部调用才能成功。多重签名账户创建后便不可修改,更改成员集或更改阈值也无法轻易实现,只能通过解散当前多重签名并创建一个新的账户。因此,多重签名帐户地址是确定性的,始终可以通过了解成员和阈值来计算多重签名的地址。
实际用途与操作类型
多重签名账户在波卡生态上有着几种主要用途,包括保护资金安全、实行董事会决策以及鼓励团体参与治理等:
- 保护账户资产:多重签名账户允许使用额外的签署人作为 2FA 机制来保护个人资金。一位签名者可以在一台计算机上,而另一位可以在其他计算机上参与流程。虽然这会降低用户在链上的交互速度,但安全性却能提高几个数量级。
- 董事会决策:企业和基金会等法律实体可以使用多重签名来管理集体的财务资产,并商讨实际的决策行动。
- 参与团体治理:多重签名账户可以行使普通账户的一切权利。同时,多重签名账户能作为 Kusama 中的理事会成员,以实体参与者的身份进行投票决策。
为了更好地发挥实际用途,用户可以使用多重签名帐户执行三种操作类型:
- 执行呼叫:这用于开始或结束多重签名交易。
- 批准呼叫:这用于批准外部签名并传递给下一个签名者。
- 取消通话:这用于随时终止多重签名交易,保障执行过程的安全性。
* 请注意,多重签名是确定的。多重签名地址根据签名者的地址和钱包阈值生成,无论签名者账户排列的顺序如何都始终拥有相同的地址。
创建和使用多重签名账户
以 Alice、Bob 和 Charlie 三位用户为例,创建一个 2-of-3 多重签名账户来共同管理公司资金,具体操作如下:
创建账户
1. 在 Polkadot-JS UI 上的地址簿中添加其他人的帐户。我们将扮演 Alice,但其他两个人也需同样操作一遍,每个人都可以在“帐户”页面上访问自己的帐户。在 Polkadot-JS UI 上,转到“账户”>“地址簿”:
2. 点击右侧的“添加联系人”按钮。输入 Bob 的地址并命名为联系人,然后点击“保存”。
3. 将 Bob 的帐户添加为只读帐户,同时对 Charlie 帐户执行相同操作。三个签名者都需执行此过程将多重签名添加到他们的帐户页面。转到“帐户”并单击“+ Multisig”按钮:
4. 在打开窗口中点击“Available signatories”栏下的 Alice、Bob 和 Charlie 账户,将它们移至“Selected signatories”栏,随后输入阈值;因为我们想要得到 2-of-3 多重签名,所以将其保留为默认值 2;如果想创建 3-of-3 多重签名,则需要将其更改为 3。最后,为多重签名帐户命名并单击“创建”按钮,此时多重签名账户已创建!您可以在“帐户”页面上看到它:
使用账户
经由上述步骤,多重签名账户已经创建并获得资金,Alice、Bob 和 Charlie 可以进行资金交易与账户管理:
(每当发起多重签名交易时,发起者必须预留超过 20 DOT 的押金。具体数量取决于多重签名的阈值)
1. 假定 Alice 作为交易发起人,将 1 WND 的余额转移给 Michalis。点击“Make Transfer”,出现如下画面:
在这里可以看到:
- 发件人帐户——用户的多重签名;
- 签署交易的签字人——Alice;
- 需要复制的多重签名调用数据;
2. 复制“multisig call data”并与 Bob 和 Charlie 共享,他们凭借这条信息完成通话并单击“签名并提交”;Extrinsic 一旦被签名就会发起多重签名调用,并在 Alice 账户中保留一些资金。此外,多重签名帐户旁边会出现一个图标,表示有一个待处理的呼叫需要批准。
3. Bob 能够看到这一信息批准情况,单击“查看待定批准”。出现以下屏幕:
在这里可以看到:
- 发起调用的存款人 Alice;
- 现有批准:1 out of 2, Alice;
- 签署此批准书的签字人 Bob;
4. 在签署交易前,Bob 想验证其签署内容并确保 Alice 没有犯错。他将转到“Developer”>“Extrinsics”,然后选择“Decode”选项卡。通过粘贴多重签名调用数据,可以从即将批准的多重签名帐户中准确看到交易。Bob 给出最后认可后,余额被成功转移。
所有评论