论文阅读整理Monoxide: Scale out Blockchains with Asynchronous Consensus Zones

Monoxide其实是code name,作者通过运行多个独立和平行的单链共识实例(区)来实现这一点,工作核心突破在于大幅提升区块链系统的伸缩性,并且不影响去中心化或安全性。
共识在每个区域内独立发生,通信量最小,这划分了整个网络的工作量,并且确保随着网络的增长,每个独立节点的负担在可承受范围;设计亮点1→ 作者提出了最终原子性,以确保跨区交易的原子性,保证了交易的有效完成,不需要两阶段提交协议的开销(跨组的交易验证分为了两阶段);设计亮点2→ 作者提出了Chu-ko-nu mining,以确保每个区域的内有效采矿能力与整个网络的水平相同,并且使得对任何但各区域的攻击与对整个网络的攻击一样困难。最后,作者通过在全球1200台虚拟机支持4.8w个节点的测试平台上,证明了对比于比特币和以太网网络,Monoxide能够提供1000倍的吞吐量和2000倍的容量。

1 引言

问题的提出和动机主要是因为区块链吞吐量较低,造成问题的原因一是交易规模的增大,二是因为区块产生的速度是固定的;由于存储和通信等原因,区块链扩展性较差。

异步共识组(Asynchronous Consensus Zones)是本文的主要思想,作者多次强调了共识组由多个同质的、功能上完全一致、地位上完全平等、逻辑上尽量隔离的独立共识系统的实例所构成的,共识组们并行工作,分摊全网的吞吐、计算、存储的压力,分摊全网的维护工作。

共识区域通过是存储量、计算能力和状态表示内存和区域总数成正比来展示容量的自然线性可扩展,要设计这样的区块链系统面临两个挑战:
1.在处理跨区域交易时应以可扩展方式确保高吞吐量;
2.由于个别区域链的独立增长,诚实的采矿能力被稀释,尽可能趋于平衡,以此增加安全性。

由于多方的状态更新在不同区域内独立发生,因此有效处理此类情况是吞吐量扩展性和整个系统性能提升的关键。**作者提出了最终原子性来保证跨区域的事务原子性,使用这个技术可以使得所有操作都能最终完成并实现正确的结束状态,而不是像两阶段提交协议那样序列化事务。**作者提出的系统不保证矿工可处理所有的中继交易,就像比特币和以太坊不保证交易处理一样;相反,每个区域的矿工都被激励(根据对工作负载的估值设置奖励)通过处理中继交易并确保最终原子性来完成每一步。

增大有效挖矿算例以加强共识区域的安全性。区块链系统依靠绝大多数的挖矿能力来超越攻击者;当算力被分布到不同区域,攻击者可以将算力聚集到单个区域,很容易超过该区域的51%阈值。为了解决这个问题,作者提出了“诸葛联挖”,矿工可以通过解决一个PoW难题在不同区域内创建多个区块,这极大放大了诚实矿工的有效采矿能力,他们在区域之间被平均分配了采矿能力。另一方面,这种放大不适用于攻击者,因为放大的挖矿算力被迫平均分配到多个区域,而不能集中到单个区域,这样每个区域的有效算力将于全网总算力处于同一水平,导致攻击单个区域与攻击整个网络一样困难。

2 背景

Monoxide系统使用帐户/余额模型,因为它的简单性,因为具有任意金额的事务可以用一个发送帐户和一个接收帐户执行(而不是两边有多个UTXO);平衡可以扩展到更复杂的状态以支持可编程的应用逻辑,并且允许交易携带状态的增量更新,这与只能携带完整状态的UTXO 交易相反,极大地节省了非同质代币等应用的交易规模(例如以太坊的 ERC-721 代币),其中状态是一组唯一标识符。

3 系统设计

3.1 分区

在系统中,帐户或用户由其地址表示,即其公钥的固定大小的哈希值,该系统以固定且确定性的方式将用户地址空间统一划分。给定分片比例 k,可以轻松推导出用户的区域索引,即通过计算其地址的前 k 位。发起交易(initiative tx)的区域索引由付款人地址决定,中继交易(relay tx)的区域索引由收款人地址决定。 一个块用<s,k,h> 指定,h是它的链的高度,分片规模k定义了区域的数量,进而决定了整个网络的吞吐量和能力。
为简单起见,以下讨论假设 k 是固定的

Monoxide中,全节点加入swarm以广播新交易并从其他全节点(包括矿工)接收块。 swarm 是一组参与相同数据集复制的节点, 在比特币或以太坊中,只有一个集群,每个完整节点都复制相同的数据集,包括所有区块和交易。 在Monoxide为了不同的目的建立了多个群体,分布式哈希表 (DHT) 用于群寻址和对等发现。

Monoxide有一个由所有完整节点组成的全局集群,用于复制所有区域的最小公共信息;另一方面,大多数通信发生在特定区域的集群中,完整节点仅属于特定区域。在每个swarm中,参与的全节点都是稀疏连接的,使用gossip协议来广播消息,与区域类似地在特定于区域的群也由区域索引 s 和分片规模 k 标识。

3.2 跨区工作

每个transaction都有一个zone索引,交易只会被发送到索引相同的zone,relay transaction也只会发到目标zone。区块分为分为链块和交易块,链块是元数据包括pow的nonce,指向上个块的指针,Merkle树根(所有confirmed的交易和initiative transaction生成的relay transaction,这部分在其他zone内的验证)。交易块包括具体的交易信息,由全节点保存,zone交易不生成relay transaction,直接完成,跨zone工作分为两步即付款方验证和收款方验证。

3.3 最小化跨区域开销

在区块链系统中,大多数通信用于复制未确认的交易和广播带有已确认交易的新区块。 在我们的系统中,通信成本仅在区域内的节点之间进行,因为Monoxide在每个节点上维护一个分布式哈希表 (DHT),在获取到未确认交易或转发区块的区域索引 s 后,根据本地 DHT 路由表选择与 s 具有相同区域索引的节点,并按照 gossip 协议将交易和区块发送给这些节点,这将隔离每个区域内的大多数通信。

对于跨区域交易,Monoxide仅将中继交易发送到目标区域而不是整个网络,并且除了实际确认的交易之外,链形成的最小化数据会在所有区域中复制。

4 高效的跨区原子性

在Monoxide中,将一个区块分为两部分:一个链块和一个承载实际确认交易的交易块。
在这里插入图片描述
对于付款人a的提款操作ρ和收款人b的存款操作φ的主动交易,如果a和b属于同一区域,则可以立即在区域内处理。 当 a 和 b 来自不同的区域时,我们通过派生和转发携带存款操作到其目标区域的中继交易来引入双阶段交易处理机制,图 2 说明了处理数据结构的跨区域支付过程。

在区域a进行事务验证和转发
1.当矿工构建一个新区块时,未确认的交易<ρ,a,φ,b>由付款人 a 的区域中的矿工获取。
2.如果a的余额不小于转账金额,则发起交易生效

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

thecommonirin

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值