一种可靠安全、分布式、有序可控的区块链智能合约方法

文档序号:1772889 发布日期:2019-12-03 浏览:19次 >En<

阅读说明:本技术 一种可靠安全、分布式、有序可控的区块链智能合约方法 (A kind of reliable and secure, distributed, orderly controllable block chain intelligence contract method ) 是由 胡铸韬 李云洲 蒋明亮 于 2018-05-24 设计创作,主要内容包括:一种基于区块链可靠安全、分布式、有序可控的智能合约设计和共识前核算的方法,包括:发明对话链和现金流覆盖;现金流覆盖减扣或回送参与合约的钱包和对钱包的支付能力提供实时评判;对话链的一线节点是动态发现的客户端钱包,其后每个节点钱包是下一个的客户端,又是上一个的服务端;每一对钱包在合约中产生一个对话;对话状态机产生或取消的交易发送到现金流覆盖执行而得到余额;这样每个钱包的现金流准确反映在同一节点上;合约成交是对话链从一线对话到最后一个对话依次成交,所产生的交易共识嵌入区块链。本发明解决黑客同时参与数项合约而产生的余额不足,提高对并行合约的处理能力,提前终止因支付能力不足的合约从而节省共识计算。(A method of it is calculated before reliable and secure, distributed based on block chain, orderly controllable intelligent Contract Design and common recognition, comprising: chain and cash flow covering are talked in invention;Cash flow covering subtracts button or loopback participates in the wallet of contract and provide the ability to pay of wallet to judge in real time;One line node of dialogue chain is the client wallet of Dynamic Discovery, and each node wallet is next client thereafter, and is last server-side;Every a pair of wallet generates a dialogue in contract;Dialog state machine generates or the transaction of cancellation is sent to cash flow covering execution and obtains remaining sum;The cash flow of wallet each in this way accurately reflects on the same node;Contract conclusion of the business is that dialogue chain successively strikes a bargain from line dialogue to last one dialogue, generated transaction common recognition insertion block chain.The present invention solves hacker and simultaneously participates in several contracts and generate that Sorry, your ticket has not enough value, improves the processing capacity to parallel contract, terminates calculate because of the insufficient contract of ability to pay to save common recognition in advance.)

一种可靠安全、分布式、有序可控的区块链智能合约方法

技术领域

本发明涉及了社交网区块链智能合约设计、现金流核算和共识技术,具体涉及一种可靠安全、分布式、高效率、有序可控的智能合约设计和共识前数字币交易尝试的方法。

背景技术

现有智能合约的实现注重合约本身的潜能,很多认为数字币先付给合约账户,然后再由合约账户付给另一方或其他方,这种方法的弊病是在意外情况下合同未能执行,合约中的数字币归属受人质疑或变成问题,往往受黑客利用。事实上,许多情况下付给合约账户的往往只有押金。合约签约后,数字币从甲方直接付给乙方和帮助者,乙方直接付佣金给APP和其他人。这样一个合约的执行会产生多项数字币交易,而这些交易有先后顺序关系,否则有一交易支付方会显示没有足够的数字币从而合约失败。

有鉴于此,本发明致力于提供一种具体涉及一种可靠安全、分布式、高效率、有序可控的智能合约设计和共识前数字币交易尝试的方法。

本发明的上述目的是通过如下的技术方案予以实现的:

智能合约是一种旨在以信息化方式传播、验证或执行合同的计算机协议。智能合约允许在没有第三方的情况下进行可信交易,这些交易可追踪且不可逆转。智能合约程序不只是一个可以自动执行的计算机程序:它自己就是一个系统参与者。它对接收到的信息进行回应,它可以接收和储存价值,也可以向外发送信息和价值。这个程序就像一个可以被信任的人,可以临时保管资产,总是按照事先的规则执行操作。

数字钱包是一种可以进行个人电子交易的电子设备,主要存贮私钥和公钥。私钥是对一个数字币地址拥有取钱权限的代表。私钥可以算出公钥。每次交易的时候,付款方必须出具私钥,以及私钥产生的签名。公钥是和私钥成对出现的,公钥可以算出数字币地址,因此可以用作验证数字币地址。

有序智能合约引进服务端、客户端和对话。合约客户端是合约一方接受服务的,一般是甲方;合约服务端是合约一方提供服务的,一般是乙方。对话是一对合约服务端和客户端之间的交互,每一对话有一个状态机。

有序智能合约发明对话链,链的第一个节点或者第一组节点是数字钱包,称为一线客户端,一线客户端是合约执行过程中动态发现的。其后每个节点是一个数字钱包,是下一个节点的客户端,又是前一个(或一组)节点的服务端。

