区块链应用

Ambr基于Galaxygraph算法的复合型分布式操作系统

Ambr 来源:区块网 2018-05-17 08:43

对于现有的区块链和DAG网络,Ambr在以下三方面做出了技术改进与 革新 :Galaxygraph算法,智能合约,多链与跨链 。
Galaxygraph:重新定义交易单元,拓展多种交易类型,并在共识层使用复合型节点共识,同时根据节点信用进行动态赋权,从而解决传统DAG网络手续费分发与节点激励的难点。
智能合约:改变传统区块链结构下因强一致性原则而必须使用固定时间戳执行交易 与合约的方式,将指定时间域作为合约执行缓冲期,在一定权重周期内达成全网共识 ,以此来解决DAG网络偏序结构下难以实现智能合约的痛点 。

多链与跨链:在多链共识中引入报信人与验证者角色,分别用于消息通信与交易 确认,将链上功能封装为可拔插模块,并使其具有片区容错性。在Ambr的跨链系 统中,可采用侧链作为中继链,实现可信消息传递与资产的价值转移 。

Universe与交易

1.总述

Ambr的交易因用途不同分为多种类型,主要有普通交易、加密交易 、合约交易、跨链交易、自定义交易等多种类型 。全部交易组成一个多元的有向无环图(Galaxy graph)。每种交易 对于确认的节点类型有一定程度的划分与要求 。
星河图算法中,每个节点发起一笔交易时,放进一个Universe里面然后进行广播,Universe中包含了交易的多元性与多样的功能 。Universe中包含了这些信息 :

验证信息:包含了父单元的验证信息与私钥的签名信息
交易类型:用户指定的交易类型,有general, encrypted, contract ,cross,foo等类型可以供用户自己选择需求匹配:可以指定节点类型来确认自己的交易
数据:普通交易可附带20 k b大小的简单字符串数据;加密交易可附带加密的地 址 信息,签名信息等;合约交易可附带合约字节码;跨链交易可附带权限验证信息、相关操作信息等。

2.普通交易

普通交易即仅转账,全网中的任何邻近节点都可以参与记账。构成DAG的交易之 间为偏序关系。所以部分DAG系统中使用零手续费,有的虽有手续费但却有偏中心 化的见证人。前者没有足够的激励制度所以早期无法做到去中心化,无法大规模应用 在DAPP领域,难以实现智能合约;后者偏中心化。在Ambr中,有手续费激励并 且 普通交易的手续费最低,具体在手续费模块里有描述 。

3.加密交易

加密交易是一种Ambr的交易类型,这是一项可拔插的交易类型, 用户可自己选择 。其使用的算法是zk-snarks 。

它是一个独立于普通交易的系统,普通交易的账户之于它仅有输入和输出,总账为零和。如图所示,用户先把自己的Ambr转入混币器系统,也可以使用钱包中类似Tor的网络系统流转后打入混币器地址。假设转入的所有币在同一时间内转出 ,那么总帐零和,所以进入的交易量越大越难以被追踪,使用的人数越多混币器系统越安全 、 越保护隐私。这种交易类型对于节点的硬件性能有一定的要求。且转账手续费高于普通交易 。

4 .合约交易

合约交易即包含智能合约的交易,要求用户对持币数有一定要求,并且对于确认合 约交易的节点也有一定的币数要求。币数与记账权直接挂钩,并且与全网中普通交易 和合约交易的比例相关,为动态数值。合约交易的手续费与操作数和调用的标准库函 数量直接相关,手续费高于普通交易,且大多高于加密交易 。

5.跨链交易

跨链交易是私链与公链之间的交易,其主要用于开启自我私链、跨链验证以及记载验证信息。手续费与普通交易相近,验证节点性能上有较高要求,所以通常要求早期的私链创建者自己提供与维持数个稳定节点 。

6.自定义交易

上图是自定义交易的一个模型。自定义交易其实相当于一种综合了上述交易且可以自定义选择功能的交易,标准库中将会提供加密、合约、跨链的相关函数,用户选择 与自己按照函数规范编写,在交易解释器测试之后按照标准提供执行步骤,自定义交易节点继而确认这笔交易,最终广播到主网,其手续费最高,对于节点的性能要求也最高 。

共识

1.计算方法

星河图的共识机制是一种Credit Continuing (信用延续)的共识,信用节点被分为五类:general, encrypted, contract, cross, foo。其本身的信用基础来自于网络之前的无故障率交易、接收手续费多少、即时网络各节点类型数量。这是一种节点权力更新型机制。General节点被归为level 1等级节点,encrypted与contract节点被归为Ievel 2等级节点,cross与foo被归为Ievel 3等级节点,每种等级节点确认相应类型的交易,不同交易的权垂分别为1,3,5 。

2.激励与手续费

DAG网络的手续费分发一直是一个棘手的问题,激励制度不健全。在星河图网络中,一笔交易将会被分成两个部分:一为用户发送的交易(金额、合约等);二为伴生交易即手续费独立形成一笔交易 。

