CN113411338B - 一种基于状态通道的链上-链下协同的资源交易方法 - Google Patents
一种基于状态通道的链上-链下协同的资源交易方法 Download PDFInfo
- Publication number
- CN113411338B CN113411338B CN202110688709.5A CN202110688709A CN113411338B CN 113411338 B CN113411338 B CN 113411338B CN 202110688709 A CN202110688709 A CN 202110688709A CN 113411338 B CN113411338 B CN 113411338B
- Authority
- CN
- China
- Prior art keywords
- resource
- data
- equipment
- transaction
- channel
- 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.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/083—Network architectures or network communication protocols for network security for authentication of entities using passwords
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Strategic Management (AREA)
- Technology Law (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
本发明涉及一种基于状态通道的链上‑链下协同的资源交易方法,用于解决基于区块链的资源交易方法存在系统效率低,交易完成时间长,缺乏争议解决机制的问题。本发明中的资源交易双方在链上开启状态通道后,可以在链下进行多次的资源交易活动,只有当开启、关闭通道或发生争议事件时才需要与区块链系统通信,这种方式可以减少区块链系统需要处理的交易数量与交易双方与区块链系统的通信次数,从而减轻区块链系统的吞吐压力和资源交易流程所需的完成时间。此外,在本方法中还引入了争议处理方法,当资源交易双方不按照系统规定流程进行时,资源交易双方都可以通过创建争议来强制对方遵守资源交易协议,从而保证资源交易的安全与公平。
Description
技术领域
本发明属于网络技术领域,特别涉及一种基于状态通道的链上-链下协同的资源交易方法。
背景技术
近年来,随着5G等新一代信息技术与产业的深度融合与发展,智慧城市、无人驾驶、AR/VR(augmented reality/virtual reality)和人脸识别等新兴应用不断出现。这些应用需要庞大的计算资源来对数据进行实时处理,且往往对时延有着十分苛刻的要求。然而,由于智能移动终端自身的电池、计算、网络或存储资源不能满足新型智能应用的资源需求,导致很多终端设备不能独立完成新兴应用中计算任务。为决终端设备资源不足的挑战,雾计算、移动边缘计算等计算模式相继提出。这些不同的计算模式通过计算卸载将应用程序的部分计算任务卸载到边缘资源丰富设备,减少了计算完成时间,提高了移动终端的续航能力。然而,在资源交易过程中,资源交易双方有可能出现拒绝服务的恶意行为,造成资源交易流程中断和双方的资金损失。针对资源交易流程的安全问题,一些解决方案开始将区块链技术与资源交易流程相结合来确保交易的安全性。区块链是一种多方共同维护,使用密码学保证传输和访问安全,能够实现数据一致存储、难以篡改、防止抵赖的记账技术,具有去中心化化、不可篡改、透明、安全等特性。现有基于区块链的资源交易流程的大体思路为通过区块链技术记录资源交易过程中各个设备的资源交易动作,通过检查区块链中的双方的交易记录,就可以确定资源交易中恶意行为的产生者。区块链在其中的作用是确保资源交易数据记录的安全性并为资源交易双方提供分布式的数据记录服务。
目前,已有一些方法通过区块链技术来保证资源交易过程中的安全与公平。与本发明相近的基于区块链的资源交易方法主要流程分为以下几步:(1)资源提供设备向区块链系统发布资源信息;(2)用户向区块链系统提交资源查询请求,根据用户的查询请求,系统将可用资源的资源信息展示给用户,所述资源信息包括资源标识、资源能力、资源可用时间、资源费用;(3)用户依据所述资源信息选择的目标可用资源,并将订单信息发送到区块链系统,订单信息包括预付款、资源类型、原始数据信息、资源提供设备信息;(4)订单创建成功后,用户将原始数据发送到资源提供设备;(5)资源提供设备接收到原始数据后,向区块链系统发送订单查询信息,如果接收到的原始数据等信息与区块链系统中的订单信息一致,则可以为用户提供资源,否则拒绝为用户提供服务;(6)验证数据后,资源提供设备向用户发送数据的处理结果,在发送结果前需要向区块链系统发送结果信息;(7)用户接收到数据处理结果,通过区块链系统验证数据结果的一致性;(8)如果数据验证通过,用户则向区块链发送订单完成的确认信息,区块链系统接收到信息将预付款转移到资源提供设备账户地址下,转移成功后双方交易完成。
上述已有基于区块链的资源交易方法在以下几方面还存在不足:
(1)在系统效率上,由于边缘设备的数量较多且资源交易发生较为频繁,因此边缘设备产生的实时资源交易数据的数量是巨大的。现有方案在一次资源交易流程中会产生多个需要区块链记录的交易数据,对区块链系统在成较大的吞吐压力。
(2)在交易完成时间上,现有方案在交易流程中需要多次通过区块链以确认信息的一致性,这使得交易流程的完成时间需要受到区块链服务时延的影响,使得现有方案的交易完成时间会大大增加。
(3)在交易流程设计上,现有方案缺乏争议的解决机制,例如当发生接收数据与区块链中的数据不一致或用户不提交确认信息等争议事件时,现有方案没有给出具体的解决方法。
发明内容
针对现有方案中的问题,本发明提出一种基于状态通道的链上-链下协同的资源交易方法。在该方法中,资源交易双方在链上开启状态通道后可以在链下进行多次的资源交易活动,只有当开启、关闭通道或发生争议事件时才需要与区块链系统通信,这种方式可以减少区块链系统需要处理的交易数量与交易双方与区块链系统的通信次数,从而减轻区块链系统的吞吐压力和资源交易流程所需的完成时间。此外,在本方法中还引入了争议处理方法,当资源交易双方不按照系统规定流程进行时,资源交易双方都可以通过创建争议来强制对方遵守资源交易协议,从而保证资源交易的安全与公平。
具体技术方案如下:
一种基于状态通道的链上-链下协同的资源交易方法,基于由资源需求设备、资源提供设备、数据传输通道、以及区块链节点构成的系统模型,其中,资源需求设备为当前时刻需要进行资源的请求的设备,资源提供设备为当前时刻存在空闲资源的设备,数据传输通道为设备之间进行数据传输的通道,区块链节点负责处理并记录终端设备的请求,通过部署的智能合约为设备层设备提供包括注册、认证、资源发布与查询和状态通道的分布式服务;区块链节点记录设备信息和状态通道信息,设备信息用于标识设备、描述设备资源,状态通道信息是交易双方进行资源交易时通过智能合约开启、关闭通道或处理争议事件时的数据,状态通道保证资源交易双方进行资源共享时以协同的方式发生在链下,同时又有与上链交易相同的安全属性;资源交易参与方将锁定部分资金开启状态通道,交易状态在链下交互的过程中会不断发生更新,等到将来的某个时间点,就最终状态达成共识之后,该最终状态会被提交到链上,将链上的资金释放回交易双方;若在资源交易过程中出现争议行为,资源交易双方也可以将数据发送到区块链节点,通过状态通道解决争议事件;
资源交易具体包括以下步骤:
设备注册与初始化:在这个阶段所有设备在本地执行系列操作初始化系统参数并发送数据到区块链节点来完成设备注册;
设备信息查询与更新:资源需求设备向区块链节点查询所需的设备信息,资源提供设备根据现实情况更新设备信息;
开启状态通道:资源需求设备根据实际条件选择合适的资源提供设备,资源交易双方通过数据通道交换信息,并调用相应的智能合约开启状态通道;开启状态通道基于ChannelData数据结构,具体包括ChannelId表示状态通道的唯一标识、timestamp表示时间戳、challengeDuration表示争议事件挑战期,或者扣款挑战期、penalty表示超时惩罚金额、channelNonce表示资源交易编号、serviceType表示资源服务类型、transactionStatue表示资源交易状态、actionData表示Action数据、capitalExport表示当前通道资金的剩余情况、particiants表示参与者信息,进一步的,particiants包括walletAddress表示钱包地址、identification表示钱包地址身份证明、publicKey表示临时公钥地址、outAddress表示通道关闭时接收资金的地址、amount表示锁定资金数量;
资源交易双方开启状态通道的流程具体如下:
(1)资源需求设备首先构造资源交易请求数据,数据中包含ChannelData中除ChannelId和对方particiantslData外的信息初始值,之后将数据以约定的通信方式发送到资源提供设备;
(2)资源提供设备一直处于接收资源请求状态,当资源需求设备发送请求数据时,资源提供设备判断当前时刻是否有足够的资金和资源,若满足条件则将资源提供设备的身份信息particiantslDataB和对全部消息的签名signaturesB发送到资源需求设备,若不满足条件则返回拒绝信息;
(3)资源需求设备收到信息后判断消息类型,如果资源提供设备返回信息为拒绝类型则请求其它设备,如果为同意类型则签署资源需求设备的签名signaturesA,然后将数据和双方签名发送到openChannel()函数;
openChannel()函数收到数据之后需要对数据进行验证,需要验证的数据有:(1)钱包地址身份证明是否正确;(2)钱包地址中的资金是否大于amount;(3)消息是否经有双方的正确签名;上述数据验证通过后,智能合约会暂时锁定双方地址中的资金,然后生成ChannelId与timeStamp并将数据写入区块链中;数据写入后双方就成功开通状态通道,可以查看相应的通道状态并在链下进行资源交易;
链下资源交易:资源交易双方在链下进行资源交易,资源需求设备将计算任务卸载到资源提供设备,双方可以进行多次资源交易;一次资源交易包括6种资源交易状态,各个状态的具体意义如下:(1)资源请求:资源请求状态为设备产生计算任务时向已经创建支付通道的设备发送资源请求,每次资源交易前必须先进行资源请求;(2)判断:资源提供设备判断当前设备资源状态是否满足资源请求设备的资源需求,如果满足则进入任务发送,否则等待下一次资源请求;(3)任务发送:任务发送为资源需求设备将任务数据发送到资源提供设备,例如图片、语音和数字等;(4)任务接收:资源提供设备接收任务数据;(5)结果发送:资源提供设备发送计算结果;(6)结果接收:资源需求设备接收计算结果;
资源交易双方在链下点对点的通信完成资源交易,资源交易过程中的数据称为设备的动作action,action包括channelID用于标识不同的通道,participantAddress表示交易双方账户地址,cost表示此次交易费用,actionNonce表示动作编号,按照第几轮交易的第几次交易标识,actiontimeStamp表示时间戳,capitalExport表示当前通道资金的剩余情况,actionData表示其它交易数据,lastSignature表示对于上一个收到的数据签名,signature表示用临时publicKey对除了lastSignature外的数据的签名;
关闭状态通道:资源交易双方进行合作正常地关闭通道,但当发生异常时,在争议事件解决过程中关闭通道。
进一步的,
设备注册与初始化,其中,资源需求设备的设备注册与初始化流程如下:(1)资源需求设备首先根据系统使用的加密算法产生公钥Plk和私钥Prk,并通过计算公钥的SHA-256哈希值作为资源需求设备的钱包地址Walk;(2)将公钥与钱包地址发送到区块链节点完成资源需求设备的注册;(3)区块链系统向资源需求设备返回注册结果;(4)资源需求设备向运营商购买代币以进行资源交易;(5)运营商向资源需求设备的钱包地址转入资源需求设备购买的代币;
资源提供设备的设备注册与初始化流程,其前三个步骤与资源需求设备一致,当区块链返回结果后,资源提供设备在本地部署相应的计算服务,然后将设备本地的配置信息、资源定价、地理位置和通信地址信息发送到区块链节点供其它设备查询,其中配置信息包括CPU、内存、带宽。
设备信息查询与更新流程具体包括:当完成注册的资源需求设备产生计算任务时,向区块链节点发送查询信息,查询信息可以对CPU、内存、带宽、资源定价和地理位置设置相应的条件,区块链系统根据设备条件返回可选择设备列表;与此同时,当资源提供设备发生位置、资源服务等信息的变化时,资源提供设备需要向区块链节点更新自己的设备信息。
链下资源交易流程与数据设置具体如下:
(1)在资源请求阶段,资源需求设备A将action数据正确赋值发送到资源提供设备B,其中channelID为之前区块链系统分配的通道ID,participantAddress为双方的账户地址,cost设置为此次的交易费用,capitalExport设置为正确的资金分配,actionData和lastSignature设置为空值Null,最后对上述数据签名signatureAN.1,接下来的固定信息部分channelID、participantAddress和cost双方可以选择是否传输;
(2)在判断阶段,设备B首先判断自身资源情况,若可以提供资源在,则继续判断数据与签名的是否正确,然后返回相关数据;在返回的数据中,lastSignature设置为对于上一个action数据的签名signatureBN.1,actionData字段设置为是否提供资源isCalculated;最后对上述数据进行签名signatureBN.2;设备A收到数据后首先验证signatureBN.1与signatureBN.2是否正确,然后判断isCalculated是否为True,如果为True则进入任务发送阶段,否则请求其它设备;
(3)在任务发送阶段,设备A发送任务数据,actionNonce设置为N.3,lastSignature设置为对于上一个action数据的签名signatureAN.2,actionData设置为任务数据Hash,最后对上述数据签名signatureAN.3;在发送时,设备A将上述数据和计算任务数据发送到设备B;
(4)在任务接收阶段,A与B要进行2次数据传输,第一次设备B验证任务数据和action数据是否正确,如果正确,则返回数据确认action,其中actionNonce设置为N.4,lastSignature设置为对于上一个action数据的签名signatureBN.3,最后对上述数据签名signatureB2.4;设备A接收到消息需要返回确认消息,actionNonce设置为N.5,lastSignature设置为对于上一个action数据的签名signatureAN.4,最后对上述数据签名signatureAN.5;
(5)在结果发送阶段,设备B首先需要计算任务结果,计算完成后,设置相应的action数据,其中actionNonce设置为N.6,lastSignature设置signatureBN.5,actionData设置为结果数据Hash,最后对上述数据签名signatureBN.6;接下来将上述数据和计算结果的数据发送到设备A;
(6)在结果接收阶段,设备A验证任务数据和action数据是否正确;如果正确,则需要返回数据确认action,其中actionNonce设置为N.7,lastSignature设置为对于上一个action数据的签名signatureAN.6,最后对上述数据签名signatureAN.7;设备B接收到消息需要返回确认消息,actionNonce设置为N.8,lastSignature设置为对于上一个action数据的签名signatureBN.7,最后对上述数据签名signatureBN.8;
经过上述6个状态转换8次信息传输,设备之间就完成了这一次的资源交易。
设置争议事件处理环节,若交易过程中出现异常的行为,资源交易双方将资源交易过程中的数据发送到区块链节点进行争议事件解决;若争议解决则双方可以继续进行资源交易;若争议解决失败,则关闭状态通道取回资金。
争议创建:当双方没有按照正确流程进行资源交易,通过智能合约StateChannel中的creatDispute()函数来创建争议事件推进资源交易流程,creatDispute()函数接收的数据为最后一次双方已经签名的action数据和自己签名将要发送的action信息。
争议解决:争议解决设备通过智能合约StateChannel中的disputeWithAction()函数来解决争议,设备发送应发送的签名action数据到disputeWithAction()函数,disputeWithAction()首先判断数据是否正确,然后判断该解决时间是否超过扣款挑战期,如果超过扣款挑战期对于资源需求设备则需要多支付penalty大小的代币金额,对于资源提供设备则需要扣除penalty大小的金额,根据时间更新openChannelData中capitalExport设置为正确的金额,transactionStatue设置为1或True代表交易变为正常状态,actionData设置为新接收的action数据和双方的签名,channelNonce设置为最新接收的action数据的actionNonce。
争议反驳:争议的反驳机制针对设备用过期的action来创建争议企图获取收益的恶意行为而设计;针对过期的action数据,通过智能合约StateChannel中的refuteDispute()函数来反驳争议;设备只需要将对方发送的已经签名的action来证明过期的action,其中新newAction.actionNonce-oldAction.actionNonce>=0.2;refuteDispute()函数判断数据正确性后会扣除作恶一方的全部资金作为惩罚并关闭通道。
争议超时:如果争议事件在挑战期内未处理,则争议为超时,即系统时间戳-timestamp>challengeDuration;此时双方可以按照状态通道中的资源分配取走自己的资金;交易双方提供particiants中的提款地址与身份证明到智能合约StateChannel中的withdrawCash()函数,withdrawCash()函数验证后将资金分配到相应的钱包地址;
临时状态:用于防止恶意方发送过期数据创建争议。设备在离线前发送双方签名的action到temporaryStatus()函数,temporaryStatus()收到数据后判断状态通道是开启且当前不存在争议和action中数据是否正确且签名完整,如果符合上述条件则修改更新ChannelData数据,timeStamp设置为争议创建事件,transactionStatue还是正常状态,channelNonce设置为action数据的actionNonce,capitalExport设置action中的临时资金分配。
关闭状态通道:状态通道的关闭分为两种,分别为单方关闭和合作关闭,通过StateChannel中的closeChannel()函数来实施;
所述的单方关闭指交易中的一方发起的单方面终止合作,具体包括:终止合作的一方将带有双方签名的action数据发送到closeChannel()函数,closeChannel()则更新ChannelData的数据timeStamp设置为关闭时间戳,channelNonce为action的actionNonce,transactionStatue设置为单方关闭的代表数字,capitalExport设置为action中的资金分配,actionData设置为双方签署的action数据;终止方在等待一个挑战期后提出资金。
所述的合作关闭,合作关闭双方可以直接领取资金不必等待挑战期,双方直接构造数据格式并交换双方签名,最后将数据发送到closeChannel()函数,这种方式下双方均可立即提取资金,所述的数据格式包括channelID表示通道的ID,用来标识不同的通道,participantAddress表示交易双方账户地址,capitalExport表示交易双方账户地址,Signature表示用临时publicKey对除了lastSignature外的数据的签名。
有益效果
(1)本发明基于状态通道技术设计了一种链上-链下协同的资源交易方法,适用于不同计算模式、不同设备之间的计算、缓存等不同类型的资源交易。
(2)本发明设计了基于状态通道的资源交易的总体流程,该流程对设备进行资源交易的主要步骤进行了描述。
(3)本发明设计了适用于资源交易的状态通道开启方法与数据格式,其中除了对账户、资金信息进行双方协商,还包括了资源交易类型、争议处理的相关参数。
(4)本发明设计了链下资源交易的流程与数据格式,交易双方通过签名信息确保消息的准确性和不可抵赖性,并且链下交易的传输数据还作为争议创建、处理时的重要证据。
(5)针对资源交易过程中的恶意行为,本发明设计争议事件的处理方法,交易双方可以通过储存的交易信息来创建、解决和反驳争议,从而确保交易过程的资金安全并推动对方合作。
(6)针对状态通道中使用过期数据创建争议和关闭通道的行为,除了已有第三方解决方案,本发明还提出一种创建临时状态的链上解决方法,该方法通过记录最新的交易状态使对方无法使用过期数据创建争议。
(7)本发明提高了系统效率。
附图说明
图1系统模型
图2总体流程图
图3设备注册与初始化时序图
图4设备信息查询与更新示意图
图5通道建立流程图
图6总体状态转换图
图7不同设备状态转换图
图8设备处理流程
图9争议转换模型
图10临时状态与第三方监管示意图
具体实施方式
1.系统模型
基于区块链与状态通道的计算资源交易系统模型如图1所示,系统的角色和功能的具体说明如下:
资源需求设备:资源需求设备为当前时刻需要进行资源的请求的设备。资源需求设备通常为资源有限的物联网的设备,如工业物联网传感器、智慧车辆和虚拟现实设备等。请求的资源类型可以为计算、缓存或网络资源,本发明中以计算资源的交易流程为例进行描述,适当进行修改也适用于其它类型的资源交易。
资源提供设备:资源提供设备为当前时刻存在空闲资源的设备,它们可以部署相应的资源提供服务服务(人脸识别、数据分析和语音识别等)进行资源交易来获得收益。不同运营商、企业或个人的空闲设备都可以成为资源提供设备来进行资源的交易。
数据传输通道:数据传输通道为设备之间进行数据传输的通道。本发明中并不限制数据传输通道的实现方法,设备之间可以通过不同的通信协议构建数据传输通道,例如HTTP、Websocket、专门的TCP/IP协议、甚至使用邮箱。
区块链节点:区块链节点负责处理并记录终端设备的请求,通过部署的智能合约为设备层设备提供注册、认证、资源发布与查询和状态通道等分布式服务。根据不同场景的需求可以采用不同类型的区块链平台。目前,使用公有链以太坊Ethereum或者联盟链Hyperledger Fabric作为区块链平台较为合适,部署商也可以选择其它区块链平台,但是这些区块链平台必须支持智能合约(智能合约是代码自动执行的代码,无需集中协调,区块链节点无法私自更改合)。区块链节点主要需要记录设备信息和状态通道信息。设备信息用于标识设备、描述设备资源。状态通道信息是交易双方进行资源交易时通过智能合约开启、关闭通道或处理争议事件时的数据。状态通道可以保证资源交易双方进行资源共享时以协同的方式发生在链下,同时又有与上链交易相同的安全属性。资源交易参与方将锁定部分资金开启状态通道,交易状态在链下交互的过程中会不断发生更新,等到将来的某个时间点,就最终状态达成共识之后,该最终状态会被提交到链上,将链上的资金释放回交易双方。若在资源交易过程中出现争议行为,资源交易双方也可以将数据发送到区块链节点,通过状态通道解决争议事件。
2.总体流程
资源交易的总体流程如图2所示,大体来说可以分为6个主要的步骤,分别为:(1)设备注册与初始化:在这个阶段所有设备需在本地执行系列操作来初始化一些系统参数并将一些数据发送到区块链节点来完成设备注册。(2)设备信息查询与更新:资源需求设备可以向区块链节点查询所需的设备信息,资源提供设备可以根据现实情况更新设备信息。(3)开启状态通道:资源需求设备根据实际条件选择合适的资源提供设备,资源交易双方通过数据通道交换信息,并调用相应的智能合约开启状态通道。(4)链下资源交易:资源交易双方在链下进行资源交易,资源需求设备将计算任务卸载到资源提供设备,双方可以进行多次资源交易。(5)争议事件处理:若交易过程中出现异常的行为,如拒绝提供服务、离线等,资源交易双方可以将资源交易过程中的数据发送到区块链节点进行争议事件解决。若争议解决则双方可以继续进行资源交易;若争议解决失败,则关闭状态通道取回资金。(6)关闭状态通道:资源交易双方可以合作正常的关闭通道,但当发生异常时,也可能在争议事件解决过程中关闭通道。
各阶段具体流程,数据格式与智能合约设计在以下部分详细介绍。
3.设备注册与初始化
资源需求设备和资源提供设备需要在资源交易之前需要在本地完成初始作,并将部分数据发送到区块链节点完成注册。资源需求设备和资源提供设备与区块链节点的注册时序图如图3所示。资源需求设备的流程如下:(1)设备首先根据系统使用的加密算法产生公钥(Plk)和私钥(Prk),并通过计算公钥的SHA-256哈希值作为设备的钱包地址(Walk)。(2)将公钥与钱包地址发送到区块链节点完成设备的注册。(3)区块链系统向设备返回注册结果(4)资源需求设备向运营商购买代币以进行资源交易。(5)运营商向设备的钱包地址转入资源需求设备购买的代币。对于资源提供设备,其前三个步骤与资源需求设备一致。当区块链返回结果后,资源提供设备需要在本地部署相应的计算服务,然后将将设备本地的配置信息(CPU、内存、带宽)、资源定价、地理位置和通信地址信息发送到区块链节点供其它设备查询。
4.设备信息查询与更新
设备信息查询与更新流程示如图4所示。当完成注册的资源需求设备产生计算任务时,向区块链节点发送查询信息,查询信息可以对CPU、内存、带宽、资源定价和地理位置设置相应的条件,区块链系统根据设备条件返回可选择设备列表。与此同时,当资源提供设备发生位置、资源服务等信息的变化时,设备需要向区块链节点更新自己的设备信息。
5.开启状态通道
资源需求设备从资源提供设备列表中选择合适的资源提供设备,然后根据设备信息中的通信地址向资源提供设备发送资源请求,若资源提供设备决定提供资源,则双方可以将有双方签名的数据发送到StateChannel智能合约中的openChannel()函数来开启状态通道。开启状态通道需要完成两个动作:
·锁定资源交易双方账户中的部分资金
·协商状态通道中的部分参数
openChannel()函数接收设备发送的数据生成ChannelData写入区块链中,ChannelData的主要字段如表1所示。状态通道建立成功后,资源交易双方都可以通过viewChannel()函数来查看当前通道的最新状态。
以资源需求设备A和资源提供设备B为例,资源交易双方开启状态通道的流程如图5所示。具体步骤如下:
(1)资源需求设备首先构造资源交易请求数据,数据中包含ChannelData中除ChannelId和对方particiantslData外的信息初始值,之后将数据以约定的通信方式发送到设备B。
(2)设备B一直处于接收资源请求状态,当接收设备A发送的数据时,判断是否有足够的资金和资源,若满足条件则将身份信息particiantslDataB和对全部消息的签名signaturesB发送到A,若不满足条件则返回拒绝信息。
(3)设备A收到信息后判断消息类型,如果设备B返回信息为拒绝类型则请求其它设备,如果为同意类型则签署自己的签名signaturesA,然后将数据和双方签名发送到openChannel()函数。
openChannel()函数收到数据之后需要对数据进行验证,需要验证的数据有:(1)钱包地址身份证明是否正确;(2)钱包地址中的资金是否大于amount;(3)消息是否经有双方的正确签名。上述数据验证通过后,智能合约会暂时锁定双方地址中的资金,然后生成ChannelId与timeStamp并将相关数据写入区块链中。数据写入后双方就成功开通状态通道,可以查看相应的通道状态并在链下进行资源交易。
表1 ChannelData主要数据字段
表2 particiants主要数据字段
6.链下资源交易
6.1资源交易状态
状态通道开通后,资源交易双方可以在链下进行多轮的资源交易,对于每一轮中,我们定义如图6所示的6种资源交易状态,其中资源需求与资源提供设备的状态如图7种A和B所示。各个状态的具体意义如下:(1)资源请求:资源请求状态为设备产生计算任务时向已经创建支付通道的设备发送资源请求,由于计算任务产生的时间并不连续,资源提供设备也并不是只为一个设备提供资源,所以进行每次资源交易前必须先进行资源请求;(2)判断:资源提供设备判断当前设备资源状态是否满足资源请求设备的资源需求,如果满足则进入任务发送,否则等待下一次资源请求;(3)任务发送:任务发送为资源需求设备将任务数据发送到资源提供设备,例如图片、语音和数字等;(4)任务接收:资源需求设备接收任务数据;(5)结果发送:资源需求设备发送计算结果;(6)结果接收:资源需求设备接收计算结果。上面6个状态转换完成后,就可以进行下一轮资源交易的状态转换
6.2动作(action)
正常情况下,资源交易双方在链下点对点的通信完成资源交易,我们把资源交易过程中的数据成为设备的动作(action),action主要数据字段如表3所示。
表3 action主要数据字段
6.3交易流程数据交换
设备双方接收到对方的数据后的处理流程如图8所示,该流程大体可以分为:验证数据,构造数据和发送数据。下面以设备A与设备B的第N轮资源交易为例,对设备的交易流程与数据设置进行具体描述:
(1)在资源请求阶段,设备A需要将action数据正确赋值发送到B,其中channelID为之前区块链系统分配的通道ID,participantAddress[2]为双方的账户地址,cost设置为此次的交易费用,actionNonce=N.1,capitalExport设置为正确的资金分配,actionData和lastSignature设置为空值Null,最后对上述数据签名signatureAN.1。接下来的固定信息部分channelID、participantAddress[2]和cost双方可以选择是否传输。
(2)在判断阶段,设备B首先判断自身资源情况,若可以提供资源在,则继续判断数据与签名的是否正确,然后返回相关数据。在返回的数据中,actionNonce设置为N.2,lastSignature设置为对于上一个action数据的签名signatureBN.1,actionData字段设置为是否提供资源isCalculated(True or False)。最后对上述数据进行签名signatureBN.2。设备A收到数据后首先验证signatureBN.1与signatureBN.2是否正确,然后判断isCalculated是否为True,如果为True则进入任务发送阶段,否则请求其它设备。
(3)在任务发送阶段,设备A发送任务数据,actionNonce设置为N.3,lastSignature设置为对于上一个action数据的签名signatureAN.2,actionData设置为任务数据Hash,最后对上述数据签名signatureAN.3。在发送时,设备A将上述数据和计算任务数据发送到设备B。
(4)在任务接收阶段,A与B要进行2次数据传输。第一次设备B验证任务数据和action数据是否正确。如果正确,则需要返回数据确认action,其中actionNonce设置为N.4,lastSignature设置为对于上一个action数据的签名signatureBN.3,最后对上述数据签名signatureB2.4。设备A接收到消息需要返回确认消息,actionNonce设置为N.5,lastSignature设置为对于上一个action数据的签名signatureAN.4,最后对上述数据签名signatureAN.5。
(5)在结果发送阶段,设备B首先需要计算任务结果,计算完成后,设置相应的action数据,其中actionNonce设置为N.6,lastSignature设置signatureBN.5,actionData设置为结果数据Hash,最后对上述数据签名signatureBN.6。接下来将上述数据和计算结果的数据发送到设备A。
(6)在结果接收阶段,设备A验证任务数据和action数据是否正确。如果正确,则需要返回数据确认action,其中actionNonce设置为N.7,lastSignature设置为对于上一个action数据的签名signatureAN.6,最后对上述数据签名signatureAN.7。设备B接收到消息需要返回确认消息,actionNonce设置为N.8,lastSignature设置为对于上一个action数据的签名signatureBN.7,最后对上述数据签名signatureBN.8。
经过上述6个状态转换8次信息传输,设备之间就完成了这一次的资源交易。
7.争议事件处理
正常情况下,设备双方之间可以进行多次链下交易,直到双方协商正常关闭通道,但是实际情况下,可能出现不合作行为,如拒绝响应,提供错误数据等,此时就需要进行争议事件的处理,通过智能合约来推动双方正确进行资源交易。对于争议事件中双方的转换模型如图9所示。
7.1争议创建
如果双方没有按照正确流程的进行资源交易,可以通过智能合约StateChannel中的creatDispute()函数来创建争议事件推进资源交易流程,creatDispute()函数接收的数据为最后一次双方已经签名的action数据和自己签名将要发送的action信息。下面进行举例介绍:例如在资源请求阶段,如果对方不发送返回信息,此时资源请求设备发送的数据为(1)上一轮最后设备A的(N-1).7的action数据,该数据由双方正确签名(对方签名可以返回确认消息中找到)(2)本轮的发送的action数据N.1,该action由自己单方签名(如果为第一次请求则双方已经签署的发送数据action设置为Null)。
creatDispute()函数收到数据后需要对以下几点进行检查:
(1)状态通道是开启且当前不存在争议
(2)action中数据是否正确且签名完整
(3)action编号是否大于当前channelNonce(不接受小于临时状态的action)如果不满足上述条件则争议事件创建失败,如果满足条件,则更新ChannelData的数据,timeStamp设置为争议创建时间戳,channelNonce为自己签署的action的actionNonce,transactionStatue设置为0或Fale代表处于争议事件中,capitalExport[2]设置为双方签名的action中的资金分配,actionData设置为单方签署的发送action数据。
7.2争议解决
一方创建争议事件后,若另一方如果在线可以进行争议事件的解决。争议解决设备通过智能合约StateChannel中的disputeWithAction()函数来解决争议,设备发送应发送的签名action数据到disputeWithAction()函数,disputeWithAction()首先判断数据是否正确,然后判断该解决时间是否超过扣款挑战期,如果超过扣款挑战期对于资源需求设备则需要多支付penalty大小的代币金额,对于资源提供设备则需要扣除penalty大小的金额,根据时间更新openChannelData中capitalExport设置为正确的金额,transactionStatue设置为1或True代表交易变为正常状态,actionData设置为新接收的action数据和双方的签名,channelNonce设置为最新接收的action数据的actionNonce。这样资源交易双方又可以继续在链下完成资源的交易。
7.3争议反驳
争议的反驳机制针对设备用过期的action来创建争议企图获取收益的恶意行为而设计。例如设备B为设备进行了两次任务的计算,第一次的capitalExport[2]为{AddressA:4,AddressB:6}即A在通道内剩余4个代币,B在通道内剩余6个代币。第二次的capitalExport[2]为{AddressA:3,AddressB:7},在进行第二次计算任务时,资源需求设备使用第一次的资源交易中的过期action创建争议事件,例如资源需求设备A发送已签署的发送数据action为Null和编号为1.1的action签名数据来创建争议事件,如果设备B在争议挑战期内没有解决争议,则会造成设备B资金的丢失。
针对过期的action数据,通过智能合约StateChannel中的refuteDispute()函数来反驳争议。设备只需要将对方发送的已经签名的action来证明过期的action,其中新newAction.actionNonce-oldAction.actionNonce>=0.2。例如在上述例子中,设备B只需要发送设备A签名的编号为1.3的action数据到refuteDispute()。refuteDispute()函数判断数据正确性后会扣除作恶一方的全部资金作为惩罚并关闭通道。
7.4争议超时
如果争议事件在挑战期内未处理,则争议为超时,即系统时间戳-timestamp>challengeDuration[1]。此时双方可以按照状态通道中的资源分配取走自己的资金。交易双方提供particiants中的提款地址与身份证明到智能合约StateChannel中的withdrawCash()函数。withdrawCash()函数验证后将资金分配到相应的钱包地址。
7.5临时状态
上述方案也会带来问题,就是双方必须监控区块链上的交易通道状态,如果在争议挑战期内没有发现对方的恶意行为就回造成资金的丢失。针对上述问题,可以通过将历史数据交给第三方保存,并通过第三方监控通道的办法解决。此外,本发明还引入临时状态的概念来解决这个问题,设备在离线前可以发送双方签名的action到temporaryStatus()函数,temporaryStatus()收到数据后判断状态通道是开启且当前不存在争议和action中数据是否正确且签名完整,如果符合上述条件则修改更新ChannelData的部分数据,timeStamp设置为争议创建事件,transactionStatue还是正常状态,channelNonce设置为action数据的actionNonce,capitalExport[2]设置action中的临时资金分配。两种方案如图10所示。
8.关闭状态通道
状态通道的关闭分为两种分别为强行关闭和合作关闭,通过StateChannel中的closeChannel()函数来实施。下面对两种方式进行说明。
8.1单方关闭
由于超时或一些其它原因,交易中的一方可能会单方面终止合作。终止合作的一方需要将带有双方签名的action数据发送到closeChannel()函数来,closeChannel()则更新ChannelData的数据timeStamp设置为关闭时间戳,channelNonce为action的actionNonce,transactionStatue设置为单方关闭的代表数字如2,capitalExport[2]设置为action中的资金分配,actionData设置为双方签署的action数据。但是作为终止一方并不能马上提款,因为可能用过期action来关闭通道,因子要等待一个挑战期后才能提出资金。如果设备使用过期action,合作方依然可以通过refuteDispute()函数来证明对方的恶意行为。
8.2合作关闭
合作关闭双方可以直接领取资金不必等待挑战期,双方对直接构造如表4的简单数据格式并交换双方签名,最后将数据发送到closeChannel()函数。这种方式下双方均可立即提取资金。
表4 合作关闭主要数据字段
Claims (10)
1.一种基于状态通道的链上-链下协同的资源交易方法,基于由资源需求设备、资源提供设备、数据传输通道、以及区块链节点构成的系统模型,其中,资源需求设备为当前时刻需要进行资源的请求的设备,资源提供设备为当前时刻存在空闲资源的设备,数据传输通道为设备之间进行数据传输的通道,区块链节点负责处理并记录终端设备的请求,通过部署的智能合约为设备层设备提供包括注册、认证、资源发布与查询和状态通道的分布式服务;区块链节点记录设备信息和状态通道信息,设备信息用于标识设备、描述设备资源,状态通道信息是交易双方进行资源交易时通过智能合约开启、关闭通道或处理争议事件时的数据,状态通道保证资源交易双方进行资源共享时以协同的方式发生在链下,同时又有与上链交易相同的安全属性;资源交易参与方将锁定部分资金开启状态通道,交易状态在链下交互的过程中会不断发生更新,等到将来的某个时间点,就最终状态达成共识之后,该最终状态会被提交到链上,将链上的资金释放回交易双方;若在资源交易过程中出现争议行为,资源交易双方也可以将数据发送到区块链节点,通过状态通道解决争议事件;
其特征在于资源交易具体包括以下步骤:
设备注册与初始化:在这个阶段所有设备在本地执行系列操作初始化系统参数并发送数据到区块链节点来完成设备注册;
设备信息查询与更新:资源需求设备向区块链节点查询所需的设备信息,资源提供设备根据现实情况更新设备信息;
开启状态通道:资源需求设备根据实际条件选择合适的资源提供设备,资源交易双方通过数据通道交换信息,并调用相应的智能合约开启状态通道;开启状态通道基于ChannelData数据结构,具体包括ChannelId表示状态通道的唯一标识、timestamp表示时间戳、challengeDuration表示争议事件挑战期,或者扣款挑战期、penalty表示超时惩罚金额、channelNonce表示资源交易编号、serviceType表示资源服务类型、transactionStatue表示资源交易状态、actionData 表示Action数据、capitalExport表示当前通道资金的剩余情况、particiants表示参与者信息, particiants包括walletAddress表示钱包地址、identification表示钱包地址身份证明、publicKey表示临时公钥地址、outAddress表示通道关闭时接收资金的地址、amount表示锁定资金数量;
资源交易双方开启状态通道的流程具体如下:
(1)资源需求设备首先构造资源交易请求数据,数据中包含ChannelData中除ChannelId和对方particiantslData外的信息初始值,之后将数据以约定的通信方式发送到资源提供设备;
(2)资源提供设备一直处于接收资源请求状态,当资源需求设备发送请求数据时,资源提供设备判断当前时刻是否有足够的资金和资源,若满足条件则将资源提供设备的身份信息particiantslDataB和对全部消息的签名signaturesB发送到资源需求设备,若不满足条件则返回拒绝信息;
(3)资源需求设备收到信息后判断消息类型,如果资源提供设备返回信息为拒绝类型则请求其它设备,如果为同意类型则签署资源需求设备的签名signaturesA,然后将数据和双方签名发送到openChannel()函数;
openChannel()函数收到数据之后需要对数据进行验证,需要验证的数据有:(1)钱包地址身份证明是否正确;(2)钱包地址中的资金是否大于amount;(3)消息是否经有双方的正确签名;上述数据验证通过后,智能合约会暂时锁定双方地址中的资金,然后生成ChannelId与timeStamp并将数据写入区块链中;数据写入后双方就成功开通状态通道,可以查看相应的通道状态并在链下进行资源交易;
链下资源交易:资源交易双方在链下进行资源交易,资源需求设备将计算任务卸载到资源提供设备,双方可以进行多次资源交易;一次资源交易包括6种资源交易状态,各个状态的具体意义如下:(1)资源请求:资源请求状态为设备产生计算任务时向已经创建支付通道的设备发送资源请求,每次资源交易前必须先进行资源请求;(2)判断:资源提供设备判断当前设备资源状态是否满足资源请求设备的资源需求,如果满足则进入任务发送,否则等待下一次资源请求;(3)任务发送:任务发送为资源需求设备将任务数据发送到资源提供设备;(4)任务接收:资源提供设备接收任务数据;(5)结果发送:资源提供设备发送计算结果;(6)结果接收:资源需求设备接收计算结果;
资源交易双方在链下点对点的通信完成资源交易,资源交易过程中的数据称为设备的动作action,action包括channelID用于标识不同的通道,participantAddress表示交易双方账户地址,cost表示此次交易费用,actionNonce表示动作编号,按照第几轮交易的第几次交易标识,actiontimeStamp表示时间戳,capitalExport表示当前通道资金的剩余情况,actionData表示其它交易数据,lastSignature表示对于上一个收到的数据签名,signature表示用临时publicKey对除了lastSignature外的数据的签名;
关闭状态通道:资源交易双方进行合作正常地关闭通道,但当发生异常时,在争议事件解决过程中关闭通道。
2.根据权利要求1所述的一种基于状态通道的链上-链下协同的资源交易方法,其特征在于:设备注册与初始化,其中,资源需求设备的设备注册与初始化流程如下:(1)资源需求设备首先根据系统使用的加密算法产生公钥Plk和私钥Prk,并通过计算公钥的SHA-256哈希值作为资源需求设备的钱包地址Walk;(2)将公钥与钱包地址发送到区块链节点完成资源需求设备的注册;(3)区块链系统向资源需求设备返回注册结果;(4)资源需求设备向运营商购买代币以进行资源交易;(5)运营商向资源需求设备的钱包地址转入资源需求设备购买的代币;
资源提供设备的设备注册与初始化流程,其前三个步骤与资源需求设备一致,当区块链返回结果后,资源提供设备在本地部署相应的计算服务,然后将设备本地的配置信息、资源定价、地理位置和通信地址信息发送到区块链节点供其它设备查询,其中配置信息包括CPU、内存、带宽。
3.根据权利要求1所述的一种基于状态通道的链上-链下协同的资源交易方法,其特征在于:设备信息查询与更新流程具体包括:当完成注册的资源需求设备产生计算任务时,向区块链节点发送查询信息,查询信息可以对CPU、内存、带宽、资源定价和地理位置设置相应的条件,区块链系统根据设备条件返回可选择设备列表;与此同时,当资源提供设备发生位置、资源服务信息的变化时,资源提供设备需要向区块链节点更新自己的设备信息。
4.根据权利要求1所述的一种基于状态通道的链上-链下协同的资源交易方法,其特征在于:链下资源交易流程与数据设置具体如下:
(1)在资源请求阶段,资源需求设备A将action数据正确赋值发送到资源提供设备B,其中channelID为之前区块链系统分配的通道ID,participantAddress为双方的账户地址,cost 设置为此次的交易费用,capitalExport设置为正确的资金分配,actionData和lastSignature设置为空值Null,最后对上述数据签名signatureAN.1,接下来的固定信息部分channelID、participantAddress和cost双方可以选择是否传输;
(2)在判断阶段,设备B首先判断自身资源情况,若可以提供资源在,则继续判断数据与签名的是否正确,然后返回相关数据;在返回的数据中, lastSignature设置为对于上一个action数据的签名signatureBN.1,actionData字段设置为是否提供资源isCalculated;最后对上述数据进行签名signatureBN.2;设备A收到数据后首先验证signatureBN.1与signatureBN.2是否正确,然后判断isCalculated是否为True,如果为True则进入任务发送阶段,否则请求其它设备;
(3)在任务发送阶段,设备A发送任务数据,actionNonce设置为N.3,lastSignature设置为对于上一个action数据的签名signatureAN.2,actionData设置为任务数据Hash,最后对上述数据签名signatureAN.3;在发送时,设备A将上述数据和计算任务数据发送到设备B;
(4)在任务接收阶段,A与B要进行2次数据传输,第一次设备B验证任务数据和action数据是否正确,如果正确,则返回数据确认action,其中actionNonce设置为N.4,lastSignature设置为对于上一个action数据的签名signatureBN.3,最后对上述数据签名signatureB2.4;设备A接收到消息需要返回确认消息,actionNonce设置为N.5,lastSignature设置为对于上一个action数据的签名signatureAN.4,最后对上述数据签名signatureAN.5;
(5)在结果发送阶段,设备B首先需要计算任务结果,计算完成后,设置相应的action数据,其中actionNonce设置为N.6,lastSignature设置signatureBN.5,actionData设置为结果数据Hash,最后对上述数据签名signatureBN.6;接下来将上述数据和计算结果的数据发送到设备A;
(6)在结果接收阶段,设备A验证任务数据和action数据是否正确;如果正确,则需要返回数据确认action,其中actionNonce设置为N.7,lastSignature设置为对于上一个action数据的签名signatureAN.6,最后对上述数据签名signatureAN.7;设备B接收到消息需要返回确认消息,actionNonce设置为N.8,lastSignature设置为对于上一个action数据的签名signatureBN.7,最后对上述数据签名signatureBN.8;
经过上述6个阶段转换8次信息传输,设备之间就完成了这一次的资源交易。
5.根据权利要求1所述的一种基于状态通道的链上-链下协同的资源交易方法,其特征在于:设置争议事件处理环节,若交易过程中出现异常的行为,资源交易双方将资源交易过程中的数据发送到区块链节点进行争议事件解决;若争议解决则双方可以继续进行资源交易;若争议解决失败,则关闭状态通道取回资金。
6.根据权利要求5所述的一种基于状态通道的链上-链下协同的资源交易方法,其特征在于:
争议创建:当双方没有按照正确流程进行资源交易,通过智能合约StateChannel中的creatDispute ()函数来创建争议事件推进资源交易流程,creatDispute ()函数接收的数据为最后一次双方已经签名的action数据和自己签名将要发送的action信息。
7.根据权利要求6所述的一种基于状态通道的链上-链下协同的资源交易方法,其特征在于:
争议解决:争议解决设备通过智能合约StateChannel中的disputeWithAction ()函数来解决争议,设备发送应发送的签名action数据到disputeWithAction ()函数,disputeWithAction ()首先判断数据是否正确,然后判断解决时间是否超过扣款挑战期,如果超过扣款挑战期对于资源需求设备则需要多支付penalty大小的代币金额,对于资源提供设备则需要扣除penalty大小的金额,根据时间更新openChannelData中capitalExport设置为正确的金额,transactionStatue设置为1或True代表交易变为正常状态,actionData设置为新接收的action数据和双方的签名,channelNonce设置为最新接收的action数据的actionNonce。
8.根据权利要求7所述的一种基于状态通道的链上-链下协同的资源交易方法,其特征在于:
争议反驳:争议的反驳机制针对设备用过期的action来创建争议企图获取收益的恶意行为而设计;针对过期的action数据,通过智能合约StateChannel中的refuteDispute ()函数来反驳争议;设备只需要将对方发送的已经签名的action来证明过期的action,其中新newAction. actionNonce- oldAction. actionNonce>=0.2;refuteDispute ()函数判断数据正确性后会扣除作恶一方的全部资金作为惩罚并关闭通道。
9.根据权利要求8所述的一种基于状态通道的链上-链下协同的资源交易方法,其特征在于:
争议超时:如果争议事件在挑战期内未处理,则争议为超时,即系统时间戳-timestamp >challengeDuration;此时双方可以按照状态通道中的资源分配取走自己的资金;交易双方提供particiants中的提款地址与身份证明到智能合约StateChannel中的withdrawCash ()函数,withdrawCash()函数验证后将资金分配到相应的钱包地址;
临时状态:用于防止恶意方发送过期数据创建争议;设备在离线前发送双方签名的action到temporaryStatus()函数,temporaryStatus()收到数据后判断状态通道是开启且当前不存在争议和action 中数据是否正确且签名完整,如果符合上述条件则修改更新ChannelData数据,timeStamp设置为争议创建事件,transactionStatue还是正常状态,channelNonce设置为action数据的actionNonce,capitalExport设置action中的临时资金分配。
10.根据权利要求1所述的一种基于状态通道的链上-链下协同的资源交易方法,其特征在于:
关闭状态通道:状态通道的关闭分为两种,分别为单方关闭和合作关闭,通过StateChannel中的closeChannel()函数来实施;
所述的单方关闭指交易中的一方发起的单方面终止合作,具体包括:终止合作的一方将带有双方签名的action数据发送到closeChannel()函数,closeChannel()则更新ChannelData的数据timeStamp设置为关闭时间戳,channelNonce为action的actionNonce,transactionStatue设置为单方关闭的代表数字,capitalExport设置为action中的资金分配,actionData设置为双方签署的action数据;终止方在等待一个挑战期后提出资金;
所述的合作关闭,合作关闭双方可以直接领取资金不必等待挑战期,双方直接构造数据格式并交换双方签名,最后将数据发送到closeChannel()函数,这种方式下双方均可立即提取资金,所述的数据格式包括channelID表示通道的ID,用来标识不同的通道,participantAddress表示交易双方账户地址,capitalExport表示交易双方账户地址,Signature表示用临时publicKey对除了lastSignature外的数据的签名。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110688709.5A CN113411338B (zh) | 2021-06-17 | 2021-06-17 | 一种基于状态通道的链上-链下协同的资源交易方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110688709.5A CN113411338B (zh) | 2021-06-17 | 2021-06-17 | 一种基于状态通道的链上-链下协同的资源交易方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113411338A CN113411338A (zh) | 2021-09-17 |
CN113411338B true CN113411338B (zh) | 2022-06-07 |
Family
ID=77682164
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110688709.5A Active CN113411338B (zh) | 2021-06-17 | 2021-06-17 | 一种基于状态通道的链上-链下协同的资源交易方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113411338B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114372587A (zh) * | 2021-12-10 | 2022-04-19 | 海南火链科技有限公司 | 基于状态通道的去中心训练方法、装置、存储介质及设备 |
CN115632835B (zh) * | 2022-10-09 | 2023-09-26 | 云南大学 | 基于多要素哈希锁的链上链下数据传输方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111353783A (zh) * | 2018-12-21 | 2020-06-30 | 西安佰才邦网络技术有限公司 | 一种基于区块链签约的方法及设备 |
CN111724257A (zh) * | 2020-05-28 | 2020-09-29 | 天津大学 | 一种用于区块链中链下支付的再平衡策略执行方法 |
CN112134959A (zh) * | 2020-09-24 | 2020-12-25 | 北京工业大学 | 一种基于区块链的异构边缘资源共享方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10387878B2 (en) * | 2016-02-22 | 2019-08-20 | Bank Of America Corporation | System for tracking transfer of resources in a process data network |
-
2021
- 2021-06-17 CN CN202110688709.5A patent/CN113411338B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111353783A (zh) * | 2018-12-21 | 2020-06-30 | 西安佰才邦网络技术有限公司 | 一种基于区块链签约的方法及设备 |
CN111724257A (zh) * | 2020-05-28 | 2020-09-29 | 天津大学 | 一种用于区块链中链下支付的再平衡策略执行方法 |
CN112134959A (zh) * | 2020-09-24 | 2020-12-25 | 北京工业大学 | 一种基于区块链的异构边缘资源共享方法 |
Non-Patent Citations (2)
Title |
---|
Haipeng Yao等.Resource Trading in Blockchain-Based Industrial Internet of Things.《IEEE TRANSACTIONS ON INDUSTRIAL INFORMATICS》.2019,第15卷(第6期),3602-3609. * |
刘秋妍等.5G+区块链网络分片技术.《移动通信》.2020,第2020卷(第04期),41-44. * |
Also Published As
Publication number | Publication date |
---|---|
CN113411338A (zh) | 2021-09-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110443704B (zh) | 一种跨链发送资源的方法和装置 | |
CN106982205B (zh) | 基于区块链的数字资产处理方法和装置 | |
CN108009811B (zh) | 一种面向云际计算环境价值交换的跨链通信方法 | |
US7233926B2 (en) | Electronic wallet system with secure inter-purses operations | |
CN112541758A (zh) | 基于区块链的多轮投票式容错排序共识机制与方法 | |
CN112907252B (zh) | 一种基于多人链下通道的区块链交易方法及系统 | |
CN107993149A (zh) | 账户信息管理方法、系统以及可读存储介质 | |
CN113411338B (zh) | 一种基于状态通道的链上-链下协同的资源交易方法 | |
CN111046437A (zh) | 基于同构多链的区块链并行事务处理方法及系统、终端 | |
CN113746858B (zh) | 一种基于可验证随机函数的跨链通信方法 | |
CN110751468A (zh) | 用于区块链扩展的多向状态通道方法、系统及介质 | |
CN105678545B (zh) | 基于分布式共享总账的数字资产交易系统及其构建方法 | |
CN109300038B (zh) | 一种资源流的交易系统 | |
CN111640017A (zh) | 一种应用于联盟链跨链转账的交易正确性验证方法及装置 | |
CN110098938B (zh) | 一种可信任委托式链下加速解决方法及系统 | |
CN112488682B (zh) | 一种区块链的三方转账方法及装置 | |
CN115244526A (zh) | 用于去中心化事务通信协议的方法和系统 | |
EP1132876A2 (en) | Electronic wallet system with secure inter-purse operations | |
EP4287102A1 (en) | Cross-chain transaction processing method and apparatus, electronic device, and storage medium | |
CN115271718A (zh) | 一种区块链中基于Hub的状态通道交易方法 | |
EP3792855A1 (en) | A method and system for executing fast and safe transactions involving a high-latency blockchain | |
CN112950180A (zh) | 一种基于联盟链的通证方法、系统、电子设备及存储介质 | |
CN115526629A (zh) | 基于区块链网络的收单交易方法、装置及身份认证装置 | |
CN111506416B (zh) | 边缘网关的计算方法、调度方法、相关装置及介质 | |
CN109615513B (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 |