合约是否成交,也就是对话链是否成交,取决于一线某个或所有对话是否成交,和其后所有对话是否成交。

P2P结构化覆盖是一组运行同一P2P算法的IP节点的集合;P2P资源分布于P2P覆盖以便共享,每一P2P资源通过一个哈希算法得到唯一的资源识别号;P2P节点号是用于标识P2P节点并用于P2P算法的标号,资源识别号和P2P节点号通过P2P算法组成P2P分布式哈希路由表(DHT);在任意P2P节点上使用一个资源识别号作为关键字去查询P2P DHT路由表,将得到一致的结果:某个特定的P2P节点保持这个资源。

合约覆盖是一个P2P结构化覆盖,由信誉度高、稳定性强、具有相当内存、计算能力和存储能力的节点组成。合约覆盖处理智能合约。

现金流覆盖是一个P2P结构化覆盖,由信誉度高、稳定性强、具有相当内存、计算能力的节点组成。现金流覆盖是对参与合约的每个钱包的现金流进行实时监控,减扣或回送,从而对钱包的支付能力提供实时评判。

一个存有A地址的DHT节点是指,根据这个A地址的哈希值查询覆盖的DHT路由表而得到的节点。

在现金流覆盖执行从A地址到B地址的交易是指,向存有A地址的DHT现金流节点发送减扣现金流请求,向存有B地址的DHT现金流节点发送回送现金流请求;

APP是指应用层程序(Application)。用户通过APP部署有序智能合约,与合约交互,直至解除有序智能合约。

一种具体涉及一种可靠安全、分布式、高效率、有序可控的智能合约设计和共识前数字币交易尝试的方法,其步骤包括:

a1)建立合约覆盖和以合约地址为基础的P2P DHT路由表;

b1)建立现金流覆盖和以钱包地址为基础的P2P DHT路由表;

c1)合约发起人使用APP建立有序智能合约,设立合约账户和地址,建立对话链;

d1)有序智能合约通过P2P哈希算法部署在合约覆盖;

e1)有序智能合约按对话链节点的顺序,依次执行对话状态机,状态机所产生的A地址到B地址的交易请求在现金流覆盖执行(触发从A地址到B地址的交易);状态机所产生的交易取消在现金流覆盖执行(触发从B地址到A地址的交易);

f1)每个现金流节点当收到对某个钱包的交易减扣请求,减扣并计算出这个钱包的余额(可能是负数),然后返回余额给相应的有序智能合约。如果收到交易回送请求,把所回送的现金加回到这个钱包;

g1)如果对话链中任何一个对话失败,整个对话链失败,所有过去的交易减扣和回送请求需要做逆向现金回流;

h1)否则,对话链成交,也就是合约成交。成交所产生的所有合约交易依次通过共识写入全局账本区块链。

所述步骤d1之后进一步包括:

a2)APP使用有序智能合约地址为索引,查询合约覆盖DHT路由表,得到其中一个合约节点;

b2)APP把有序智能合约上载到这个合约节点;

c2)这个合约节点运行有序智能合约的代码,启动对话链中有关服务端的线程,等待对话开始;

所述步骤e1之后进一步包括(如图1):

a3)对话最初在等待客户状态;

b3)收到客户服务价位请求时,在现金流覆盖中执行从客户端钱包地址到服务端钱包地址的交易,进入现金流计算状态;

c3)当收到现金流余额,执行合约程序判断余额是否能支付矿工;

d3)如果余额不够支付矿工,实现原交易取消,也就是在现金流覆盖中执行从服务端钱包地址到客户端钱包地址的交易,然后拒绝服务请求;

e3)否则,转发服务价位请求给服务端钱包地址,进入等待服务回复状态;

f3)收到服务回复,如果拒绝服务或拒绝价位,实现原交易取消,也就是在现金流覆盖中执行从服务端钱包地址到客户端钱包地址的交易,然后拒绝服务或价位请求;

g3)否则,对话进入成交状态。

本发明具有如下技术效果:

1、本发明解决现有智能合约的不必要的等待甚至死锁;

2、本发明提高了现有区块链对合约和账本处理的效率和扩展性

3、本发明解决智能合约交易记入区块链之前黑客钱包同时参与数项合约而产生的余额不足的问题;

4、本发明提高对大量并行智能合约的处理能力;

5、本发明增加了对智能合约的控制。

6、本发明促使因钱包支付能力而提前终止合约,从而节省了不必要的共识计算。

附图说明

图1为本发明中对话状态机

1.对话最初在等待客户状态;

