...
首页> 外文期刊>Distributed Computing >Adding concurrency to smart contracts
【24h】

Adding concurrency to smart contracts

机译:添加智能合同并发

获取原文
获取原文并翻译 | 示例
           

摘要

Modern cryptocurrency systems, such as the Ethereum project, permit complex financial transactions through scripts called smart contracts. These smart contracts are executed many, many times, always without real concurrency. First, all smart contracts are serially executed by miners before appending them to the blockchain. Later, those contracts are serially re-executed by validators to verify that the smart contracts were executed correctly by miners. Serial execution limits system throughput and fails to exploit today's concurrent multicore and cluster architectures. Nevertheless, serial execution appears to be required: contracts share state, and contract programming languages have a serial semantics. This paper presents a novel way to permit miners and validators to execute smart contracts in parallel, based on techniques adapted from software transactional memory. Miners execute smart contracts speculatively in parallel, allowing non-conflicting contracts to proceed concurrently, and "discovering" a serializable concurrent schedule for a block's transactions, This schedule is captured and encoded as a deterministic fork-join program used by validators to re-execute the miner's parallel schedule deterministically but concurrently. We have proved that the validator's execution is equivalent to miner's execution. Smart contract benchmarks run on a JVM with ScalaSTM show that a speedup of 1.39xdocumentclass[12pt]{minimal} usepackage{amsmath} usepackage{wasysym} usepackage{amsfonts} usepackage{amssymb} usepackage{amsbsy} usepackage{mathrsfs} usepackage{upgreek} setlength{oddsidemargin}{-69pt} egin{document}$$imes $$end{document} can be obtained for miners and 1.59xdocumentclass[12pt]{minimal} usepackage{amsmath} usepackage{wasysym} usepackage{amsfonts} usepackage{amssymb} usepackage{amsbsy} usepackage{mathrsfs} usepackage{upgreek} setlength{oddsidemargin}{-69pt} egin{document}$$imes $$end{document} for validators with just three concurrent threads.
机译:现代加密货币(如Ethereum项目),允许通过称为智能合约的脚本允许复杂的金融交易。这些智能合同许多次数,总是没有真正的并发。首先,所有智能合同都由矿工串行执行,然后将它们附加到区块链之前。后来,这些合同被验证者串行执行,以验证迈尔特是否正确执行了智能合同。串行执行限制系统吞吐量并无法利用当今的并发多核和群集体系结构。尽管如此,序列执行似乎是必需的:合同共享状态,合同编程语言具有串行语义。本文介绍了一种新颖的方式,允许矿工和验证者并行执行智能合同,基于从软件交易记忆的技术进行。矿工通过并行地执行智能合同,允许同时进行非冲突合同,并“发现”块交易的可序列化并发计划,该计划被捕获并被编码为validators以重新执行的确定性fork-加入程序。矿工的并行时间表确定且同时。我们证明了验证者的执行相当于矿工的执行。 Scalastm在JVM上运行的智能合同基准显示,SCALASTM的加速度为1.39x documentClass [12pt] {minimal} usepackage {ammath} usepackage {isysym} usepackage {amsfonts} usepackage {amssymb} usepackage {amsbsy} usepackage {mathrsfs} usepackage {supmeek} setLength { oddsidemargin} { - 69pt} begin {document} $$ times $$ time $$ end {document}可以获得矿工和1.59x documentclass [12pt] {minimal } usepackage {ammath} usepackage {isysym} usepackage {amsfonts} usepackage {amssymb} usepackage {amsbsy} usepackage {mathrsfs} usepackage {supmeek} setLength { oddsidemargin} { - 69pt} begin {document $$ times $$ end {document}对于只有三个并发线程的验证器。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号