请选择 进入手机版 | 继续访问电脑版

Hi,Tokens

 找回密码
 立即注册
查看: 219|回复: 5

墨客-Mother of All Chain (MOAC) Blockchain的白皮书解读

[复制链接]

473

主题

831

帖子

2690

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2690
发表于 2018-4-21 13:57:58 | 显示全部楼层 |阅读模式
Mother of All Chain (MOAC) Blockchain (简称 “MoacChain”,中文音译为“墨客链”,又称“众链之母”)是一个开源的区块链平台,通过分层配置结构实现在P2P网络上支持多种子区块链,由硅谷顶级区块链专家团队研发,突破了异步合约调用、合约分片处理和跨链操作等当前业界难题,平台的扩展能力和对合约的处理速度远远优于当前的智能合约平台,是一款真正可以部署商业应用的区块链产品。



墨客产生的原因,是基于目前最火热的智能合约平台以太坊的速度和扩展能力不足,无法应付大批的代币项目应用的需求。相对于以太坊每秒7-14次交易处理,墨客可以做到100倍,在优化条件下,甚至到1000倍。
那么墨客作为“优化的以太坊”,技术上是如何实现的呢?


01 分层验证

首先是采取了分层,其他系统要么坚持pow,要么坚持pos,要么混合pow+pos,都无法有效利用两者的优点,和避免两者的缺点。墨客采取底层物理网用pow,上层智能合约的逻辑网用pos,使得两者的优点都能兼顾,可以称为pop(pos over pow)。


02 分片技术
以太坊最新分片理念,主链基本不变,加个validator management contract合约管理sharding的接口和分配。sharding里面什么样子主链不关心,主链只关心最后你header的hash对了就行。但是技术上要实现分片,根据以太坊的路线规划要到2019年才能出来。

相对于以太坊的单一网,墨客成功突破并采取了分片sharding技术,可以将墨客分为无数逻辑子网,使得并行计算成为可能,解决了业界一大难题,大幅度提高处理速度,为此可达到Visa级别的交易规模。





03 异步调用
以太坊的同步智能合约调用,智能合约的返回和区块共识绑定在同一个区块,导致智能合约处理的总额受到区块时间限制。墨客采取了异步智能合约调用,使得调用和返回可以跨区块而不受到区块时间限制,大大增加了同时处理智能合约的数量。


04 跨链
通过异步智能合约对区块的跨越,使得墨客可以对区块产生时间不同的区块链进行原子跨链操作,使得墨客成为具有跨链能力的区块链底层系统。异步调用智能合约从启动到完成,可以跨区块,不再限死在一个区块完成,这样大大加快了MOAC的吞吐量,同时具有进行不同区块链的跨链功能。

不同的区块链,具有不同的产生区块的时间,例如,在MOAC上设定一个购买以太坊ERC20代币的合同,那么就可以在5秒钟里面,跨出MOAC当时的区块,然后合同通过链外通讯,等待以太坊25秒的区块完成对应买卖,再在第N+2个MOAC区块,完成这边的交易。这种原子交易,完全不同于目前各种跨链的第三方角色通过建立一个中间托管账户来完成的交易。

在合约中,还可以定义看几个确认区块,再完成交易。而其他区块链系统缺乏异步调用合同功能,是无法进行跨链原子交换的,这是MOAC的优势。



05 可拔插验证自建区块链产品
新的想法意味着要建立一个新的区块链。 需要设置服务器,开发团队,建立社区,吸引新用户等,需要大量开销来实施新的区块链想法。而墨客链上线以后,这些想法便可以轻松在墨客链上进行实验验证,无需巨大的额外开销。


06 永不分叉
之前的区块链产品一旦区块链被部署和进入生产模式,很难在功能上进行添加/修改/删除。 这样的修改要么是软分叉或者硬分叉。处理分叉需要巨大的努力和承受由此带来的经济后果。而墨客链的架构模式使得区块链的不分叉改进成为可能。

回复

使用道具 举报

473

主题

831

帖子

2690

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2690
 楼主| 发表于 2018-4-21 13:58:27 | 显示全部楼层
陈小虎99年毕业于浙江大学,后来到美国加州大学河滨分校攻读硕士学位。在美国期间,曾在职理光相机,Nextengine、Waytools等公司,相关的工作经历和学识让他精通计算机结构和互联网软硬件各种算法,积累了丰富的IT开发经验。

2001年他开始在硅谷创业,是一家3D扫描仪公司联合创始人。后来,他与一些在硅谷的科学家与程序员一起开发一个区块链公司,陈小虎负责区块链的组织开发。小虎说到MOAC是一条公链,能够把积累下来的技术提炼出来,做开源的项目反馈给开源社区。

MOAC——即Mother Of All Chain的缩写,中文翻译成“众链之母”,或是“女娲链”。

陈小虎认为,目前市场上已经有很多部署的区块链,不论链的规模大小,它们都有以下一个或多个问题:

1.  难以尝试新的想法:假如我有一个idea想要利用区块链来解决,那么基本上就意味着要建立一个新的区块链。需要设置服务器,开发团队,建立社区,吸引新用户等,需要大量开销来实施新的区块链想法。

2. 难以升级:一旦区块链被部署和进入生产模式,很难在功能上进行添加、修改或删除。一个办法是加入软分叉,软分叉是指当新共识规则发布后,没有升级的节点会因为不知道新共识规则下,而生产不合法的区块,所产生的临时性分叉。但假如修改得不够完善,产生了硬分叉,部分没有升级的节点无法验证已经升级的节点生产的区块,区块链就会发生永久性分歧。处理分叉需要巨大的努力和承受由此带来的经济后果。

3. 区块链之间不相容:不同的区块链有不同的模式,如共识协议、货币特征和适用要求等。模式的差异阻止了多个链之间的互连或互换。当然为了使得跨链交流成为可能有跨区块链协议,但本质上只是在货币层互换,区块链本身的特性如智能合约、高级功能之间很难互通。

4.分裂的参与者:对于每个区块链,用户群是不同的。矿机和验证节点仅能用于该区块链。没有两个区块链可以共享它们。


陈小虎认为,解决这些问题,有两个思路:现在以太坊的构思和智能合约捆绑在一起,交易和操作捆绑在一起,另外以太坊的合约调用是同步的过程,好处是保证数据的一致性。但问题也显而易见:如果某个智能合约比较强势,先执行结束后才能做其他事情,限制了整个网络中能够处理的合约数量,限制了性能。

假如想要提高性能,你会发现以太坊这类区块链所有系统都在做同一个事情,如果想让一部分人做这件事事,其他人做那件事,提高效率,就需要在不同的片区之间保持数据的一致性,这是非常困难的问题。

MOAC的解决方案是两个核心技术创新:一个是合约的异步调用。具体来讲,MOAC采用类似于以太坊的POW机制,并分为三种基本交易类型:支付交易TXp,数据存储TXs,控制流TXc。它们在底层POW共识节点中处理。所有节点都收敛于一个全局一致的状态。

除了POW对交易和数据存储集的共识外,每个POW节点都与一个智能合约服务器相关联。智能合约服务器(SCS)身份可由相应的POW节点完全验证。智能合同请求(创建/调用/刷新)包含在控制流TXc中,并首先在底层中处理。然后每个POW节点通过异步调用向其SCS发送合约请求。合约请求在SCS中处理。如果需要,SCS 将向底层发送附加的控制流TXc和数据存储TXs。

通过把合约和底层共识分开,让每个合约的服务器支持插拔的功能,让每个合约上可以运行不同的机制、插件。开发者可以在合约层选择所要的合约主体,然后定义自己的共识的方式,在系统自己定义一个子区块链,一方面只要定义这些参与共识的节点可以利用现有的系统,解决了新系统的问题;另外如果要对区块链分层,只要把相应的插件进行分级就可以了,可以方便的在链上产生新的idea。


另一个是合约的分片处理。即执行智能合约的方式是通过分片技术实现。具体来讲,所有SCS都可以在运行时进行配置,以处理不同部分的智能合同。整个系统吞吐量可以比传统方式快10倍-100倍。分片的执行组通过控制流TXc和数据存储TXs将分片状态记录到底层块链中。


总结起来,该项目旨在提供一种可扩展且有弹性的区块链,支持基于分层结构的状态交易,数据访问,和控制流程。它创建了一个框架以允许用户用高效的方式执行智能合约。它还提供了开发的体系结构,采用底层基础设施来快速简便地产生子区块链。它是一个区块链平台,可以为子区块链的架设提供必要的部件,为想法测试,私链部署,复杂任务处理和智能合同应用等提供解决方案。

目前MOAC还处在测试阶段,对关键技术的测试已经通过,估计到今年9、10月会把代码包开源出来,年底推出测试网络,明年6月正式上线。

商业模式上,陈小虎称MOAC本身是开源项目,目前还是主要考虑公链应用,希望能把技术实用化。“当然如果技术在开源社区部署成功以后,用这个系统可以做很多实际应用,兼有公链的特点又有私链快速处理的能力,在这个基础上为企业内部搭建平台或应用会有更大优势,商业前景不错。”




回复

使用道具 举报

473

主题

831

帖子

2690

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2690
 楼主| 发表于 2018-4-21 13:59:32 | 显示全部楼层
MOAC 是前述所有问题的解决方案。 它是区块链的区块链。 MOAC 本身将部署在具有
大量验证节点的公共网络中。 它提供以下内容:

1.  分层配置结构
2.  交易,智能合约和数据访问支持
3.  数据流,控制流程和处理单元,形成一个分布式的 Von Newman 架构。
4.  验证节点可以配置为多个重叠的子区块链服务。
5. 可插拔验证方案,支持注入式的用户协议,可以使用现有验证节点来轻松部署新的子区块链
6. 鼓励具有较小处理能力的用户参与验证过程


[体系结构]

分层结构示意图

1. P2P 网络层。 这个层定义了 p2p 协议,我们将采用 GOSSIP。
2. 区块链层。 该层处理与区块链操作相关的所有操作,如共识,数据访问等。
3. TX 层。 该层处理 TX 请求和回复。 它还处理控制类 TX 请求,并在必要时调用与智能合同相关的操作。
4. 智能合同层。 该层执行虚拟机内的智能合同执行,并保持临时合同状态。
5. API 处理最终用户输入并获取下层的输出及返回。

MOAC 拓扑结构
目前,MOAC 采用类似于 Ethereum 的 POW,加上创新的分片技术,实现底层的共识支持,
另外在此基础上加上更多的创新:
1.  数据存储与交易分离。
2.  共识在交易集和数据存储集上达成一致。
3.  智能合同由交易集调用,但智能合约状态不直接链接到交易。
4.  智能合同以异步方式进行调用。

系统中的三种基本交易类型:支付交易 TXp,数据存储 TXs,控制流 TXc。 它们在底层
POW 共识节点中处理。 所有节点都收敛于一个全局一致的状态。
除了 POW 对交易和数据存储集的共识外,每个 POW 节点都与一个智能合约服务器相关联.
智能合约服务器(SCS)身份可由相应的 POW 节点完全验证。 智能合同请求(创建/调用/
刷新)包含在控制流 TXc 中,并首先在底层中处理。 然后每个 POW 节点通过异步调用向
其 SCS 发送合约请求。合约请求在 SCS 中处理。如果需要,SCS 将向底层发送附加的控制
流 TXc 和数据存储 TXs。


执行智能合约的方式是通过高效的分片技术实现。所有 SCS 都可以在运行时进行配置,以
处理不同部分的智能合同。 整个系统吞吐量可以比传统方式快 10 倍 - 100 倍。 分片的执
行组通过控制流 TXc 和数据存储 TXs 将分片状态记录到底层块链中。


[子区块链]
MOAC 系统可以执行普通支付交易,数据存储交易和智能合同交易。此外,在此架构上
产生部署子区块链是非常方便的

用户可以使用智能合约配置定义子区块链的属性(系统参与验证节点的百分比,共识协议,
安全策略,状态存储等)。子区块链的创建通过控制流 TXc 完成。一旦建立子区块链,每
个参与者 SCS 将在其执行中采用可插入的协议。对子区块链上的随后请求将由选定的 SCS
来验证。

子区块链的区块生成可以配置为按需生成或按照设定的周期生成。按需功能是首选项,因
为它只在需要时生成区块,从而节省宝贵的资源
子区块链的部署可以像发送智能合约请求一样简单。但是,它继承了安全和强大的底层区
块链属性
。并且,它可以重用已有的大量的验证节点池,并从分布式的设置中受益。
子区块链可以通过刷新操作来随机更换参与的 SCS 节点,达到更高的分布式和安全性能
升级子区块链也很容易,只需重新部署到具有更新的区块链属性的新集合 SCS 上。
回复

使用道具 举报

473

主题

831

帖子

2690

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2690
 楼主| 发表于 2018-4-21 14:00:53 | 显示全部楼层
(本文来自网友天毅铭訫qq37788439翻译自MOAC技术黄皮书,内容可能存在瑕疵,如有异议,请以官方英文黄皮书为准)

1.基本设置:

MOAC使用分层共识堆栈,通过分层结构和分片处理来扩展事务处理,在同一个区块链内同步完成。

对于底层,我们利用POW作为主要共识协议,因为POW是验证最为广泛的共识协议,最能够解决大规模的网络设置问题。目前MOAC使用类似于以太坊的POW,但是我们将来会让POW协议可拔插,如果需要,我们可以很容易地用另一种高效的协议换掉POW。顶层补偿POW的缺点,在POW层中只处理关键事务和控制流程事务。顶层采用可配置的共识协议和分片技术,提供更快更高的吞吐量解决方案

下层节点叫V-node,每一个v-node有一个智能合约服务器(SCS)节点,Smart Contract Server 简称(SCS),这个智能合约服务器(SCS)身份可由相应的v-node完全验证。每个SCS完全由相应的v-node验证身份,为了处理上层合约,每一个SCS节点都得进行绑定。

注意,SCS处理智能合约调用,所有顶层事务都采用智能合约调用的形式,并非所有SCS同时处理单个事务,而是选定的SCS的一部分将处理特定的事务。SCS的选择是通过启动智能合约调用或刷新调用。启动/刷新调用实际上被传递到底层并达成共识。启动/刷新调用包括的选择标准包括处理节点的百分比。然后每个v-node将使用预定义的算法在其SCS上调用该调用。 SCS决定是否选择自己来处理此Smart合约。 注意这是一个确定性的过程,SCS的参与可以由任何人验证

一些SCS被选为某些智能合约的组合后,它们就会相互沟通,形成一个小的共识组。 该组就会处理那个智能合约的调用。 此外,它们之间如何达成这个共识可由启动调用指定。更有效的是这些SCS节点形成了一个子链,并且基于预定协议或用户定的协议来执行共识。 请注意,共识协议与实际的智能合约代码不同。

智能合约状态保存在每个SCS中, 然而,这不是实际的全部区块链,为了实现全部区块链的好处,状态需要定期或按需地刷新到底层的区块链。

当在共识模式下刷新时,SCS节点将在底层v-node上启动数据存储请求。这是从共识分片成员合理认证发起的TX,TX将被广播到所有v-node, 其有效性可以由任何节点进行验证,同一个TX中,它还为每个分片参与者指定了奖励费用。如果TX被证明是无效的,则可以实施额外的过程以没收SCS的保证金。MOAC,大多数合同将在顶层处理,而在v-node层只处理少量的控制流事务和资产交易。 这是可行的,因为顶层提供快速,灵活和低成本的服务,而v节点层提供缓慢,依赖性和昂贵的服务

1.1分层结构

1. P2P 网络层: 这个层定义了基础的 p2p 协议。
2. 区块链层:该层处理与区块链操作相关的所有操作,如共识,数据访问等。
3. 交易(TX)层: 该层处理 TX 请求和回复。 它还处理控制类 TX 请求,并在必要时调用与智能合约相关的操作。
4. 智能合约层: 该层执行虚拟机内的智能合约执行,并保持临时合约状态。
5. API 层:API 用于处理终端用户输入并获取下层的输出及返回。


2. P2P 网络
P2P是运行相同协议的节点之间的基础通信层, 节点通过使用经过加密和认证的传输协议的RLPx发送消息进行通信。对等体可以在任何TCP端口上进行通告和接受连接,但是默认端口连接可能被监听。

每个节点和他配对的对等体连接,保留了一个节点列表。我们连接到三个不同类别的节点:引导节点,静态节点和可信节点。每个节点可以设置最大对等体数量,一个典型的数字是25。广播节点将发送pkt给所有的对等体。这些同行将进一步发送给同行。 在多跳中,pkt将到达网络中的所有节点。

这个协议提供了基本的网络通道,下层共识就这样建立的。此外,SCS层将形成另一个共识层。 但是,SCS之间没有直接通信。 因此,SCS将其协议打包通信到较低的pkt中。 V-node负责向同行广播SCS的pkt。每个同伴将重新播出,并将pkt传递给其SCS。 因此,SCS将与底层的p2p网络形成逻辑共识



3.基本分片
目前的区块链具有可扩展性的问题, 区块链处理能力限于单个节点的处理能力, 这限制了区块链的处理速度,也浪费了整个网络的大量处理能力,随着更多的节点加入到网络,这不会增加系统处理能力, 而是随着网络流量增加会使系统性能降低。

分片是解决这个问题的方法。 它将整个网络分为多个分片,并行处理事务,只要每个分片中有足够的节点,这个系统仍然是非常安全的
每个分片随机选择会员处理单个智能合同。同一合同的调用将由相同的分片成员处理。适当的合约可以频繁或者明确调用分片内的成员。
请注意 ,即使在任何给定的时间里,每个片内只有几个节点验证和创建区块,安全级别实际上并不比每个节点正在验证和创建区块的情况要低得多。 详细计算见后面部分。

4. 分布式随机发生器
分片成员是从所有注册的智能合同服务器随机挑选的,为此我们将使用确定性阈值签名并且验证协作生成随机值。该方案将抵抗绝大多数的操纵,除非大多数验证器相互串通(在某些情况下,根据实施情况,33-50%的验证者可能会干扰执行,导致协议具有67%的活性假设)
阈值签名也用于分片成员试图将合约状态刷新到主块的提交阶段, 我们稍后会介绍。

5.分片成员的选择
分片成员的选择分为以下几个步骤:
1)所有SCS在系统合约中注册。
2)系统合同将随机抽取k%的具有足够保证金的SCS节点。 选择算法是公开的,每个v-node可以验证其SCS的ID是否被选中,并通知其SCS节点。
3)如果SCS有效并且愿意参与,它会用带有签名的Ack回复到v节点, V节点将广播其注册。
4)在一定时间内,如果确认的注册率达到最低百分比要求,那么注册成功。
5)每个节点会被秘密的si通知。
6)如果注册超时,则启动另一轮的选择。



6.异步的工作流程


7.异步合约服务器的调用条件
在下列条件下,不能以异步执行合约:
a.合约的输出会改变外部状态。
b.在合约中嵌入其他合约调用。
C.合约取决于输入外部状态。这种条件可以放宽,如果时间宽松,让每个调用通过引入输入状态的方式执行。

8.分片与合约调用
a. 运用随机生成器选择执行单一合约的一定比例的节点。系统合约(SC)将记录该选定合同的参与者。
b.特殊分区会定向执行同样的合约。
c. 如果必须根据项目#b进行同步调用,必须在该调用之前进行提交。

d. 合同的执行结果不能立即由合同退还; 也没有额外的系统合将查询分片合约调用结果的结果。执行结果通过显式提交返回。



9.分片的架构
在分片的情况下,每个合约执行的结果以Merkel树的形式存储在每个参与的节点。每个分片可以继续增长其区块链,直到达到明确提交请求或达到预定的提交计划。
同一分片中的节点将形成某种类型的共识。 这个协议非常灵活,可以通过合同创建设置指定。
每个SCS连接到一个低一层的共识节点(v-node),这个SCS完全信任从V-node传来的信息。
每个SCS将首先注册到系统合约,以表明它将参与智能合约处理。 它需要提交一定数量的保证金,如果发现任何欺诈行为,该债券会被扣除。
每个合约的处理,所需的保证金是b,如果SCS有足够的处理能力和带宽支持更多的合约处理,它可以提交n x b的保证金。请注意SCS执行同步合约调用无需保证金。

当用户提交创建一个合约时,他将需要设定下面的参数:
模式:异步或同步
分片比例:10%,最小分片大小的20%
自动提交频率:块号

典型的合约调用工作流程如下:
a. 用户提交启动全部TX的合约,这个TX在v-node中处理,并且启动时通知系统合约。
b. 以确定性的方式随机选择节点。 选择算法将在每个v-node运行,从而决定当前的SCS节点是否是选择的一部分。
c. 每个SCS节点会发送登记保证金到系统合约来确认它同意参加这个分片。保证金是由系统定义的,合约创建者可以根据需要选择更高的保证金。
d. 每个选定的节点会通过连接的v-node发送广播pkt识别自己,广播是通过低层的P2P网络,这个过程只是在在合约创建时或更新合约时需要。请注意,由于多跳连接,一个v-node可能不知道对方的IP地址,这将防止小分区直接的DoS。
e.每个节点这时开始执行启动合约并生成本地状态。
f. 合约上的任何异步调用都会被排队指定到到每个SCS节点,未执行调用的顺序需要节点达成共识,这可以通过POS协议来完成。频率完全由接收的合约调用决定,并且有最小的阈值。


9.1共识分片

SCS将形成共识子链代表一个分片。




回复

使用道具 举报

473

主题

831

帖子

2690

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2690
 楼主| 发表于 2018-4-21 15:15:27 | 显示全部楼层
9.2创建新分片

在创建的第一阶段,用户要提交TX来启动合约创建。 V-node将首先执行地址生成,配置等必要的工作,它要明确的决定连接的SCS是否被选择去处理这个合约,如果是的话,通过授权SCS,并通知并验证其参与。SCS也会利用底层的P2P网络广播它参与了该合约。通信pkg包括 (SCS_ID, ContractAddr, Config)等信息。请注意,此通信可以与其他合同创建相结合,以减少传输pkts。 其他选定的SCS将执行相同的操作。
此通所需要的pkt总数为

k: 执行广播的合约总数。 S: 分片大小


本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
回复

使用道具 举报

473

主题

831

帖子

2690

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2690
 楼主| 发表于 2018-4-21 15:18:29 | 显示全部楼层
9.3合约的函数调用

用户向v-node提交合同调用。 v-node将通过底层的p2p网络广播到所有分片内其它成员。 V-node会检查当前SCS是否需要执行此调用。 如果是的话,它将传递这个调用到SCS,SCS将以异步方式执行它。
如果多个合约调用到达同一个块中的v-node,这些调用可能会以不同的顺序到达不同的节点, 为了确保所有节点具有相同的顺序,需要共识确保每个分片的成员都具有相同的tx组。


9.4查询合约状态
同步合约和分片(异步)合约的合约状态检查略有不同。在同步合约调用中,所有信息将在主/根链中可查,但是,在分片的合约根链中不会有最新的合约状态,而是存储在共识的片中。
共识片状态检查是分两个步骤中完成:
a. 任何想要检查合约状态的节点都需要注册系统合约观察者, 它不需要执行合约或达成共识, 它只是接收来自分片活动的信息,如共识结果,区块的更新。


9.5预提交

共识片会保留对合约执行的区块链,定期地将区块链的这些合约调用结果提交到主/根链。
可以通过对分片的合约调用来调用预提交。或者,如果预定义的话,则可以通过系统合约来调用它。 所有诚实的SCS将发送其分享的TX并广播给其他分片成员。在这些情况下,共识分片将达到阈值签名协议, 并且每个SCS将打包所有未提交的TX封装在一个提交事务中, 提交事务将被发送到其v-node并进一步广播到网络。因为提交TX可以被任何一个节点验证,它将最终被包含到根块链中。
一旦这个TX被包含在根块链中,v-node将通知其SCS提交。


9.6 提交

V-node将使用正确的根区块链merkle树哈希向SCS提交提交命令。由于SCS信任其v-node,SCS在信息已经提交到根区块链后,清除本地块链。


