CN110569675A - 一种基于区块链技术的多Agent交易信息保护方法 - Google Patents

一种基于区块链技术的多Agent交易信息保护方法 Download PDF

Info

Publication number
CN110569675A
CN110569675A CN201910881815.8A CN201910881815A CN110569675A CN 110569675 A CN110569675 A CN 110569675A CN 201910881815 A CN201910881815 A CN 201910881815A CN 110569675 A CN110569675 A CN 110569675A
Authority
CN
China
Prior art keywords
agent
node
log
buyer
transaction
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.)
Granted
Application number
CN201910881815.8A
Other languages
English (en)
Other versions
CN110569675B (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.)
Shanghai Maritime University
Original Assignee
Shanghai Maritime University
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 Shanghai Maritime University filed Critical Shanghai Maritime University
Priority to CN201910881815.8A priority Critical patent/CN110569675B/zh
Publication of CN110569675A publication Critical patent/CN110569675A/zh
Application granted granted Critical
Publication of CN110569675B publication Critical patent/CN110569675B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • 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
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • G06Q30/0601Electronic shopping [e-shopping]
    • G06Q30/0609Buyer or seller confidence or verification
    • 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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange

Landscapes

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Finance (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Technology Law (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明公开了一种基于区块链技术的多Agent交易信息保护方法,该方法通过利用区块链建立一个仅拥有可信安全的交易信息保护执行环境的交易执行平台,利用交易执行平台实现买方和卖方之间的交易过程,另外,本发明采用了一种基于拜占庭容错的BFT‑Raft共识算法,其优点是:多Agent电子商务系统的建立,可显著降低交易成本和用户时间,有效地防止交易信息的非法授权获取、使用和泄露;且BFT‑Raft共识算法在日志复制环节运用数字签名技术和增量散列确保日志不被篡改,通过Committed证明机制,确保当选Leader节点必定拥有全部己经达成共识的日志项,BFT‑Raft共识算法可以解决拜占庭容错环境下的共识问题,并大幅减少参与验证和记账节点的数量,可以达到秒级的共识验证。

Description

一种基于区块链技术的多Agent交易信息保护方法
技术领域
本发明涉及多Agent电子商务信息安全领域,具体涉及一种基于区块链的多Agent电子商务交易信息保护方法。
背景技术
随着网络Internet的快速发展,商务信息爆炸式的增长以及网络环境的日益复杂,传统的电子商务流程及其支撑技术面临着新的挑战,其缺陷也暴露得愈来愈明显。客户几乎不可能搜索所有购物网站,分析相关信息并提出合理的决策。为了解决这个问题,移动Agent被认为是一个有用的电子商务解决方案。
移动Agent是一可执行的程序,能够携带其代码和状态自主地从网络中的一个节点移动到另一个节点,寻找合适的计算资源和信息资源,完成特定的任务。移动Agent的出现,提供了一种新的网络计算模式,在解决电子商务这样大型分布式系统问题上具有适应性和优势:基于移动Agent的电子商务系统能够为消费者和商家提供智能化和自动化的代理服务,使得消费者和商家可以从繁琐的交易环节中解脱出来。Agent不仅能代替消费者浏览大量的商品或服务,还能够代替消费者和商家进行价格等因素的协商。基于移动Agent的电子商务大大降低了网上商务活动的通信代价。基于移动Agent的电子商务满足了电子商务中的移动计算、自动软件升网上信息查询和收集等需求。
随着不同的多Agent电子商务系统被开发出来,相应的安全问题随之出现。电子商务消费互动中的交易安全,主要是指在电子商务消费交易中对交易中所涉及数据的完整性、可靠性、可用性进行保护,其目的是保证电子商务交易安全,避免用户信息及相关信息泄露。移动Agent暴露在Internet中,不可避免的带来许多安全问题,比如:信息泄漏、信息篡改、身份假冒、信息破坏。建立一个安全可靠的多Agent电子商务应用环境迫在眉睫。
区块链技术是利用块链式数据结构来验证与存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算方式,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
发明内容
本发明的目的在于提供一种基于区块链技术的多Agent交易信息保护方法,应用于多Agent电子商务系统,可以显著降低交易成本和用户时间,区块链技术的数据安全程度较高,应用也非常广泛,另外,本发明采用了一种基于拜占庭容错的BFT-Raft共识算法,该算法能解决拜占庭容错环境下的共识问题,并具有安全可靠,高效,易于理解等特点。
为了达到上述目的,本发明通过以下技术方案实现:
一种基于区块链技术的多Agent交易信息保护方法,该方法包含:
S1、为多Agent电子商务系统中的各个实体创建账户,生成账户公钥、私钥信息;
S2、卖方创建卖方多Agent系统,买方创建多个买方多Agent系统,所述买方多Agent系统与所述卖方多Agent系统交互作用,交互过程包含:买方Agent在网络中迁移到卖方Agent的本地环境中,卖方Agent和买方Agent交互协商;
S3、协商一致后,根据买卖双方的数字签名创建一个智能合约,对智能合约的交易信息进行加密;
S4、采用Raft共识算法从Follower节点中选举出一个Leader节点,Follower节点向Leader节点发送增加一个日志的请求,若Leader节点收到半数以上Follower节点的确认成功信息,将交易信息作为区块体;
S5、根据上一区块的哈希值和时间戳信息生成区块头,将所述区块头和步骤S4中的区块体结合形成区块;
S6、将步骤S5中形成的区块记录到区块链,并通知所有Follower节点同步本地的区块链状态,完成多Agent交易信息的存储。
优选地,所述步骤S2中,在卖方Agent和买方Agent交互协商前,卖方Agent采用一种基于公钥基础设施的身份认证协议对买方Agent的身份进行验证,具体为:买方Agent在网络中迁移到卖方Agent的本地环境中,买方Agent携带其私钥加密的数字证书,卖方Agent用买方的公钥对加密的数字证书进行解密,向提供第三方身份验证的认证机构发送验证信息,认证机构验证所述数字证书真实有效后,买卖双方可交互协商。
优选地,所述交互过程进一步包含:
S21、生成买方多Agent系统后的用户向该生成的买方多Agent系统提出购买要求;所述买方多Agent系统包含管理Agent、搜索Agent、决策Agent、协商Agent、交易Agent;
S22、根据用户的需求,所述管理Agent在整个流程中协调与管理各个Agent子模块,所述搜索Agent移动到服务器管理员站点,查找所述服务器管理员站点上的电子目录,得到相应的卖方站点信息;
S23、所述搜索Agent把查找结果返回给所述决策Agent;
S24、所述决策Agent决定有必要进行协商的商家个数及站点地址,把决策结果发送给所述协商Agent;
S25、根据所述决策Agent做出的结果,所述协商Agent生成多个子协商Agent,把他们派送到相应的卖方站点进行协商,然后某一个买方子协商Agent移动到某一个卖方站点,开始和卖方的子协商Agent进行协商;
S26、所述协商Agent总结所有买方子协商Agent的协商结果,把成功的协商信息发送给所述决策Agent;
S27、所述决策Agent分析所述协商Agent发送的信息,决定交易的伙伴,把决定的交易信息发送给所述交易Agent;
S28、所述交易Agent负责具体的交易事项。
优选地,步骤S3中,采用双SHA256哈希函数与ECDSA非对称加密算法对交易信息进行加密。
优选地,所述步骤S3中的加密过程具体为:
S31、根据买卖双方的数字签名创建一个智能合约,发送方对创建的智能合约运用哈希算法,得到一段第一哈希值的签名;
S32、发送方使用ECDSA非对称加密算法生成一对公有密钥和私有密钥,发送方使用私有密钥对签名加密,形成一个加密后的签名;
S33、发送方将ECDSA加密后的签名、智能合约一起发送给接收方;
S34、接收方接收发送方传来的信息,并使用发送方的公钥对ECDSA加密后的签名进行解密,还原出一个第二哈希值,查看所述第二哈希值与所述第一哈希值是否一致,若一致,则智能合约未被篡改;
若所述第二哈希值与所述第一哈希值不一致,或从智能合约中检查交易请求节点账户状态时账户不存在或状态异常,或检查智能合约状态显示被删除,则直接丢掉交易,向区块链中的各个节点发送交易异常的信息。
优选地,所述步骤S4中,所述Raft共识算法为一种基于拜占庭容错的BFT-Raft共识算法,当存在f个拜占庭节点时,BFT-Raft集群必须至少包含n个节点,则非拜占庭节点为quorum=n-f个,其中,n≥3f+1,n为集群的节点总数,也为Follower节点、Candidate节点、Leader节点的总个数;
所述基于拜占庭容错的BFT-Raft共识算法中,利用数字签名作为消息被篡改的检测机制,BFT-Raft集群中的各个节点之间在发送消息之前签名,拒绝不包含有效签名的消息。
优选地,所述步骤S4中,采用基于拜占庭容错的BFT-Raft共识算法从Follower节点中选举出一个Leader节点具体为:
如果一个Follower节点发现在超过选举定时器的时间以后一直没有收到Leader节点发送的心跳请求,则Follower节点发送新选举任期的开始选举消息给其他节点;
一个Follower节点收到2f+1个开始选举消息后,该Follower节点成为所述新选举任期的Candidate节点,所述Candidate节点向其他节点发送预投票请求消息,其中,所述预投票请求消息包含任期,2f+1签名的开始选举消息和Candidate日志列表最后一项己经达成共识的日志项的index;
Follower节点收到预投票请求消息,若预投票请求消息中的任期编号小于节点自身的任期编号,Follower节点响应拒绝投票消息,否则,Follower节点再检测消息中Candidate日志列表最后一项己经达成共识的日志项的index是否大于节点自身日志列表最后一项己经达成共识的日志项的index,如果不大于则响应拒绝投票消息,否则将当前节点的最后一个己经达成共识的日志项的index作为响应消息发送给Candidate节点;
Candidate节点在收到响应消息后,当Candidate节点拥有证明预投票请求消息中对应的index和任期的日志项时,Candidate节点发送包含日志项的哈希值的投票请求消息给其他的Follower节点,当Follower节点收到投票请求消息后,检测投票请求消息中的哈希值是否与自身相应日志项的哈希值一致,如果一致,则回复确定投票消息确认投票,否则,拒绝投票;
当Candidate节点收到2f+1个确定投票消息时,则Candidate节点成为Leader节点,之后它将向所有其他的节点发送心跳请求用以确保自己的权威并且防止新一轮的选举。
优选地,所述步骤S4还包含:日志复制阶段,其中,所述日志复制阶段具体包含Pre-Append阶段,Append阶段和Commit阶段,具体为:
客户端发送请求消息给Leader节点,其中,所述客户端为买方多Agent系统或卖方多Agent系统,请求消息包含事务、客户端签名和唯一标识符,所述标识符通常是时间戳;
当Leader节点收到客户端的请求消息时,验证请求消息,检查客户端签名是否有效,检查时间戳是否最新,验证通过后将请求消息添加到挂起消息队列中,并将对应的日志项添加至其日志列表后,Leader节点将定期对队列中的一组消息进行分组,进行日志复制;
进入Pre-Append阶段,具体为:当Leader节点收到请求消息时,Leader节点向每个Follower节点并行发送一个签名的附加日志消息,Leader节点将在每个任期的每个节点的第一个附加日志消息中包括法定人数的签名投票,以支持其在当前任期内的权威;
Follower节点使用增量哈希检查是否有匹配的日志前缀,它自己检查每个新条目的真实性,当该Follower节点有匹配的前一个条目,并且新条目有效时,则该节点会将新条目附加到其日志中,并计算每个新index的增量哈希,其中,新条目是新的请求复制的日志项;
Follower节点从Leader节点接收附加日志消息,Follower节点根据数字签名检测日志项是否被Leader节点篡改,如果Follower节点和Leader节点的数字签名中的任期匹配,客户端请求消息被正确签名未被篡改,并且请求的日志项未被复制,Follower节点将请求的日志项添加到自身日志列表中,并使用附加日志确认消息回复;
如果Follower节点和Leader节点的数字签名中的任期不匹配,Follower节点拒绝将己被篡改的日志项添加至日志列表中,同时Follower节点向所有节点广播更新领导者消息开始新一轮的Leader节点选举;
进入Append阶段,具体为:当Leader节点收到quorum个附加日志确认消息时,把日志项被响应添加Committed的结果由Leader节点返回至客户端;
Leader节点在收到有效的附加日志消息后需要继续发送附加日志响应消息以通知集群其他的节点己将日志项添加到自身的日志列表中,当且仅当节点收到了quorum数量的针对某一index,任期和哈希值的附加日志响应消息后,可确认该日志项己在集群达成共识;每个节点会保存从其他节点收到的附加日志响应消息,当节点确认特定index和任期的日志项己经达成共识,删除该index之前的日志项对应的附加日志响应消息;
进入Commit阶段,具体为:集群内的Follower节点收到quorum数量的附加日志响应消息后,发送Committed消息给客户端,当客户端收到quorum数量的Committed消息,确认该日志项己在集群达成共识;
对于每个新的交易记录,重复上述过程。
优选地,所述步骤S5中数据的存储使用了梅克尔树的数据结构,通过梅克尔树算法生成梅克尔数根哈希,并以此作为交易列表的哈希值存到区块头中。
优选地,该方法还包含:引入第三方公证人处理纠纷,具体为,
电商平台建立针对所有用户的信誉评分系统,选用信誉度达到设定条件的用户作为第三方公证人;
针对交易金额的纠纷,第三方公证人对智能合约进行验证并基于多重签名技术创建数字货币账户,第三方公证人及买卖双方各自拥有一把私钥,只有当三个当事人都协商一致集齐三把私钥时,买家才会按合约条款把相应的数字货币发送到多重签名的地址;
当卖方接到买方已经付款的通知时便可以发货,买方也会同步收到商品已发货的通知;
在买方确认收货后,电商平台会自动从多重签名的地址释放货款给卖方。
本发明与现有技术相比具有以下优点:
(1)本发明的基于区块链技术的多Agent交易信息保护方法,采用了一种基于拜占庭容错的BFT-Raft共识算法,BFT-Raft共识算法继承了Raft算法的状态空间,在日志复制环节运用数字签名技术和增量散列确保日志不被篡改,同时借鉴实用拜占庭容错算法(PBFT),对Leader节点选举进行验证,通过Committed证明机制,确保当选Leader节点必定拥有全部己经达成共识的日志项,增加Committed验证机制,确保在拜占庭节点发送错误消息的情况下日志项依然能够被正确的Committed,保证日志已达成共识,BFT-Raft共识算法可以解决拜占庭容错环境下的共识问题,并大幅减少参与验证和记账节点的数量,可以达到秒级的共识验证;
(2)本发明的区块链采用P2P对等网络协议组网,决定了其是一种去中心化的分布式体系架构,电子商务系统网络中每一个节点都具有对等的权利和义务,而且节点具有卖家和买家的双重身份,每个节点互为备份交易信息数据,而且共同承担交易信息的传输与验证,系统内部完全不存在中介管理机构,节点的丢失和损坏不会影响整个系统的运作,并且提高了交易效率、节约了交易的成本和用户时间,确保了交易数据的安全性,以及交易信息的可追溯性和问责制,有效地防止了交易信息的非法授权获取、使用、泄露和篡改;
(3)本发明的区块链网络中每个参与节点通过时间戳将交易数据的写入时间记录在生成的区块体中,一旦交易信息经过大多数的节点验证,当前区块体将按照时间顺序链接到区块主链上,此时交易信息被永久存储起来,不可更改,有效地防止了交易信息的非法授权获取和篡改;
(4)本发明引入了第三方公证人处理交易纠纷,使本发明的基于区块链技术的多Agent交易信息保护方法更加公正公平,维护了多方的利益。
附图说明
图1为本发明一种基于区块链技术的多Agent交易信息保护方法的流程图;
图2为本发明为多Agent的电子商务自动交易系统功能图;
图3为本发明中交易信息加密与验证流程图;
图4为本发明中BFT-Raft共识算法中日志复制示意图;
图5为本发明交易信息区块链结构示意图;
图6本发明中引入第三方公证人处理纠纷的原理流程图。
具体实施方式
以下结合附图,通过详细说明一个较佳的具体实施例,对本发明做进一步阐述。
如图1所示,为本发明中的一种基于区块链技术的多Agent交易信息保护方法流程图,该方法包含:
S1、为多Agent电子商务系统中的各个实体创建账户,生成账户公钥、私钥信息。
不同的客户机上有卖方Agent和买方Agent,还有买方管理Agent和卖方管理Agent,Web服务器上则有服务器管理员。其中,买方Agent和卖方Agent都是多Agent系统,采用分工明确的多种Agent进行搜索、决策、管理、协商、交易等工作。
当用户第一次使用基于区块链的电商平台时需要注册个人账号ID,此ID作为每个用户唯一的身份证明,后台系统会在区块链上自动生成一个节点与之对应,并为每一个账户生成一个密钥对,包括公钥和私钥。此ID也作为用户创建的Agent的身份标识,证明Agent的身份信息。区块链网络中每个参与节点都拥有公钥和私钥,其中,公钥广播给全部节点可知,私钥只有个人所知。
S2、卖方创建卖方多Agent系统,买方创建多个买方多Agent系统,所述买方多Agent系统与所述卖方多Agent系统交互作用,交互过程包含:买方Agent在网络中迁移到卖方Agent的本地环境中,卖方Agent对买方Agent的身份基于公钥基础设施的身份认证协议进行验证,验证成功后与之直接交互协商。
如图2所示,以下将从一个买方用户的角度,描述在整个电子交易中的具体实施过程。
步骤S2中买方创建买方多Agent系统及交互过程具体为:S21、用户生成一个买方多Agent系统,向它提出自己的购买要求,所述买方多Agent系统包含:管理Agent、搜索Agent、决策Agent、协商Agent、交易Agent;S22、根据用户的需求,所述管理Agent在整个流程中协调与管理各个Agent子模块,所述搜索Agent移动到服务器管理员站点,查找所述服务器管理员站点上的电子目录,得到相应的卖方站点信息;S23、所述搜索Agent把查找结果返回给所述决策Agent;S24、所述决策Agent决定有必要进行协商的商家个数及站点地址,把决策结果发送给所述协商Agent;S25、根据所述决策Agent做出的结果,所述协商Agent生成多个买方子协商Agent,把他们派送到相应的卖方站点进行协商,然后某一个买方子协商Agent移动到某一个卖方站点,开始和卖方的子协商Agent进行协商;S26、所述协商Agent总结所有买方子协商Agent的协商结果,把成功的协商信息发送给所述决策Agent;S27、所述决策Agent分析所述协商Agent发送的信息,决定交易的伙伴,把决定的交易信息发送给所述交易Agent;S28、所述交易Agent负责具体的交易事项。
在卖方Agent和买方Agent交互之前,需对其身份进行验证,验证成功后才能直接交互协商。
认证机构(Certificate Authority,简称CA)是提供身份验证的第三方机构,由一个或多个用户信任的组织实体构成,为区块链系统之外的机构。CA核实某个用户的真实身份以后,签发一份报文给该用户,以此作为网上证明身份的依据,这个报文称为数字证书。数字证书是一个经以认证中心数字签名的包含公钥拥有者身份信息以及公密的二进制文件。
具体的验证过程为:区块链的用户拥有CA签发的数字证书,买方Agent在网络中迁移到卖方Agent的本地环境中,买方Agent携带其用户采用私钥加密的数字证书,卖方Agent用买方的公钥对加密的数字证书解密,向CA针对买方的数字证书发送验证信息,CA验证通过后,双方Agent可交互协商。
本发明运用了一种基于PKI的身份认证协议,具体协议如下:
设MA_A为买方创建的移动代理,SA_B为卖方Agent的代理服务器。MA_A由移动代理管理器MAO创建后经物理网络迁移到卖方Agent SA代理服务器SA_B。
表1身份认证协议符号含义表
1)MA_A→SA_B:{IDA,rA,TA}
MA_A在迁移到SA的服务器时,向SA_B发一个认证请求消息{IDA,rA,TA,},SA_B接收到MA_A的认证请求后,检验时间戳TA、是否在有效期内,rA是否重复出现过,如果正确有效,则返回确认消息。
2)SA_B→MA_A:{IDB,SKB(rA),rB,TB}
SA_B收到MA_A的请求后,响应请求并向MA_A发送确认消息{IDB,SgnA(rA),rB,TB}。
MA_A收到SA_B的确认消息后,根据从目录服务器中获得SA_B的公钥PKB并验证其有效性。计算DPKB[SKB(rA)](解锁rA),若得到rA,则证明应答消息来自SA_B,目的接收者为MA_A,验证TB。TB确认该消息是完整的、新鲜的,所述目录服务器为服务器管理的一部分。
3)MA_A→SA_B:{SKCA(CertMA_A||TA),Sgn SKA(rB)}
(i)MA_A收到SA_B的响应,使用MA_A的私钥SKA对随机数rB签名生成SgnSKA(rB);
(ii)CA用自己的私钥将MA_A的数字证书及时间戳加密后发给MA_A;
(iii)MA_A响应SA_B的请求,把用户证书SKCA(CertMA_A||TA)、签名SgnSKA(rB)、随机数rB作为消息发送给SA_B。
4)SA_B→MA_A
(i)SA_B收到MA_A的认证消息后,从目录服务器中获得MA_A的公钥PKA,计算SgnSKA(rB),若得到自己发出的认证随机数rB,确认应答消息的真实性。
(ii)SA_B在收到认证消息后,用CA的公钥解密SKCA(CertMA_A||TA)得到MA_A的数字证书,验证了证书的真实性,查看证书有效期。若SA_B验证MA_A的数字证书新鲜、有效,则SA_B认为MA_A是可信的。从而MA_A可经物理网络迁移到SA代理服务器SA_B,并交互协商。
S3、买卖双方协商一致后,根据买卖双方的数字签名创建一个智能合约,对智能合约的交易信息进行加密。其中,本发明采用双SHA256哈希函数与ECDSA非对称加密算法对交易信息进行加密,保证交易信息的隐秘性,真伪性,防止交易信息被篡改。
区块链的智能合约可以通俗的理解为约束交易行为的数字法律合同。它以程序代码的形式存在于区块链的合约层,当预先设定的条件被触发时,会自动运行相应的合约条款。智能合约的出现不仅保证了区块链在没有第三方中心机构的监督下能够有效地履行交易合约。
其中,智能合约为参与双方共同拟定,并通过合约编辑工具生成智能合约代码,智能合约代码被生成后,保存在区块链节点内,存储方式可以是KEY,合约名称可以是VALUE。
交易信息加密与验证过程具体实施如图3所示:
S31、发送方即买方MA_A与接收方卖方SA_B发起一笔新的交易,根据买卖双方的数字签名创建一个智能合约,MA_A对创建的智能合约运用SHA256哈希算法,得到散列Hash后的一段消息摘要即第一哈希值。对于任意长度的消息,SHA256都会产生一个256bit长的哈希值,称作消息摘要。这个摘要相当于是个长度为32个字节的数组,通常用一个长度为64的十六进制字符串来表示。
S32、发送方MA_A使用ECDSA非对称加密算法生成一对公有密钥和私有密钥(即公钥和私钥)。MA_A使用私有密钥对签名加密,形成一个加密后的签名。
S33、MA_A将ECDSA加密后的签名、智能合约一起发送给SA_B。
S34、SA_B使用MA_A的公钥对签名解密,还原出一个第二哈希值。查看该第二哈希值与第一哈希值是否一致,如果一致,则智能合约未被篡改。
若所述第二哈希值与所述第一哈希值不一致;或从智能合约中检查交易请求节点账户状态时,如果账户不存在或状态异常;或检查智能合约状态时,如果合约已经被删除,则直接丢掉交易,向区块链中的各个节点发送交易异常的信息。
S4、采用基于拜占庭容错的BFT-Raft共识算法从Follower节点中选举出一个Leader节点,Follower节点向Leader节点发送增加一个日志的请求,若Leader节点收到半数以上Follower节点的确认成功信息,将交易信息作为区块体。
其中,基于拜占庭容错的BFT-Raft共识算法主要应用在图1中的验证节点记录交易信息达成一致的共识过程。目前,区块链技术中常用的共识算法主要有:Pow、Pos、DPos、PBFT、Raft算法等。Pow、Pos、DPos算法虽然可以很好的保证安全性,但效率低下。PBFT算法相比于Pow算法,达成共识的时延较短,同时支持较大的交易吞吐量,但当节点的数量不断增加时,PBFT算法的性能会呈指数下降。Raft算法相对于Pow、PBFT更高效。本发明采用Raft共识算法。但Raft共识算法属于非拜占庭算法,Raft算法无法确保在拜占庭容错环境下继续保证算法的安全性和活性。为适用多Agent电子商务系统交易应用,本发明对Raft算法进行改进,提出了一种拜占庭容错的Raft共识算法BFT-Raft,BFT-Raft继承了Raft的状态空间,在日志复制环节运用数字签名技术和增量散列确保日志不被篡改;同时借鉴PBFT算法,对Leader节点选举进行验证,增加Committed验证环节保证日志已达成共识。相比于其他主流的具备拜占庭容错能力的分布式共识算法,BFT-Raft共识算法具有安全可靠,高效,易于理解等特点。
改进的BFT-Raft共识算法中的节点共有三个状态:
Candidate节点:候选人,可以竞选Leader节点;Follower节点:跟随者,进行Leader节点选举投票,校验Leader节点打包区块的结果;Leader节点:领导者。
所述基于拜占庭容错的BFT-Raft共识算法中,当存在f个拜占庭节点时,BFT-Raft集群必须至少包含n个节点,则非拜占庭节点为quorum=n-f个,其中,n≥3f+1,n为集群的节点总数,即Follower节点、Candidate节点、Leader节点的总个数。Follower节点或Candidate节点可为拜占庭节点或非拜占庭节点。
在拜占庭容错环境下,任意消息都存在被篡改的可能。BFT-Raft共识算法利用数字签名作为消息被篡改的检测机制。因此,BFT-Raft被配置为使得节点和客户端提前拥有彼此节点和客户端的公钥,且任意节点不具备伪造密钥的能力。BFT-Raft集群的各个节点之间(包含客户端)总是在发送消息之前签名,拒绝不包含有效签名的消息。
与Raft相似,BFT-Raft共识算法将时间划分成任意长度的任期(term)。term以连续的整数进行编号。每个term以一个选举election开始,这个阶段会有唯一一个candidate节点竞选Leader节点。如果candidate节点竞选成功,那么它将在term剩下的时间里作为Leader节点。BFT-Raft共识算法利用任期(term)和索引(index)作为逻辑时间戳以达成节点共识:term编号和index始终保持递增趋势,每一轮Leader节点选举导致term编号递增,每个日志项具备对应的term;由于日志项在各个节点以有序日志列表的方式存储,因此每个日志项具备其唯一的index。
BFT-Raft共识算法中节点之间通信使用远程过程调用(RPCs),并且共识算法需要八种类型的RPCs。如果其中的一个节点没有收到回复,那么它会及时重发RPC,并且它们会并行发送RPC用于提高性能。
表2八种类型的RPCs具体含义
BFT-Raft的共识过程分为Leader节点选举和日志复制两个阶段。
BFT-Raft共识算法针对拜占庭容错重新设计了全新的Leader节点选举机制。BFT-Raft共识算法的Leader节点选举机制包含以下步骤:
S41、如果一个Follower节点发现在超过选举定时器的时间以后一直没有收到Leader节点发送的心跳请求,则Follower节点发送新选举任期的开始选举(StartElectionRPC)消息给其他节点,其他节点编号为id=t mod n的节点,t为新的选举term。
S42、一个Follower节点收到2f+1个StartElection RPC消息后,该Follower节点成为选举term为t的候选人即Candidate节点,该Candidate节点向其他节点发送预投票请求消息(PreRequestVote RPC),该消息包含term,2f+1签名的StartElection RPC消息和Candidate日志列表最后一项己经达成共识的日志项的索引(index)(而不是最后一项日志项)。该阶段拜占庭Candidate节点可能在投票消息中伪造己达成共识日志项的index。
S43、Follower节点收到PreRequestVote RPC,当检测PreRequestVote RPC中的term编号比节点自身的term编号更小时,则响应拒绝投票消息,Follower节点再检测消息中Candidate日志列表最后一项己经达成共识的日志项的index是否比节点自身日志列表最后一项己经达成共识的日志项的index更大,如果不是,则响应拒绝投票消息,否则将当前节点的最后一个己经达成共识的日志项的index作为响应消息参数发送给Candidate节点。
S44、Candidate节点在收到响应消息后,当Candidate节点拥有证明预投票请求消息中对应的index和term的日志项时,Candidate节点发送包含日志项的哈希值的投票请求消息(RequestVote RPC)给其他的Follower节点。当其他Follower节点收到RequestVoteRPC消息后,检测投票请求消息中的哈希值是否与自身相应日志项的哈希值一致,如果一致则回复确定投票消息(grantVote RPC)确认投票,否则拒绝投票。
S45、当Candidate节点收到2f+1个grantVote RPC时,则Candidate节点成为Leader节点,之后它将向所有其他的节点发送心跳请求(hearbeat)用以确保自己的权威并且防止新一轮的选举。
如图4所示,BFT-Raft共识算法的日志复制包含三个阶段:Pre-Append阶段,Append阶段和Commit阶段。Pre-Append阶段和Append阶段用于完全排序服务器提交并通过客户端事务;Append阶段和Commit阶段用于确保客户端和服务器已将事务正确附加到日志中。
日志复制阶段具体为:S46、在Pre-Append阶段之前,客户端发送请求消息(Request RPC)给Leader节点,其中,所述客户端为买方多Agent系统或卖方多Agent系统。Request RPC还包含事务、客户端签名和唯一标识符(通常是时间戳)。签名保证了客户端请求的真实性和完整性,防止拜占庭节点伪造客户端请求。唯一标识符防止拜占庭节点复制客户端请求。签名和唯一标识符保证每个命令将被每个非拜占庭节点最多复制一次。
当Leader节点收到客户端的请求消息时,验证请求消息,检查客户端签名是否有效,检查时间戳是否最新,验证通过后将请求消息添加到挂起消息队列中,并将对应的日志项添加至其日志列表后,Leader节点将定期对队列中的一组消息进行分组,进行日志复制。
S47、进入Pre-Append阶段(附加前阶段),具体为:
当Leader节点收到Request RPC时,Leader节点向每个Follower节点并行发送一个签名的附加日志消息(AppendEntries RPC)。Leader节点将在每个任期的每个节点的第一个AppendEntries RPC中包括法定人数的签名投票,以支持其在当前term内的权威。
与Raft算法一样,Follower节点将检查是否有匹配的日志前缀,但是使用增量哈希,而不是前一条目的术语。然后,它自己检查每个新条目的真实性,所示新条目是新的请求复制的日志项。当该Follower节点有匹配的前一个条目,并且新条目有效时,则该节点会将新条目附加到其日志中,并计算每个新索引index的增量哈希。其中,index相当于条目在日志列表的位置,假设计算索引i处的增量哈希,节点计算(附加到索引i处的日志项加上索引i-1处的增量哈希)的哈希。
Follower节点从Leader节点接收AppendEntries RPC,收到消息的Follower节点根据数字签名检测日志项是否被Leader节点篡改。如果term编号匹配,客户端请求被正确签名未被篡改,并且请求的日志项未被复制,Follower节点将请求的日志项添加到自身日志列表中,并使用附加日志确认消息(AppendEntryAck)回复。如果term编号不匹配,Follower节点拒绝将己被篡改的日志项添加至日志列表中,同时Follower节点向所有节点广播更新领导者消息(UpdateLeader RPC)开始新一轮的Leader节点选举。
S48、进入Append阶段(附加阶段),具体为:
当Leader节点收到quorum个AppendEntryAck时,把日志项被响应添加Committed的结果由Leader节点返回至客户端,为了防止Leader节点在没有收到quorum个节点的AppendEntryAck时响应日志项己经达成共识。其中,Committed意为日志项已经附加成功。
BFT-Raft共识算法在Append阶段保证日志项被正确响应Committed,Append阶段通过节点之间的互相通信来实现:Leader节点在收到有效的AppendEntries RPC消息后需要继续发送附加日志响应消息(AppendEntriesCommit RPC)以通知集群其他的节点己将日志项添加到自身的日志列表中。当且仅当节点收到了quorum数量的针对某一index,term和哈希值的AppendEntriesCommit RPC消息后,可确认该日志项己在集群达成共识。每个节点会保存从其他节点收到的AppendEntriesCommit RPC,当节点确认特定index和term的日志项己经达成共识,删除该index之前的日志项对应的AppendEntriesCommit RPC。
S49、进入Commit阶段(提交阶段),具体为:
Follower节点收到quorum数量的AppendEntriesCommit RPC后,发送Committed消息给客户端,当客户端收到quorum数量的Committed消息,确认该日志项己在集群达成共识;
对于每个新的交易记录,重复上述过程。
另外,客户端发送给Leader节点的Request RPC除了包含待执行的指令,还包含指令对应的数字签名。Leader节点将客户端请求对应的日志项向Follower节点发送。如果Leader节点篡改了消息中的指令,收到消息的Follower节点可以根据数字签名检测出日志项己被Leader节点篡改。Follower节点拒绝将己被篡改的日志项添加至日志列表中,同时Follower节点转换状态为Candidate节点并开始新一轮的Leader节点选举。
在改进的BFT-Raft共识算法中添加一个客户端干预机制,当客户端在一段时间内没有与Leader节点进行任何进展时,它会向所有节点广播UpdateLeader RPC,告诉他们忽略当前任期的当前Leader节点的未来心跳。这些Follower节点会忽略当前任期Leader节点的心跳信息,并像现任Leader节点失败一样超时,开始新的选举。
在集群内的所有节点中选举一个Leader节点,由Leader节点验证和记账。该基于改进的BFT-Raft共识算法大幅缩小参与验证和记账节点的数量,可以达到秒级的共识验证。
S5、根据上一区块(Block)的哈希值和时间戳信息生成区块头,将所述区块头和步骤S4中的区块体结合形成区块;
每个区块中包含前一区块的哈希值以及本区块的哈希值,区块之间的链接通过这2个哈希值来完成。本区块可以通过上一区块的哈希值链接到上一区块,以此类推,即可建立一条完整的数据链条。
所述步骤S5中数据的存储使用了梅克尔树(Merkle Trees)的数据结构,通过梅克尔树算法生成梅克尔数根哈希,并以此作为交易列表的哈希值存到区块头中。
梅克尔树最常见和最简单的形式是二进制梅克尔树(Binary MerkleTrees)。在这种梅克尔树的数据结构中,所有的数据区块被两两分组,而这些数据区块就是树的节点。每个数据区块对应的哈希指针被存储在上一层的父节点(Parent Node)中,这些指向节点的哈希指针再次被两两分组。重复这个过程直至得到一个单一区块,即树根节点(MerkleRoot)。最终,通过Merkle Tree算法生成梅克尔数根哈希(Merkle Root Hash),并以此作为交易列表的摘要存到区块头(Block Header)中。
如果篡改了树节点的数据区块,将会导致父节点的哈希值与其不匹配。层层向上传递,最终改动数据的行为会传递到梅克尔树的顶端。因此,只要保存树根节点的哈希值,就能检测任何企图修改节点中数据块的行为。
区块链网络中每个参与节点通过时间戳将交易数据的写入时间记录在生成的区块中,一旦交易信息经过大多数的节点验证,当前区块将按照时间顺序链接到区块主链上,此时交易信息被永久存储起来,不可更改。因此,时间戳的应用有助于区块链形成一个不可篡改、不可伪造的数据库。
S6、将步骤S5中形成的区块记录到区块链,并通知所有Follower节点同步本地的区块链状态,完成多Agent交易信息的存储。如图5所示,为本发明产生的区块链示意图。
每个成员都可以对交易链进行下载和检索,确认自己的交易是否在交易链中,即形成对交易平台的监督,也为后续的交易追溯和申诉提供证据。
另外,本发明的算法还引入第三方公证人处理纠纷,如图6所示,具体实施如下:
若买卖双方在交易过程中出现纠纷,便可以选择由第三方公证人介入来解决问题。为了保证第三方公证人的公平性和可信度,电商平台专门建立针对所有用户的信誉评分系统,允许每一位用户匿名对与之交易过的用户的综合情况进行反馈评分。选用信誉度达到设定条件的用户作为第三方公证人。优选地,其中信誉度排名较高的用户可以报名成为第三方公证人,而第三方公证人信誉度越高其数字货币的奖励越多,但是如果第三方公证人被其他用户举报滥用权力且情况属实,将会被列入黑名单并对其进行高额罚款。每一笔交易的第三方公证人都必须由买卖双方共同选择,可以避免第三方公证人偏袒任何一方的情况出现。
其中针对交易金额的纠纷,第三方公证人会对智能合约进行验证并基于多重签名技术创建数字货币账户,第三方公证人及买卖双方各自拥有一把私钥,只有当三个当事人都协商一致集齐三把私钥时,买家才会按合约条款把相应的数字货币发送到多重签名的地址。当卖方接到买方已经付款的通知时便可以发货,而买方也会同步收到商品已发货的通知。在买方确认收货后,电商平台会自动从多重签名的地址释放货款给卖方。
综上所述,本发明的基于区块链技术的多Agent交易信息保护方法,通过利用区块链建立一个仅拥有可信安全的交易信息保护执行环境的交易执行平台,利用交易执行平台实现买方和卖方之间的交易过程,有效地防止交易信息的非法授权获取、使用、泄露和篡改,并保证交易数据变化过程可追溯;本发明采用了一种基于拜占庭容错的BFT-Raft共识算法,BFT-Raft共识算法继承了Raft算法的状态空间,在日志复制环节运用数字签名技术和增量散列确保日志不被篡改,通过Committed证明机制,确保当选Leader节点必定拥有全部己经达成共识的日志项,增加Committed验证机制,确保在拜占庭节点发送错误消息的情况下日志项依然能够被正确的Committed,保证日志已达成共识,BFT-Raft共识算法可以解决拜占庭容错环境下的共识问题,并大幅减少参与验证和记账节点的数量,可以达到秒级的共识验证;且本发明中设立了第三方公证人,当买卖双方发生纠纷时,第三方公证人可较为公平地处理纠纷。
显然,本领域的技术人员应该理解,上述的本发明的各模块或各步骤可以用通用的计算系统来实现,它们可以集中在单个的计算系统上,或者分布在多个计算系统所组成的网络上,可选地,它们可以用计算系统可执行的程序代码来实现,从而,可以将它们存储在存储系统中由计算系统来执行。这样,本发明不限制于任何特定的硬件和软件结合。
尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。

