EOS 的多签账户是如何工作的?
原文由 EOS Amsterdam 团队撰写,将 EOS 账户的权限和多签讲得很清楚,非常值得一读。
多签账户通常指需要两个或多个密钥授权(一定权限),才能进行交易的账户,常用于资产的安全存储,是 EOS 非常重要的一个特性。然而,多签账户是如何工作的?如何使用不同的密钥来完成交易?自己如何设置多签账户?本文将深度解析多签账户的多个维度。
在开始介绍多签账户之前,有必要先认识一下 EOS 的默认账户结构。如果你想深入了解 EOS 账户,可以阅读我们的全面指南。如果只想学习 EOS 默认账户结构方面的问题,请阅读以下内容。
每个 EOS 用户都或多或少拥有一个或多个账户。EOS 账户是人类可读的身份标识,存储在区块链上,任何账户上的有效交易都要求记录到 EOS 区块链上。
EOS 账户由 12 个字符组成,可含有 a-z 的英文字母和 1-5 的数字。这些账户名取代了在大部分加密货币世界里冗长复杂的钱包地址。
每个 EOS 账号都有对应的权限。权限指的是完成交易所需要满足的条件。每个权限都有与之关联的具体操作。默认的 EOS 账号有 2 个权限:
Owner:象征了账户的拥有权。改变账户拥有权需要该权限的许可。鉴于大部分工作无需用到此类私钥,该私钥最好离线保存。
Active:用于转账,节点投票,及其他高级别账户变动。
除了这两种权限,用户还可以创建新的常规权限,以满足自身需求。
每个权限均有与之关联的密匙,反之亦然,并且每个权限都有相应的权重。交易均需要在满足权限的情况下进行。
上图展现了 EOS 默认权限结构 (来源:EOSIO 开发者网站)
为了帮助你更好地理解,我们将 EOS 默认权限结构总结为上图。?owner?权限的默认阀值为 1 ,对应一个权重为 1 的密钥。active?权限也一样,默认阀值的权限为 1,对应一个权重为 1 的密钥。也就是说,在进行需要?owner?或?active?权限认可的交易时,只需 1 个 对应?owner?或?active?权限的密钥即可。
和?owner?权限对应的密钥常被称为 ?owner?key。
和 active 权限对应的密钥常被称为 active key。
在清楚 EOS 账户默认的组织构架后,我们能够更好地学习 EOS 的多签。多签账户与默认账户类似,主要的差别体现在权限架构上。在默认的 EOS 账户中,所有权限的默认阀值均为 1,与权重为 1 的密钥相关联。然而,在 EOS 多签账户内,权限的阀值可为 2 或者更高,可有多把权重不一的密钥。这也意味着 EOS 多签账户内的任何交易都需要多把密钥的签名。
上图展现了多签权限结构(来源:EOSIO 开发者网站)
上图展现了多签权限结构,和默认账户相似,多签账户同样有?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 账户了,请看下文。
请注意:改变账户权限架构有可能使你的账户无法登陆,无法恢复,请谨慎操作。
我们将演示一个案例,创建一个可与朋友分享的账户。这个账户有以下权限架构:
示例账户的权限架构(来源:?EOSIO 开发者网站)
在这个例子里,owner 权限的阀值为 2,有两把密钥 —— 一把是你的?active key,一把是你朋友的?active key,两把私钥的权重均为 1。这就意味着,一笔交易执行,需要你们二人的?active key?共同签署。
active?权限的阀值为 1,有两把密钥 —— 一把是你的?active key,一把是你朋友的?active key,两把私钥的权重均为 1。这就意味着,一笔交易只要你或者你朋友的任意一把active key签署了,就可执行。
下面我们来升级权限结构,把这个账户升级为多签账户。我们会在这个教程中使用到?EOSToolkit。请浏览 “高级权限” 页面,点击这里。在页面上方左侧点击 “Attach Account” (添加账户)来链接你想要升级的账户,并通过 Scatter 验证链接。
升级 active 权限
首先升级?active?权限,请在表格内填入正确信息,然后点击 “Update”(升级),使用 Scatter 确认交易。在确保无误的情况下,可自由选择自己喜欢的权限架构。
升级 owner 权限
active?权限升级完成后,接下来可进行?owner?权限升级。请再次在表格内填入正确信息,并点击 “Update”(升级)。
为了确保无误,你可以通过区块链浏览器如?bloks.io,前往个人账号页面的 “Keys” 模块,查询权限架构。
现在你已经成功开通了一个多签账户,你可以开始创建、签署以及提交多签交易。我们将为你解释整个操作过程。首先打开?EOSToolkit,确认你的账户已经连接并通过点击左边菜单的 “单签模式” 选项切换到 “多签模式”。
现在我们来发起一笔代币转账交易。请点击左边菜单列表的“代币转账”选项。
多签交易创建第一步
正确填写信息后点击“发送”。发送者账户会自动填写。点击“发送”按钮后网页会自己跳转到“创建交易”界面,我们将在这个界面创建交易。
创建多签交易
正确填写信息后,由于转账权限限制了你必须使用?active?权限。填完所有信息后点击“创建 JSON”,签署交易并下载 JSON 文件。
成功创建订单后,我们需要登录账户进行交易签署。打开 “交易签署” 界面,确认你的 Scatter 账户接入无误后,加载刚刚创建的 JSON 交易文件。完成上述步骤后点击“签署交易”,完成后下载 JSON 签名文件
多签交易签署
在你签署订单之后确保其他(必要的)各方都签署了交易并收集签名。随后向他们发送 JSON 交易文件(不是你刚下载的 JSON 签名文件)。通过上述步骤,你可以立即发起交易,因为达到了?active?权限阈值,但是通常来说都是其他方先签署交易。
所有人签署交易完成后,将收集所有签名提交到交易网络上。如需此操作请跳转到“提交交易”页面。
提交多签交易
先载入 JSON 交易文件再添加签名文件。完成上述步骤后点击“提交交易”并确认上传。
一切顺利的话,祝贺你完成了第一次多签交易的创建、签署以及提交。
EOS 主网创世节点。BOS 主网节点。WAX Guild 候选人。姐妹链 Europechain 合作伙伴。参与区块链项目投资,治理、跨文化合作、安全领域专家。你可以通过以下方式联系我们:
EOS节点名称: eosamsterdam
BOS节点名称:amsterdambos
WAX Guild 用户名:amsterdamwax
免责声明:EOSwriter 不为本页面内容或产品背书,我们尽全力为读者提供所能获得的重要信息。在做与本文内容相关的决策前,建议读者进行完整的独立研究分析,并为自己的决策负完全的责任。在此声明,本文非投资建议。