文章原文
DeepLinQ: Distributed Multi-Layer Ledgers for Privacy-Preserving Data Sharing
按需查询、代理任命、子组签名、细粒度访问控制、智能合约用于提高灵活性、问责制和可扩展性
多层设计:去中心化层和中心化层
适当程度的集中化与访问控制的分布式模型,最终使用智能合约来满足所有利益者相关者的要求。
一般的分布式系统遵循 CAP 原理,而对于区块链来说,分区容忍性是必须要支持的,所以我们只能选择 AP or CP。但是在医疗保健领域,由于医院提供的集中式数据库一定是不能容忍分区性,发生分区时产生的任何访问都将被拒绝。所以,我们的系统就可以设计成同时支持可用性和一致性,作者在这提出一个观点,因为上面的观点可以使用轻量化的验证或共识模型以支持较高的交易吞吐量。
DeepLinQ 的 base layer 使用的是以太坊,其分支则由一些有特殊设计考虑的账本组成。
为了满足隐私需求,DeepLinQ 并没有像比特币那样采用完全透明的链上传播方式,而是替换成了以下三种选择:
增加可信的高级验证者 (是否可以采用智能算法,并随着数据的不断增加,智能算法的验证精度逐渐升高)
由一组受信任的用户建立一个委员会来授予权限。这些受信任用户的数量是有限的,且控制数量保持在一定数量级即可满足可扩展性
使用子组签名
只要委员会的一个子集能够验证交易并授予权限,受信任的委员就可以采取行动,允许多重签名对电子病历进行数据访问
创建可信分支
为了减轻每个人都必须处理所有事情的情况,为特定目的建立分支。(下文再进行具体分析)
采用高效的共识协议
这里只分析了 FBA 和 hashgraph 两种共识协议,tps实验结果较高。
将一个交易定义为一次授权的尝试。一个交易由三个字段组成。
上述工作流程中涉及到的:
可以使用链外存储来存储数据,只在公链上保存数据的指针,DeepLinQ可以将所有的医院数据库视为链外存储,并使用智能合约来访问链外存储。一旦合同被执行,数据被获取,就可以将其存储在一个安全的钱包中。
比特币是无状态的,DeepLinQ则是有状态的。
用户通过激励的方式调用合约来消耗网络的计算能力和存储能力。
通过与智能合约的互动,用户可以证明自己EHR的存在,并管理自己与医院或者第三方的关系。主要分为三类:
设置了医生和病人两个角色,实现了基于角色的访问控制。
注册、EHR 创建和 EHR 转移
DeepLinQ 使用 base layer 来为branch layer 进行批量交易验证。DeepLinQ 在 branch layer 的交易组织成 Merkle 树。Merkle树是一种结构,可以有效验证大型数据体中的内容。DeepLinQ在基础层中只存储Merkle树的根签名。
使用根签名可以确保整个树在第二层是不可更改的。如果树以某种方式被篡改,存储在基础层的根签名将不符合被篡改的树根,因此,验证失败。
比特币和以太坊是轻量的,因此 base layer 区块链的延迟对整个账本系统的延迟并不是一个问题。
在联合拜占庭协议(FBA)系统中,每个完整的节点维护一个信任节点白名单,也被称为 a quorum slice,每个受信任的节点进一步维护自己的 quorum slice, 但是每个节点在交易结算之前都要等待其他绝大多数节点对交易的同意。重要的交易者也不会同意交易,直到他们认为重要的交易者也同意了。最终网络中足够多的参与者接受了一项交易,这样这个交易对于攻击者来说就无法攻击了,只有到那时,所有交易者才会认为该交易已经解决。FBA是无权限的,但是想要加入一个 quorum slice 只能通过邀请的方式。FBAs的共识方案可以确保金融网络的完整性。
哈希图的基本数据元素被称为八卦事件或者事件。一个事件由一个节点创建并签名,包含一个时间戳、交易、和两个哈希指针,其中一个指向父指针,另一个指向同步的节点。一个节点和它所选择的节点交换彼此未知的事件(包含最新创建的)。
每个节点记录并验证与其他节点的通信历史。通过哈希图记录了节点之间的整个通信历史。在某一时刻,两个节点可能包含不同的子集。如果两个节点都包含一个事件e和e的所有祖先,则他们享有一致性。
随着哈希图不断向上增长,不同的成员可能在靠近顶部的新事件中拥有不同的子集,但是它们将很快收敛到在哈希图的低处拥有完全相同的事件,
同步的过程中,发送的消息可能是想当大的,但是发送的数据量可能相当小,在一个节点与其他节点同步之后,它就进入了投票步骤,在哈希图共识协议中,节点不交换信息,相反,它们决定哪些事件是将通过进行虚拟投票来确定的。
对虚拟投票的相关描述:
决定回合:每个事件都被分配了一个回合编号,每轮中,每个节点的第一个事件是证人。如果一个事件e能够直接看到2/3以上的证人,那么它的轮回数就等于r+1,其中r是e的自父母和他的父母的轮回数的最大值,否则的他的轮回数就等于r。
决定著名证明:r轮的证人将对r-1轮的每个证人进行投票,以决定他们每个人是否有名。
在r-1轮中节点i的证人,在下一轮将拥有赞同票。
如果这篇文章对你有所帮助~
欢迎关注我的公众号夏虫不可语冰也
未来将会出更多区块链相关论文解析哦!