-
Notifications
You must be signed in to change notification settings - Fork 2
每个CYBEX账户都在创建的时候都进行活跃权限和账户权限的授权,即,每个账户都默认分配了一个活跃权限公钥和一个账户权限公钥。
我们需要知道的是:
- 每个授权都是由一个或一组密钥/账户所组成, 每一个都带有权重值;
- 每个授权都有一个阈值(即,权重值的门槛),当一项操作需要授权进行时,都必须要满足这个门槛才能够被执行。
通过权限管理与授权过程相结合的方式,CYBEX社区成员可以将账户权限授权给冷钱包(Cold Wallet)公钥,确保私钥不触网,防止黑客窃取。同时,可以把活跃权限配置给其他账户,由他人负责账户资金的日常审批。由于账户权限可以对活跃权限的授权人进行调整,就能够确保账户的所有权永远掌握在自己手里。
此外,这个机制还可以确保任何人都可以频繁更换自己账户的密钥, 而其用户的权限则不受影响。
以下几个示例将帮助大家更好地理解这些术语以及它们的使用场景。
假设我们创建了一个新的账户,它的活跃账户权限配置如下(以下内容对账户权限同样适用):
一个平权的多重签名可以由M方参与,其中的N个实体必须进行签名才能使交易生效。我们使用CYBEX账户的权重和阈值来代替M和N,从而更加灵活的实现相同的功能。
假设Alice,Bob,Charlie和Dennis管理一个共同基金,我们希望只要有2个人同意,我们就能构建一个有效的交易,也就是2-of-4(N-of-M)模式。这个策略可以配置成:
账户名 | 权重 |
---|---|
Alice | 33% |
Bob | 33% |
Charlie | 33% |
Dennis | 33% |
阈值 | 51% |
这4个成员每人都有33%的权重,但是阈值设定在50%。这样,至少需要2名成员同意才能获得高于阈值的权重以签署有效交易。
同理,要构建 3-of-4 结构,我们可以降低每个成员的权重值到 17%,或者把阈值门槛提升到 99%。
通过阈值和权重,我们可以为不同成员分配不同的权重,从而对资金管理实现更精细化的权限控制。假设Alice希望通过多重签名机制来提高资金安全性,但又不想给与他的朋友们过多的控制权,那么,我们可以设定这样的授权:
账户 | 权重 |
---|---|
Alice | 49% |
Bob | 25% |
Charlie | 25% |
Dennis | 10% |
阈值 | 51% |
这样,Alice只需要任何一个朋友协助就可以使用资金,而他的3个朋友则必须全部同意才能使用资金。
我们再来看一下,企业常见的对层级组织架构是如何使用CYBEX进行权限管理的。这个公司有一个首席财务官,有多个部门向其汇报,包括:Treasurer, Controller, Tax Manager, Accounting等。同时,公司的首席执行官也要求可以使用公司账户进行支付。我们可以这样设计授权账户的结构:
账户 | 权重 |
---|---|
CEO.COMPANY | 51% |
CFO.COMPANY | 51% |
阈值 | 51% |
CEO.COMPANY和CFO.COMPANY各自拥有下设的授权账户。比如 CFO.COMPANY 账户可设置如下:
CFO.COMPANY | 权重 |
---|---|
Chief.COMPANY | 51% |
Treasurer.COMPANY | 33% |
Controller.COMPANY | 33% |
Tax Manager.COMPANY | 10% |
Accounting.COMPANY | 10% |
阈值 | 51% |
这个设计允许:首席执行官独立使用资金;首席财务官独立使用资金;Treasurer连同Controller一起可以使用资金;Controller或者Treasurer连同Tax Manager或者Accounting可以使用资金。
这样,通过各种授权账户结构设计,可以将权限控制划分为任意层级,从而满足绝大多数企业对资金的管理要求。
交易附带的备注(Memo)是使用备注公钥加密后传输的。为了解密备注信息,需要拥有备注公钥对应的私钥。
CYBEX的备注信息由单独公/私钥对进行管理,默认与活跃权限授权账户的公钥相同。通过将其设置为其他第三方公钥,可以让第三方在没有资金控制权限的情况下读取(只读)备注内容。