Ankr生态系统在实际业务的应用
扫描二维码
随时随地手机看文章
Ankr一个基于计算能力的,带有本地数据贵送系统的去中心化网络。我们首先介绍一种新的挖矿方案,该方案使用的共识算法是在启用SGX的可信执行环境(TE)中对有用工作的证明(PoUW)。然后,我们详细介绍了Ankr如何使用这个平台在区块链环境上启用分布式云计算(DCC)。接下来,我们将描述一个本地认证的数据馈送服务(NOS) 该服务将被用于那些使用可信硬件的智能合约。
1.简介
比特币问世以来,世界见证了区块链技术的快速发展和进步。然而,各种各样的障碍仍然阻碍着区块链技术在真实的商业事物中的广泛应用。最大的挑战包括:
●资源效率低下 能源和计算能力的巨大浪费
●数据效率低下 缺乏可靠和有效的数据流服务
●可扩展性低 由于单链而导致的低吞吐量
●不平等 大部分资源掌握在少数人手中
●隐私性低 对其他私人信息缺乏机密性。
Ankr通过引入一个资源高效的区块链框架来解决这些问题,该框架真正支持分布式云计算,并为业务应用程序提供用户友好的基础设施。Ankr 的关键创新和改良包括:
●新型激励方案 基于有用的计算工作量的
●去中心化计算力 由无服务器和无状态的计算单元组成
●可靠的数据馈送服务 连接已有的商业模式
●安全与隐私 由可信的硬件和密码原语加以保证
●速度与延展性 通过Plasma-chain来实现
2. 背景
2.1 共识协议
比特币的基本共识,即工作证明(PoW),解决了去中心化加密货币设计中存在的两个问题:如何选择共识领袖,以及如何在参与者之间公平地分配报酬。然而,依赖PoW的比特币和其他加密货币除了作为替代支付的方式之外,在现实世界中没有实际应用。尽管功能有限,但比特币网络目前的用电量比整个冰岛还多,预计到2020年,比特币的能源消耗将达到丹麦全国人口的消耗水平。
其他常见的共识机制,比如拜占庭式容错(PBFT)或权益证明(PoS)基本上是没有任何浪费的,但它们限制了参与度或者要求参与者锁定区块链上的股权。此外,PBFT和PoS常常是复杂而随意的,因此很难更新和调整原始的设置,
2.2 可信硬件
Intel SGX(软件保护扩展)是-套新的指令集,该指令集可以允许在硬件的一个独立区域(飞地)内执行一个应用程序。这种机制保护应用程序的完整性和机密性,防止某些形式的硬件和软件攻击,包括恶意操作系统。通过在SGX中独立地执行程序,系统调用可以保证被正确和安全地执行。
SGX允许生成身份验证,以远程证明操作的可靠性。当创建飞地时,CPU会生成一个初始状态的散列哈希,称为测量。飞地内的软件可在稍后请求一份报告, 其中包括过程整个过程的测量和补充数据。使用硬件保护的密钥对报告进行数字签名,从而证明该软件程序是在sgx保护的飞地上运行的。
这样的证据可以在远程系统中验证,SGX 使用群组签名来进行验证。
SGX在2015年被第六代因特尔核心处理器所引进。Ankr 的技术使用SGX CPU挖掘平台,大大降低了矿工们进入市场的门槛,最大限度减少了矿池形成挖矿垄断的可能性。
其他公司包括ARM和Nvidia也投资了TEE这一解决方案。例如,ARM提供的TrustZone是专为移动设备或平板设备开发的TEE简化版本。另一方面,Nvidia 将为TEGRA开发的可信小内核(TLK)作为针对TEE的第一个基于gpu的方案。这些努力,连同英特尔SGX,代表了完整的TEE设备组合,他们将扩展Ankr技术的基础。
2.3分布式计算
有几个项目正在尝试利用区块链技术提供分布式计算服务。它们主要可以分类为:
● 分布式智能合约区块链中的代码执行目前是去中心化的,但不是分布式的。因此,以太坊中的每个节点都冗余地执行相同的代码并保持相同的公共状态。克服这种性能缺陷的一个自然改进方法是分布地执行智能合约。例如,Dfinity 将权益证明与可验证的随机函数结合在一起,它只指定链中的某个候选节点,并有权挖掘区块,从而执行智能合约。这种方法提高了执行的吞吐量,但仍然受到智能合约的限制,特别是在没有网络连接的情况下。
●外接计算容器 另一个想法是将区块链与外部计算容器相结合。Golem、 SONM 和iExec 等项目对这个基础架构有着相同的愿景。然而,他们各自的技术设计和进入市场的策略各不相同。Golem和SONM都与Docker整合在一起,并且都有自己的利益市场。Golem 的目标是吸引普通的3 d渲染用户,和SONM则更接近雾和边缘计算。另一方面,iExec 注重于使用桌面网格网络构建一个去中心化的网络云。尽管这些项目都非常有新意,但他们并没有Pow机制的问题。
●高效共识机制 第三种方法是在共识协议中使用计算能力。平台可以借助Intel SGX或ARM TrustZone等可信的硬件,在可信执行环境[TEE)提供商的认证机制上建立对正确度协议的信任。这将为有用的工作负载释放很大一部分计算资源。 Ankr对有用工作的证明(PoUW)利用了实际的计算需求,而不是哈希计算作为在链中生成新块的决定因素。这种方法允许矿工不仅可以从挖掘新的区块和交易费用中获得收入,而且还可以从完成计算对客户有用的工作的子任务中获得收入。
2.4 数据馈送
目前,数据馈送系统的解决方案并不理想:
● 中心化的数据馈送服务-个集中的数据馈送服务是许多块链中最常用的方法。这种系统与去中心化是对立的,因为它不能提供干扰抵抗性和安全性。几乎所有中心化的数据馈送服务都依赖于链下的数据公证服务,这可能造成潜在的问题数据结果。
● 人工手动输入许多协议依赖于完完全全的人工输入。尽管这种方法实现了去中心化而且灵活,但实际上不仅时间效率低,而且会造成资源拥堵。
● 操纵数据源尽管TLS-N提供了数字签名的数据源,但这种方法将要求所有过时的系统和web站点相应地更改其基础设施。
3.有效工作证明
有效工作的证明(PoUW)共识机制能够在不浪费能源的情况下达到高安全标准。在本方案中,具有CPU计算能力的参与者可以在可信硬件的监督之下执行有用的计算,并且在区块链的经济体系中获得奖励。相比之下,PoW只允许在矿工解决了复杂的哈希问题后才能获取报酬。这种设置是由于缺乏可信执行环境(EE)。一个由SGX保护的硬件飞地可以作为CPU活动的可信监控器,从而验证矿工有用的计算过程并提供挖掘奖励的证明。
3.1 有效工作证明组成部分
如图1所示,Ankr的挖掘方案由三个部分组成: 矿工、有效工作的供应程序和区块链代理。
● 区块链代理区块链代理是PoUW挖矿方案与区块链系统其余部分之间的纽带。它们通过RPC请求直接与区块链的P2P网络交互。一个区块链代理将收集交易事务并生成一个缺乏
● 有效工作证明的模板。一旦矿工提供了有效工作的证明并将其嵌入到模板中,区块链代理将验证所附的证明,将区块发布到区块链,然后收到相应的奖励。
● 有效工作供应程序有效工作供应程序的主要功能是为矿工提供有用的工作任务并接收任务结果。一个有用的工作任务包含两个部分一个有效工作证明飞地和一些任务输入。任何符合SGX的代码都可以通过Ankr提供的工具转换为有效工作证明”飞地。
●矿工矿工是整个共识协议的核心。一个矿工接受一个有效的工作任务和上面提到的模板作为输入。然后,矿工可以启动-一个Intel SGX飞地来装载并运行这个有效的工作任务。在执行结束时,任务的结果将返回给有效工作供应程序。矿工将需要通过测量有效的工作任务来完成这个循环,并决定这项工作是否成功地赢得了共识。如果赢得共识,那么矿机将生成一个包含以下两部分的PoUW,并将其附加到区块模板中以进行发布。
1.一个有因特尔SGX产生的认证来证明PoUW飞地符合Ankr的挖矿规范。
2.另一个证明来显示挖矿任务是在给定的难度级别完成的,这将作为新区块下一次迭代的基线
算法1 PoUW挖掘算法如图1所示
3.2 区块的产生
Ankr的矿工在工作证明(POW)的系统中统计地模拟了区块生成的过程。在比特币中,哈希计算的每一次迭代都可以被建模为伯努利试验,整个区块生成过程可以被视为一个泊松随机
过程。同样,在PoUW, 一个矿工的飞地将每条指令当作-个伯努利试验,然后可以像在PoW中一样处理和调整PoUW的采矿时间。
为了确定哪条指令值得奖励,PoUW 飞地通过使用SGX的随机数生成器(SRNG)生成一个随机数,并检查这个数字是否小于期望的难度。为了避免检查每条指令所带来的高昂开销,Ankr将一个有效的工作任务划分为短时间的小任务(例如,10 秒)。 每个子任务完成后,飞地都调用SRNG来检查是否至少有一条指令获得了共识。如果是的,飞地就会生成包括难度系数在内的相应的认证。
3.3 有效工作的计量
在Ankr中,有效工作任务的计量是在每条指令的基础上这样比任务运行时间,任务数量的多少,任务文件大小等等变量更加准确。虽然使用CPU周期的方法可能看起来似乎更准确,但是该方法容易受到操控。因为CPU周期數可以通过CPU的性能计数器来更改。此外,即使有问题的飞地被剔除出去,计数器也会增加。因此,-个多飞地环境将导致CPU周期计数测量的急剧膨胀。综上所述,CPU 指令计数虽然不是很完美,但仍然是评估任务工作量的一个可靠代理。
3.4 证明验证和区块验证
3.4.1因特尔SGX远程验证
认证是证明一个软件已经在平台上正确实例化的过程。在因特尔SGX中,它是一种机制,通过这种机制,另一方可以获得信任,认为正确的软件在-个已启用的平台上的飞地内安全运行。为此,因特尔SGX体系结构生成一个可由远程实例验证的认证证明。当一个飞地由SGX创建时,CPU 将生成一个初始状态的散列,称为测量。稍后,飞地内部的代码可以请求由该测量和代码提供的其他补充数据组成的报告。此报告由硬件保护的密钥进行数字签名,以证明代码已在SGX飞地上成功运行。这份被数字签名的报告,称为举证(quote)。以及“测量”,和补充数据是认证的组成部分,可以实现远程验证。
3.4.2 两层等级认证
PoUW认证遵循两层等级认证。
● 有效工作认证有效工作认证由”飞地创建。该认证包含来自区块链模板的前缀哈希和难度系数。这类证明可以证明:
1.一个有效的工作任务是在-一个矿工的飞地里适当地运行。
2.这个有效的工作任务是被具有相同前缀哈希和难度系数的区块模板挖掘的。
●编译器检查认证PoUW矿工引入了一个叫做编译器检查器的工具,它检测并确认有效工作任务是否符合PoUW的要求。编译器检查器在受信任的环境中运行,如果任务满足所有下列要求,则生成包含测量有效工作块的认证。
1.文本部分是不可写的,这意味着出于安全考虑,它不允许在运行时重写它。
2.专用寄存器用于指令计数,以便正确地计量工作量。
3.运行时是正确链接的。
4.唯一的切入点是PoUW运行时间。
3.4.3区块认证
除了比特币或以太坊上存在的块验证机制外,PoUW 还需要对每个区块的认证机构进行验证。一般情况下,使用分层认证方法来获取没有人事先知道的代码认证。编译器检查飞地的测量被硬编码到需要验征PoUW的任何组件中。因此,块验证按照指示工作,只有当两个检查都通过时,才会成功地验证所讨论的新区块。
1.对编译器检查飞地和编译器检查认证的测量证明飞地已经成功地通过了编译器检查。
2.这个飞地的测量和有效的工作证明说明了这个飞地在矿工的“飞地上正常运行。
3.5 PoUW前景
PoUW为Ankr开创了新的机遇,因为矿工在网络中的计算能力几乎可以用于所有的链上计算。例如,如果客户端通过我们的数据馈送服务提交一个私有数据报请求,那么矿工将使用它的资源来帮助对数据报请求中的参数进行加密和解密。过多的计算资源可以货币化,然后卖给内部或外部应用程序,以获得有效的工作。这些有效的工作任务范围从训练神经网络到托管网站服务。与比特币不同的是,Ankr 会奖励每个用户对其计算资源的贡献。另一方面,在计算周期中,只有一个用户幸运地拥有生成区块并获得额外奖励的权限。
随着2015年后启用sgx的CPU的广泛使用,PoUW 协议有潜力为有用的工作计算释放大量空闲的自带SGX的CPU计算能力。我们设想有用的工作可以来自于区块链链上和链下的计算任务。这将使分布式云计算成为可能,因为空闲的cpu现在可以用很少的成本为所有者创造价值。此外,在这种分布式计算框架下,任务请求者将能够访问比传统的集中式云计算服务更便宜的云计算服务。目前,亚马逊、微软、谷歌、阿里巴巴等云服务巨头由于垄断市场,利润空间巨大(30%)。
4. 去中心化云计算
4.1 区块链技术与去中心化云计算
4.1.1背景
随着互联网技术的发展,产生了海量的文本、音频、视频等数据。然而,这些数据大多既非结构化的,也不是相互关联的。以串行方式处理数据变得越来越没有效率,并且赶不上业务开发的快节奏。
● 分布式运算与并行运算分布式计算是一种解决方案,它通过多个地理上不同的主机(集群)完成巨大的计算任务,而不是通过单个超级计算机。并行计算是指多个cpu的并行处理。并行计算可以提高计算效率,前提是程序算法应尽可能多地进行并行设计。
●虚拟化虚拟化是一种为云计算划分资源的方法。它包括两个方面物理资源池和资源池管理。还有两种虚拟化类型。-种是将多个物理资源虛拟化为一个“大型”逻辑资源层。另一种方法是将一个物理资源划分为多个“小”逻辑单元。
目前,云计算主要采用第一种虚拟化技术,其主要部署在分布式集群上处理大量数据,并提供按需的I服务,以获得大量访问。DCC 是一种快速处理大量数据的优越方法。这个解决方案建议使用更多的硬件来交换处理时间,这需要在多台计算机上分布数据并同时(并行地)处理它们。然而,大多数I公司无法构建自己的分布式云系统。相反,他们使用来自现有云服务提供商的产品来专注于他们自己的产品和业务。
在灵活的开发I具的帮助下,DCC 可以帮助开发人员根据他们的规格快速地去发布他们的服务或产品。应用程序构建的新基础将依赖于分布式微服务和执行后小任务的同步交付。随着
CPU价格的下降,通过云服务的形式人人都能访问并负担得起复杂的应用程序(如CGI這染、科学计算、机器学习等)。
4.1.2 网格计算与志愿计算
网格计算是从多个地点收集计算机资源,以达到共同目标。一般来说,网格可以看作是一个分布式系统,其中每个节点集执行不同的任务或应用程序。因此,这可以被认为是解决上面提到的大量数据问题的办法。
然而,网格的主要来源目前来自志愿者,个人或学术组织。例如,伯克利网络计算开放设施(BOINC)是各种学术项目寻找公共志愿者的共同平台。它的目标是将一个异构的、高流动率的、不可信的消费者计算机池转变成一一个对科学家或研究人员负责的、可预测的、可信任的工作处理系统。尽管该平台在技术上很先进,但仍面临以下问题。
● 可持续的计算资源有了志愿者计算,节点可能会时不时地“离线”, 因为它们的所有者可能将资源用于他们自己的主要目的。此外,由于缺乏竞争激励机制,很难获得稳定的计算力供应群。
● 资源分配例如BOINC 的分布向北美和西欧等富裕地区倾斜。然而,那些缺乏资金并且高度依赖志愿者计算来进行研究实验的领域没有多少计算力供应者在参与。
4.1.3 DCC在区块链上的优势
P2P网络允许应用程序所有者和个人用户(都是请求者)从其他用户(供应商)那里租用计算能力。目前,比特币或Ethereum等流行的区块链网络中的计算资源已经足以处理高吞吐量的计算任务,从而为超级计算机或大型企业云计算提供一种廉价的替代方案。然而,云计算资源是由集中的云服务提供商控制的,并且受制于严格的操作模型。一个去中心化的云计算平台可以引导一个基于区块链的支付系统(比如Ethereum),允许运营商(请求者)、卖家(供应商)和软件开发人员之间进行直接支付。
4.2 操作模型
4.2.1 代币经济模型
下面是代币经济模式的概括。
● 请求节点这个节点通常由一些需要计算的企业商家或科研机构执行。由于它们所拥有的计算机无法满足它们目前的计算需求,因此就使用超级计算机或其他具有成本效益的计算资源,例如全球分布式计算。在将作业发送到网络之前,可能需要请求节点根据某些规范对代码或数据进行分类。或者,其他节点也可以来完成此任务。
● 分类或调度节点 该节点用于根据某些规范对任务和数据进行分类,然后将它们分派到合适的处理节点。此步骤的目的是预先处理作业的元数据、特征和优先级,从而选择最佳节点来处理它们。
● 处理节点此节点用于处理任务或数据。由于有数千种类型的任务或数据从前两种类型的节点传输过来,因此处理特定数据或模型的方法也不同。对于一些复杂的项目,参与处理节点的要求也会更高。在这里举两个例子:
1.在医学领域,数据的处理,如医学图像,通常需要有专业知识的人员。此外,并不是每个人都应该拥有手动输入的访问权限。
2.在人工智能和机器学习领域,由于数据处理模型(如KNN或决策树)的特殊性,数据训练和处理通常由经验丰富的开发人员进行编码。此外,单个普通CPU或GPU已经不足以满足这种计算需求。
●验证节点该节点判断并过滤来自-个或多个处理节点的处理结果。这通常只需要一般类型的CPU或计算能力。基本上,相同的数据处理任务将被发送到多个数据处理节点,以便稍后进行投票以确定满意的输出结果。虽然这将导致数据或计算冗余,但最终结果的准确性性可以得到高度保护。此外,使用声誉机制可以有效地降低故障节点的影响。
4.2.2 Ankr通证系统
Ankr通证是-种作为存储和传递价值的手段。在任何时候,Ankr 通证都可以用来激励参与Ankr网络的合作,并且可以用于PoUW的计算费用。Ankr DCC的所有挖矿参与者都可以通过贡献自己的计算能力获得Ankr通证。这样的生态系统是一个良性循环:参与有效工作计算的人越多,他们获得的Ankr越多;它们拥有的通证越多,就能在生态系统中获得越多的服务,从而引发进一步的计算需求。
可以通过为有效工作计算提供空闲计算能力来挖掘Ankr通证,并对在区块链上发生的计算和事务付费。这将创造一个真正自我维持的生态系统,并创造-个“去中心化的世界计算机”。用户需要花费Ankr通征去使用去中心化的计算机,但它将比集中式解决方案(如亚马逊云或谷歌云)便宜得多,因为去中心化的云计算将利用那些即将被浪费的计算能力,并且不会像互联网巨头那样收取高昂的费用。此外,去中心化计算机的人力资源成本将会大大降低,因为去中心化的解决方案不会花费大量的资金用于管理、营销和高管薪酬。换句话说,” 去中心化的计算机”将以最低的成本提供最强大的计算能力。
4.2.3名誉系统
区块链DCC不再由志愿者提供。需要建立-种新的机制来衡量每个节点的贡献,分配更多的任务来给予更多的奖励。
一种可能是测量完成任务的数量。然而,未来在分布式云计算上运行的项目可能会有很大的不同。例如,一个任务可能需要1小时来处理,而另一个任务可能需要20 小时。这将导致相同数量的任务得到相同的奖励,但是工作量完全不同。这显然不是一个可行的解决办法。同样,这种方法不能很好地测量CPU 运行时间,因为很难准确地记录每个用户实际执行的计算量。为了实现公平、准确的报酬分配,需要建立多启发式算法。
一个好的名誉系统应该考虑以下几个方面来计算节点的贡献:
● 性能测试在网络中,性能装备的资源使用和成本差异很大。因此,对于不同设备应采用标准化的性能测量,以获得合理的性能判断,以便进一步计算。
● 正确结果的数量DCC服务的关键问题是结果的质量。如果结果不正确或由恶意用户产生,则不可接受。正确结果的数量将是参与者声誉的一个很好的直接指标。诚实的人将得到更多的奖励,而恶意的用户将受到惩罚。可能存在的问题:
● 不准确的性能测试 这一点在跨 平台测量时比较明显。 例如,一台计算机在Windows系统上的测量值可能与Linux系统有极大的不同。
● 降低作弊障碍DCC需要向公众开放源代码。用户可以下载源代码,以便根据自己的需要修改和构建逻辑。
4.3 体系结构概述
Ankr致力于构建一个资源高效的区块链框架,该框架真正支持分布式云计算(DCC),并为业务应用程序提供用户友好的内部结构。为了实现这一点,Ankr 彻底调查了DCC最流行的使用模式和底层技术及平台。我们的目标是为云用户提供一个平稳的简单的用户体验,并将转换成本降至最低从而可以将Ankr的DCC集成到用户的解决方案中。
工作证明(PoW) 是在缺乏可信执行环境(EE)的情况下发明的。因此,比特币要求每一个矿工,甚至是攻击者,都要解决-个异常困难的任务(哈希计算),才能成为下一个共识领袖。但是,有效工作证明(PoUW) 在TEE的帮助下,释放了每个矿工的计算能力,用于-般用途的任务。此外,这些矿工构成了一个由独立的无服务器计算单元组成的大型网络,Ankr 能够在此基础上构建去中心化云计算服务。
无服务器架构是云端-个热门设计范例。通过使用无服务器架构,开发人员可以专注于业务需求的核心逻辑,而不必担心管理和操作服务器。根据亚马逊云服务(AWS)的说法,“无服务器架构是一种无需管理基础设施就可以构建和运行应用程序和服务的方法。你的应用程序仍然在服务器上运行,但是所有的服务器管理都是由AWS完成的。”
在Ankr上,我们展示了Ankr分布式云计算的三层设计,以及这些层次是如何组织在一-起作为一个系统运作的。
4.3.1 区块链基础设施
区块链基础设施是Ankr分布式云计算设计的最低级别。这--层提供了除挖掘外的区块链的常规功能,如服务RPC请求、维护块或交易事务等。所有基于Ankr的区块链构建的Dapp都直接与这一层相关。
由于以太坊的低效率,我们还利用多链结构来提高智能合约的吞吐量,这将在第6节详细讨论。
4.3.2 有效工作证明(PoUW) 的矿工
PoUW矿工是堆栈的执行层。如第3节所述,分布式云计算中该层的具体功能为:
1.从区块链结构层获取带有事务的区块模板。
2.从分布式计算引擎层获取有用的工作,并在TEE中执行这些工作。
3.如果矿工成功获得发布下一个区块的特权,这个矿工将把PoUW附加到这个块,并将它添加到区块链基础结构层,以便发布。
4.3.3 分布式计算引擎
分布式计算引擎是三者中最重要的一层。这一层的主要目的是接受来自云客户的有用工作,并以Ankr独特的方式在PoUW矿工中分派它们。
大多数分布式云计算客户使用现有的开源引擎(如Spark)来开发大规模的解决方案,如机器学习、模型培训等。 Ankr希望提供类似的开发经验,以降低Ankr客户的切换成本和学习曲线。
● 作业调度器和时间规划 作业分发机制的最初思想是启用公平调度程序。在公平分享之下,这一层的节点将在内存中保持一个散列映射来跟踪所有被管理的矿工并且以“循环”的方式给他们分配工作,以便所有矿工的工作得到一个大致相等的份额数量。一旦确定了这一点,还可以考虑进-步的启发性因素,如作业大小存储大小、投标价格、甚至IP地址,以调整作业的优先级,获得更好的用户体验,并防止PoW目前的集中化采矿力量。
● 无服务器 Spark为了消除客户的操作复杂性,下一代Spark也将走向无服务器计算。Spark的发明者Databricks 已经发布了其名为“serverless Pool“的无服务器产品的第一阶段,该产品允许用户在自己的AWS帐户中为无服务器工作负载运行一个池。尽管仍处于早期阶段,但通过引入适当的适配层,这一举措带来了一个实际的解决方案,将来自PoUW矿工的Ankr计算能力与流行的开源工具集成在一起。
● 隐私和安全如第5节所示,NOS提出了一种将链外数据转移到链上智能合约的安全可靠的方法。这里可以使用类似但不完全相同的机制,利用英特尔SGX,以确保客户提交的有用工作(作为一种数据)可以安全地传输到矿工中的飞地。在此期间,还应使用TLS和证书来加强层间的沟通。
4.4 安全模型;
Ankr将拥有自己的区块链,它可以从以太坊派生出来,尽管Ankr的共识协议可以很容易地转换为比特币或以太坊作为-个新的共识框架。从客户的角度来看,以太坊是支持智能合约的首选。因此, Ankr的安全水平将保持在与以太坊相同的水平。
一般来说, 安全性是为Ankr的分布式云计算精心设计的。
4.4.1飞地安全性
SGX允许在完全独立、无篡改的环境中执行可靠的代码。用户还可以选择远程验证执行的输出结果。此外,采用片上数字随机数发生器(SRNG)来提高系统的安全性。
4.4.2数据源安全性
数据源提供者可以根据需求选择不同的安全级别。Ankr 支持从非加密到高度机密的所有安全级别。为实现高级别安全,采取了以下措施:
●在传输中,提供者可以选择TLS 1.2/1.3 和PFS(完美转发保密)。提供者的证书将被验证。提供者也可以选择客户端证书验证,但是在这种情况下应该配置它自己的提供者节点。
●在数据加密中,数据将使用参数进行加密。因此,即使TLS端点也无法看到数据的明文。数据对称密钥和MAC使用目标飞地的公钥进行加密。只有那个飞地才能解密数据。当一个飞地希望将这些数据传输到另一个飞地时,第一个飞地将使用第二个飞地的公钥加密明文,然后将其发送到第二个飞地。为了保证Ankr数据的机密性和完整性,我们设计了一个简单的TLS记录协议。
通过这种方式,即使是在攻击的操作系统中也只有飞地本身才有机会阅读清楚的数据文本。
5. 本地验证数据馈送
我们介绍了本地数据馈送服务(NOS),这是一个构建在可信硬件上的经过身份验证的数据馈送系统。
5.1组成部分
NOS由三个部分组成:NOS智能合约,飞地和中继器。 飞地和中继器运行在 NOS服务器上,NOS智能合约在区块链上执行。
● NOS智能合约 NOS智能合约是NOS系统的前端。它提供了一个API接口来与各种编程语言中的任何形式的智能合约交互。具体来说,NOS智能合约接受基于区块链的智能合约的数据报请求,并使用相应的数据报进行响应。Cnos 也提供了类似于以太坊的货币管理服务。此外,它还修复了以太坊存在的许多问题,这些问题将在后面讨论。
● 硬件飞地 飞地负责接收来自区块链的数据报请求。它查询支持httpts的外部网络数据源,并以数字签名消息的形式返回数据报。飞地应该被认为是安全的,因为它是离线的,并且完全与任何操作系统和软件隔离。
●中继器 中继器负责代表飞地处理双向网络通信。
5.2 协议
●初始化 智能合约向NOS合约发送一个数据报请求。
●监控和中继器中继器监控NOS合约并将任何传入的请求发送到飞地。
●提取飞地通过使用给定参数的HTTPS 与数据源通信。获取数据报后,通过中继器将数据报转发给NOS合约。
●响应NOS合约将数据报返回给智能合约
5.3 数据流
数据报请求以m1 = (params,allback)的形式出现。该参数指定数据源网址、对于内容的任何特定需求以及响应的预期交付时间。接下来,NOS合约将m2 = (id, params)转发到飞地,其中id是唯一自动生成数字。然后NOS合约从NOS服务器接收m3= (id、params、 数据), 其中数据是被请求的数据报。在检查和确认请求和响应中参数的一致性后, NOS合约生成了m4 = (data)到用户的智能合约中。系统中各层之间的消息传递需要使用数字签名进行身份验证。
5.4 改善安全性和保密性
● 私有数据报请求并非所有交易都必须公开可见。NOS通过加密数据报请求中的参数来支持基于许可权限的用户机密性。只有有权限的用户才能看到数据响应。
● 矿工费用的可持续性以太坊需要交易发起者支付矿工费用。这种设计存在恶意用户触发窃取矿工费的调用、导致矿工费耗尽和应用程序级别上潜在的“拒绝服务”攻击的风险。NOS协议确保一个诚实的系统不会耗尽矿工费,一个诚实的请求者不会支付过多的矿工费用。
● 硬件代码最小化可信计算基础(TCB)是链上和链外计算环境的混合。区块链上智能合约的计算是缓慢、昂贵和透明的。为了在组件之间建立几乎完全安全的通信,我们需要最小化TCB中的代码。这背后的逻辑是,理论上较小的代码基更难以攻击。在TCB中,飞地中的代码大小和TC合约都被最小化了,飞地只有大约 2000行C或c++代码,而合约中只有大约100行solid代码。
5.5使用案例
一个NOS主机每秒可以处理大约65个交易。此外,NOS 可以很容易地在多个主机之间并行化,因为独立的NOS主机可以提供没有相互依赖关系的请求。相比之下,以太坊每秒可以处理20到30笔交易,而比特币每秒处理大约7笔交易。
● 网站API数据抓取NOS可以轻松地将JSON或XML格式的大量数据从启用http的网站传输到区块链。举个例子,MLS 是所有房地产数据的可信来源。该API支持近期销售数据、公立和私立学校数据、人口统计数据、房屋价值数据和市场趋势数据。NOS 将支持从链外实体到链内环境的实时数据传递。
● 遗留系统迁移 NOS能够使用传输层安全协议从传统SaaS数据溃送系统迁移数据。
● 现代应用程序接口NOS 系统可以将区块链与脸书messenger和微信等现代应用程序连接起来。
6. 未来工作
6.1 延展性
以太坊在一-个链条上连续处理所有的智能合约,这会限制吞吐量并显著降低可用性,特别是当链条上有大量合约和复杂数据时。我们将密切关注我们计划如何通过采用Plasma 和分片技术来扩大区块链。
6.1.1 Plasma
Plasma是一种协议,其目的是通过构建区块链的树结构来解决可伸缩性问题。主链充当整个系统的主干,而每个子链都根据特定应用程序的需要进行定制。基本上,主链的每个块都包含对子链边界的引用。当子链上生成新的块时,主链将创建新的块以反映新的子链边界,跨链通信作为消息系统而存在,以保持链与链之间的隔离。
通过将一些事务从主链转移到Plasma链,可以显著提高主链的效率,特别是对Plasma操作人员给予适当的激励。另-个优点是Plasma 链实现的灵活性,只要它可以通过父链上的合约进行有效的交叉检验。使用新的加密方法,我们可以利用zkspuks的环签名来帮助扩展Plasma 链的实现,这是一种零知识验证机制,可以在不执行代码的情况下验证计算的正确性,从而为终端用户保密。
每个子链可以根据不同的技术需求来定制。应用程序专用的智能合约将存储在子链上,主链将用于共识和分布式计算。由于主链可以利用全球分布式计算能力,子链上的事务的计算速度将比传统单链结构上的事务快得多。如果子区块链中的参与者被证明有恶意行为,交易事务甚至可以被逆转。
在Ankr 中,我们相信主链还将为非链数据提供-个本地的经过身份验证的数据馈送服务,以便将其传递给每个子链。目前,现有的数据馈送解决方案独立于区块链框架运行,兼容性有限。我们提议为每个子链提供一个用户友好的通用API, 以便连接到链外实体。现有业务可以在子链上构建分布式的自治应用程序,具有强大的计算能力和主链提供的本地数据馈送服务。不同的定制需求可以分为以下几类:
●交易量小但交易额大,如房地产
●交易量大但交易额小,如电子商务
●实时的需求和响应,例如预测市场
6.1.2分片
分片是另-种延展性解决方案,它使用分片或微链在拥挤的区块链上处理不同类型的事务。通过对链上的事务进行分类,只有-组节点需要验证相关的事务。分片消除了整个网络处理每个单独事务的需要,从而增加了区块链每秒处理事务的能力(TPS) 。
这两种扩展解决方案结合在一起,可以叠加提高网络的TPS,同时在一些流行的区块链协议(如以太坊)上保持安全性,从而创建一个去中心化的生态系统,可能每秒支持大量事务。 因此,如果有一个100倍的分片和一个100倍的Plasma 链,这两个理论上会给底层区块链一个10000倍的可伸缩性的增益,这本质上意味着这个区块链将足够强大,能够处理人们在网络上尝试做的大多数应用程序。
6.2 存储
大数据分析是Ankr技术的一个应用实例。尽管Ankr的分布式云计算对数据局部性分析很友好,但一些计算客户也需要高吞吐量的数据密集型计算。IPFS 是解决方案之一,但是Ankr需要短时间存储、元数据存储、自毁和存储奖励等特性。因此,Ankr 已经制定了一个计划,在分布式文件系统IPFS上构建自己的存储系统。
6.3移动端与显卡
正如第2节所讨论的,TEE未来在移动端或显卡环境中的进展将使Ankr能够将潜在的计算资源扩展到新的设备或硬件。
●移动端, 受到电池和个人计算能力的限制,但它可以为数据处理等高吞吐量工作提供大量的算力候选。
●显卡 ,另一方面,它的计算能力比CPU大得多,可以很好地胜任需要超级计算机的任务,也可以胜任深度学习等高强度计算能力的任务。
简而言之,与英特尔SGX一样,TEE 能够在各种平台上用最合适的硬件为Ankr提供计算服务,这将非常有助于提高其产品的可用性。Ankr 将密切监控芯片制造商的进展,并尽早将这些可能性纳入分布式云计算。
6.4 智能身份证及信用系统
Ankr在区块链上的嵌入式数据馈送服务可以使链外资产和数据数字化、通证化,并通过不可改变的日志写入智能合约中。这允许区块链上的用户在生态系统中建立智能合约的身份(例如,房子、汽车、债券)。每个用户都单独存在于链上,平台有潜力通过区块链的智能合约记录所有用户事件。在未来,物联网将使一个真正创新的信用体系得以实现,使交易双方都能保持透明和不受干扰。
6.5可编程接口
设计良好的公共API对于业务采用和可用性至关重要。Ankr 的区块链不会改变现有的PRC,因此与大多数现有的dapp兼容。以太坊DApp的开发者可以直接在Ankr的区块链。上工作,无需修改代码。除此之外,Ankr将为使用云计算的客户提供额外的RPC和CL来支持分布式云计算。这些RPC和Cu将提供功能,包括但不限于提交、检索和监控有效的工作任务。