论文标题
过度匹配:用一个区块链建立强大的覆盖层
OverChain: Building a robust overlay with a blockchain
论文作者
论文摘要
区块链使用对等网络在对等方之间传播信息,但是这些网络目前没有任何可证明的保证,例如拜占庭的容错,良好的连接性和较小的直径。这不仅仅是一个理论问题,因为最近的作品利用了不安全的同行连接策略和弱网络同步来安装对比特币的攻击。加密货币区块链是安全关键系统,因此我们需要原则上的算法来维护其网络。 我们的主要见解是,我们可以利用区块链本身在同行中共享信息,从而简化网络维护过程。鉴于同行具有限制的计算资源,最多只能持续的一部分是拜占庭的,因此我们提供了沟通高效的协议,以维护区块链的高立管网络,同伴可以随着时间的推移加入并离开。有趣的是,我们发现我们的设计可以\ emph {恢复}从实质性的对抗性失败中。此外,尽管大量搅拌,这些特性仍然存在。 一个关键的贡献是加入网络的安全机制,该网络使用区块链帮助新同行联系现有同行。此外,通过检查同行如何加入网络,即“自举”服务,我们给出了一个下限,表明(在日志因素内)我们的网络可以容忍最大的流失率。实际上,我们可以为任何需要连接性的完全分布的服务提供搅拌的下限。
Blockchains use peer-to-peer networks for disseminating information among peers, but these networks currently do not have any provable guarantees for desirable properties such as Byzantine fault tolerance, good connectivity and small diameter. This is not just a theoretical problem, as recent works have exploited unsafe peer connection policies and weak network synchronization to mount partitioning attacks on Bitcoin. Cryptocurrency blockchains are safety critical systems, so we need principled algorithms to maintain their networks. Our key insight is that we can leverage the blockchain itself to share information among the peers, and thus simplify the network maintenance process. Given that the peers have restricted computational resources, and at most a constant fraction of them are Byzantine, we provide communication-efficient protocols to maintain a hypercubic network for blockchains, where peers can join and leave over time. Interestingly, we discover that our design can \emph{recover} from substantial adversarial failures. Moreover, these properties hold despite significant churn. A key contribution is a secure mechanism for joining the network that uses the blockchain to help new peers to contact existing peers. Furthermore, by examining how peers join the network, i.e., the "bootstrapping service," we give a lower bound showing that (within log factors) our network tolerates the maximum churn rate possible. In fact, we can give a lower bound on churn for any fully distributed service that requires connectivity.