Claims (10)

1.一种基于区块链技术的多Agent交易信息保护方法,其特征在于,该方法包含:
S1、为多Agent电子商务系统中的各个实体创建账户,生成账户公钥、私钥信息;
S2、卖方创建卖方多Agent系统,买方创建多个买方多Agent系统,所述买方多Agent系统与所述卖方多Agent系统交互作用,交互过程包含:买方Agent在网络中迁移到卖方Agent的本地环境中,卖方Agent和买方Agent交互协商;
S3、协商一致后,根据买卖双方的数字签名创建一个智能合约,对智能合约的交易信息进行加密;
S4、采用Raft共识算法从Follower节点中选举出一个Leader节点,Follower节点向Leader节点发送增加一个日志的请求,若Leader节点收到半数以上Follower节点的确认成功信息,将交易信息作为区块体;
S5、根据上一区块的哈希值和时间戳信息生成区块头,将所述区块头和步骤S4中的区块体结合形成区块;
S6、将步骤S5中形成的区块记录到区块链,并通知所有Follower节点同步本地的区块链状态,完成多Agent交易信息的存储。
2.如权利要求1所述的基于区块链技术的多Agent交易信息保护方法,其特征在于,
所述步骤S2中,在卖方Agent和买方Agent交互协商前,卖方Agent采用一种基于公钥基础设施的身份认证协议对买方Agent的身份进行验证,具体为:买方Agent在网络中迁移到卖方Agent的本地环境中,买方Agent携带其私钥加密的数字证书,卖方Agent用买方的公钥对加密的数字证书进行解密,向提供第三方身份验证的认证机构发送验证信息,认证机构验证所述数字证书真实有效后,买卖双方可交互协商。
3.如权利要求1或2所述的基于区块链技术的多Agent交易信息保护方法,其特征在于,所述交互过程进一步包含:
S21、生成买方多Agent系统后的用户向该生成的买方多Agent系统提出购买要求;所述买方多Agent系统包含管理Agent、搜索Agent、决策Agent、协商Agent、交易Agent;
S22、根据用户的需求,所述管理Agent在整个流程中协调与管理各个Agent子模块,所述搜索Agent移动到服务器管理员站点,查找所述服务器管理员站点上的电子目录,得到相应的卖方站点信息;
S23、所述搜索Agent把查找结果返回给所述决策Agent;
S24、所述决策Agent决定有必要进行协商的商家个数及站点地址,把决策结果发送给所述协商Agent;
S25、根据所述决策Agent做出的结果,所述协商Agent生成多个子协商Agent,把他们派送到相应的卖方站点进行协商,然后某一个买方子协商Agent移动到某一个卖方站点,开始和卖方的子协商Agent进行协商;
S26、所述协商Agent总结所有买方子协商Agent的协商结果,把成功的协商信息发送给所述决策Agent;
S27、所述决策Agent分析所述协商Agent发送的信息,决定交易的伙伴,把决定的交易信息发送给所述交易Agent;
S28、所述交易Agent负责具体的交易事项。
4.如权利要求1所述的基于区块链技术的多Agent交易信息保护方法,其特征在于,
步骤S3中,采用双SHA256哈希函数与ECDSA非对称加密算法对交易信息进行加密。
5.如权利要求1或4所述的基于区块链技术的多Agent交易信息保护方法,其特征在于,
所述步骤S3中的加密过程具体为:
S31、根据买卖双方的数字签名创建一个智能合约,发送方对创建的智能合约运用哈希算法,得到一段第一哈希值的签名;
S32、发送方使用ECDSA非对称加密算法生成一对公有密钥和私有密钥,发送方使用私有密钥对签名加密,形成一个加密后的签名;
S33、发送方将ECDSA加密后的签名、智能合约一起发送给接收方;
S34、接收方接收发送方传来的信息,并使用发送方的公钥对ECDSA加密后的签名进行解密,还原出一个第二哈希值,查看所述第二哈希值与所述第一哈希值是否一致,若一致,则智能合约未被篡改;
若所述第二哈希值与所述第一哈希值不一致,或从智能合约中检查交易请求节点账户状态时账户不存在或状态异常,或检查智能合约状态显示被删除,则直接丢掉交易,向区块链中的各个节点发送交易异常的信息。
6.如权利要求1所述的基于区块链技术的多Agent交易信息保护方法,其特征在于,
所述步骤S4中,所述Raft共识算法为一种基于拜占庭容错的BFT-Raft共识算法,当存在f个拜占庭节点时,BFT-Raft集群必须至少包含n个节点,则非拜占庭节点为quorum=n-f个,其中,n≥3f+1,n为集群的节点总数,也为Follower节点、Candidate节点、Leader节点的总个数;
所述基于拜占庭容错的BFT-Raft共识算法中,利用数字签名作为消息被篡改的检测机制,BFT-Raft集群中的各个节点之间在发送消息之前签名,拒绝不包含有效签名的消息。
7.如权利要求6所述的基于区块链技术的多Agent交易信息保护方法,其特征在于,
所述步骤S4中,采用基于拜占庭容错的BFT-Raft共识算法从Follower节点中选举出一个Leader节点具体为:
如果一个Follower节点发现在超过选举定时器的时间以后一直没有收到Leader节点发送的心跳请求,则Follower节点发送新选举任期的开始选举消息给其他节点;
一个Follower节点收到2f+1个开始选举消息后,该Follower节点成为所述新选举任期的Candidate节点,所述Candidate节点向其他节点发送预投票请求消息,其中,所述预投票请求消息包含任期,2f+1签名的开始选举消息和Candidate日志列表最后一项己经达成共识的日志项的index;
Follower节点收到预投票请求消息,若预投票请求消息中的任期编号小于节点自身的任期编号,Follower节点响应拒绝投票消息,否则,Follower节点再检测消息中Candidate日志列表最后一项己经达成共识的日志项的index是否大于节点自身日志列表最后一项己经达成共识的日志项的index,如果不大于则响应拒绝投票消息,否则将当前节点的最后一个己经达成共识的日志项的index作为响应消息发送给Candidate节点;
Candidate节点在收到响应消息后,当Candidate节点拥有证明预投票请求消息中对应的index和任期的日志项时,Candidate节点发送包含日志项的哈希值的投票请求消息给其他的Follower节点;
当Follower节点收到投票请求消息后,检测投票请求消息中的哈希值是否与自身相应日志项的哈希值一致,如果一致,则回复确定投票消息确认投票,否则,拒绝投票;
当Candidate节点收到2f+1个确定投票消息时,则Candidate节点成为Leader节点,之后它将向所有其他的节点发送心跳请求用以确保自己的权威并且防止新一轮的选举。
8.如权利要求7所述的基于区块链技术的多Agent交易信息保护方法,其特征在于,
所述步骤S4还包含:日志复制阶段,其中,所述日志复制阶段具体包含Pre-Append阶段,Append阶段和Commit阶段,具体为:
客户端发送请求消息给Leader节点,其中,所述客户端为买方多Agent系统或卖方多Agent系统,请求消息包含事务、客户端签名和唯一标识符,所述标识符通常是时间戳;
当Leader节点收到客户端的请求消息时,验证请求消息,检查客户端签名是否有效,检查时间戳是否最新,验证通过后将请求消息添加到挂起消息队列中,并将对应的日志项添加至其日志列表后,Leader节点将定期对队列中的一组消息进行分组,进行日志复制;
进入Pre-Append阶段,具体为:当Leader节点收到请求消息时,Leader节点向每个Follower节点并行发送一个签名的附加日志消息,Leader节点将在每个任期的每个节点的第一个附加日志消息中包括法定人数的签名投票,以支持其在当前任期内的权威;
Follower节点使用增量哈希检查是否有匹配的日志前缀,它自己检查每个新条目的真实性,当该Follower节点有匹配的前一个条目,并且新条目有效时,则该节点会将新条目附加到其日志中,并计算每个新index的增量哈希,其中,新条目是新的请求复制的日志项;
Follower节点从Leader节点接收附加日志消息,Follower节点根据数字签名检测日志项是否被Leader节点篡改,如果Follower节点和Leader节点的数字签名中的任期匹配,客户端请求消息被正确签名未被篡改,并且请求的日志项未被复制,Follower节点将请求的日志项添加到自身日志列表中,并使用附加日志确认消息回复;
如果Follower节点和Leader节点的数字签名中的任期不匹配,Follower节点拒绝将己被篡改的日志项添加至日志列表中,同时Follower节点向所有节点广播更新领导者消息开始新一轮的Leader节点选举;
进入Append阶段,具体为:当Leader节点收到quorum个附加日志确认消息时,把日志项被响应添加Committed的结果由Leader节点返回至客户端;
Leader节点在收到有效的附加日志消息后需要继续发送附加日志响应消息以通知集群其他的节点己将日志项添加到自身的日志列表中,当且仅当节点收到了quorum数量的针对某一index,任期和哈希值的附加日志响应消息后,可确认该日志项己在集群达成共识;每个节点会保存从其他节点收到的附加日志响应消息,当节点确认特定index和任期的日志项己经达成共识,删除该index之前的日志项对应的附加日志响应消息;
进入Commit阶段,具体为:集群内的Follower节点收到quorum数量的附加日志响应消息后,发送Committed消息给客户端,当客户端收到quorum数量的Committed消息,确认该日志项己在集群达成共识;
对于每个新的交易记录,重复上述过程。
9.如权利要求1所述的基于区块链技术的多Agent交易信息保护方法,其特征在于,
所述步骤S5中数据的存储使用了梅克尔树的数据结构,通过梅克尔树算法生成梅克尔数根哈希,并以此作为交易列表的哈希值存到区块头中。
10.如权利要求1所述的基于区块链技术的多Agent交易信息保护方法,其特征在于,该方法还包含:引入第三方公证人处理纠纷,具体为,
电商平台建立针对所有用户的信誉评分系统,选用信誉度达到设定条件的用户作为第三方公证人;
针对交易金额的纠纷,第三方公证人对智能合约进行验证并基于多重签名技术创建数字货币账户,第三方公证人及买卖双方各自拥有一把私钥,只有当三个当事人都协商一致集齐三把私钥时,买家才会按合约条款把相应的数字货币发送到多重签名的地址;
当卖方接到买方已经付款的通知时便可以发货,买方也会同步收到商品已发货的通知;
在买方确认收货后,电商平台会自动从多重签名的地址释放货款给卖方。
CN201910881815.8A 2019-09-18 2019-09-18 一种基于区块链技术的多Agent交易信息保护方法 Active CN110569675B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910881815.8A CN110569675B (zh) 2019-09-18 2019-09-18 一种基于区块链技术的多Agent交易信息保护方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910881815.8A CN110569675B (zh) 2019-09-18 2019-09-18 一种基于区块链技术的多Agent交易信息保护方法

