可能是最靠谱不忽悠的区块链资讯平台
导
导读
为了改善当前基础设施的脆弱性,提高网络的寿命,EOS42正与其他社区成员合作,为完整的历史节点提供一个可扩展的解决方案。
在许多关于区块链的文章之中,你会听到“多签”这个词,那么,EOS区块链中多签是什么呢?
今天EOS42章经的内容,我们一起来聊一下多签,权限的阈值,权重等概念。希望有助于理解。
多签是什么?
前面我们提到,发起一笔交易需要得到账号的授权,就像是给一张支票盖上公章,这张支票才有效。
而在多签的情况下,一笔交易,需要经过多人的同意,才可以生效,比如,如果你想要买一台PSP,那么,自己同意了不算,也得经过女朋友或者老婆大人的同意才行。
另外一个比喻,来自阿华区块链:
多签,类似于一个保险箱上了两把锁(或更多),需要两把钥匙(或更多)同时才能打开。
默认情况下,用一把锁就够了,只需要一把钥匙就可以授权交易;不过,在一些重要的交易类别中,就需要用到多签了。
例如,我们在EOS社区之中通常会听到这样的新闻: 某个提案,需要经过前21个节点之中的15个签名,这一提案才能够通过。这种场景,用到的就是多签。
再如,为了提升账号资产的安全性,可以将账号的权限修改为多签,进行对应操作的时候,需要用多个钥匙进行解锁/授权,才能够发起交易。
多签的案例: chintai租赁平台
EOS42创建的EOS资源租赁平台 Chintai,其智能合约账户就是一个设置了多签保护的例子。
https://eosflare.io/account/chintailease
chintailease这个账号的权限,由主网上的11个节点(出块节点或者备用节点)来共同保护,如果需要调用owner权限,则需要11个节点之中的6个节点共同签名授权,才可以。借助这样的方式,来确保了平台不会因为单个账号的私钥遇到问题,而遭到攻击。
Chintai的多签账户若想攻破,有两种方式,要么贿赂了Chintai的11个BP赞助者中的至少6个,形成合谋,或者,一个黑客获得11个私钥中的6个而将Chintai账户攻破。如果检测到有任何的恶意活动,Chintai还有一个“暂停”功能,可用于快速锁定平台。
此外,假设说Chintai的这11名赞助者中有6名都被贿赂了,在这种情景下有理由推断,整个EOS网络也都会受到威胁了。如果你相信你的个人账户中的EOS是安全的,那么, 你也有同样的理由相信Chintai 的安全性,因为 Chintai 也得到了同样的安全保障。
更多的介绍,可以参考:
https://bihu.com/article/1510040
权限的阈值和权重
多签涉及到了两个核心的概念:
阈值(threshold),默认为1. 在上图之中,chintailease的owner权限的阈值是6;
权重(weight), 默认为1. 对chintailease具有共同控制权的这些账号,他们各自权限所对应的权重为1.
这就意味着,需要调用owner权限的时候,至少需要权重 >= 6才可以,因为每个账号的权重为1,就意味着需要6个账号一起授权,才能够调用owner权限。
我们做个假设(下图只是为了更进一步说明阈值和权重的关系,不是真实的情况):
如果将前三个账号权限所对应的权重从1,修改为2,而阈值不变,仍然为6,则,只需要前3个账号权限来授权,(2+2+2), 就可以符合阈值的要求了。
扩展:如何设置多签?
现在的手机钱包,大多数仍然没有提供多签的功能。不过,你可以通过Scatter插件钱包 配合网站工具的方式,来实现多签。
如果懂一些编程的话,多签也可以通过命令行界面来设置,出块节点们就是这么做的。
设置多签的流程
1. 将账号权限改为多签权限
默认情况下,一个账号的权限都是只绑定了一个公钥的。如果需要采用多签的方式,首先,要将账号的权限改为多签的方式。
比如,我们将某个账号的active权限的阈值修改为2,并且,绑定两个公钥,每个公钥所对应的权重设置为1.
默认情况下的账号:
修改为多签之后的账号:
2. 创建多签交易
3. 多个公钥/账号的权限分别签名
4. 提交多签交易。将签名之后的交易,发送到区块链上。
这是多签的基本流程。
EOS42 开创去中心化的未来
EOS42的账号为: eos42freedom。
请为EOS42投票,支持我们继续不停开拓去中心化解决方案的未来。
领取专属 10元无门槛券
私享最新 技术干货