前者会由网络节点快速确认广播;而后者却会等待n个无故障确认;伴生交易的 发 出会印上时间戳,在一定的网络权重后,然后前8位最长的交易的匹配节点将会获 得手续费。若形成故障交易,手续费将无法退回。在交易本身不存在全局状态的情 况下,n个无故障确认和一定的网络权重之后,根据时间戳及最长链顺序将会将手续费按递减比例分配给前m位确认节点手续费 。

若形成故障交易,手续费将无法退回。在交易本身不存在全局状态的情况下,n个无故障确认和一定的网络权重之后,根据时间戳及最长链顺序将会将手续费按递减比 例分配给前m位确认节点手续费 。

3.节点

Ambr使用更新型节点权力机制,其权力越大,所需性能越高。上述已经提到,自定义交易> 跨 链交易>合约交易 >加密交易 >普通交易 。 每笔交易在被盖上这比交易时间戳的同时会由私钥签名。确认数到达一定网络权重与占到无错网络总交易数量比例时,节点自动更新其权力。

上述提到,不同节点记账权不同。早期利于更新迭代,但还是会产生官方主节点记账权过大的问题(早期交易由Ambr主节点处理 ),到一定网络深度时 ,Ambr团队将自动放弃一大部分记账权,转向网络竞争记账,若节点达到各项要求 , 最后总会有一固定比例的更替节点拥有最大记账权。加密交易等级以上的节点拥有发起网络投票权的权力,其更新代号会列举在G UI界面当中 ,当总持币数大于 2 0 % 的节点群对其投票时,全网其他持有币的同步节点必须要对此作出表态。这是一种相对实用的迭代模型 。

4 .数据确认

数据的确认同样也涉及双花问题 ,星河图中,通过MCI(主链的索引)+ TFI(交易手续费索引 )来确认。MCI即MainChain Index, TFI即Transa ction FeeIndex 。 MCI即从主链创世 单元起每个universe的序列值,每 一笔交易的确认顺序由MCI决定,网络会优先选择 MCI 值大的universe放入主链当中, TFI 作为第二参考指标,分别根据得到手续费的节点确认时间来确定冲突交易的有序性。例如其他条件一样,手续费节点1确认时间一致,比较2节点的确认时间,以此类推 。

5.时间确认

时间戳通过两种方法来确认,一种是每笔交易会盖上确认交易时间戳 ( Confirmed Timestamp,简称CT)与加入主链时间戳( M ain Chain Timestamp, 简称MCT),确认交易时间戳有助于帮助确定交易确认时间的置信区间 , 加入主链时间戳可以帮助多链系统形成有序的时间秩序。也就是说,时间戳是可以更新的 ,加入 ,另一种是通过交易的权重深度来辅助时间戳的确认。权重配合时间的方式可以让DAG共识下的智能合约具有可行性 。

智能合约

1 .语言与标准库

Ambr的智能合约语言兼容solidity,熟悉以太坊合约编程的开发者能够快速适应。我们已经知道以太坊合约的缺点:重复验证包含合约的块;每个节点重复执行计算导致手续费的昂贵。没有发展优秀可用的标准库等等 。
在Ambr合约语言上将会有大量标准代码库支持,包括一些简单合约、函数、数组和字符串等。因字节码减少,可以大大降低合约的部署成本;更加安全, 经过审查,可见性高并且易于维护和升级。

2 . DAG+智能合约的可行性分析(外部数据+时间与权重 )

对于智能合约来讲,外部数据的调用一直是个难题,其原因在于区块链的共识机制要求每个节点状态相同智能合约才能正常运行,所以引入的外部数据需要全部精确一致,需要有一个确定的世界状态让每一个执行操作的节点去有序执行 。

这里列举一个最经典的例子:双方就明天天气如何对赌。这里涉及两个问题:1.定时从外部网站获取天气的数据;2.所有节点统一执行对赌结果。以太坊通过预言机(Oracle)来解决这个 问题,采用单一或多重模型预言机作为数据传输者,在DAPP与WebAPI之间提供可靠链接,从而帮助智能合约访问链外信息 。

在Ambr上,我们并不反对这种做法并且会保留甚至提供类似的预言机模型,让用户自行选择。但除此之外,我们提出这样一种设想:让跨链交易等级以上的节点进行链外数据匹配交易。在调取链外数据交易产生时对高等级节点进行快照,广播其交易 ,同意广播并跟进这笔交易的确认节点开始实施并定点地开始跟踪链外数据。这些确认节点由快照时随机选出,在规定时间点发出匹配信息(交易附带信息),若节点间所发数据一致,则全部广播。但以上做法会消耗较多的手续费,其安全性基于高等级 节点合理的筛选制度与DA G 网络的安全性。我们将持续研究这种匹配交易 。