Publications (2)

Publication Number Publication Date
CN110569675A true CN110569675A (zh) 2019-12-13
CN110569675B CN110569675B (zh) 2021-07-09

Family

ID=68780944

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910881815.8A Active CN110569675B (zh) 2019-09-18 2019-09-18 一种基于区块链技术的多Agent交易信息保护方法

Country Status (1)

Country Link
CN (1) CN110569675B (zh)

Cited By (39)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111049696A (zh) * 2020-03-16 2020-04-21 支付宝(杭州)信息技术有限公司 用于区块链系统的节点管理的方法、节点和计算设备
CN111327699A (zh) * 2020-02-26 2020-06-23 吉林大学 双领导者心跳加权溯源共识方法
CN111368002A (zh) * 2020-03-05 2020-07-03 广东小天才科技有限公司 一种数据处理方法、系统、计算机设备和存储介质
CN111371850A (zh) * 2020-02-22 2020-07-03 广州智慧城市发展研究院 一种基于多分区pbft的多通道区块链平台优化方法
CN111371877A (zh) * 2020-02-28 2020-07-03 桂林电子科技大学 一种异构联盟链的共识方法
CN111417946A (zh) * 2020-02-24 2020-07-14 支付宝(杭州)信息技术有限公司 基于区块链的共识处理
CN111461856A (zh) * 2020-02-27 2020-07-28 杭州云象网络技术有限公司 一种基于区块链的委外催收方法
CN111626735A (zh) * 2020-05-28 2020-09-04 上海逐鲨智能科技有限公司 一种数据交互系统、方法和模块
CN111682942A (zh) * 2020-05-18 2020-09-18 哈尔滨工业大学 一种应用于许可链的二元加权拜占庭容错共识方法
CN111737340A (zh) * 2020-03-11 2020-10-02 西安电子科技大学 一种基于属性加密的区块链上存储加密方法
CN111798234A (zh) * 2020-06-03 2020-10-20 中国科学院信息工程研究所 一种轻量级区块链系统及构造方法
CN111831907A (zh) * 2020-06-23 2020-10-27 珠海复旦创新研究院 基于区块链的搜索公平排序方法、装置及介质
CN111861489A (zh) * 2020-07-16 2020-10-30 中国工商银行股份有限公司 基于区块链的金融产品交易份额确定方法及装置
CN111917761A (zh) * 2020-07-28 2020-11-10 安徽高山科技有限公司 一种基于区块链云计算的数据安全保护方法
CN112019330A (zh) * 2020-08-04 2020-12-01 广东省科技基础条件平台中心 一种基于联盟链的内网安全审计数据的存储方法及系统
CN112150161A (zh) * 2020-09-30 2020-12-29 重庆市科学技术研究院 一种电子票券交易风险管控系统及方法
CN112260275A (zh) * 2020-10-19 2021-01-22 广州拾米科技有限公司 基于区块链技术的非侵入式负荷分解方法和系统
CN112395640A (zh) * 2020-11-16 2021-02-23 国网河北省电力有限公司信息通信分公司 一种基于区块链的行业物联数据轻量可信共享技术
CN112700333A (zh) * 2021-01-11 2021-04-23 东北大学 一种基于区块链的电子档案共识方法
CN112799742A (zh) * 2021-02-09 2021-05-14 上海海事大学 一种基于微服务的机器学习实训系统及方法
CN112884476A (zh) * 2021-01-29 2021-06-01 西南林业大学 基于区块链的ca跨域认证方法及系统
CN112995356A (zh) * 2021-04-19 2021-06-18 浙江工商大学 一种基于区块链的域名解析服务系统及方法
CN113094743A (zh) * 2021-03-18 2021-07-09 南京邮电大学 一种基于改进型拜占庭共识算法的电网数据存储方法
CN113158227A (zh) * 2021-03-08 2021-07-23 重庆邮电大学 一种基于Fabric的数据库访问日志上链方法及系统
CN113538138A (zh) * 2020-04-17 2021-10-22 中国移动通信集团有限公司 一种分组共识模型生成方法、装置和计算机设备
CN113821828A (zh) * 2021-11-22 2021-12-21 武汉龙津科技有限公司 一种数据隐私保护方法、装置、设备和存储介质
CN113965566A (zh) * 2021-10-11 2022-01-21 浪潮云信息技术股份公司 一种基于Header-Sig流的BFT共识算法实现方法及系统
CN113973064A (zh) * 2021-12-24 2022-01-25 南京金宁汇科技有限公司 一种基于区块链的稳定性测试方法及系统
CN114117545A (zh) * 2021-11-08 2022-03-01 重庆邮电大学 一种防篡改的电子证明系统及其实现方法
CN114117553A (zh) * 2022-01-28 2022-03-01 北京豪尔赛智慧城域科技有限公司 基于区块链的物联网终端的控制方法和系统
CN114329635A (zh) * 2022-03-04 2022-04-12 杭州字节方舟科技有限公司 基于多方安全计算的隐私签名方法和计算机系统
CN114448996A (zh) * 2022-03-08 2022-05-06 南京大学 基于计算存储分离框架下的冗余存储资源的共识方法和系统
CN114499890A (zh) * 2022-03-15 2022-05-13 南京信息工程大学 联盟链中基于节点分组的Raft PBFT两阶段共识机制
CN114596165A (zh) * 2022-02-24 2022-06-07 成都质数斯达克科技有限公司 一种用于理财产品登记、销售、管理的区块链系统和方法
CN114615002A (zh) * 2020-12-03 2022-06-10 中国移动通信集团设计院有限公司 运营商关键基础设施被控识别方法及系统
CN115102967A (zh) * 2022-06-15 2022-09-23 西安工业大学 一种高共识效率的共识方法和分布式系统
CN115686778A (zh) * 2022-10-11 2023-02-03 暨南大学 一种基于区块链的去中心化群体机器人系统框架
CN116192382A (zh) * 2023-03-01 2023-05-30 齐齐哈尔大学 一种基于区块链的dh密钥第三方篡改验证方法及系统
CN117220884A (zh) * 2023-09-05 2023-12-12 上海雷龙信息科技有限公司 一种数字签名交互验证方法、系统、设备和介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108615148A (zh) * 2018-03-26 2018-10-02 北交金科金融信息服务有限公司 一种基于区块链技术的担保资产前置交易方法及系统
CN108932338A (zh) * 2018-07-11 2018-12-04 北京百度网讯科技有限公司 数据更新方法、装置、设备和介质
US20190123895A1 (en) * 2017-10-23 2019-04-25 Cygnetise Limited Methods and apparatus for verifying a user transaction
CN110060096A (zh) * 2019-03-26 2019-07-26 阿里巴巴集团控股有限公司 一种基于区块链的核销奖励发放方法及装置
CN110245147A (zh) * 2019-06-19 2019-09-17 腾讯科技(深圳)有限公司 区块链数据处理方法、装置、可读存储介质和计算机设备

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20190123895A1 (en) * 2017-10-23 2019-04-25 Cygnetise Limited Methods and apparatus for verifying a user transaction
CN108615148A (zh) * 2018-03-26 2018-10-02 北交金科金融信息服务有限公司 一种基于区块链技术的担保资产前置交易方法及系统
CN108932338A (zh) * 2018-07-11 2018-12-04 北京百度网讯科技有限公司 数据更新方法、装置、设备和介质
CN110060096A (zh) * 2019-03-26 2019-07-26 阿里巴巴集团控股有限公司 一种基于区块链的核销奖励发放方法及装置
CN110245147A (zh) * 2019-06-19 2019-09-17 腾讯科技(深圳)有限公司 区块链数据处理方法、装置、可读存储介质和计算机设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ANSHU SHUKLA等: "Smart Contracts for Multiagent Plan Execution in Untrusted Cyber-physical Systems", 《2018 IEEE 25TH INTERNATIONAL CONFERENCE ON HIGH PERFORMANCE COMPUTING WORKSHOPS》 *
杨晓宇: "基于区块链的分布式能源调度与多元用户交易方法研究", 《中国优秀硕士学位论文全文数据库 工程科技Ⅱ辑》 *

