CN106951307B - 一种智能合约虚拟机实现方法 - Google Patents

一种智能合约虚拟机实现方法 Download PDF

Info

Publication number
CN106951307B
CN106951307B CN201710129305.6A CN201710129305A CN106951307B CN 106951307 B CN106951307 B CN 106951307B CN 201710129305 A CN201710129305 A CN 201710129305A CN 106951307 B CN106951307 B CN 106951307B
Authority
CN
China
Prior art keywords
virtual machine
contract
exec
transaction
gas
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
CN201710129305.6A
Other languages
English (en)
Other versions
CN106951307A (zh
Inventor
钱德君
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Individual filed Critical Individual
Priority to CN201710129305.6A priority Critical patent/CN106951307B/zh
Publication of CN106951307A publication Critical patent/CN106951307A/zh
Application granted granted Critical
Publication of CN106951307B publication Critical patent/CN106951307B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • G06Q10/101Collaborative creation, e.g. joint development of products or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明涉及一种智能合约虚拟机实现方法,智能合约虚拟机为一个以太坊虚拟机,以太坊虚拟机是一个带有256字节的机器字的以栈为基础的虚拟机;智能合约基于量子链系统,能够运行在以太坊上,并且执行所述智能合约虚拟机;包含与智能合约虚拟机相关的操作码以方便交易的执行;本发明的有益成果为:本发明的智能合约虚拟机实现方法为以太坊虚拟机(EVM),它可以在以太坊上写出更强大的程序,负责太坊区块链中智能合约的执行,并且得益于以太坊的网络的合约执行环境,以太坊中的合约的编写和执行也因此变得非常简单。

Description

一种智能合约虚拟机实现方法
技术领域
本发明涉及互联网上区块链系统的智能合约,为一种智能合约虚拟机实现方法。
背景技术
在区块链中,合约代码通过虚拟机执行,并且不侧重链下数据的输入,借助于区块链网络本身提供合约触发条件,就能完成合约的执行。而以太坊虚拟机(EVM)是以太坊中智能合约的运行环境。它不仅被封装起来,事实上,它被完全隔离,即运行在以太坊虚拟机内部的代码不能接触到网络、文件系统或者其它进程。甚至智能合约与其它智能合约只有有限的接触。因此,由于智能合约虚拟机的重要地位,必须对它的具体细节进行设计满足虚拟机的基本要求,并且需要满足智能合约的执行要求。
发明内容
有鉴于此,本发明提供一种解决或部分解决上述问题的智能合约虚拟机实现方法。
为达到上述技术方案的效果,本发明的技术方案为:一种智能合约虚拟机实现方法,包含以下步骤:
智能合约虚拟机为一个以太坊虚拟机,以太坊虚拟机是一个带有256字节的机器字的以栈为基础的虚拟机;智能合约基于量子链系统,能够运行以太坊,并且执行智能合约虚拟机;
量子链系统中包含三种与智能合约虚拟机相关的操作码,分别为OP_EXEC操作码、OP_EXEC_ASSIGN操作码、OP_TXHASH操作码;
OP_EXEC操作码,用于触发一个特殊的交易处理,并且将执行用于传递的以太坊虚拟机的字节码;
OP_EXEC_ASSIGN操作码,用于触发类似于OP_EXEC操作码执行的处理,并且传递合同地址和数据给智能合约,传递数据时执行智能合约的字节码,OP_EXEC_ASSIGN操作码能够将给定的资金传递给智能合约;数据在智能合约虚拟机中表示为CALLERDATA;
OP_TXHASH操作码,用于协调帐本抽象层的剩余部分,并且当前执行交易的交易ID哈希值也被压入栈中;
包含OP_EXEC操作码与OP_EXEC_ASSIGN操作码的输出脚本的特殊处理,以使智能合约的立即执行能够融入到区块链中;特殊处理包含的过程为:当交易中的脚本检测到OP_EXEC操作码或OP_EXEC_ASSIGN操作码,在交易被放置到区块链网络中后由区块链网络的所有节点进行执行;在特殊处理的背景下,比特币的脚本语言作为一种将数据传送给智能合约虚拟机的一种方式;当智能合约虚拟机执行OP_EXEC操作码或OP_EXEC_ASSIGN操作码,智能合约虚拟机可以在自己的状态数据库里改变状态,即在以太坊上执行一个类似的合约;
OP_EXEC操作码和OP_EXEC_ASSIGN操作码的交易输出是可以消费的,当交易输出的代码发送资金到另一个合约或者另一个公钥哈希值地址,OP_EXEC_ASSIGN操作码的输出通过合约被消费;OP_EXEC操作码的输出被消费,当任何时候智能合约使用自杀操作将自己从区块链中移除;
构建气体模型,用于衡量以太坊虚拟机操作码的执行的价值,每个交易要花费一定量的气体模型中气体;在交易完成后,剩余的气体数量会被返回给发送的人,当在合约中执行的气体的数量超过合约需要的数量,那么交易的状态以及动作会被恢复;状态被恢复,交易的气体也已被消耗;气体的详细条目分为GasLimit与GasPrice;GasLimit用于记录在合约执行中消耗的气体数量;GasPrice用于记录每个气体单元的精确价格;合约执行中最大量子花费等于GasLimit与GasPrice进行相乘。
本发明的有益成果为:本发明的智能合约虚拟机实现方法为以太坊虚拟机(EVM),它可以在以太坊上写出更强大的程序,负责太坊区块链中智能合约的执行,并且得益于以太坊的网络的合约执行环境,以太坊中的合约的编写和执行也因此变得非常简单。
具体实施方式
为了使本发明所要解决的技术问题、技术方案及有益效果更加清楚明白,以下结合及实施例,对本发明进行详细的说明。应当说明的是,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明,能实现同样功能的产品属于等同替换和改进,均包含在本发明的保护范围之内。具体方法如下:
实施例1:智能合约能够运行以太坊,并且执行智能合约虚拟机;以太坊虚拟机被设计用于以太坊的区块链,因此假定所有价值的传递都基于账目为基础的方法。
在量子链中,脚本仅仅在一个输出需要被花费时才能执行,举例,对于一个标准的公钥哈希值交易,虽然脚本在区块链上,它将不会以任何方式被验证或执行。执行和验证不会发生,直到一个交易输入参考输出。从这点来说,如果输入脚本不能提供一个有效的数据到输出脚本,导致其返回1,交易将无效。
然而量子链,必须适应智能合约,智能合约的立即执行已经融入到区块链中,做到这个过程必须通过对包含OP_EXEC或OP_EXEC_ASSIGN交易的输出脚本的特殊处理。当在脚本中检测到这些操作码之一,在交易被放置到块中后由网络的所有节点进行执行。在这种模式下,实际的比特币脚本语言不太像脚本语言,更为严格来说,是将数据传送到以太坊虚拟机的一种方式。当以太坊虚拟机执行时通过这些操作码中的任一个,以太坊虚拟机可以改变状态在其自己的状态数据库里,实际上就像一个类似的合约被执行在以太坊上。为了使量子链智能合约尽可能易于使用,我们必须将认证数据作为特定的公钥哈希值地址发送给智能合约以及其的创建者。
相对于UTXO模型,以太坊是一个以帐目为基础的系统;有关于帐目模型详细阐述如下所示:
在以太坊,状态由称为“帐目”的对象组成,每个帐目都有一个20字节的地址,状态转换直接在帐目之间传输价值和信息;以太坊帐目包含四个部分:
nonce随机数,是确保每笔交易只能处理一次的计数器;
帐目中当前以太坊余额;
帐目的合约代码;
帐目的存储(默认为空);
“以太”是以太坊的主要内部加密燃料,通常用于支付交易费;一般来说,这里有两种类型的帐户:外部所有者的帐目以及合约帐目,外部所有者的帐目由私钥控制,合约帐目由他们的合约代码控制;
外部拥有的帐目没有代码,和能通过建立和签署交易从外部拥有的帐目中发送消息。在合约帐目中,任何时候合约帐目接收一个代码激活信息,允许其读写内部存储并发送其他消息或依次创建合约。
在以太坊的系统中,帐目余额在帐目系统里管理,其中帐户余额的任何增加或减少被更像是现实世界中的银行帐户,并且每个新块的产生有可能会对帐目的全局状态产生影响。
每个帐目都有自己的余额,基于合约的存储和编码空间能称为帐目或地址,通过存储器存储执行结果。在当前的以太坊帐目系统中,用户可以通过客户端/远程过程调用协议进行一对一交易,这意味着每个交易每次仅仅只能从一个帐目到另一个帐目中生成。尽管有可能通过智能合约发送到更多的帐目,这些内部交易只能在每个帐目的余额中显示,很难在以太坊的公开帐本上追踪它们。
实施例2:气体模型
在量子链中面临的主要问题为会增加图灵完备性到比特币的区块链中,具体为从理论上可以不只依赖于交易的大小来决定矿工花费的合适费用。导致上述发生的原因为一个简单的、小的交易在矿工对区块链进行作用时中会陷入无限循环,并且造成整个区块链停止运转。气体模型为了解决上述问题来创建的。
气体模型的概念被总结为每个以太坊虚拟机操作符的执行都存在一个价值,并且每个交易都需要花费一定量的气体。在交易完成后,剩余的气体数量会被返回给发送的人。当在合约中执行的气体的数量超过合约需要的数量,那么交易的状态以及动作会被恢复。那意味着任何需要被修改的永久存储会被还原到起始状态,并且任何花费的合约费用也会被恢复以至于它们不会被花费。
尽管所有状态被还原,交易的所有气体被消耗并且给予正在对交易操作的矿工。原因为在矿工操作的过程中计算资源已经被花费,所以尽管在区块链中导致状态变换不是非常安全,操作的过程已经被花费,由矿工来花费。
尽管量子链使用以太坊中的气体模型,可以预料到气体计划(每个以太坊虚拟机操作的气体价格)与以太坊有很大的区别。原因为量子链中的一些操作比以太坊中的操作要贵,一些要便宜。精确的价钱被决定,是由以太坊中存在的价钱以及比较量子链中操作码需要的区块链资源的数量决定。
当需要创造一个合约资金或者部署交易,用户需要对气体的详细条目进行制定:
第一个详细条目为GasLimit,用于记录在合约执行中消耗的气体数量。
第二个详细条目为GasPrice,用于记录每个气体单元的精确价格;
合约执行中最大量子花费由GasLimit对GasPrice进行相乘。如果最大花费超过了交易费用,那么交易被认定不正确的并且不会被挖矿以及操作。交易规模费用的计算方式为剩余交易费用与最大交易相减,这个计算过程与标准比特币费用模型相似。
为了决定交易的合适优先级,矿工必须决定两个变量。
第一,交易规模费用为所有交易的规模,这个由每个比特共识来计算最小硬币数量,并且在这一过程中使用每千字节计算公式。
第二个变量为,气体价格GasPrice的合约执行。
股份证明(POS)矿工在区块中包含以及处理的最重要的、最有利的交易中有很大的选择自主权。
这允许费用模型像一个免费的市场一样工作,在这其中矿工以及使用者能够优化最好的费用,这最好的费用被支付时,能够适应于交易的速度以及价格。
(a)退款
使用UTXO模型,资金作为交易费用被发送给矿工是不可商议的。如果交易对于矿工比预想的更容易处理,那么无法让矿工将费用退还。然而,因为气体模型是有用的,一定存在方法能够将费用退还给发送者。
此外,当气体使用完毕时必须存在将交易状态中止的方式,并且能够将气体费用发送给矿工。量子链中退还气体费用是通过创建新的输出,并将输出当作矿工的硬币基础交易。
一个新的区块验证共识的规则也被创建,并且保证这些退还的输出在硬币基础交易中存在。否则,矿工可以选择不退还这些资金。
用于退款目的,这时交易资金的发送者被认为是第一个输入的参考输出,仅通过复制输出脚本返回给退款。现今,出于安全的原因,这种输出脚本只能为pay-to-pubkeyhash或者pay-to-scripthash脚本。当安全确实需要时,可以将相关的约束列出。
仅供参考,OP_EXEC_ASSIGN操作码有以下格式,用于分配资金合约:
输入:以压入的顺序:
用于花费的交易哈希值(可选择的);
版本号(VM版本,一般为1);
气体的限制gas limit(在执行中可使用最大气体的数量);
气体价格(每个气体单元中量子数量);
数据(需要发送给智能合约的数据);
智能合约地址;
输出(以跳出的顺序;)
可花费的(如果现在的费用可以被花费);
所以,EXEC_ASSIGN的例子可以列入如下:
1
10000
100
0xABCD1234...
3d655b14393b55a4dec8ba043bb286afa96af485
EXEC_ASSIGN
如果虚拟机执行的结果为气体的输出异常,这个输出将以赎回脚本被花费。从vin[0].prevout脚本中提取的pubkeyhash脚本为这个交易中产生的输入。在量子链的早期版本中,在虚拟机交易中只有pubkeyhash发送者才能被允许。
尽管被区块链允许的其他格式也能导致虚拟机的执行,在以太坊虚拟机中的msg.sender的值将被设置为0,并且任何气体的输出以及气体的退款将会导致合约保持这些资金。
(b)部分退款模型
对于气体模型的其他部分,还必须退还未花费的气体。这是让人们可以承诺花费大量资金来确保他们的合同的正确执行,但是他们没有使用的气体被返回作为量子链退款。气体的返回地址在区块链中描述被发送交易的vin[0].prevout脚本。通过使用标准的比特币交易收费机制,气体被发送到合约。
所以,新的收费模型讨论了如何进行交易费用的描述:
gas_fee=gas_limit*gas_price
txfee=vin-vout+gas_fee+tx_relay_fee
refund=txfee-used_gas-tx_relay_fee
请注意,这是一个在单个”credit_price”值可以确定交易优先级的情况下,使矿工可以评估tx_relay_fee和gas_price的建议。
既然合约被执行,气体标签从整个费用中去除(通过乘以气体价格)。在合约的执行完成后,气体的费用gas_fee的剩余被返回给给定的气体返回脚本。这应该通过增加输出到硬币基础交易(矿工使用交易去检索他们的区块奖励)。
增加到硬币基础交易的输出为来自vin[0].prevout的pubkeyhash。为了得到气体的退款,必须存在pubkeyhash的虚拟输出去花费。否则,气体退款在矿工中保存(在gas的输出条件下,费用的发送与合约共存)。注意到每个交易都可能只有一个以太坊虚拟机合约执行,所以不可能两个合约执行都试图去共享交易费用。每个交易多个EVM执行会带来一些问题。
(c)重要的气体边缘案例
矿工必须注意合约气体/资金返回脚本。如果气体返回脚本输出会导致区块超出最大的区块规模,那么合约交易不会再放入区块,并且当下一个区块被挖矿,它的执行一定会发生。在试图去执行合约之前,矿工需要一直确认在候选区块中存在足够的位置以提供给气体返回脚本。如果发现退款脚本不适合当前块,则如果不遵循此规则,可能会导致需要执行一次以上的合约。如果没有气体费用返回,不存在为了返回资金的输出。交易费用中包含气体费用gas_fee为共识的关键。如果一个交易试图去增加一个会导致不好的气体退款的区块,或者gas_fee比txfee少,那么这个交易是无效的,拥有交易的区块也是无效的。没有交易输出脚本为有效的,存在多于一个OP_EXEC操作或OP_EXEC_ASSIGN操作。这些会限制脚本的能力,但是会使递归/多种执行问题更易处理。在这种方法下,静态分析可以很容易地判断脚本是否无效,而不是需要执行脚本来确定它。
以上所述仅为本发明之较佳实施例,并非用以限定本发明的权利要求保护范围。同时以上说明,对于相关技术领域的技术人员应可以理解及实施,因此其他基于本发明所揭示内容所完成的等同改变,均应包含在本权利要求书的涵盖范围内。
本发明的有益成果为:本发明的智能合约虚拟机实现方法为以太坊虚拟机(EVM),它可以在以太坊上写出更强大的程序,负责太坊区块链中智能合约的执行,并且得益于以太坊的网络的合约执行环境,以太坊中的合约的编写和执行也因此变得非常简单。

Claims (1)

1.一种智能合约虚拟机实现方法,其特征在干,包含:
所述智能合约虚拟机为一个以太坊虚拟机,所述以太坊虚拟机是一个带有256字节的机器字的以栈为基础的虚拟机;智能合约基于量子链系统,能够运行在以太坊上,并且执行所述智能合约虚拟机;
所述量子链系统中包含三种与所述智能合约虚拟机相关的操作码,分别为OP_EXEC操作码、OP_EXEC_ASSIGN操作码、OP_TXHASH操作码;
所述OP_EXEC操作码,用于触发一个特殊的交易处理,并且将执行用于传递的所述以太坊虚拟机的字节码;
所述OP_EXEC_ASSIGN操作码,用于触发所述OP_EXEC操作码执行的处理,并且传递合同地址和数据给所述智能合约,传递所述数据时执行所述智能合约的字节码,所述OP_EXEC_ASSIGN操作码能够将给定的资金传递给所述智能合约;所述数据在所述智能合约虚拟机中表示为CALLERDATA;
所述OP_TXHASH操作码,用于协调帐本抽象层的剩余部分,并且当前执行交易的交易ID哈希值也被压入栈中;
包含对所述OP_EXEC操作码与所述OP_EXEC_ASSIGN操作码的输出脚本的特殊处理,以使所述智能合约的立即执行能够融入到区块链中;所述特殊处理包含的过程为:当交易中的脚本检测到所述OP _EXEC操作码或所述OP_EXEC_ASSIGN操作码,在交易被放置到区块链网络中后由区块链网络的所有节点进行执行;在所述特殊处理的背景下,比特币的脚本语言作为一种将所述数据传送给所述智能合约虚拟机的一种方式;当所述智能合约虚拟机执行所述OP_EXEC操作码或所述OP_EXEC_ASSIGN操作码时,所述智能合约虚拟机在自己的状态数据库里改变状态,即在以太坊上执行一个合约;
所述OP_EXEC操作码和所述OP_EXEC_ASSIGN操作码的交易输出是可以消费的,当所述交易输出的代码发送资金到另一个合约或者另一个公钥哈希值地址,所述OP_EXEC_ASSIGN操作码的输出通过合约被消费;所述OP_EXEC操作码的输出被消费,当任何时候所述智能合约使用自杀操作时,会将自己从区块链中移除;
构建气体模型,用于衡量所述以太坊虚拟机操作码的执行的价值,每个交易要花费一定量的所述气体模型中气体;在交易完成后,剩余的气体数量会被返回给发送的人,当在合约中执行的气体的数量超过合约需要的数量,那么交易的状态以及动作会被恢复;状态被恢复,交易的气体也已被消耗;气体的详细条目分为GasLimit与GasPrice;GasLimit用于记录在合约执行中消耗的气体数量;GasPrice用于记录每个气体单元的精确价格;合约执行中最大量子花费等于GasLimit与GasPrice进行相乘。
CN201710129305.6A 2017-03-06 2017-03-06 一种智能合约虚拟机实现方法 Expired - Fee Related CN106951307B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710129305.6A CN106951307B (zh) 2017-03-06 2017-03-06 一种智能合约虚拟机实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710129305.6A CN106951307B (zh) 2017-03-06 2017-03-06 一种智能合约虚拟机实现方法

Publications (2)

Publication Number Publication Date
CN106951307A CN106951307A (zh) 2017-07-14
CN106951307B true CN106951307B (zh) 2020-09-22

Family

ID=59466712

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710129305.6A Expired - Fee Related CN106951307B (zh) 2017-03-06 2017-03-06 一种智能合约虚拟机实现方法

Country Status (1)

Country Link
CN (1) CN106951307B (zh)

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107526624B (zh) * 2017-07-18 2020-12-08 杭州趣链科技有限公司 一种基于Java虚拟机的智能合约执行引擎
CN107360238A (zh) * 2017-07-25 2017-11-17 光载无限(北京)科技有限公司 基于区块链cpow共识算法的智能合约网关
CN109636592B (zh) * 2017-10-20 2023-02-28 北京航空航天大学 高性能智能合约设计
CN107844294B (zh) * 2017-11-17 2020-05-19 杭州溪塔科技有限公司 一种高可用的合约执行方法及系统
CN107945020B (zh) * 2017-11-28 2021-11-12 浙江师范大学 一种区块链可持续挖矿方法及系统
CN107967539B (zh) * 2017-11-29 2020-11-13 暨南大学 基于机器学习和区块链技术的预测以太坊上交易的燃料限制的方法
CN108182580B (zh) * 2017-12-29 2021-01-01 北京欧链科技有限公司 基于区块链的合约的触发方法及装置
CN108521426B (zh) * 2018-04-13 2020-09-01 中国石油大学(华东) 一种基于区块链的阵列蜜罐协同控制方法
CN108765158B (zh) * 2018-05-31 2020-11-24 杭州溪塔科技有限公司 一种基于区块链的智能合约引擎系统及其合约执行方法
CN108881440A (zh) * 2018-06-19 2018-11-23 北京连琪科技有限公司 一种兼顾安全与性能的区块链合约建立方法及系统
CN108961052B (zh) * 2018-06-25 2022-02-22 百度在线网络技术(北京)有限公司 区块链数据的验证方法、存储方法、装置、设备和介质
CN109146477B (zh) * 2018-08-02 2022-02-18 夸克链科技(深圳)有限公司 一种以太坊发布智能合约时指定地址的方法
CN109067759B (zh) * 2018-08-27 2020-11-03 深圳前海益链网络科技有限公司 一种智能合约调用单点执行系统
CN109345714A (zh) * 2018-08-31 2019-02-15 华北电力大学(保定) 一种充电桩与电动汽车的充电网络操作方法
CN109034814B (zh) * 2018-09-14 2020-10-16 百度在线网络技术(北京)有限公司 基于以太坊虚拟机的智能合约处理方法和装置
CN109446096B (zh) * 2018-11-06 2021-08-24 北京知道创宇信息技术股份有限公司 一种智能合约调试方法、装置及其存储介质
CN109710385A (zh) * 2018-12-29 2019-05-03 杭州趣链科技有限公司 一种基于Java虚拟机的智能合约复杂度限制方法
CN111459604A (zh) * 2019-01-18 2020-07-28 南京大学 一种基于窥孔优化的智能合约性能优化方法
CN111478932B (zh) * 2019-01-24 2023-04-07 北京京东尚科信息技术有限公司 智能合约数据的处理方法、区块链网络及存储介质
CN109960696A (zh) * 2019-03-22 2019-07-02 杭州复杂美科技有限公司 一种智能合约的配置方法、设备和存储介质
CN109829825A (zh) * 2019-04-03 2019-05-31 浙江师范大学 基于交易源认证器的智能合约的安全函数设计方法及系统
CN110599343B (zh) * 2019-09-21 2021-04-13 腾讯科技(深圳)有限公司 合约数据处理方法、相关设备及介质
CN112286642B (zh) * 2020-12-24 2021-04-30 北京百度网讯科技有限公司 以太坊虚拟机的事务处理方法、装置、设备和介质

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1313012A1 (en) * 2001-11-15 2003-05-21 Texas Instruments France Java DSP acceleration by byte-code optimization
CN103475464B (zh) * 2013-08-20 2018-11-27 国家电网公司 一种电力专用量子加密网关系统
US9818092B2 (en) * 2014-06-04 2017-11-14 Antti Pennanen System and method for executing financial transactions
CN105893042A (zh) * 2016-03-31 2016-08-24 北京航空航天大学 一种基于区块链的智能合约的实现方法
CN105976231A (zh) * 2016-06-24 2016-09-28 深圳前海微众银行股份有限公司 基于区块链智能合约的资产管理方法及节点

Also Published As

Publication number Publication date
CN106951307A (zh) 2017-07-14

Similar Documents

Publication Publication Date Title
CN106951307B (zh) 一种智能合约虚拟机实现方法
CN107679857B (zh) 区块链的跨链交易方法和存储介质
CN110163590B (zh) 基于区块链的缴费代扣方法及装置、电子设备、存储介质
EP3776441B1 (en) Digital asset exchange
AU2023201476A1 (en) Business Process Execution on a blockchain platform
JP2019522264A (ja) ブロックチェーンを介して決定性有限オートマン(dfa)を実施するシステム及び方法
CZ287663B6 (en) Method of secured distribution of electronic money and apparatus for making the same
US11443307B2 (en) Cross-border resource transfer authenticity verification method, device and electronic equipment
CN101256653A (zh) 使用与账单预先关联的账单支付卡的值插入方法与系统
Demir et al. Security smells in smart contracts
CN101884052A (zh) 电子货币、用于处理这种货币的方法和电子货币处理系统
US20110178884A1 (en) Trusted stored-value payment system that includes untrusted merchant terminals
WO2021042810A1 (zh) 基于区块链的资产清偿方法及装置、电子设备
CN111639125A (zh) 基于区块链的资源流通方法及装置
CN112766854B (zh) 基于区块链的数字商品交易方法和装置
CN111340475A (zh) 基于区块链的预付卡交易处理方法、装置和智能终端
KR20110013187A (ko) 저장장치를 이용한 컨텐츠 또는 서비스 제공 시스템 및 방법, 그 drm서버 및 저장장치, 이를 위한 기록매체
CN109389376A (zh) 一种基于数字货币的商户收单方法及系统
CN110443612B (zh) 一种基于区块链的报销费用分割方法、装置及电子设备
CN109377222B (zh) 一种基于区块链技术的智能交易方法
CN111062717A (zh) 一种数据转移处理方法、装置和计算机可读存储介质
EP3907644B1 (en) Blockchain
Leid et al. Testing ethereum smart contracts: A comparison of symbolic analysis and fuzz testing tools
Li et al. SafePay on Ethereum: A framework for detecting unfair payments in smart contracts
JP6510472B2 (ja) 決済システム、方法およびプログラム

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200922

Termination date: 20210306

CF01 Termination of patent right due to non-payment of annual fee