欢欢的欢乐9星评价
2020-05-04 15:39:22
HCGraph 是Leviatom网络的核心算法。在前面的文章中,我们介绍过该算法利用Gossip 协议族构建全网信任模型。HCGraph利用类似于HashGraph的Gossip以及Gossip about Gossip协议来实现高效的信任关系传递。利用该协议,我们可以在获得一个比较完整的全局网络互信关系。
但是,在未来真实系统里百万节点级别的分布式环境中,因为受限于网络负载,就有可能会引发网络热点负载过重。如果受限于网络负载,就会影响节点达成共识的速度。
因此,我们设计了一个基于机器学习的网络链接预测的算法,来解决这个问题。此外,我们还设计了一个基于分布式的系统架构来实现它。接下来,我们详细介绍一下:
假设我们需要预测节点u到v之间的证实关系,而u到v并没有直接发起过证实。我们可以收集两个类型的图计算信息。
第一个类型,我们共收集七个维度的信息,这些信息仅与这两个节点本身与整个网络世界的关系。这其中包括,u 证实的可信节点;u 证实的不可信节点;u证实的所有节点;证实v为可信的节点;证实v为不可信的节点;所有证实v的节点;u和v的共同邻接节点的数量。
第二个类型,我们共收集16个维度的信息,这些信息取决于共识节点u和v之间的交互。根据两节点间证实关系的方向、信任关系,一共有(2*2)*(2*2)=16种关系。
结合两个类型的信息,或者仅使用其中一个类型的信息,采用机器学习的算法对部分数据进行训练,而对另一部分数据进行交互测试。
共识节点之间的证实关系是实时地存储在共识节点本地的数据结构中的,那么要实现此算法就涉及到两个问题:
1)如何获取到所有周期性的证实信息来训练机器学习模型;
2)当需要预测u和v之间的信任关系时,如何抓取到u和v的实时证实信息来进行预测。
在这里,第一个问题是批处理的计算问题,第二个问题则是在分布式系统中的实时计算问题。针对这两个问题,以及共识节点本地化存储、证实的需求,我们抽象出了三个模块:
实时异构共识图
共识节点本身及其之间的通信所组成,主要的功能便是建立起共识节点之间的证实关系,并将这些关系存储在本地的可持久化的数据结构中。
批处理机器学习
由一个Hadoop生态搭建起来的ETL系统加上构建在其上的机器学习组件组成,其采用pull模型来从各个组件中周期性的同步出共识节点的证实信息,并且以分片的方式来训练出机器学习的模型,来供后续预测的需要。
ETL:将业务系统的数据经过抽取、清洗、转换之后加载到数据仓库的过程。目的是将企业中的分散、零散、标准不统一的数据整合到一起。
弹性拉伸
一个基于Paxos的状态注册模块,当新的共识节点加入或者旧的共识节点退出的时候,会在Paxos机上注册自己的服务,这样当客户端需要进行服务的时候便能够从Paxos机中寻找到正确的路由信息来进行实时的信息获取和预测。Paxos机是整个Leviatom生态的核心基础,需要保证高可用、高性能和高一致性。
因此,利用基于机器学习的可扩展HCGraph算法,便可达到避免网络热点的可横向扩展的互信网络。
小小邱6星评价
2020-05-04 15:40:18
随着自动化智能化渗入生活,人的衣食住行均与机器紧密相连。相信机器,将成为未来人类的新一项生理需求。相信机器的核心,在于相信其在正确的硬件环境下执行了正确的程序。换言之,一个值得信赖的机器,它的硬件软件都必须是可靠的。
如何确保可信的软件在可靠的硬件环境下运行,Trias团队借鉴智能合约,重新构建一套去中心化的通用平台的可信算力体系,及一套去中心化的可信软件开发运维体系,从而保障正确的通用平台硬件环境执行了正确的原生应用程序,从而实现近区块链2.0智能合约的安全强度。进一步地,通过重新构建一套智能合约体系,Trias实现了对硬件与软件的有机调度,并利用经济模型驱动硬件与软件生态健康、有序、安全地运转。
Trias 中的可信算力体系,即Leviatom(利维坦)平台。该利用TEE技术及信任图技术实现了称为异构共识图的共识算法,用以迅速定位全网中“最难撒谎的点”,并为少数这些点分发智能合约程序,从而实现高效、高并发、高鲁棒性,且支持原生应用程序的智能合约运行环境。
一、TEE
TEE即可信执行环境(Tusted Execution Environment),是一个基于CPU硬件安全扩展,且与外部完全隔离的执行环境。它可能作为协处理器出现,也可能是基于ECV的新的硬件技术体系。这个环境中运行的CPU空间完全只被硬件授信,软件和操作系统都不可见。
针对现有区块链公链的安全问题,比如智能合约、挖矿、钱包等程序的运行环境得不到保障、缺乏对共识算力的“质量”的判断等,Trias提出利用TEE 等可信计算技术,将智能合约和区块链自身代码,移入特性硬件的可信执行环境中执行。由可信计算技术确保执行的代码是满足预期要求的,不会受异常进程/线程/恶意文件等其它系统因素的影响。可信执行环境内的程序若出现任何与预期白名单不一致的情况时,即立刻会在可信硬件上反应。这种低“质量”的算力节点就能立刻被辨识和并排除。同时也可以通过可信计算方法来量化每个共识节点“质量”好坏的程度。在实现共识时,可以直接通过对“质量”好坏程度的判断,仅选取少数优质节点作为代表以达成共识。
该方法不仅提高了各节点的安全可信性,而且减少了参与共识的节点数,最终实现了效率与安全性的同时提升。
二、TEE 技术的局限性
然而,TEE技术并不完美的,它也存在一定的局限性。
首先,缺乏通用的TEE构建方法和接口。TEE的标准制定者GP(Global Platform)虽然制定了大量标准和规范,但是从接口层方面,各大厂商实现接口方式尽不相同,碎片化非常的严重。而且出于安全考虑,代码基本闭源,所以无法形成统一的接口进行推广,需要进行定制。
其次,目前市场上缺乏基于TEE的安全应用。如前所说只有部分大厂为了实现最高安全的采用了TEE,但是对应的扩展应用大家都很离散。而具体使用的时候,Trust Zone与SGX代码都需要重构,需要开发人员对已有程序代码重构,将程序分成可信部分和非可信部分,目前有Intel发布的SDK来协助做这方面工作,但仍然是很大量的工程修改工作。
此外,在性能方面,TEE的enclave进出是瓶颈,这是由于TLB中缓存enclave中的内存访问缘故,因而进出enclave需要进行TLB flush。另外执行enclave代码时,非TLB的内存访问也会造成额外的一些检查,导致更大的额外开销。同时也存在TEE代码编写漏洞风险 ,如果enclave编写代码本身有漏洞的话,enclave是无法保护程序的安全,目前就有针对缓冲区溢出的ROP攻击能够控制enclave。另外也有些边信道攻击,能够导致秘密泄漏。因此,用单一的中心化的enclave去保护程序安全是无法完全满足用户安全需求的。
三、HCGraph(异构共识图)
为了克服上述问题、减少区块链使用TEE的难度,Leviatom提出了HCGraph(异构共识图协议),引入了信任传递关系网。
定义:HCGraph是基于异构TEE (Trusted Execution Environment)的可信计算技术与基于小世界网络的图计算技术的充分结合。
HCGraph(异构共识图)让临近的具备TEE运行环境的节点互相验证对方的可信度,并将所收集到的可信节点信息在已获得其信任的其它节点见传播。这样每个TEE共识节点的状态信息就能形成一个信誉关系网,互相背书互相证明,一旦有一个节点要“撒谎”,周围的节点都会立刻就能指正它。而周围的恶意节点若想要配合“撒谎”节点,则需要让其周围的所有其他节点也同时配合。由此反复迭代,HCGraph可迅速定位全网中“最难撒谎的点”,并为少数这些点分发智能合约程序,从而实现高效、健壮、高并发、且支持原生应用程序的智能合约运行环境。
概括来讲,HCGraph(异构共识图)实现了三层算力体系:
1.利用不同的TEE协议收集逻辑相邻节点的可信状态信息;
2.利用Gossip协议传递与整合逻辑相邻节点所搜集的可信状态信息;
3.利用本地TEE环境执行合约代码。
第一层算力节点利用TEE技术定期检查其周围节点的正确性。并记录其对齐检查的历史信息。TEE目前包括Intel SGX、Intel TXT、TPM、ARM Trustzone。第二层算力节点利用Gossip协议(以及Gossip about Gossip)收集并传播周围第一层算力节点所收集到的其它节点的正确性信息。第二层算力节点所确定的“同谋违约”代价很大的少数几个节点将成为第三层节点,并获得执行任意程序的权力。该层算力节点将最终对执行程序的结果产生共识,并争夺最终的记账权。
为适应不同平台的算力特性,Leviatom允许任一节点支持实现三类职责的任意组合。这既增加了共识网络结构的灵活性,又依照算力能力有效分配了共识运算量,实现了高效节能。