Cited By (60)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111371850B (zh) * 2020-02-22 2022-11-29 广州智慧城市发展研究院 一种基于多分区pbft的多通道区块链平台优化方法
CN111371850A (zh) * 2020-02-22 2020-07-03 广州智慧城市发展研究院 一种基于多分区pbft的多通道区块链平台优化方法
CN111417946B (zh) * 2020-02-24 2023-08-04 支付宝(杭州)信息技术有限公司 基于区块链的共识处理
CN111417946A (zh) * 2020-02-24 2020-07-14 支付宝(杭州)信息技术有限公司 基于区块链的共识处理
CN111327699A (zh) * 2020-02-26 2020-06-23 吉林大学 双领导者心跳加权溯源共识方法
CN111327699B (zh) * 2020-02-26 2021-07-09 吉林大学 双领导者心跳加权溯源共识方法
CN111461856A (zh) * 2020-02-27 2020-07-28 杭州云象网络技术有限公司 一种基于区块链的委外催收方法
CN111371877A (zh) * 2020-02-28 2020-07-03 桂林电子科技大学 一种异构联盟链的共识方法
CN111368002A (zh) * 2020-03-05 2020-07-03 广东小天才科技有限公司 一种数据处理方法、系统、计算机设备和存储介质
CN111737340A (zh) * 2020-03-11 2020-10-02 西安电子科技大学 一种基于属性加密的区块链上存储加密方法
CN111737340B (zh) * 2020-03-11 2024-04-02 西安电子科技大学 一种基于属性加密的区块链上存储加密方法
CN111049696A (zh) * 2020-03-16 2020-04-21 支付宝(杭州)信息技术有限公司 用于区块链系统的节点管理的方法、节点和计算设备
CN113538138A (zh) * 2020-04-17 2021-10-22 中国移动通信集团有限公司 一种分组共识模型生成方法、装置和计算机设备
CN111682942A (zh) * 2020-05-18 2020-09-18 哈尔滨工业大学 一种应用于许可链的二元加权拜占庭容错共识方法
CN111626735A (zh) * 2020-05-28 2020-09-04 上海逐鲨智能科技有限公司 一种数据交互系统、方法和模块
CN111798234A (zh) * 2020-06-03 2020-10-20 中国科学院信息工程研究所 一种轻量级区块链系统及构造方法
CN111831907A (zh) * 2020-06-23 2020-10-27 珠海复旦创新研究院 基于区块链的搜索公平排序方法、装置及介质
CN111861489A (zh) * 2020-07-16 2020-10-30 中国工商银行股份有限公司 基于区块链的金融产品交易份额确定方法及装置
CN111861489B (zh) * 2020-07-16 2024-06-25 中国工商银行股份有限公司 基于区块链的金融产品交易份额确定方法及装置
CN111917761B (zh) * 2020-07-28 2022-09-13 安徽高山科技有限公司 一种基于区块链云计算的数据安全保护方法
CN111917761A (zh) * 2020-07-28 2020-11-10 安徽高山科技有限公司 一种基于区块链云计算的数据安全保护方法
CN112019330B (zh) * 2020-08-04 2024-03-29 广东省科技基础条件平台中心 一种基于联盟链的内网安全审计数据的存储方法及系统
CN112019330A (zh) * 2020-08-04 2020-12-01 广东省科技基础条件平台中心 一种基于联盟链的内网安全审计数据的存储方法及系统
CN112150161B (zh) * 2020-09-30 2023-08-08 重庆市科学技术研究院 一种电子票券交易风险管控系统及方法
CN112150161A (zh) * 2020-09-30 2020-12-29 重庆市科学技术研究院 一种电子票券交易风险管控系统及方法
CN112260275B (zh) * 2020-10-19 2023-08-18 文志芬 基于区块链技术的非侵入式负荷分解方法和系统
CN112260275A (zh) * 2020-10-19 2021-01-22 广州拾米科技有限公司 基于区块链技术的非侵入式负荷分解方法和系统
CN112395640A (zh) * 2020-11-16 2021-02-23 国网河北省电力有限公司信息通信分公司 一种基于区块链的行业物联数据轻量可信共享技术
CN114615002A (zh) * 2020-12-03 2022-06-10 中国移动通信集团设计院有限公司 运营商关键基础设施被控识别方法及系统
CN114615002B (zh) * 2020-12-03 2024-02-27 中国移动通信集团设计院有限公司 运营商关键基础设施被控识别方法及系统
CN112700333B (zh) * 2021-01-11 2023-10-03 东北大学 一种基于区块链的电子档案共识方法
CN112700333A (zh) * 2021-01-11 2021-04-23 东北大学 一种基于区块链的电子档案共识方法
CN112884476A (zh) * 2021-01-29 2021-06-01 西南林业大学 基于区块链的ca跨域认证方法及系统
CN112799742B (zh) * 2021-02-09 2024-02-13 上海海事大学 一种基于微服务的机器学习实训系统及方法
CN112799742A (zh) * 2021-02-09 2021-05-14 上海海事大学 一种基于微服务的机器学习实训系统及方法
CN113158227A (zh) * 2021-03-08 2021-07-23 重庆邮电大学 一种基于Fabric的数据库访问日志上链方法及系统
CN113158227B (zh) * 2021-03-08 2022-10-11 重庆邮电大学 一种基于Fabric的数据库访问日志上链方法及系统
CN113094743A (zh) * 2021-03-18 2021-07-09 南京邮电大学 一种基于改进型拜占庭共识算法的电网数据存储方法
CN113094743B (zh) * 2021-03-18 2022-11-29 南京邮电大学 一种基于改进型拜占庭共识算法的电网数据存储方法
CN112995356B (zh) * 2021-04-19 2022-05-06 浙江工商大学 一种基于区块链的域名解析服务系统及方法
CN112995356A (zh) * 2021-04-19 2021-06-18 浙江工商大学 一种基于区块链的域名解析服务系统及方法
CN113965566B (zh) * 2021-10-11 2024-05-14 浪潮云信息技术股份公司 一种基于Header-Sig流的BFT共识算法实现方法及系统
CN113965566A (zh) * 2021-10-11 2022-01-21 浪潮云信息技术股份公司 一种基于Header-Sig流的BFT共识算法实现方法及系统
CN114117545A (zh) * 2021-11-08 2022-03-01 重庆邮电大学 一种防篡改的电子证明系统及其实现方法
CN113821828B (zh) * 2021-11-22 2022-02-08 武汉龙津科技有限公司 一种数据隐私保护方法、装置、设备和存储介质
CN113821828A (zh) * 2021-11-22 2021-12-21 武汉龙津科技有限公司 一种数据隐私保护方法、装置、设备和存储介质
CN113973064A (zh) * 2021-12-24 2022-01-25 南京金宁汇科技有限公司 一种基于区块链的稳定性测试方法及系统
CN114117553A (zh) * 2022-01-28 2022-03-01 北京豪尔赛智慧城域科技有限公司 基于区块链的物联网终端的控制方法和系统
CN114596165A (zh) * 2022-02-24 2022-06-07 成都质数斯达克科技有限公司 一种用于理财产品登记、销售、管理的区块链系统和方法
CN114329635B (zh) * 2022-03-04 2022-06-21 杭州字节方舟科技有限公司 基于多方安全计算的隐私签名方法和计算机系统
CN114329635A (zh) * 2022-03-04 2022-04-12 杭州字节方舟科技有限公司 基于多方安全计算的隐私签名方法和计算机系统
CN114448996A (zh) * 2022-03-08 2022-05-06 南京大学 基于计算存储分离框架下的冗余存储资源的共识方法和系统
CN114448996B (zh) * 2022-03-08 2022-11-11 南京大学 基于计算存储分离框架下的冗余存储资源的共识方法和系统
CN114499890A (zh) * 2022-03-15 2022-05-13 南京信息工程大学 联盟链中基于节点分组的Raft PBFT两阶段共识机制
CN114499890B (zh) * 2022-03-15 2023-09-15 南京信息工程大学 联盟链中基于节点分组的Raft PBFT两阶段共识方法
CN115102967A (zh) * 2022-06-15 2022-09-23 西安工业大学 一种高共识效率的共识方法和分布式系统
CN115686778A (zh) * 2022-10-11 2023-02-03 暨南大学 一种基于区块链的去中心化群体机器人系统框架
CN116192382B (zh) * 2023-03-01 2023-09-15 齐齐哈尔大学 一种基于区块链的dh密钥第三方篡改验证方法及系统
CN116192382A (zh) * 2023-03-01 2023-05-30 齐齐哈尔大学 一种基于区块链的dh密钥第三方篡改验证方法及系统
CN117220884A (zh) * 2023-09-05 2023-12-12 上海雷龙信息科技有限公司 一种数字签名交互验证方法、系统、设备和介质

