Author

Topic: [BTS]比特股2.0: 动态用户权限系统简介 (Read 589 times)

hero member
Activity: 658
Merit: 500

結論 (Conclusion)
 
具备动态, 阶层式, 以及门槛的多重签名权限提供用户以及组织一种更为自然的方式来表达所有权以及控管政策.  这个方式让系统更易于使用, 并且比现存方案更加安全.
 
致谢 (Credits)
 
Ripple曾经提出, 但是并没有实现类似的多重签名特性.
 
阅读英文原文: https://bitshares.org/technology/dynamic-account-permissions/
原作者: bytemaster
译者:麥可貓
BTS帐号:michaelcat
稿源(译):比特股之家(http://www.bts.hk/dynamic-account-permissions.html)
免责声明:本文为转载,仅为传播消息之用,不代表比特时代建议,炒币有风险,投资需谨慎!!!


声明:部分文章转自互联网,如该转载不符合您的意愿或侵犯您的版权,请您与我们联系,我们会尽快删除。
hero member
Activity: 658
Merit: 500

可延展性 (Scalability)
 
理论上, 帐号可以形成任意深度的阶层, 而验证这个阶层的时间也可以是任意的. 但是实务上, 单一转帐无法穿越超过两个阶层,又同时完全在区块链上实现.  任何超过两个以上的阶层可能或牵涉许多人, 并且无法一次完成所有签署.  取而代之的方法则是, 使用建构于区块链的交易机制来追踪部份完成的交易.
 
透过这个方法, 一个公司的董事会成员可以用他的计算机批准一笔交易.
 
接著另一个人可以再用相同的方式进行批准.
 
这个程序就会逐渐搜集所有的批准以及相伴的手续费, 并且不需要外部的处理.
 
怪圈 (Cycles)
 
理论上有可能会发生两个帐号需要互相批准交易的状况.
 
假想以下状况: 帐号X需要帐号A以及Y来进行批准. 帐号Y需要帐号B以及X来批准. 因此整个情况像是这样:
 
A -> X <-> Y
 
B -> Y <-> X
 
A提出X支付1 BTS并等待Y批准. B提出Y批准这笔交易, 并等待X的批准.
 
这种情况下, 没有任何单一的批准可以解决这个状况, 原因如下:
 
每一个帐号都得等待另一个帐号的批准, 因此任何操作都无法通过.
 
这种怪圈不一定是直接的, 也有可能是埋藏在任意的长度以及顺序, 因而不明显.
 
如果用户用现用密钥 (active authority)提出一笔交易, 那么持有者密钥 (owner authority)就可以用来打破这个怪圈; 然而, 如果怪圈是透过持有者密钥以及现用建构的, 那么牵涉其中的帐号就被锁住了.
 
实务上客户端软件可以侦测这种怪圈, 并避免形成这种情况.
 
hero member
Activity: 658
Merit: 500

现用所有权 (active authority)是作为一种快捷方式 (hot key), 可用于除了变更持有者权限 (owner authority)以外的任何操作.
 
这样的设计的实用之处在于, 可以让双因素身份验证 (2FA)供应商作为现用所有权(active authority)的共同签署人之一, 但是并不牵涉到持有者权限 (owner authority).
 
透过这种方式, 用户可以很有自信地说, 他们的帐户永远都在他们手中, 并且在冷贮存时没有黑客可以窃取.  这表示公司帐号可以透过这个方式获取董事会的批准, 而每个董事会成员也可以获取双因素身份验证.
 
同时任何人都可以频繁更换自己的密钥, 而其用户的权限则不受影响.
 
搜集签名 (Gathering Signatures)
 
过去以来,多重签名难以实施的原因在于,搜集各个签名的程序是完全手动的,或者需要经过特殊的框架。一旦签署了交易,也没有办法撤销签名,因此多重签名的多方中, 越后面签名的优势会越大。在更深层的结构底下,获得各方签名就更加复杂了。
 
为了简化这个程序,区块链应该透过追踪部份完成签名的交易,来管理搜集签名的程序。在这个过程中,每个帐号可以添加(或移除)他们的签名,而不需要一个外部系统来循环处理这笔交易.  这一点对于具有各种深度的阶层结构更为关键.
 
为了让权限系统维持在区块链上, 每一笔交易将只能够横跨两个阶层.  如果超过两个阶层, 帐号必须要再提出一笔交易来批准上一个.  当第一个交易获得批准, 第二个交易也会获得批准.
 
透过这个方法, 每个人在每一次批准操作时都需要支付一次手续费, 而每一个操作最多需要一次网络的签名验证.  这个程序允许任意深度的阶层结构, 并且不需要让权限系统由于执行在区块链以外而暴露出弱点.
 
hero member
Activity: 658
Merit: 500

 
方案 (Solution)
 
我们引入了一个新的方式来实现权限, 基于全球唯一ID的帐户.
 
在比特股系统当中, 一个帐户可以本身没有密钥, 而是完全由其他帐号进行认证.  而其他帐号也可以是由另一群帐号所认证. 这个过程就会形成一个帐号的阶层结构来进行权限的批准.  每个帐号可以独立于上层帐号之外变更自己的权限, 这样一来就使得权限具备动态的能力.
 
每个帐号定义权限的方式, 是透过一组密钥以及/或是其他帐号的ID, 让每个帐号持有者给予权重分数. 如果综合权重分数超过了设定的门槛, 权限就获得通过.
 
第二个方案就是要在共识机制当中, 加入部份签署的交易, 并允许帐户发布交易来添加或移除他们的授权.  这会简化签署的流程, 允许在尚未达到门槛之前有改变心意的空间, 并在获得最后的批准时让交易立即生效.
 
这个执行交易的过程需要多重签名的能力:
 
某人提出了一个交易并用自己的帐号进行批准.
 
接著其他帐号持有者透过广播交易, 来表达对于提案的”赞成”或”反对”.
 
当提案获得了所有的批准, 这笔交易就会通过.
 
持有者密钥以及现用密钥 (Owner and Active Keys)
 
每个帐号都会被指定两个所有权 (authority): 持有者所有权 (owner authority)以及现用所有权 (active authority).
 
每个所有权都是由一组密钥以及/或是帐号所组成, 每一个都带有权重分数.
 
每个所有权都有一个权重分数的门槛, 当一项操作需要这个所有权时, 都必须要满足这个门槛才能够进行.
 
持有者所有权 (owner authority)是为了冷贮存 (cold-storage)所设计, 其主要功能是在于更新现用所有权 (active authority)或是变更持有者所有权 (owner authority).
 
hero member
Activity: 658
Merit: 500





 
副标题: 适用于企业环境的管理方案 (Management for the corporate environment)
 
比特股的权限设计是以人为对象, 而非以密码学为对象, 因此更能够易于使用.  每一个帐号都可以透过任何其他帐号以及私钥的加权组合进行控管. 透过这样的设计, 就可以创造出阶层式的结构, 以反映出真实情况下的权限管理, 并让多用户的资金控管十分容易.  多用户管理 (multi-user control)是决定安全性的一大要素, 当设置得宜时, 便可以消除黑客入侵造成的财务损失.
 
背景 (Background)
 
对于一个平台来说, 进行区块链上的机敏作业时需要的多重数位签名功能, 是决定平台安全的重要因素.  原因在于: 单一秘钥或许会外泄, 但是多组密钥 -- 分布在许多地方, 并且加上额外的保护措施, 就会非常安全.
 
相较之下, 其他的区块链系统都苦于以下的缺陷:
 
M-fo-N模式无法充分反映出真实情况下的权限控管所需要的阶层式结构.
 
M个密钥之间的权重都相等, 无法充分反映出一个帐户之间的非对称式权限.
 
调配以及签署必须以完全频外验证 (out-of-band authentication, OOBA)的方式进行.
 
密钥必须取得其他所有人的同意才能够变更.
 
签名无法在等待其他人签署时撤销.
 
使用案例 (Use Case)
 
多重签名的重点就在于权限管理, 而且权限应该以人或者组织来定义, 而不是密钥.  举例来说, 如果有一间公司里面只有3个人: Alice, Bob, 以及Carol, 其中Alice和Bob各持有40%公司股份, 而Carol持有剩下的20%.  因此这间公司需要以上三位当中的至少两位才能够批准所有的开支. 从密钥的角度, 你可以将这间公司视为三组分别在Alice, Bob, Carol手上的密钥, 但是如果Alice想要透过多重签名保护自己的真实身份呢? Alice的每一项决定, 都可以选择透过服务供应商, 进行双因素身份验证 (2FA)来进行授权.  这样一来, 就同时保护了Alice以及公司, 而且公司并不需要因此而改变自己的决策机制.
Jump to: