1.区块链技术的痛点 墨客认为,以区块链应用的主要平台以太坊为例,描述现有区块链技术的缺点和痛点。
1.1 处理能力很低,扩展性比较差。
以太坊目前能支持的TPS非常有限,大约15-30TPS。
墨客分析表明,所有节点都处理相同的智能合约,所有合约的状态都记录在公共区块链账本中。
这样的系统很难支持数千个 DAPP 调用和状态存储,而且一两个流行应用程序就可以阻塞以太坊。
1.2 以太坊不是为 DAPP 设计的。
从中本聪的比特币开始,区块链技术的主要目的是建立一个去中心化的电子货币系统。
以太坊在此基础上发展起来,加入了智能合约的功能,但并没有改变这个本质。
以太坊的架构在很多方面都不适合DAPP。
这表现在几个方面:DAPP用户的学习曲线非常陡峭。
如果用户需要使用基于智能合约的DAPP,他必须首先做几件事。
首先,他必须获得钱包地址、私钥,并知道如何正确使用钱包地址和保存私钥;其次,他必须以某种方式获得 eth。
通常的做法是在支付昂贵的费用后购买一些 eth。
之后,您需要等待很多天才能将购买的eth转移到DAPP钱包地址。
这个过程对于区块链新手来说非常复杂,需要足够长的时间(一周以上)才能完成,才能真正使用DAPP。
维持 DAPP 运行的成本不公平地偏向了 DAPP 用户。
DAPP的创建者部署合约后,合约可以继续运行。
DAPP创建者/维护者不再需要支付任何系统维护费用。
而是将消耗系统资源的成本转嫁给DAPP用户,一次部署,无限使用。
不利于构建DAPP生态系统。
DAPP创建者的主要目的是让更多的用户使用DAPP。
相对较小的部署成本和巨大的使用成本并不是DAPP创建者真正需要的。
基于区块链的DAPP的使用应该和传统APP一样。
用户从APP商店下载后,可以立即免费或以极低的费用使用该APP。
用户实际上不需要关心底层区块链是什么样的。
他不需要关心Eth是否存在或者如何获得Eth。
1.3 代币的主要分配方式是通过挖矿。
中本聪的理想是每个拥有电脑和网络的人都可以参与挖矿并获得虚拟货币。
这样,比特币的分配就可以更加去中心化,让更多的人使用比特币。
但现实情况是,挖矿已经变得非常昂贵,只有那些买得起大型矿机和昂贵电力的人才能从这种分配过程中受益。
以太坊的挖矿使用 GPU,相对比比特币的 ASIC 更好,但仍然非常昂贵。
尽管以太坊尝试转向POS共识机制,但仍然维持着强者恒强、富者愈富的场景。
以太坊和大多数其他区块链缺乏有效的方法来重新分配代币以实现去中心化。
2、墨客的解决方案 墨客区块链通过以太坊系统架构的创新,可以同时解决上述三个问题,并提供有效的跨链功能。
具体方法如下: 2.1 分层 2.1.1 使用分层结构实现分片,分别处理余额转账和智能合约。
底层以POW方式处理所有余额转移和全局合约,解决全局一致性和双花问题。
。
DAPP的智能合约部署在上层,利用分片技术,通过POS或PBFT实现子片的数据一致性,使系统TPS提升高达3倍。
moac的底层节点称为v-node,采用POW挖矿方式。
Moker moac引入智能合约服务(Smart Contract Server,scs)节点进行合约处理。
通过分层处理,合约在逻辑子链中执行,不会影响正常的用户交易处理。
每个部署的DAPP合约都可以选择所需的SC数量和共识方式,并拥有自己的子链来保存状态。
子链采用定期刷新机制,将自身状态的哈希写入底层区块链中,以实现一致性。
2.1.2 费用分摊 DAPP 的创建者必须为子链中的每个区块支付费用,类似于每月支付水电费,以维持 DAPP 的持续运行。
DAPP的用户可以直接调用DAPP应用程序,无需支付任何Gas费用。
如果需要防止用户滥用,DAPP本身可以实现相应的处理方法。
这样,上层共识协议不需要消耗大量的能量来获取随机数,而是纯粹处理智能合约的执行或服务,系统要求非常低。
普通的嵌入式系统甚至手机都可以参与。
节点数量增加,然后通过分片支持数千个DAPP;反过来,DAPP的持续支付费用可以支持更多上层矿工。
这就形成了一个开放的、正反馈的循环,使moac系统成为一个适合DAPP的庞大生态系统。
2.2 分片 分片是指将网络中的所有节点划分为若干子组。
这些子组使用预定义的方法来执行所有节点原本要处理的工作,从而提高系统的处理能力。
以太坊目前的分片策略是在一个周期内将所有节点分成若干部分,然后将合约分配给每个分片。
当循环结束时,会重新分片。
这里有几个问题:需要一个全局内存来保存这个分片信息。
这个周期通常比较长。
如果节点数量动态变化,分片信息很容易过时。
在周期结束时,当前分片处理的合约必须重新分配到新分片,从而导致不必要的资源切换操作。
分片的共识方式与底层共识相同,因此需要主网切换到POS后才能采用分片功能。
Moke moac采用分层的方式来实现分片。
moac底层使用POW来保证所有数据的一致性。
处理分片的节点称为SCS,其特点包括:每个分片都有自己的存储,这是一条子链。
SCS可以有与底层不同的共识方法,例如pos、pbft。
SCS的区块生成时间可以与底层不一致。
例如,可以使用快速块循环来进一步提高处理速度。
SCS定期将结果刷新到底层以实现阶段性全局一致性。
与以太坊分片方式不同,moac分片采用合约驱动的模式。
也就是说,一份合约对应一个系统分片。
当合约创建时,系统会自动随机选择相应数量的节点组成分片来处理合约。
这个合约的生命周期,包括合约的创建到结束,都是在这个分片中实现的。
当然,如果有必要,可以重新洗牌来选择新的分片节点。
moac系统提供了Pos分片的实现。
用户还可以实现自己的共识协议作为SCS的插件。
这就形成了子链的概念。
合约的执行尽可能在SCS端执行。
V节点仅处理支付交易和必要的合约调用。
这可以减少支付交易的gas量,进一步提高处理能力,而不会对系统造成太大的负担。
随着整个系统处理速度的提高,对v-node的要求也会更高。
体现在两个方面,一是网络的带宽,二是存储能力。
当然还有每个节点的GPU计算能力。
随着光纤网络和5G网络的普及,带宽预计不会成为瓶颈。
内存的价格就更不是问题了。
对于普通用户来说,由于SCS可以参与挖矿,因此不一定需要部署v节点,只要有可信的v节点可以连接即可。
这样,moac系统将形成两级挖矿节点:大量具有强大计算能力、高网络带宽、大存储的v节点,执行POW并提供SCS访问服务,以维持挖矿所需的能力。
整个网络。
这个数量从几千到万不等。
基于海量CPU的SCS用于处理合约执行。
为了子链的共识多样性,这样的SCS节点甚至可以是手机等移动设备。
SCS节点的数量可以是无限的。
在目前的架构下,数十万甚至上百万的SCS可以参与,而不影响系统性能。
2.3 子链 区块链中有很多概念,比如分叉链、侧链、子链等。
这些是什么?分叉链是指基于同一个软件,在增加或减少某些功能后单独部署的链。
区块链。
侧链是指与主链平行的一条单独的区块链,但它和主链可以通过相互理解的协议互连。
主链的币可以在主链中可验证地锁定,在侧链中可以获得相应的币,反之亦然。
侧链作为主链的补充,可以提供一些主链无法提供的功能。
但这种互联需要共识机制,侧链必须具备与主链相当的算力,才能保证侧链币的安全。
为了获得相当大的计算能力,它实际上完全成为一个单独的链。
因此,侧链概念自提出以来并没有得到广泛应用。
子链是指在主链平台上衍生出来的具有其他功能的区块链。
这些子链不能单独存在,必须通过主链提供的基础设施来运行,并且主链的所有用户都可以免费获得。
一个简单的例子是以太坊上的erc20合约。
这条合约可以看成是一条逻辑上的子链,但是这条子链的共识方式和主链是一样的。
由于moc moac支持大量子链而不影响系统整体性能,并且子链之间具有良好的交互功能,因此moc moac可以构建强大的三维结构。
我们可以想象一下moac的一些架构场景:moac底层的POW挖矿系统提供了可靠的全球一致的区块链来快速处理智能合约,并且可以随时更新SCS节点。
PBFT子链支持零知识证明的快速处理。
由海量SCS节点(硬件盒子)组成的IPFS分布式文件系统子链。
多行业子链,专业应用。
分布式子链代币交换。
多个跨链子链,通过每个子链连接外部区块链系统。
链间灵活的交互功能,一条子链可以使用另一条子链(如IPFS)提供的资源,使得接入moac系统的用户可以获得强大的分布式技术支持,从而使得在此基础上构建的应用成为非常简单,就可以获得moac系统的社区资源。
2.4 跨链 目前两个区块链之间进行货币兑换有两种方式。
一是利用线下的方式寻找具有相反需求的可信的其他买家。
A将A币转账给B,B将对应的B币转账给A。
这种方式效率比较低,很难找到可信的对手,执行风险也较高。
另一种方法是常用的中心化交易所。
每个人都将各自的货币充值到交易所。
交易所将每个人的余额记录在其系统中,然后在交易所的平台上进行兑换,直到进行购买。
用户从交易所提取相应的币种。
中心化交易平台的问题是显而易见的。
在缺乏监管的情况下,中心化交易所可能会出现内幕交易、伪造交易、挪用资金等问题,而且中心化交易所很容易被主权机构控制。
这里,通过发布X,同时解锁两笔交易,实现了跨链交易最重要的原子性问题。
但这种方案存在几个问题:跨链的每条链都需要支持闪电网络,这就需要哈希锁和时间锁的功能。
如果现有的链没有这个功能,就需要硬分叉。
这在很多情况下是不现实的。
整个交易过程是一个交互式、手动的过程。
用户B必须等待A的公告,然后确保将适当的信息提交到对方的网络。
如果需要实现自动化,会比较麻烦,需要额外的基础设施支持,比如类似Cosmos的拜占庭容错集线器支持。
moac利用系统独有的系统定时触发功能和子链功能完美解决了上述两个问题。
系统定时触发功能是设置一笔交易在指定的未来区块位置执行。
这个设置%会被执行。
MOAC 的具体跨链实现如下: 查找匹配交易:在 MOAC 网络中 A 从 Am 地址发送 m 个 MOAC:Am -> Bm:m,在另一个区块链网络(如以太坊)B 从地址 Be 发送n Eth 寻址 Ae,表示为 (Am ->Bm: m ^ Be -> Ae: n)。
在moac网络中,A创建哈希锁系统,定期触发Block#k上的交易T: Am -> Bm: m。
A也会将m MOAC发送到系统合约作为储备。
计算哈希值(T)。
该系统的预定交易触发器将在k个区块后执行交易。
如果成功,Bm得到m个MOAC,否则返回给Am。
成功取决于哈希锁是否解锁:是否存在可验证的以太坊交易 Be->Ae : n eth,以及 Hash(T) 标识符。
B看到系统定期触发交易T后,知道它会在k个区块后执行,所以他可以安全地发送交易Be->Ae: n eth,并将Hash(T)放入数据段中同时。
B在以太坊中的交易被确认后,监控子链以以太坊中的交易信息为参数调用系统合约来解锁哈希锁。
到达k块后,系统合约自动执行,完成Am->Bm:m。
这里,moac区块链通过其他区块链确认的交易信息来解锁moac交易,实现原子操作。
它的巨大优势在于,对其他区块链没有新的要求,只需要额外的交易数据信息。
每个区块链都可以使用此功能。
因此,moac跨链机制可以实现与所有区块链的跨链操作!目前moac系统使用子链来实现拜占庭容错的快速消息传递。
例如:支持与以太坊信息传输相同的自定义共识协议的SCS节点可以形成子链。
为了实现moac系统与以太坊区块链之间的信息传递,SCS节点可以同时连接一个eth轻节点。
这样SCS节点就可以随时获取eth中需要监控的交易信息。
多个SCS节点通过预定义的共识协议向v-node层发送相应的操作(例如解锁系统合约的调用请求),从而实现跨链信息的拜占庭容错。
综上所述,moac提供了与所有其他区块链的跨链解决方案,并提供跨链信息传输以实现去中心化的跨链交易。
然而,并不限于此。
在此架构上可以轻松实现去中心化交易所。
2.5 挖矿 MOAC将系统分为两层。
底层是POW挖矿,兼容现有的以太坊系统。
现有的以太坊矿机可以轻松转移到墨客进行挖矿。
上层是SCS节点。
此类节点的数量可能非常大。
每个部署的子链合约可以随机选择参与挖矿的SCS节点,形成共识子网。
SCS节点提供服务并获得奖励。
墨客提出二级挖矿,上层挖矿提供二次分配功能。
即子链的部署者需要持续缴纳MOAC并分发给参与的scs节点,以维持子链的正常运行。
SCS节点参与挖矿的成本非常低。
只需要一定的墨客押金,系统要求极低。
这样的挖矿机制让大量的SCS节点参与并获得收益,从而使得墨客的二次分布更加广泛。
这样就可以极大地调动社区的积极性,形成开放的体系。
子链默认配置是使用moac进行支付。
子链的创建者可以设置每个区块的时间间隔以及每个区块的奖励。
这些奖励是由创作者支付的。
MOAC提供了动态管理机制,这样即使MOAC本身的价值发生波动,scs节点仍然可以盈利,同时子链创建者也不会负担过重。