当前位置: 首页 > 专利查询>清华大学专利>正文

基于智能合约的交易中燃油费的输入确定方法及装置制造方法及图纸

技术编号:22755611 阅读:75 留言:0更新日期:2019-12-07 04:12
本发明专利技术提供一种基于智能合约的交易中燃油费的输入确定方法及装置,方法包括:根据智能合约中函数的执行过程,生成控制流图;将函数每一种预先确定的参数值作为进行燃油费输入确定的种子输入函数,根据函数在执行过程中各节点消耗的实际燃油费,从种子中选择目标种子,并根据每个节点消耗的实际燃油费对各节点的权重进行更新;对目标种子进行变异,将变异后的目标种子作为下一次进行燃油费输入确定的种子,直到达到预设终止条件;将最后一次更新的各节点的权重之和作为基于智能合约的交易中燃油费的输入。本发明专利技术可以快速找到产生较高燃油费的输入,促使智能合约的函数消耗较高的燃油费。

Method and device for determining the input of fuel charge in transaction based on smart contract

The invention provides a method and device for determining the input of fuel cost in the transaction based on the smart contract, the method includes: generating a control flow chart according to the execution process of the function in the smart contract; taking each pre-determined parameter value of the function as a sub input function for determining the input of fuel cost, according to the actual fuel cost consumed by each node in the execution process of the function, starting from the seed Select the target seed, and update the weight of each node according to the actual fuel cost consumed by each node; mutate the target seed, and use the mutated target seed as the next seed to determine the fuel cost input until the default termination conditions are met; use the sum of the weights of the last updated nodes as the fuel cost transmission in the smart contract based transaction Enter. The invention can quickly find the input generating higher fuel cost, and promote the function of the smart contract to consume higher fuel cost.

【技术实现步骤摘要】
基于智能合约的交易中燃油费的输入确定方法及装置
本专利技术属于区块链
,尤其涉及一种基于智能合约的交易中燃油费的输入确定方法及装置。
技术介绍
以太坊是一个基于区块链技术的平台。在以太坊中,开发者可以根据自身需要开发去中心化的应用。为了防止资源的浪费和恶意攻击,以太坊官方规定,每一笔基于智能合约的交易都需要为消耗的计算资源和存储资源付出燃油费。为了节约传播和数据交换时间,每一个区块都会被设置一个燃油费最大值。同时,每个用户在完成交易之前也会设置一个愿意为本次交易付出的燃油费最大值。如果在交易的过程中,实际使用的燃油费用比设置的最大值大,那么就会出现燃油费不足的问题,从而导致交易失败。在某些情况下,一次交易的输入和当前区块链系统的环境状态都可以影响燃油费的消耗。一些恶意的攻击者可能会设计一些特别的输入导致一些很高的燃油费,从而实施让区块链系统拒绝服务的攻击。实际上,在一次交易真正执行之前预估它要消耗多少的燃油费是很困难的。因为燃油费的消耗不仅来源于交易过程中具体执行的操作符,还来源于对数据的存储过程。除此之外,有些包含许多分本文档来自技高网...

【技术保护点】
1.一种基于智能合约的交易中燃油费的输入确定方法,其特征在于,包括:/n根据智能合约中函数的执行过程,生成控制流图;其中,所述控制流图中的节点为所述执行过程的部分操作符构成的操作符序列,每个节点的权重为每个节点消耗的最大燃油费;/n将所述函数每一种预先确定的参数值作为进行燃油费输入确定的种子输入所述函数,根据所述函数在执行过程中各节点消耗的实际燃油费,从所述种子中选择目标种子,并根据每个节点消耗的实际燃油费对各节点的权重进行更新;/n对所述目标种子进行变异,将变异后的目标种子作为下一次进行燃油费输入确定的种子,直到达到预设终止条件;/n将最后一次更新的各节点的权重之和作为基于所述智能合约的交易...

【技术特征摘要】
1.一种基于智能合约的交易中燃油费的输入确定方法,其特征在于,包括:
根据智能合约中函数的执行过程,生成控制流图;其中,所述控制流图中的节点为所述执行过程的部分操作符构成的操作符序列,每个节点的权重为每个节点消耗的最大燃油费;
将所述函数每一种预先确定的参数值作为进行燃油费输入确定的种子输入所述函数,根据所述函数在执行过程中各节点消耗的实际燃油费,从所述种子中选择目标种子,并根据每个节点消耗的实际燃油费对各节点的权重进行更新;
对所述目标种子进行变异,将变异后的目标种子作为下一次进行燃油费输入确定的种子,直到达到预设终止条件;
将最后一次更新的各节点的权重之和作为基于所述智能合约的交易中燃油费的输入。


2.根据权利要求1所述的基于智能合约的交易中燃油费的输入确定方法,其特征在于,根据智能合约中函数的执行过程,生成控制流图的步骤具体包括:
对智能合约中函数的执行过程进行编译,获取所述执行过程中的所有操作符;
对于生成控制流图的任一所述操作符,若该操作符不为JUMP操作符或JUMPI操作符,则将该操作符添加到所述控制流图的当前节点中;
若该操作符为JUMP操作符或JUMPI操作符,则将该操作符添加到所述控制流图的当前节点中,将该操作符指向的操作符添加到所述当前节点的下一个节点中;
将该操作符指向的操作符作为下一个生成控制流图的操作符,将所述下一个节点作为下一个当前节点,直到该操作符为STOP操作符。


3.根据权利要求2所述的基于智能合约的交易中燃油费的输入确定方法,其特征在于,根据智能合约中函数的执行过程,生成控制流图的步骤还包括:
对于所述控制流图中的任一节点,将该节点中存在预设燃油费的操作符作为目标操作符,将该节点中所有目标操作符的预设燃油费之和作为该节点的初始燃油费,将该节点的初始燃油费作为该节点的初始权重。


4.根据权利要求1所述的基于智能合约的交易中燃油费的输入确定方法,其特征在于,根据所述函数在执行过程中各节点消耗的实际燃油费,从所述种子中选择目标种子的步骤具体包括:
将各节点消耗的实际燃油费相加,获取执行所述函数消耗的实际总燃油费,并获取所述控制流图中每条边上的节点的执行次数;
若任一所述节点消耗的实际燃油费大于所述任一节点的权重,则将当前输入所述函数的种子作为目标种子;
若所述函数消耗的实际总燃油费大于所述函数消耗的最大燃油费,则将当前输入所述函数的种子作为目标种子;其中,所述函数消耗的最大燃油费为所有所述节点的权重之...

【专利技术属性】
技术研发人员:马福辰姜宇傅滢任萌杨鑫顾明孙家广
申请(专利权)人:清华大学
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1