9.7 阈值签名使用
在提交阶段,我们运用用阈值签名签署共识TX。对于1000个节点,有30%的拜占庭故障的典型设置, 每个碎片都是100,阈值大小51.没有获得51个有效签名的概率为10e-5。


因此,分片大小不能太小,每个分片至少最小需要100个节点,这个应该容易得到满足,因为MOAC是为更广泛的互联网应用设计的应用。此外,SCS的进入壁垒不是很高,而且SCS的处理激励会鼓励更多的SCS加入。


10.跨链支持

本节将介绍Moac 区块链和Ethereum区块链如何协同工作,以实现这两个区块链之间的两种令牌的原子交换。
a) 假设在MOAC网络中,有个用户下单要用MOAC的代币J交换 Ethereum 的代币 T,价 格、数量和收件人地址的指定格式: Order: J->T, p, v, T2.
b) 此请求经适当授权提交给智能合约 SC1,并且因此提交到订单簿.
c) Ethereum 中的某用户想要卖出代币 T 来获得MOAC网络的代币 J,参数如下: Order: T->J, p, v, J2.
d) 该订单提交部署到 Ethereum,智能合约 SC2,带有适当的授权。
e) MOAC的异步合约服务器可以有连接到 Ethereum 公共链的可插拔存根。这些服务 器将使用优化共识算法形成一个共识子链。这些合约服务器将监视 Ethereum 的 活动并将订单添加到订单簿。
f) MOAC系统中的验证节点将找到匹配的事务(T < - > J)。它会生成一个提案{(J1-> Js,int(Js-> J2),(T1-> Ts,int(Ts-> T2)),Js 是 SC2 的地址,Ts 是 SC1 的地 址。 int()是有待执行的意图事务
g) J1> Js 将在MOAC网络中成交,T1-> Ts 将在 Ethereum 网络成交。子链将确保这两个交易发生过并且可以验证。这可以通过异步调用的性质完成。通常需要等待块确认的时间段。这个时间段用户可以定义。
h) 每个合约都要等待确保两边的交易都完成了。然后每个都将完成 Ts-> T2 或 Js-> J2 交易。这是以确定性的方式完成的
i) 无论由于任何原因,步骤#g 无法完成,则合约可以给原用户退款 。

在MOAC网络中的异步服务器有几个目的:

a. 形成BFT子链,用在MOAC网络和其他区块链系统之间通信.
b. 启动对其它区块链智能合约的调用。
c. 对订单执行监控并返回相关的状态 。
d. 为发送MOAC基础代币定义逻辑。
类似的,在 Ethereum 系统合约会定义发送Ethereum基础代币逻辑。




11. 系统合约
系统合约在工作流程中起关键作用, 它具有以下属性:
a)能被每个节点首先执行的内置合约;
b)拥有SCS注册信息w/bond。
c)如果需要,拥有异步合约存根的内部TX调用。
d)启动合约查询,预提交,提交调用。
e)从TX中抽取燃料,并向SCS参与者分配燃料。
f)基于分布式表决方案处理版本控制过程。
在每个v-note中执行系统合约,并为每个节点送达相同的结果。


12. 挖矿和奖励
挖矿的报酬分为两部分,一个是底层的POW(现在)。另一个是执行合同的智能合约服务器。

POW部分非常简单, 谁找到了该区块谁就会获得该区块奖励以及TX燃料。由于异步合约执行在SCS节点中完成,相应的奖励将被分发给SCS。所以当用户提交交易时,支付燃料包括两个部分:一个是TX的固定值部分,另一个是基于合同代码计算的变量值。如果合同以同步方式执行,则将被视为TX部分并属于找到该块的矿工。 如果以异步和分片方式执行合同,该部分燃料将分配给分片成员。特别是,每个子链块的共识的分片成员会给予燃料奖励。份额由系统合同确认和记录,只有当区块被提交给根链时才会被分配。
由SCS分片发送的封装的TX中包括向每个分片成员提供的所属燃料。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|Hi,Tokens  |网站地图 | Swtc行情

GMT+8, 2018-11-18 16:17 , Processed in 0.265377 second(s), 8 queries , File On.

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表