根据以上所述,对于执行智能合约而言,有“在什么时间执行”这样一个问题,星河图算法使用时间戳与权重两种方式,这里我们着重介绍权重方法。某智能合约中规定,在T时刻预执行操作A,此时包含这个智能合约的universe权重不超过5。但由于其状态在 T 时刻的弱一致性,等待权重到了18(由权重置信区间确定,为两个全类型交易权重周期:(1+3+5)* 2)后,真正执行操作A。这意味着,合约的执行有个缓冲期,所有参与节点将会发出准备信号,不执行的将会被淘汰,降低其节点可信度 。

多链与跨链

1.私链

Ambr的设计哲学是简约+复合。每一个模块、功能都尽量设计成可拔插、具有片区容错性,组合之后实现复合型功能。每个节点都可以发送一个开启私链的创世跨链交易,这类节点会得到一个跨链地址,此后所有的交易都将指向这个创世交易,每条链都有自定义的网络标示、端口、网络ID等等 。并且可以选择自己的主节点,用于快速验证交易。私链交易与公链交易独立 。

私链完全可以作为一条侧链使用。节点的确认与安全性保障使用Ambr主链的解决方案,或者自己指定节点,或者自己引入第三方可信节点机构(可指定)。Ambr网络中,将会有一条所有人共同拥有的侧链,每隔一定时间块,记录主网中的hash链 验证信息 。这是一种嵌入式私链,用以确立世界状态一致的时间戳顺序。以上将被设计为可拔插机制,也可用主网的伴生交易确定时间戳顺序。都是为了智能合约环境下 ,用户有多种确定世界状态的手段 。

2.跨链

2.1 中继链

Ambr主链作为一条中继链,与其他区块链项目进行对接时会生成对应的私链。与私链类似,中继链中也存在报信人的角色,报信人负责快速传递消息 。

以下论述两种跨链下实现中继链的办法 :
可用信息存储:私链上将持续生成universe存储其他区块链上的信息,每调用一次叠加一个universe,这条链仅在需要读取信息的时候才会产生变化,每次调用需要从主链上存储验证信息。共识依赖于主链进行 。
所有信息存储:以BTC为例,将所有BTC的blockheader分区块打包到universe中,存储在一条特定的私链上,每到出块时间,再次存储最新信息 。这条私链创建初始,会生成一个与创建者地址绑定的智能合约,用于支付universe挂载手续费,一旦地址手续费不足,将会停止私链的信息更新。共识节点可以由自己选择 。

2.2 分布式文件存储系统

多数跨链系统主要用于资产层面的对接、跨链交互,在Ambr的跨链系统上,我们不仅支持数据上的跨链对接,还面对未来的分布式文件存储系统进行布局。对于一个操作系统而言,不单单需要存放的是字节码、代码等,还需要能够存储类似jpg、pdf等等针对于操作系统的文件。所以我们也关注于IPFS协议的发展,致力于发展通 用的文件基础架构,一旦类似IPFS的分布式文件存储系统发展成熟,我们将会将其对接在跨链的文件存储上 。
通过Ambr对接分布式文件存储系统的好处:用户在Ambr平台上发布合约或者跨 链交易,以实现自己的功能:例如,发布一个版权证明合约、跨链存储文件等,但将 具体的需要存证的文件等存放在存储系统上,可以减少Ambr链上数据臃肿,却不会丢失认证信息 。

3.主链验证

将私链的验证信息存储到主链上是DAG网络十分难以解决的问题 。其问题主要在于,DAG网络节点间没有一个相同的世界状态,其偏序关系让许多验证方法失去作用。上方已经提过时间块的概念,利用时间块与有效验证率可以验证一个可置信时间区间内的交易,加快时间块的验证速度,提高其出块速度,在DAG网络中也将使验 证信息变得十分高效 。网络权重为交易链接 的各笔交易权重总和,不同交易类型根据其验证难度所具有的权重值也不相同 。
故针对于主链验证有几个解决方案 :
1.私链方自己选择主节点的最长链时间块块头信息与最长链的验证信息(如哈希值)存储于主网,拥有相应权限的用户可调用其信息 ;
2.私链方不选择主节点情况下,以网络权重作为世界状态(动态,但省略小权重),每达到自定义权重区间的网络权重时,存储相应验证信息 ;
3 . 为了让用户或合作方获取私链最新信息,私链创建方可根据实际使用需求相应调整权限级别,允许用户直接获取世界状态不同下的信息。
在这个系统中,主链解决了共识问题,验证人由私链创建方自己选择 ,网络权重作为重要的考量因素。 I/O由于DAG高效快速的共识将会变得十分快速。

关于更多Ambr信息:http://www.ambr.org/

文章来源:http://www.qukuaiwang.com.cn/news/8963.html
原文作者:Ambr
特别申明:区块链行业ICO项目鱼龙混杂,投资风险极高;各种数字货币真假难辨,需用户谨慎投资。blockvalue.com只负责分享信息,不构成任何投资建议,用户一切投资行为与本站无关。

1.价值区块链(blockvalue.com)遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.价值区块链的原创文章,请转载时务必注明文章作者和"来源:价值区块链(blockvalue.com)",不尊重原创的行为本站或将追究责任;3.作者投稿可能会经价值区块链编辑修改或补充。