Stafi Protocol
Search…
Stafi Protocol
Stafi 协议
白皮书Whitepaper
Stafi 协议白皮书
Stafi 经济白皮书
Staking
Staking
验证人(SV)
提名人
创建FIS账号
注册验证人
提名验证人
Staking合约
总体介绍
Staking 合约(SC)
特殊验证人(SSV)
rToken
多签账户
FAQ
Powered By
GitBook
多签账户
为了保证Staking资产拥有权始终只受控于用户,不受第三方控制,Stafi设计了一个中间地址来完成此目标,没有任何一个人能拥有此地址的私钥。Stafi通过安全多方计算技术和门限多签技术实现中间地址的资产中立性,保证只有拥有rToken的用户发起赎回时才能执行签名。此中间地址并不会存在一个私钥,更不会存储在Stafi协议上,只有在需要签名的时候,通过多个SSV的私钥共同签名来形成。
大多数链都在底层账户结构上支持了多签。一个账户设置多个私钥,并可以为每个私钥分配权重,当签名的私钥的总权重满足临界值时,即可操作账户里的资产。但复用原链底层的多签功能,对于Stafi来说,既不方便,也不安全。
Stafi的多签账户需要做到签名人是可以轮换的。原链底层的多签功能,大多不支持轮换,或者需要一个超级私钥(owner),来操作轮换。
对于不支持轮换的情况,变通的办法是在轮替时,将当前账户里的资产,转移到一个由新的验证人小组控制的新的多签账户。然而这样做,会使得账户里的资产没法稳定的做Staking,也会白白付出很多交易费用。
对于需要一个超级owner来操作轮换的情况,Stafi更不能接受,因为owner私钥将是最大的安全隐患,既容易发生道德风险,也容易被黑客觊觎。
因而,Stafi的多签需要通过合约层来实现。通过合约来生成多签账户,该多签账户不存在一个owner私钥,而是由合约本身约定了一个公钥列表(也可以说是账户列表),使得该账户可以由列表中的公钥对应的私钥共同控制,合约同时也约定了,列表的一定多少比例的私钥签名,可以操作账户资产,多少比例的私钥签名,可以更新该列表。
控制多签账户的这些私钥背后对应的角色,即SSV
当M-of-N 个SSV签名的时候,即可对多签账户进行以下操作
①持有rToken在用户申请赎回时,操作转出多签账户的资产到用户提供的地址
②操作委托Staking和取消委托Staking.
在多签的具体实现方式上,根据不同的链会有不同的策略,因为在不同的链上编写多签合约,其方法有可能是完全不同的。Stafi需要因链制宜,选择不同的技术路线。当然,在用户端看来,在stafi上委托Staking不同的token,感觉上不会有任何不同。面对复杂性,封装复杂性是Stafi开发团队要做的事情,呈现给用户的永远是归一化的,认知简化的界面。
如上所述,多签账户是一个安全的中间账户,因为:
①免于单个SSV作恶或失职造成影响
单个SSV,无法控制多签账户的资产,另外系统有N-M/M的容错率,个别SSV不签名,不影响相关操作的执行。
②免于多个SSV串通作恶造成资产损失
多个SSV串通面临以下困难,串通是需要时间的,而SSV会定期轮换,且下一个任期(Era)当选的SSV是随机的,无法预测的,这使得串通很难完成。即便串通得逞,也会面临失去应得的奖励和严厉的惩罚威慑,令串通作恶是一种得不偿失的行为。
③ 免于黑客攻击造成资产损失
首先,单个多签账户中的资产量是有限的,不容易成为黑客攻击的目标,其次,多签账户不存在owner私钥,黑客不可能通过盗取一个私钥而成功窃取资产。黑客必须在一个SSV任期内,盗取小组内M个SSV私钥,这个几乎不可能实现。(为了提高安全度,Stafi还会要求SSV定期更换秘钥。)
Staking合约 - Previous
rToken
Next
FAQ
Last modified
1yr ago
Copy link