2.收到客户服务价位请求时,使用客户端钱包地址为索引,查询现金流覆盖DHT路由表,得到其中一个现金流节点,然后向这个现金流节点发送交易减扣现金流的请求,进入现金流计算状态;

3.当从这个现金流节点收到现金流余额,执行合约程序判断余额是否能支付矿工;

4.如果余额不够支付矿工,向这个现金流节点发送交易回送现金流的请求,拒绝服务请求;

5.否则,转发服务价位请求给服务端钱包地址,进入等待服务回复状态;

6.收到服务回复,如果拒绝服务或拒绝价位,向这个现金流节点发送交易回送现金流的请求,拒绝服务或价位请求;

7.否则,对话进入成交状态。

图2为本发明中对话链示意图;

合约对话链由甲乙三个一线对话、乙丙对话和丙丁对话组成。

用户甲1钱包、用户甲2钱包和用户甲3钱包是合约执行过程中发现的一线客户端钱包,用户乙钱包是所有用户甲钱包的服务端。用户乙钱包分别与用户甲1钱包、用户甲2钱包和用户甲3钱包在有序智能合约中产生一个对话。在拍卖模式下,只需要一个对话成交才能进行下一级对话;在群购模式下,需要所有对话成交才能进行下一级对话。

用户乙钱包又是用户丙钱包的客户端。当上级对话成交后,用户乙钱包与用户甲丙钱包在有序智能合约中产生一个对话。这一级对话成交才能进行下一级对话。

用户丙钱包又是用户丁钱包的客户端。当上级对话成交后,用户丙钱包与用户丁丙钱包在有序智能合约中产生一个对话。这一级对话成交,这个合约成交。右边物理上体现客户端钱包和服务端钱包之间的对话,左边体现有序智能合约中的逻辑对话链。

图3为本发明中有序智能合约怎样实现对话链

用户甲1钱包与用户乙钱包在有序智能合建立一个对话和对话状态机1。

用户甲2钱包与用户乙钱包在有序智能合建立一个对话和对话状态机2。

当对话状态机1和对话状态机2进入成交后,用户乙钱包与用户丙钱包在有序智能合建立一个对话和对话状态机3。

对话状态机3成交促使合约成交。

图4为本发明中房屋租赁的一个例子

Mike是一个大学生,暑假期间想找个房子短租一个月:

●Mike打开一个租房的APP,直接用自己的指纹登录鉴权。

●接下来Mike根据自己的需求,找到一个看上去还不错的房子。房子配有一个链接到部署的智能合约。

●不知道实际入住体验如何,这时他看到过往租客的评价。

●Mike点击了实名咨询,过了没多久,对方也选择了实名回复,原来是Mike的同学Jerry住过,Jerry的评价非常不错。

●于是Mike点击链接向合约发出服务价位请求,合约转发给屋主,屋主附约,从而合约成交。

●合约执行结果:

○Mike后通过电子钱包给屋主付了1000个数字币,租一个月;

○APP通过智能合约赚取10%的佣金;

○Jerry赚取了智能合约中规定的APP奖励的10个数字币;

○屋主给矿工1支付3个数字币;

○Mike给矿工2支付3个数字币;

○Jerry给矿工3支付3个数字币;

图5为本发明中房屋租赁现金流计算的过程

现金流覆盖有三个节点,按照DHTHASH算法,这三个节点处理钱包地址如下:

●节点1:处理Mike和矿工1的钱包地址;

●节点2:处理屋主、APP和矿工2的钱包地址;

●节点3:处理Jerry和矿工3的钱包地址;

所以,现金流计算如下:

●Mike付给屋主的数字币交易送到节点1和节点2,节点1从Mike的钱包里减扣1000个数字币,而节点2回送屋主钱包1000个数字币;

●APP付给Jerry的数字币交易送到节点2和节点3,节点2从APP的钱包里减扣10个数字币,而节点3回送Jerry钱包10个数字币;

●屋主付给APP的数字币交易送到节点2,节点2从屋主的钱包里减扣100个数字币,而节点2回送APP钱包100个数字币;

●屋主付给矿工1的数字币交易送到节点1和节点2,节点2从屋主的钱包里减扣3个数字币,而节点1回送矿工1钱包3个数字币;

●Mike付给矿工2的数字币交易送到节点1和节点2,节点1从Mike的钱包里减扣3个数字币,而节点2回送矿工2钱包3个数字币;

●Jerry付给矿工3的数字币交易送到节点3,节点3从Jerry的钱包里减扣3个数字币,而节点3回送矿工3钱包3个数字币。

具体实施方式

图1为本发明中对话状态机

1.对话最初在等待客户状态;

