Skip to content
Language

如何处理具有时间延迟的多签名账户

SA
Sarah Chen
8 min read 61 views

EOS 的权限管理系统允许用户设置具有交易延迟的 EOS 账户的权限管理结构,这涉及到权限中的等待权限角色。等待的概念,也称为交易延迟,基于以下原则:如果提案已获得所有其他授权角色的批准,但其综合权重仍然不足以达到阈值,则等待将在设定的延迟时间后自动将其权重添加到提案中。如果提案的权重达到阈值,则提案将成功批准。

这种交易延迟的好处是什么?例如,假设某个组织的 EOS 账户需要由该组织委员会的五名成员共同管理,并且必须至少有两名成员批准所有账户交易。在这种情况下,账户可以设置交易延迟权限(等待),以确保如果某些成员恶意行事,其他成员有足够的时间阻止意外交易被执行。

设置交易延迟可以显著提高账户的安全性。

接下来,我们来讨论如何设置具有等待权限角色的权限结构,即交易延迟权限,以及如何发起需要延迟的交易提案。

I. 设计权限结构

在设置权限之前,我们必须根据预期设计权限结构。在本教程中,我们将账户的 active 权限设置为多签名管理结构。在此权限结构下,如果两个新添加的账户想要执行交易,则两者都需要批准该提案,并且提案只能在两者都批准后 24 小时(86400 秒)后执行。账户的 Active 权限结构设计如下:

Active 权限(阈值:3):

  • 原始密钥(权重:3)

  • 账户 A @active(权重:1)

  • 账户 B @active(权重:1)

  • 等待:86400(权重:1)

II. 设置多签名权限

在这里,我们使用区块链浏览器 bloks.io 的高级权限管理功能来设置账户的多签名权限。

如果您在桌面上访问 bloks.io,请点击页面右上角的登录,通过 Anchor 钱包或其他桌面钱包登录。

然后,如上图所示,点击钱包‎‎‎‏ --> 密钥和权限 --> 高级 --> 权限 #2: active如果您要修改所有者权限,请点击 权限 #1: owner 在位置 4)。

如果您在手机上访问 bloks.io,请点击页面右上角的登录,通过 Anchor 钱包或其他手机钱包登录。

然后,如上图所示,点击钱包 --> 密钥和权限 --> 高级 --> 权限 #2: active如果您要修改所有者权限,请点击 权限 #1: owner 在位置 4)。

按照这些步骤,您将进入权限结构设置界面。点击位置 5 的添加账户以添加多签名管理账户输入字段。

在本教程中,我们设置了两个多签名管理账户,因此我们点击位置 5 两次。然后,在出现的 7、8、9 和 10 位置的输入字段中,分别输入阈值、权重(即我们在权限结构中设计的权重)、账户名称和使用的账户权限。

在我们设计的权限结构中,阈值为3,每个账户的权重为1,账户使用的权限为active

点击位置 6 的添加等待以添加等待权限输入字段。然后,在位置 11 和 12 的输入字段中,分别输入等待权限的权重和延迟时间值(以秒为单位)。在我们设计的权限结构中,等待的权重为1,延迟时间值为86400

正确填写后,点击位置 13 的保存以保存和更新权限设置。点击 13 后,将弹出一个对话框以验证账户管理钱包。验证后,权限管理结构将更新。

如上图所示,提交验证后,刷新 bloks.io 的权限管理界面,将显示最新的权限管理结构。

III. 发起多签名转账提案

要发起多签名转账提案,我们仍然使用 bloks.io。任何 EOS 账户都可以为任何 EOS 账户发起多签名提案。但是,由于具有足够权重的多签名账户的管理密钥可以独立完成交易授权操作,而无需经过多签名,因此提案通常由其他账户发起,而不是由多签名账户本身发起。通常,这是参与多签名的管理账户之一。在下面的示例中,我们使用参与多签名的管理账户之一。

要发起多签名提案,我们首先需要将 bloks.io 切换到多签名模式。如上图所示,在点击右上角的账户后出现的窗口中,将多签名模式右侧的开关设置为蓝色并打开。

注意:

多签名模式 打开时,任何操作都会发起多签名提案。本教程将向您展示如何发起多签名转账提案。其他类型的交易也是类似的。只需打开 多签名模式,然后继续。

然后,如上图所示,点击 1 钱包 --> 2 转账代币 --> 3 转账代币

然后,在位置 4 和 5 出现的输入字段中输入接收 EOS 账户和金额。您也可以在转账金额后选择代币类型,默认为 EOS 代币。

填写后,点击位置 6 的按钮,界面将跳转到如下所示的转账提案发起界面。

根据所选的转账代币,合约地址将使用相应的合约账户填写。位置 4 和 5 的接收账户和转账金额也将自动填写为我们之前输入的账户和金额。

在此界面的位置 1 和 3 的输入字段中,我们输入将执行此提案中的操作,即我们刚刚设置的多签名管理账户。在位置 2,输入执行此提案的操作的权限。如果使用所有者权限,则输入所有者;如果使用管理器权限,则输入活动。我们刚刚设置了活动权限,因此我们应该输入活动。(我们通常使用活动权限。)

向下滚动页面,如上图所示,在位置 6 显示提案名称。系统将填写默认名称,但也可以修改。位置 7 和 8 是用于授权提案的多签名账户的管理账户。参与多签名管理的所有账户及其相应的权限(活动或所有者)将根据多签名账户的权限设置填写。

填写上述信息后,点击位置 9 的显示以显示更多转账设置。

如上图所示,在位置 10 输入账户权限中等待设置的延迟时间值。在我们的示例中,设置为86400,即 24 小时。填写后,点击位置 11 的提案以发起提案。签署交易后,转账提案将成功发起。

IV. 批准和执行提案

要批准提案,我们首先需要找到提案。我们可以在 bloks.io 的以下链接页面搜索提案:

https://www.bloks.io/msigs

您可以搜索发起提案的账户或提案名称来找到提案。您也可以直接在发起提案的账户的交易记录中找到提案。找到提案后,点击提案名称进入提案详情页面,如下所示。

如上图所示,在登录参与多签名授权的账户后,您可以点击上方红箭头指示的位置的批准来批准提案。验证账户管理钱包后,批准将成功。

注意,授权提案需要关闭多签名模式。

我们提案中的所有授权账户的权重总和(1+1=2)小于设置的阈值 3,因此必须让等待参与提案才能批准和执行。这也是为什么我们在发起提案时必须设置交易延迟的原因。在此延迟后,等待将自动将其对应的授权权重添加到授权权重中。因此,我们的提案将在两个参与多签名账户都成功授权后开始计算。 86400 秒(24 小时)后,提案的授权权重将为 1+1+1=3,等于设置的阈值,提案将成功批准。

在最后一个授权账户批准并延迟 86400 秒(24 小时)后,任何账户都可以点击多签名提案界面中的执行来执行提案。执行完成后,转账完成。

总之,具有交易延迟的多签名账户设置已完成,并且已为该账户发起了一个转账多签名提案。


作者:Josh Chung
编辑:Markus Hinrichs, Randall Roland


来源和参考:


Last updated:

Was this article helpful?

Have a specific question about this article?