Also Published As

Publication number Publication date
CN110569675B (zh) 2021-07-09

Similar Documents

Publication Publication Date Title
CN110569675B (zh) 一种基于区块链技术的多Agent交易信息保护方法
US11025435B2 (en) System and method for blockchain-based cross-entity authentication
US11842317B2 (en) Blockchain-based authentication and authorization
US11533164B2 (en) System and method for blockchain-based cross-entity authentication
EP3788523B1 (en) System and method for blockchain-based cross-entity authentication
WO2022042301A1 (zh) 一种数据处理方法、装置、智能设备及存储介质
US11360963B2 (en) Tracking and verification of physical assets
CN111242617B (zh) 用于执行交易正确性验证的方法及装置
US11422981B2 (en) Information management and access control in a database
US20210091960A1 (en) Tracking and verification of physical assets
WO2021000419A1 (en) System and method for blockchain-based cross-entity authentication
US20200021446A1 (en) Secure de-centralized domain name system
JP2021512569A (ja) ブロックチェーンのデータ処理方法、管理側、クライアント側、変換装置及び媒体
US20150006895A1 (en) Distributed network system
CN114329529A (zh) 一种基于区块链的资产数据管理方法及系统
CN113065961A (zh) 一种电力区块链数据管理系统
CN111461622B (zh) 基于区块链的仓库信用评级、结果获取、验证方法及装置
JP6911231B1 (ja) デジタル資産データパケットの信頼性検証システム
JP2023098847A (ja) 装置、方法、コンピュータプログラム(プライバシー保護ブロックチェーンの選択的監査プロセス)
JP2023551458A (ja) Oprfを介したブロックチェーンネットワークにおける鍵再生
CN113302612B (zh) 一种用于跨链和跨网络数据传输的计算机实现方法、系统及装置
CN110852887B (zh) 获取去中心化应用集群中的交易处理状态的方法及装置
Bhargav-Spantzel et al. Receipt management-transaction history based trust establishment
CN114239044B (zh) 一种去中心化的可追溯共享访问系统
CN116418546A (zh) 一种基于区块链的数据处理方法以及相关装置

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