多签账户通常指需要两个或多个密钥授权(一定权限),才能进行交易的账户,常用于资产的安全存储,是 EOS 非常重要的一个特性。然而,多签账户是如何工作的?如何使用不同的密钥来完成交易?自己如何设置多签账户?本文将深度解析多签账户的多个维度。

打开网易新闻 查看精彩图片

EOS 默认账户的架构

每个 EOS 用户都或多或少拥有一个或多个账户。EOS 账户是人类可读的身份标识,存储在区块链上,任何账户上的有效交易都要求记录到 EOS 区块链上。

EOS 账户由 12 个字符组成,可含有 a-z 的英文字母和 1-5 的数字。这些账户名取代了在大部分加密货币世界里冗长复杂的钱包地址。

每个 EOS 账号都有对应的权限。权限指的是完成交易所需要满足的条件。每个权限都有与之关联的具体操作。默认的 EOS 账号有 2 个权限:

Owner:象征了账户的拥有权。改变账户拥有权需要该权限的许可。鉴于大部分工作无需用到此类私钥,该私钥最好离线保存。Active:用于转账,节点投票,及其他高级别账户变动。除了这两种权限,用户还可以创建新的常规权限,以满足自身需求。

每个权限均有与之关联的密匙,反之亦然,并且每个权限都有相应的

权重

权重

权重

。交易均需要在满足

权限

的情况下进行。

打开网易新闻 查看精彩图片

上图展现了 EOS 默认权限结构 (来源:

EOSIO开发者网站

EOSIO开发者网站

EOSIO开发者网站

为了帮助你更好地理解,我们将 EOS 默认权限结构总结为上图。 owner 权限的默认阀值为 1 ,对应一个权重为 1 的密钥。active权限也一样,默认阀值的权限为 1,对应一个权重为 1 的密钥。也就是说,在进行需要 owner 或 active 权限认可的交易时,只需 1 个 对应 owner 或 active 权限的密钥即可。

和 owner 权限对应的密钥常被称为 owner key。

和 active 权限对应的密钥常被称为 active key。

多签 EOS 账户是如何运行的

在清楚EOS账户默认的组织构架后,我们能够更好地学习EOS的多签。多签账户与默认账户类似,主要的差别体现在权限架构上。在默认的EOS账户中,所有权限的默认

阀值

阀值

均为1,与

为1的密钥相关联。然而,在EOS多签账户内,权限的

可为2或者更高,可有多把

不一的密钥。这也意味着EOS多签账户内的任何交易都需要多把密钥的签名。

打开网易新闻 查看精彩图片

上图展现了多签权限结构(来源:

上图展现了多签权限结构,和默认账户相似,多签账户同样有owner 和 active 两种权限。

但是,在多签账户内,owner权限的阀值为 3,有 3 个密钥。来自 John 账户的 active 密钥的权重为 2,来自 Bob 账户的 active 密钥的权重为 1,来自 Stacy 账户的 active 密钥权重也为 1。也就是说,一笔交易,需要 John 的密钥和 Bob(或 Stacy)的密钥共同签署,才能执行。

在多签账户内的active 权限阀值为 2,有 3 个所关联的密钥。John 账户中 active 密钥权重为 1,Bob 账户中 active 密钥权重为 1,Stacy 账户中 active 密钥权重也为 1。这就意味着,一笔交易,需要他们三人中的任意两把密钥共同签署,才能够执行。

创造一个 EOS 多签账号

在熟悉多签账户后,我们可以再来看看自己如何创造一个多签账户。在创造多签账户前,你需要建立一个默认 EOS 账户,然后再将其转变为多签账户。如果你还没有 EOS 账户,你可以跟着我们的指南一起来创建一个。如果你已经有 EOS 账户了,请看下文。

请注意:改变账户权限架构有可能使你的账户无法登陆,无法恢复,请谨慎操作。

我们将演示一个案例,创建一个可与朋友分享的账户。这个账户有以下权限架构:

打开网易新闻 查看精彩图片

示例账户的权限架构(来源:

在这个例子里,owner 权限的阀值为 2,有两把密钥 —— 一把是你的 active key,一把是你朋友的 active key,两把私钥的权重均为 1。这就意味着,一笔交易执行,需要你们二人的 active key共同签署。

active权限的阀值为 1,有两把密钥 —— 一把是你的 active key,一把是你朋友的 active key,两把私钥的权重均为 1。这就意味着,一笔交易只要你或者你朋友的任意一把active key签署了,就可执行。

下面我们来升级权限结构,把这个账户升级为多签账户。我们会在这个教程中使用到EOSToolkit。请浏览“高级权限”页面,点击这里。在页面上方左侧点击“AttachAccount”(添加账户)来链接你想要升级的账户,并通过Scatter验证链接。

打开网易新闻 查看精彩图片

升级 active 权限

首先升级

active

权限,请在表格内填入正确信息,然后点击“Update”(升级),使用Scatter确认交易。在确保无误的情况下,可自由选择自己喜欢的权限架构。

打开网易新闻 查看精彩图片

升级 owner 权限

active 权限升级完成后,接下来可进行 owner权限升级。请再次在表格内填入正确信息,并点击 “Update”(升级)。

为了确保无误,你可以通过区块链浏览器如 bloks.io,前往个人账号页面的 “Keys” 模块,查询权限架构。

创建、签署并提交多签交易

现在你已经成功开通了一个多签账户,你可以开始创建、签署以及提交多签交易。我们将为你解释整个操作过程。首先打开 EOSToolkit,确认你的账户已经连接并通过点击左边菜单的 “单签模式” 选项切换到 “多签模式”。

创建多签交易

现在我们来发起一笔代币转账交易。请点击左边菜单列表的“代币转账”选项。

打开网易新闻 查看精彩图片

多签交易创建第一步

正确填写信息后点击“发送”。发送者账户会自动填写。点击“发送”按钮后网页会自己跳转到“创建交易”界面,我们将在这个界面创建交易。

打开网易新闻 查看精彩图片

创建多签交易

正确填写信息后,由于转账权限限制了你必须使用active 权限。填完所有信息后点击“创建 JSON”,签署交易并下载 JSON 文件。

多签交易签署步骤

成功创建订单后,我们需要登录账户进行交易签署。打开“交易签署”界面,确认你的Scatter账户接入无误后,加载刚刚创建的JSON交易文件。完成上述步骤后点击“签署交易”,完成后下载JSON签名文件

打开网易新闻 查看精彩图片

多签交易签署

在你签署订单之后确保其他(必要的)各方都签署了交易并收集签名。随后向他们发送 JSON 交易文件(不是你刚下载的 JSON 签名文件)。通过上述步骤,你可以立即发起交易,因为达到了 active 权限阈值,但是通常来说都是其他方先签署交易。

提交多签交易

所有人签署交易完成后,将收集所有签名提交到交易网络上。如需此操作请跳转到“提交交易”页面。

打开网易新闻 查看精彩图片

提交多签交易

先载入 JSON 交易文件再添加签名文件。完成上述步骤后点击“提交交易”并确认上传。

一切顺利的话,祝贺你完成了第一次多签交易的创建、签署以及提交。

声明:本文已加入由力场发起的「 好文流动计划」。作者:懂币