2.收到客户服务价位请求时,使用客户端钱包地址为索引,查询现金流覆盖DHT路由表,得到其中一个现金流节点,然后向这个现金流节点发送交易减扣现金流的请求,进入现金流计算状态;

3.当从这个现金流节点收到现金流余额,执行合约程序判断余额是否能支付矿工;

4.如果余额不够支付矿工,向这个现金流节点发送交易回送现金流的请求,拒绝服务请求;

5.否则,转发服务价位请求给服务端钱包地址,进入等待服务回复状态;

6.收到服务回复,如果拒绝服务或拒绝价位,向这个现金流节点发送交易回送现金流的请求,拒绝服务或价位请求;

7.否则,对话进入成交状态。

图2为本发明中对话链示意图;

合约对话链由甲乙三个一线对话、乙丙对话和丙丁对话组成。

用户甲1钱包、用户甲2钱包和用户甲3钱包是合约执行过程中发现的一线客户端钱包,用户乙钱包是所有用户甲钱包的服务端。用户乙钱包分别与用户甲1钱包、用户甲2钱包和用户甲3钱包在有序智能合约中产生一个对话。在拍卖模式下,只需要一个对话成交才能进行下一级对话;在群购模式下,需要所有对话成交才能进行下一级对话。

用户乙钱包又是用户丙钱包的客户端。当上级对话成交后,用户乙钱包与用户甲丙钱包在有序智能合约中产生一个对话。这一级对话成交才能进行下一级对话。

用户丙钱包又是用户丁钱包的客户端。当上级对话成交后,用户丙钱包与用户丁丙钱包在有序智能合约中产生一个对话。这一级对话成交,这个合约成交。右边物理上体现客户端钱包和服务端钱包之间的对话,左边体现有序智能合约中的逻辑对话链。

图3为本发明中有序智能合约怎样实现对话链

用户甲1钱包与用户乙钱包在有序智能合建立一个对话和对话状态机1。

用户甲2钱包与用户乙钱包在有序智能合建立一个对话和对话状态机2。

当对话状态机1和对话状态机2进入成交后,用户乙钱包与用户丙钱包在有序智能合建立一个对话和对话状态机3。

对话状态机3成交促使合约成交。

图4为本发明中房屋租赁的一个例子

Mike是一个大学生,暑假期间想找个房子短租一个月:

●Mike打开一个租房的APP,直接用自己的指纹登录鉴权。

●接下来Mike根据自己的需求,找到一个看上去还不错的房子。房子配有一个链接到部署的智能合约。

●不知道实际入住体验如何,这时他看到过往租客的评价。

●Mike点击了实名咨询,过了没多久,对方也选择了实名回复,原来是Mike的同学Jerry住过,Jerry的评价非常不错。

●于是Mike点击链接向合约发出服务价位请求,合约转发给屋主,屋主附约,从而合约成交。

●合约执行结果:

○Mike后通过电子钱包给屋主付了1000个数字币,租一个月;

○APP通过智能合约赚取10%的佣金;

○Jerry赚取了智能合约中规定的APP奖励的10个数字币;

○屋主给矿工1支付3个数字币;

○Mike给矿工2支付3个数字币;

○Jerry给矿工3支付3个数字币;

图5为本发明中房屋租赁现金流计算的过程

现金流覆盖有三个节点,按照DHTHASH算法,这三个节点处理钱包地址如下:

●节点1:处理Mike和矿工1的钱包地址;

●节点2:处理屋主、APP和矿工2的钱包地址;

●节点3:处理Jerry和矿工3的钱包地址;

所以,现金流计算如下:

●Mike付给屋主的数字币交易送到节点1和节点2,节点1从Mike的钱包里减扣1000个数字币,而节点2回送屋主钱包1000个数字币;

●APP付给Jerry的数字币交易送到节点2和节点3,节点2从APP的钱包里减扣10个数字币,而节点3回送Jerry钱包10个数字币;

●屋主付给APP的数字币交易送到节点2,节点2从屋主的钱包里减扣100个数字币,而节点2回送APP钱包100个数字币;

●屋主付给矿工1的数字币交易送到节点1和节点2,节点2从屋主的钱包里减扣3个数字币,而节点1回送矿工1钱包3个数字币;

●Mike付给矿工2的数字币交易送到节点1和节点2,节点1从Mike的钱包里减扣3个数字币,而节点2回送矿工2钱包3个数字币;

●Jerry付给矿工3的数字币交易送到节点3,节点3从Jerry的钱包里减扣3个数字币,而节点3回送矿工3钱包3个数字币。

12页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:基于手机钱包的电子驾照申请和使用方法及系统

相关技术

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类