PHANTOM

PHANTOM

每个block包含对多个前驱block的hash引用

和bitcoin不同,不在主链的block不会丢弃,PHANTOM将blockDAG中的所有block合并到账本中,需要保证攻击者的区块是诚实block随后放置的。

PHANTOM 包含三个步骤

  • 使用blockDAG的结构,我们可以识别出一组连接良好的块(我们以后将它们称为blue block)。此过程用于排除由行为异常的节点创建的块,并且是协议的核心:仅引用DAG中的旧块或被其创建者保留一段时间的块将极有可能从blue block集中被排除。
  • 我们将DAG的自然诱导的部分排序完成为完整的拓扑顺序,这种方式偏向于所选簇内的块并对其进行惩罚。
  • 块上的顺序导致事务上的顺序;同一块中的事务根据它们在该块中的出现顺序进行排序。我们按此顺序迭代整个交易,并接受与到目前为止已批准的所有交易一致(根据基本一致性概念)的交易。

随着时间推移,修改一笔交易的代价成指数增加。

The Phantom Protocol

Preliminaries

一个DAG的区块可以表示为 $G=(C,E)$,$C$ 代表block,$E$ 表示对前块的hash引用

我们经常使用 $B\in G$ 代替 $B\in C$

$past(B,G)\subset C$ 表示 $B$ 可以到达的块的子集

$anticone(B,G)$ 表示除 $past(B,G)$ 和 $future(B,G)$ 之外的block

$tips(G)$ 是入度为 0 的区块

image-20201201200936370

The DAG mining protocol

矿工不再是扩展一条单一的链,而是在所有 $tips(G)$ 上扩展,$G$ 是矿工在本地观察到的DAG。此外,矿工应该尽可能快地广播其新块。这两个规则共同构成了PHANTOM中的DAG挖掘协议。

The DAG ordering protocol

前面提到的DAG挖掘协议特别意味着即使两个块包含冲突的事务,两个块都被合并到blockDAG中,并被所有(诚实的)矿工引用。那么,核心挑战是如何恢复blockDAG的一致性。这是在我们的框架中完成的,方法是对所有模块(包括所有交易)进行排序,并逐一接受所有交易,从而消除与之前批准的交易不一致的交易。 PHANTOM就区块==顺序==达成了共识,这也保证了在接受的交易集上达成一致。

从本质上讲,根据最长区块链中嵌入的交易在最长区块链之外的交易,比特币也可以被视为一种订购协议。不幸的是,众所周知,比特币的协议只有在低阻塞率下才是安全的(请参阅第4节)。

PHANTOM的排序规则分为两个阶段:首先,将块分为蓝色和红色。蓝色集合代表似乎是由协作节点开采的区块,而红色集合则代表极有可能被恶意战略节点开采的异常值。然后,我们以有利于蓝块和受罚红色块的方式订购DAG。后面的步骤相当直接,而PHANTOM的新颖性主要在于第一个着色过程。

就像比特币一样,PHANTOM依赖于诚实节点及时与对等节点通讯的能力,并假设诚实节点拥有超过50%的哈希值。比特币中的阻止率被抑制,以确保阻止创建的时间比传递它们所需的时间慢。另一方面,在PHANTOM中,我们注意到即使块率很高并且许多分叉自发出现,也可以识别出最诚实的块集:由于诚实地雷的沟通和合作,我们应该期望在DAG中看到“已连接”的块簇。

让 $D$ 成为网络传播时延的上限

The GHOSTDAG protocol