Conflict-free Replicated Data Types (CRDTs) are designed for replica convergence without global coordination or consensus. Recent work has achieves the same in a Byzantine environment, through DAG-like structures based on cryptographic hashes of content. The blocklace is a partially-ordered generalization of the blockchain in which each block has any finite number of signed hash pointers to preceding blocks. We show that the blocklace datatype, with the sole operation of adding a single block, is a CRDT: it is both a pure operation-based CRDT, with self-tagging; and a delta-state CRDT, under a slight generalization of the delta framework. Allowing arbitrary values as payload, the blocklace can also be seen as a universal Byzantine fault-tolerant implementation for arbitrary CRDTs, under the operation-based approach. Current approaches only care about CRDT convergence, being equivocation-tolerant (they do not detect or prevent equivocations), allowing a Byzantine node to cause an arbitrary amount of harm by polluting the CRDT state with an infinite number of equivocations. We show that a blocklace can be used not only in an equivocation-tolerant way, but also so as to detect and eventually exclude Byzantine behavior, namely equivocations, even under the presence of collusion. The blocklace CRDT protocol ensures that the Byzantine nodes may harm only a finite prefix of the computation.
翻译:无冲突复制数据类型(CRDT)旨在无需全局协调或共识即可实现副本收敛。近期研究通过基于内容加密哈希的类DAG结构,在拜占庭环境下实现了相同目标。区块链是对区块链的偏序泛化,其中每个区块可包含任意有限数量的、带有签名的前驱区块哈希指针。我们证明,仅凭添加单个区块这一操作,区块链数据类型即构成CRDT:它既是采用自标记机制的纯操作型CRDT,也是在增量框架微调下的增量状态型CRDT。通过允许任意数值作为负载,区块链还可被视为基于操作方法的、适用于任意CRDT的通用拜占庭容错实现。现有方法仅关注CRDT收敛性,其容忍歧义(不检测或阻止歧义),导致拜占庭节点可通过无限次歧义污染CRDT状态从而造成任意危害。我们证明,区块链不仅能以容歧义方式使用,还可通过检测并最终排除拜占庭行为(尤其是合谋场景下的歧义),确保拜占庭节点仅能危害计算的有限前缀部分。