Decentralized blockchain platforms have enabled the secure exchange of crypto-assets without the intermediation of trusted authorities. To this purpose, these platforms rely on a peer-to-peer network of byzantine nodes, which collaboratively maintain an append-only ledger of transactions, called blockchain. Transactions represent the actions required by users, e.g. the transfer of some units of crypto-currency to another user, or the execution of a smart contract which distributes crypto-assets according to its internal logic. Part of the nodes of the peer-to-peer network compete to append transactions to the blockchain. To do so, they group the transactions sent by users into blocks, and update their view of the blockchain state by executing these transactions in the chosen order. Once a block of transactions is appended to the blockchain, the other nodes validate it, re-executing the transactions in the same order. The serial execution of transactions does not take advantage of the multi-core architecture of modern processors, so contributing to limit the throughput. In this paper we develop a theory of transaction parallelism for blockchains, which is based on static analysis of transactions and smart contracts. We illustrate how blockchain nodes can use our theory to parallelize the execution of transactions. Initial experiments on Ethereum show that our technique can improve the performance of nodes.
翻译:为此,这些平台依赖一个由旁占庭节点组成的同行对等网络,该网络协作维持一个仅附件的交易分类,称为块链。交易代表了用户需要采取的行动,例如将一些加密货币单位转移给另一个用户,或执行一个根据内部逻辑分配加密资产的智能合同。对等对等网络的节点的一部分,竞争将交易附在块链上。为此,它们将用户发送的交易分组成块,并通过按选定顺序执行这些交易来更新其对块链状态的看法。一旦将一个交易块附在块链上,其他节点则验证它,按同一顺序重新执行交易。交易的系列执行并不利用现代处理器的多核心结构,因此有助于限制吞吐。在本文中,我们开发了块链交易的平行理论,通过执行这些理论,我们没有能够以静态交易的进度分析为基础,我们没有能够以静态交易的运行方式展示。