Money transfer is an abstraction that realizes the core of cryptocurrencies. It has been shown that, contrary to common belief, money transfer in the presence of Byzantine faults can be implemented in asynchronous networks and does not require consensus. Nonetheless, existing implementations of money transfer still require a quadratic message complexity per payment, making attempts to scale hard. In common blockchains, such as Bitcoin and Ethereum, this cost is mitigated by payment channels implemented as a second layer on top of the blockchain allowing to make many off-chain payments between two users who share a channel. Such channels only require on-chain transactions for channel opening and closing, while the intermediate payments are done off-chain with constant message complexity. But payment channels in-use today require synchrony, therefore they are inadequate for asynchronous money transfer systems. In this paper, we provide a series of possibility and impossibility results for payment channels in asynchronous money transfer systems. We first prove a quadratic lower bound on the message complexity of on-chain transfers. Then, we explore two types of payment channels, unidirectional and bidirectional. We define them as shared memory abstractions and prove that in certain cases they can be implemented as a second layer on top of an asynchronous money transfer system whereas in other cases it is impossible.
翻译:资金转移是一种实现加密货币核心功能的抽象机制。已有研究表明,与普遍认知相反,在存在拜占庭故障的情况下,资金转移可以在异步网络中实现,且无需达成共识。然而,现有资金转移实现方案每笔支付仍需二次消息复杂度,这使得系统扩展性面临挑战。在比特币、以太坊等常见区块链中,这一成本通过部署在区块链之上的第二层支付通道得以缓解——它允许共享通道的两个用户进行大量链下支付。此类通道仅需在开立和关闭时执行链上交易,中间支付则以恒定消息复杂度在链下完成。但当前使用的支付通道要求网络同步,因此不适用于异步资金转移系统。本文针对异步资金转移系统中的支付通道,提出了一系列可能性与不可能性结论。我们首先证明了链上转移的消息复杂度存在二次下界。随后探究了单向与双向两种支付通道类型,将其定义为共享内存抽象,并证明在某些情况下可在异步资金转移系统之上实现第二层支付通道,而在其他情况下则无法实现。