CN114723449B - 区块链条件支付的方法及电子设备 - Google Patents
区块链条件支付的方法及电子设备 Download PDFInfo
- Publication number
- CN114723449B CN114723449B CN202210531844.3A CN202210531844A CN114723449B CN 114723449 B CN114723449 B CN 114723449B CN 202210531844 A CN202210531844 A CN 202210531844A CN 114723449 B CN114723449 B CN 114723449B
- Authority
- CN
- China
- Prior art keywords
- payment
- asset
- account
- intermediate account
- conditional
- 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
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3821—Electronic credentials
- G06Q20/38215—Use of certificates or encrypted proofs of transaction rights
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3825—Use of electronic signatures
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3829—Payment protocols; Details thereof insuring higher security of transaction involving key management
-
- 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
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
Abstract
本申请提供一种区块链条件支付的方法,包括:生成中间账户;向资产接收方发送条件支付的支付启动条件;根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付。通过建立中间账户和增加新合约方法,无需修改已有的资产管理合约,也不允许其他合约跨合约调用资产管理合约的方法,避免了由于跨合约调用可能导致的方法递归、方法乱序等非预期调用,更好地保证了合约安全。
Description
技术领域
本发明涉及区块链技术领域,具体涉及区块链条件支付的方法及电子设备。
背景技术
条件支付功能是区块链应用的常见需求之一,与立即支付不同之处在于条件支付并非立即将资产从发送方账户转移到接收方账户,而是首先将发送方账户的部分资产进行锁定,直到满足发送方预先设定的条件之后,再将这部分账户转移到接收方账户;如果超过预设的过期时间条件仍未得到满足,锁定的资产返回发送方账户。
现有技术中常见的思路是将发送方的资产转入到一个合约绑定的账户,然后在该合约中编写逻辑,限制资产转出的条件,并在执行资产转出时予以检查,例如以太坊上的DAO合约。
发明内容
本申请旨在提供一种区块链条件支付的方法,通过建立中间账户和增加新合约方法,无需修改已有的资产管理合约,也不允许其他合约跨合约调用资产管理合约的方法,避免了由于跨合约调用可能导致的方法递归、方法乱序等非预期调用,更好地保证了合约安全。
根据本申请的一方面,提出一种区块链条件支付的方法,包括:
生成中间账户;
向资产接收方发送条件支付的支付启动条件;
根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付。
根据一些实施例,所述方法还包括:
配置认证方账户;
通过所述认证方账户认证并注册资产发送方账户和所述资产接收方账户;
通过所述认证方账户为所述资产发送方账户和所述资产接收方账户绑定证书。
根据一些实施例,所述方法还包括:
增加条件支付合约方法,所述条件支付合约方法包括账户认证方法、证书绑定方法、资产转移方法。
根据一些实施例,所述方法还包括:
所述生成中间账户,包括:
通过所述资产发送方的第一签名交易生成中间账户,并记录所述资产发送方账户、所述资产接收方账户、过期阈值和支付启动条件;
其中,所述过期阈值是执行过期检查的交易所在区块与所述第一签名交易所在区块的高度差;
所述支付启动条件包括延期支付条件、接收方确认支付条件、链内资产交换条件、链外资产交换条件。
根据一些实施例,所述方法还包括:
所述根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付,包括:
通过所述资产发送方调用所述资产转移方法,向所述中间账户转移资产。
根据一些实施例,所述根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付,还包括:
根据所述资产接收方接收的所述条件支付的支付启动条件和所述中间账户的资产,确定要进行支付,则执行条件支付;
所述执行条件支付包括等待延期时间、无动作、提交链内资产转移的签名交易并出块、提交指定目标链的资产转移的签名交易并出块。
根据一些实施例,所述根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付,还包括:
通过所述资产接收方调用所述证书绑定方法;
执行第一权限检查,以检查调用所述条件支付合约方法的调用方是否为所述中间账户对应的接收方,如果是,则检查通过;
执行条件支付检查,所述条件支付检查包括根据所述支付启动条件检查是否满足超过所述延期时间或所述链内资产转移的签名交易已出块或所述目标链的资产转移的签名交易已出块的条件,如果满足,则检查通过;
如果所述第一权限检查和所述条件支付检查均通过,将所述中间账户的证书绑定为接收方证书。
根据一些实施例,所述根据所述条件支付的支付启动条件,通过资产接收方接管中间账户,执行条件支付,还包括:
通过所述资产接收方调用所述资产转移方法将所述中间账户中的资产转出。
根据一些实施例,所述方法还包括:
如果确定不进行支付,则资产发送方通过签名交易调用所述证书绑定方法;
进行第二权限检查,所述第二权限检查包括检查调用方是否为所述中间账户对应的所述资产发送方,如果是,则所述第二权限检查通过;
进行过期阈值判断,如果当前区块高度与所述第一签名交易所在区块的区块高度的差大于所述过期阈值,则判断为已过期;
如果已过期且所述第二权限检查通过,则将所述中间账户的证书绑定为发送方证书。
根据一些实施例,所述方法还包括:
通过所述资产发送方调用所述资产转移方法将中间账户中的资产转回给资产发送方。
根据本申请的另一方面,提供一种区块链条件支付的方法,包括:
接收条件支付的支付启动条件;
根据所述条件支付的支付启动条件,接管中间账户,执行条件支付,所述中间账户由资产发送方生成。
根据一些实施例,所述方法还包括:
增加条件支付合约方法,所述条件支付合约方法包括账户认证方法、证书绑定方法、资产转移方法。
根据一些实施例,所述根据所述条件支付的支付启动条件,接管中间账户,执行条件支付,包括:
根据所述条件支付的支付启动条件和所述中间账户的资产确定要进行支付,则执行条件支付;
所述执行条件支付包括等待延期时间、无动作、提交链内资产转移的签名交易并出块、提交指定目标链的资产转移的签名交易并出块。
根据一些实施例,所述根据所述条件支付的支付启动条件,接管中间账户,执行条件支付,还包括:
调用所述条件支付合约方法,接管所述中间账户;
执行第一权限检查,以检查调用所述条件支付合约方法的调用方是否为所述中间账户对应的接收方,如果是,则检查通过;
执行条件支付检查,包括检查是否满足超过所述延期时间或所述链内资产转移的签名交易已出块或所述目标链的资产转移的签名交易已出块;
如果所述第一权限检查和所述条件支付检查均通过,将所述中间账户的证书绑定为接收方证书。
根据一些实施例,所述根据所述条件支付的支付启动条件,接管中间账户,执行条件支付,还包括:
调用所述资产转移方法将所述中间账户中的资产转出。
根据本申请的另一方面,提供一种电子设备,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述方法中任一项所述的方法。
根据本申请的另一方面,提供一种计算机程序产品,包括计算机程序或指令,该计算机程序或指令被处理器执行时实现上述方法中任一项所述的方法。
根据本申请示例实施例,无需对现有资产管理合约进行修改,保持了既有的资产管理安全手段和安全强度;在将条件支付应用于多个资产管理合约时,显著降低了改造代价。
根据本申请示例实施例,无需在其他合约中直接调用资产管理合约,避免了由于跨合约调用可能导致的方法递归、方法乱序等非预期调用,更好地保证了合约安全。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性的,并不能限制本申请。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍。
图1示出根据本申请示例实施例的区块链条件支付的方法流程图。
图2示出根据本申请示例实施例的区块链条件支付的流程示意图。
图3示出根据本申请另一示例实施例的区块链条件支付的方法流程图。
图4示出根据一示例性实施例的一种电子设备的框图。
具体实施方式
现在将参考附图更全面地描述示例实施例。然而,示例实施例能够以多种形式实施,且不应被理解为限于在此阐述的实施例;相反,提供这些实施例使得本申请将全面和完整,并将示例实施例的构思全面地传达给本领域的技术人员。在图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。
此外,所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施例中。在下面的描述中,提供许多具体细节从而给出对本申请的实施例的充分理解。然而,本领域技术人员将意识到,可以实践本申请的技术方案而没有特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本申请的各方面。
附图中所示的方框图仅仅是功能实体,不一定必须与物理上独立的实体相对应。即,可以采用软件形式来实现这些功能实体,或在一个或多个硬件模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
附图中所示的流程图仅是示例性说明,不是必须包括所有的内容和操作/步骤,也不是必须按所描述的顺序执行。例如,有的操作/步骤还可以分解,而有的操作/步骤可以合并或部分合并,因此实际执行的顺序有可能根据实际情况改变。
应理解,虽然本文中可能使用术语第一、第二、第三等来描述各种组件,但这些组件不应受这些术语限制。这些术语乃用以区分一组件与另一组件。因此,下文论述的第一组件可称为第二组件而不偏离本申请概念的教示。如本文中所使用,术语“及/或”包括相关联的列出项目中的任一个及一或多者的所有组合。
本领域技术人员可以理解,附图只是示例实施例的示意图,附图中的模块或流程并不一定是实施本申请所必须的,因此不能用于限制本申请的保护范围。
条件支付功能可应用于以下典型场景。
延迟交付:交付时间与发起时间的间隔大于预设值时,执行交付。
接受确认交付:接收方在预设的超时间隔内同意接收时执行交付,否则锁定的资产解锁回归发送方账户。
链内资产互换:在链内不同种类的资产之间进行互换。
链外信息条件支付:通过入站预言机接口,当返回结果满足预设条件时执行交付,否则锁定的资产解锁回归发送方账户。
跨链互换操作:接收方在目标链通过签名交易完成了预设的条件操作,并且该交易被出块确认。
现有技术中对于条件支付实现的常见的思路是将发送方的资产转入到一个合约绑定的账户,然后在该合约中编写逻辑,限制资产转出的条件,并在执行资产转出时予以检查,例如以太坊的DAO合约。
上述思路的特征在于通过合约绑定的账户接收资产实现对发送方的资产锁定;允许合约逻辑直接发起资产转出。相比只允许实体签名交易发起的资产转出,这种方式降低了资产管理的安全强度,容易出现合约漏洞导致安全风险,例如,攻击者利用DAO合约中非预期的合约方法递归调用,无限循环将合约管理的资产转出至攻击者的账户,造成超过价值6000万美元的以太坊损失,并最终导致以太坊主链硬分叉。
本申请提供了一种在区块链上的发送方和接收方之间进行条件支付的方法。通过账户管理合约在发送方和接收方之间建立和管理中间账户,并通过对中间账户的证书进行绑定和解除绑定,实现对该账户的接管和锁定。对中间账户的接管条件既可以基于链内上下文、也可以基于链外的预言机返回结果、或者跨链的出块签名交易,从而使得本方法可应用于延期支付、链内跨资产类别交换、跨链资产互换等条件支付场景。
本申请公开的区块链的条件支付方法,一方面它不需要修改已有的资产管理合约,也不允许其他合约跨合约调用资产管理合约的方法,由此保持了资产管理的权限检查和安全强度;另一方面该方法总结常见的条件支付类型,并针对条件支付类型提供条件检查,对于已支持的条件支付类型,无需再编写和部署新的合约,在降低实施代价的同时降低了编写和部署新合约带来的安全风险。
本申请所采用的技术方案包括三个阶段:发送链准备、生成中间账户并发送条件支付、接管中间账户结束条件支付。
在对本申请的技术方案进行详细描述之前,首先对本申请中使用的术语约定进行如下介绍。
条件支付:与无条件的立即支付相对应,资产并非直接从发送方转移到接收方,而是满足发送方预先设置的条件之后,接收方方可收到发送方转出的资产。常见的条件支付类型包括:接收方确认支付、延期支付、链内资产互换、跨链资产互换等。
合约:即智能合约,可以被区块链合约容器加载和执行的代码,合约拥有唯一标识、合约包含供签名交易调用的方法,合约方法通过合约容器提供的接口读写外部状态。
合约上下文(Contract Context):即合约方法执行的上下文环境,包括调用合约方法的签名交易,访问区块数据和world State世界状态的Shim API接口。
世界状态(World State):区块链账本的外部状态,简称状态,所有状态构成区块链的全局状态。合约容器上下文接口Shim API中提供了读写状态的接口,支持向键-值数据库读写Key-Value状态键值对。
标识:即唯一标识,用以区分和查找数字对象的索引,本文中Id即标识,本文中的Id可采取通用唯一识别码(UUID)方法生成。
证书:即数字证书,是包含账户的签名私钥所对应公钥的电子文件。
签名:本申请中的签名包含账户标识和数字签名两部分,其中数字签名是使用了公钥加密领域的技术实现,用于鉴别数字信息的方法;账户标识用于从关联交易中提取签名者的公钥,用以验证其数字签名。
签名交易:包含交易发起方签名的结构化数据,代表了签名者的授权行为,签名交易中指定了调用的合约名、合约方法及调用参数。
SPV:简单付款验证(Simple Payment Verification),简称SPV。通过对区块头的合法性验证,以及对该区块内某笔签名交易的存在性证明的验证,证明指定的签名交易在该区块链上已获得出块确认。
以下结合附图对本申请的示例实施例进行说明。
图1示出根据本申请示例实施例的区块链条件支付的方法流程图。
参见图1,在S101,生成中间账户。
根据一些实施例,在生成中间账户之前,需要做发送链准备,使得发送方所在的发送链具备发起条件支付和管理中间账户的能力。发送链准备主要包括如下步骤。
配置链管理员账户及证书、认证方账户及证书。
链管理员在区块链上部署账户管理合约(CMAccount),该合约提供实体账户认证方法(signUpAccount)、证书绑定方法(bindCert)。合约方法可进行权限检查,仅接受认证方账户调用账户认证和证书绑定方法。
在区块链上部署资产管理合约,可包括CMAssertsX、CMAssertsY,该合约分别提供了资产种类X、资产种类Y的发行(issuance)和资产转移(transfer)的方法,并在方法中提供了权限检查,仅允许发行方账户调用issuance方法,仅允许从签名交易者本人账户调用transfer方法转出资产(未绑定证书的账户无法转出资产)。
认证方账户通过签名交易调用CMAccount. signUpAccount,认证并注册资产发行方账户Ui、资产发送方A账户Ua,资产接收方B账户Ub,认证方通过签名交易调用CMAccount.bindCert,为上述各方绑定证书。
资产发行方Ui通过签名交易调用CMAssertsX.issuance、CMAssertsY.issuance方法,分别发行资产种类X、资产种类Y到资产发送方账户Ua、资产接收方账户Ub。至此,账户Ua、Ub之间具备了通过签名交易调用CMAssertsX.transfer、CMAssertsY.transfer方法在同类资产之间支付的能力。
链管理员通过升级合约版本,为账户管理合约增加新的合约方法。新、旧版本合约共享账本状态空间,达成对历史数据的向下兼容。每个合约所写入或读取的世界状态,都是加了合约Id作为前缀的世界状态,以避免合约之间状态混乱。这个前缀约束了该合约读写状态的范围,称作合约的账本状态空间。
新版本合约增加了中间账户建立方法(signUpTempAccount)、中间账户的证书绑定方法(bindTempCert)。
接下来生成中间账户。资产发送方A通过签名交易(例如,t_create)调用CMAccount.signUpTempAccount方法,方法参数包括发送方账户Ua、接收方账户Ub、过期阈值pExpiration(执行过期检查的交易所在区块与 t_create所在区块的高度差)、支付启动条件。
在S103,向资产接收方发送条件支付的支付启动条件。
在步骤S101中资产发送方A通过签名交易调用合约方法CMAccount.signUpTempAccount,该方法返回生成的中间账户Uab,并在账本状态中记录中间账户对应的发送方、接收方、支付启动条件、过期阈值。
其中,支付启动条件即接收方接管中间账户的条件,可包括条件类型和条件值。条件类型取值可包括:延期支付、确认支付、链内资产交换、链外资产交换,条件值为与条件类型对应的字符串。
在S105,根据条件支付的支付启动条件,通过资产接收方接管中间账户,执行条件支付。
根据一些实施例,资产发送方通过签名交易调用CMAssertsX. Transfer资产转移方法,向中间账户Uab转移X类别资产。由于中间账户目前没有绑定证书,通过中间账户发起的任何签名将被视为无效,因此该账户下的资产将处于锁定状态。在进入下一阶段之前,发送方可选择多次重复本步骤以向中间账户Uab锁定多笔资产。
根据一些实施例,资产接收方B通过订阅出块数据,收到步骤S101中接收方账户为Ub的上述出块签名交易t_create。资产接收方根据t_create中调用CMAccount.signUpTempAccount方法的参数中设定的支付启动条件,结合步骤S103中锁定在中间账户中的资产,决定是否采取行动满足支付启动条件。如果是,执行以下步骤。
如果资产接收方决定满足支付启动条件,相应地根据上述条件类型(延期支付、确认支付、链内资产交换、链外资产交换)分别执行:等待延期时间、无动作、提交链内资产转移签名交易并出块、提交指定的目标链上签名交易并出块。
资产接收方通过签名交易调用合约方法CMAccount. bindTempCert,传入中间账户和对执行条件支付的证明。这里执行条件支付的证明包括超过延期交付时间、链内用于交换的资产转移签名交易已出块、目标链用于交换的资产转移签名交易已出块。
例如,当条件类型为确认支付,即接收方确认的支付条件是“接收方同意接收”,如果接收方确认接收,接收方以“空”为支付条件证明进行调用以上合约方法CMAccount.bindTempCert。
例如,当条件类型为延期支付,支付条件是“时间大于延期时间”,这里延期时间小于过期阈值。如果接收方确认接收,则接收方以“最新区块高度证明”为支付条件证明发起调用。
又例如,当条件类型为跨链互操作,支付条件是“在目标链上指定交易出块”,接收方在目标链按照支付条件发起签名交易,等到交易出块之后,从目标链生成SPV证明,接收方以该SPV证明作为支付条件证明发起调用。
根据一些实施例,在合约方法CMAccount. bindTempCert中,依次执行权限检查和条件判断。权限检查包括检查合约方法CMAccount. bindTempCert的调用方是否为该中间账户对应的接收方。
条件判断包括当条件类型为延期支付时,判断是否超过延期交付时间;当条件类型为链内资产交换时,判断链内用于交换的资产转移签名交易是否已出块;当条件类型为链外资产交换时,判断目标链用于交换的资产转移签名交易是否已出块。
如果以上权限检查通过,且条件判断结果为是,则合约逻辑将中间账户的证书绑定为接收方证书,接管中间账户成功;如果检查未通过或条件判断结果为否,接管中间账户失败,中间账户Uab仍然没有绑定证书。
如果接管中间账户成功,则接收方通过签名交易,以中间账户Uab发起签名交易,调用CMAssertsX.transfer将中间账户中的资产转出,条件支付完成。
发送方、接收方都是使用客户端(client)连接到区块链的组网节点,他们通过客户端构造和提交签名交易时,签名交易的数据结构中包含了签名账户Id、签名。这里发送方Ua构造签名交易时,对签名账户Id赋值为中间账户Uab而不是发送方账户Ua,由于Uab绑定了与Ua相同的证书,所以使用Ua的私钥签名能够通过Uab的签名验证。同时Uab能够通过资产转移方法中要求从本账户转出的检查。
当中间账户中的资产全部转出,接收方可以以账户Uab发起签名交易,调用CMAccount.resetTempCert,重置中间账户的证书为空以实现重复使用。
当资产接收方B通过订阅出块数据,收到步骤S101中接收方账户为Ub的上述出块签名交易t_create。资产接收方根据t_create中调用CMAccount.signUpTempAccount方法的参数中设定的支付启动条件,结合步骤S103中锁定在中间账户中的资产,决定不采取行动满足支付启动条件时,发送方通过签名交易调用合约方法CMAccount.bindTempCert,传入中间账户。
合约方法依次进行权限检查(检查调用方是否为该中间账户对应的发送方)和过期时间检查。
在过期时间检查中,如果调用合约方法的签名交易所在区块与生成中间账户的交易所在区块的高度差大于条件支付预设的过期阈值pExpiration时,如果中间账户Uab仍然没有绑定证书,则将账户Uab的证书绑定到发送方账户证书。
发送方通过签名交易,以账户Uab发起签名交易,调用CMAssertsX.Transfer方法将中间账户中的资产转出,也就是转回发送方账户,条件支付回滚。
当中间账户中的资产全部转出,接收方可以账户Uab发起签名交易,调用CMAccount.resetTempCert,重置中间账户的证书为空以实现重复使用。
图2示出根据本申请示例实施例的区块链条件支付的流程示意图。
参见图2,区块链条件支付方法,包括三个阶段:发送链准备、生成中间账户并发送条件支付、接管中间账户结束条件支付。
1)发送链准备阶段
该阶段使得发送链具备发起条件支付和管理中间账户的能力,具体步骤如下。
配置链管理员账户及证书、认证方账户及证书。
链管理员在区块链上部署账户管理合约,该合约提供实体账户认证、证书绑定方法,合约方法进行权限检查,仅接受认证方账户调用账户认证和证书绑定方法。
链管理员在区块链上部署资产管理合约,该合约可分别提供资产种类X、资产种类Y的发行和资产转移的方法,并在方法中提供了权限检查,仅允许发行方账户调用发行方法,仅允许从签名交易者本人账户调用资产转移方法转出资产(未绑定证书的账户无法转出资产)。
认证方账户通过签名交易调用账户认证方法,认证并注册资产发行方账户、资产发送方账户,资产接收方账户,认证方通过签名交易调用证书绑定方法,为上述各方绑定证书。
资产发行方通过签名交易调用资产种类X、资产种类Y的发行方法,分别发行资产种类X、资产种类Y到资产发送方和资产接收方。两者都可以持有两类资产,初始化时资产发送方和资产接收方分别持有X资产、Y资产,通过条件支付交换之后,资产发送方和资产接收方会持有两类资产。至此,资产发送方和资产接收方账户之间具备了通过签名交易调用资产转移方法在同类资产之间立即支付的能力。
管理员通过合约版本升级,为账户管理合约增加新的合约方法。新、旧版本合约共享账本状态空间,达成对历史数据的向下兼容。新版本合约增加了中间账户建立、中间账户的证书绑定方法。
2)生成中间账户并发送条件支付
首先,发送方A通过签名交易调用合约方法,输入发送方账户、接收方账户、过期时间、支付条件(即接收方接管中间账户的条件,包括:延期支付、确认支付、链内资产交换、链外资产交换),合约方法生成中间账户。
其次,发送方通过签名交易调用资产转移方法,向中间账户转移资产。由于中间账户目前没有绑定证书,通过中间账户发起的任何签名将被视为无效,因此该账户下的资产将处于锁定状态。在进入第三阶段之前,发送方可选择多次重复本步骤以向中间账户锁定多笔资产。
3)接管中间账户并结束条件支付
接收方B通过订阅出块数据,收到上述步骤中接收方为B的出块交易。接收方根据出块交易中调用的合约方法参数中设定的条件,以及锁定在中间账户中的资产,决定是否采取行动满足支付条件。
如果接收方决定满足支付条件,相应地根据上述条件类型(延期支付、确认支付、链内资产交换、链外资产交换)分别执行:等待延期时间、无动作、提交链内资产转移、提交指定的目标链上签名交易并出块。
接收方通过签名交易调用绑定账户证书合约方法,传入中间账户和对支付条件的证明。合约方法依次执行权限检查(检查调用方是否为该中间账户对应的接收方)和条件检查(超过延期交付时间、链内用于交换的资产转移签名交易已出块、目标链用于交换的资产转移签名交易已出块)。如果检查均通过,合约逻辑将中间账户的证书绑定为接收方证书;如果检查未通过,接管中间账户失败,中间账户仍然没有绑定证书。
如果接管中间账户成功,则接收方通过签名交易,以中间账户发起签名交易,调用资产转移方法将中间账户中的资产转出,条件支付完成。
如果决定不采取行动满足支付条件,则当区块出块高度差大于条件支付预设的过期时间时,中间账户仍然没有绑定证书,发送方通过签名交易调用证书绑定合约方法,传入中间账户。合约逻辑依次进行权限检查(检查调用方是否为该中间账户对应的发送方)和过期时间检查,检查通过后将中间账户的证书绑定到发送方账户证书。
发送方通过签名交易,以中间账户发起签名交易,调用资产转移方法将中间账户中的资产转出,条件支付回滚。
图3示出根据本申请另一示例实施例的区块链条件支付的方法流程图。
参见图3,在S301,接收条件支付的支付启动条件。
根据一些实施例,在接收条件支付的支付启动条件之前,需要生成中间账户,做发送链准备,使得发送方所在的发送链具备发起条件支付和管理中间账户的能力。发送链准备主要包括的步骤和S101类似,这里不再赘述。
在S303,根据条件支付的支付启动条件,接管中间账户,执行条件支付,中间账户由资产发送方生成。
根据一些实施例,资产接收方账户根据条件支付的支付启动条件和中间账户的资产确定要进行支付,则执行条件支付;这里执行条件支付包括等待延期时间、无动作、提交链内资产转移的签名交易并出块、提交指定目标链的资产转移的签名交易并出块。
根据一些实施例,资产接收方调用条件支付合约方法,接管中间账户。在合约方法中执行第一权限检查,以检查调用条件支付合约方法的调用方是否为中间账户对应的接收方,如果是,则检查通过;执行条件支付检查,包括检查是否满足超过延期时间或链内资产转移的签名交易已出块或目标链的资产转移的签名交易已出块。
如果第一权限检查和条件支付检查均通过,将所述中间账户的证书绑定为接收方证书,接管中间账户成功。接下来资产接收方调用资产转移方法将中间账户中的资产转出。
应清楚地理解,本申请描述了如何形成和使用特定示例,但本申请不限于这些示例的任何细节。相反,基于本申请公开的内容的教导,这些原理能够应用于许多其它实施例。
本领域技术人员可以理解实现上述实施例的全部或部分步骤被实现为由CPU 执行的计算机程序。在该计算机程序被CPU 执行时,执行本申请提供的上述方法所限定的上述功能的程序可以存储于一种计算机可读存储介质中,该存储介质可以是只读存储器,磁盘或光盘等。
此外,需要注意的是,上述附图仅是根据本申请示例性实施例的方法所包括的处理的示意性说明,而不是限制目的。易于理解,上述附图所示的处理并不表明或限制这些处理的时间顺序。另外,也易于理解,这些处理可以是例如在多个模块中同步或异步执行的。
通过对示例实施例的描述,本领域技术人员易于理解,根据本申请实施例的区块链条件支付的方法至少具有以下优点中的一个或多个。
根据示例实施例,通过合约版本升级,无需对现有资产管理合约进行修改,保持了既有的资产管理安全手段和安全强度,显著降低了改造代价。
根据示例实施例,无需在其他合约中直接调用资产管理合约,避免了由于跨合约调用可能导致的方法递归、方法乱序等非预期调用,更好地保证了合约安全。
根据示例实施例,通过支持多种类型的支付条件,可应用于接收方确认支付、延期支付、链内资产互换、跨链资产互换等场景。
图4示出根据一示例性实施例的一种电子设备的框图。
下面参照图4来描述根据本申请的这种实施方式的电子设备200。图4显示的电子设备200仅仅是一个示例,不应对本申请实施例的功能和使用范围带来任何限制。
如图4所示,电子设备200以通用计算设备的形式表现。电子设备200的组件可以包括但不限于:至少一个处理单元210、至少一个存储单元220、连接不同系统组件(包括存储单元220和处理单元210)的总线230、显示单元240等。
其中,存储单元存储有程序代码,程序代码可以被处理单元210执行,使得处理单元210执行本说明书描述的根据本申请各种示例性实施方式的方法。
存储单元220可以包括易失性存储单元形式的可读介质,例如随机存取存储单元(RAM)2201和/或高速缓存存储单元2202,还可以进一步包括只读存储单元(ROM)2203。
存储单元220还可以包括具有一组(至少一个)程序模块2205的程序/实用工具2204,这样的程序模块2205包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
总线230可以为表示几类总线结构中的一种或多种,包括存储单元总线或者存储单元控制器、外围总线、图形加速端口、处理单元或者使用多种总线结构中的任意总线结构的局域总线。
电子设备200也可以与一个或多个外部设备300(例如键盘、指向设备、蓝牙设备等)通信,还可与一个或者多个使得用户能与该电子设备200交互的设备通信,和/或与使得该电子设备200能与一个或多个其它计算设备进行通信的任何设备(例如路由器、调制解调器等等)通信。这种通信可以通过输入/输出(I/O)接口250进行。并且,电子设备200还可以通过网络适配器260与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。网络适配器260可以通过总线230与电子设备200的其它模块通信。应当明白,尽管图中未示出,可以结合电子设备200使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理单元、外部磁盘驱动阵列、RAID系统、磁带驱动器以及数据备份存储系统等。
通过以上的实施方式的描述,本领域的技术人员易于理解,这里描述的示例实施方式可以通过软件实现,也可以通过软件结合必要的硬件的方式来实现。根据本申请实施方式的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中或网络上,包括若干指令以使得一台计算设备(可以是个人计算机、服务器、或者网络设备等)执行根据本申请实施方式的上述方法。
软件产品可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以为但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
计算机可读存储介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了可读程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。可读存储介质还可以是可读存储介质以外的任何可读介质,该可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于无线、有线、光缆、RF等等,或者上述的任意合适的组合。
可以以一种或多种程序设计语言的任意组合来编写用于执行本申请操作的程序代码,程序设计语言包括面向对象的程序设计语言—诸如Java、C++等,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户计算设备上部分在远程计算设备上执行、或者完全在远程计算设备或服务器上执行。在涉及远程计算设备的情形中,远程计算设备可以通过任意种类的网络,包括局域网(LAN)或广域网(WAN),连接到用户计算设备,或者,可以连接到外部计算设备(例如利用因特网服务提供商来通过因特网连接)。
本领域技术人员可以理解上述各模块可以按照实施例的描述分布于装置中,也可以进行相应变化唯一不同于本实施例的一个或多个装置中。上述实施例的模块可以合并为一个模块,也可以进一步拆分成多个子模块。
以上具体地示出和描述了本申请的示例性实施例。应可理解的是,本申请不限于这里描述的详细结构、设置方式或实现方法;相反,本申请意图涵盖包含在所附权利要求的精神和范围内的各种修改和等效设置。
Claims (12)
1.一种区块链条件支付的方法,其特征在于,包括:
生成中间账户;
向资产接收方发送条件支付的支付启动条件;
根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付;
通过资产发送方的第一签名交易生成中间账户,并记录资产发送方账户、资产接收方账户、过期阈值和支付启动条件;
其中,所述过期阈值是执行过期检查的交易所在区块与所述第一签名交易所在区块的高度差;
所述支付启动条件包括延期支付条件、接收方确认支付条件、链内资产交换条件、链外资产交换条件;
通过认证方账户进行账户认证和证书绑定,包括:
配置认证方账户;
通过所述认证方账户认证并注册资产发送方账户和所述资产接收方账户;
通过所述认证方账户为所述资产发送方账户和所述资产接收方账户绑定证书;
通过升级合约版本,为账户管理合约增加新合约方法,所述新合约方法包括:所述中间账户的账户建立方法、所述中间账户的证书绑定方法;
所述账户管理合约和资产管理合约部署在区块链上,所述资产管理合约包括资产转移方法;
所述根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付,包括:
所述资产接收方通过第二签名交易调用所述中间账户的证书绑定方法,所述中间账户的证书绑定方法传入中间账户和对执行条件支付的证明,所述执行条件支付的证明包括超过延期交付时间、链内用于交换的资产转移签名交易已出块、目标链用于交换的资产转移签名交易已出块。
2.根据权利要求1所述的方法,其特征在于,所述根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付,包括:
通过所述资产发送方调用所述资产转移方法,向所述中间账户转移资产。
3.根据权利要求1所述的方法,其特征在于,所述根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付,还包括:
根据所述资产接收方接收的所述条件支付的支付启动条件和所述中间账户的资产,确定要进行支付,则执行条件支付;
所述执行条件支付包括等待延期时间、无动作、提交链内资产转移的签名交易并出块、提交指定目标链的资产转移的签名交易并出块。
4.根据权利要求3所述的方法,其特征在于,所述根据所述条件支付的支付启动条件,通过所述资产接收方接管中间账户,执行条件支付,还包括:
通过所述资产接收方调用所述中间账户的证书绑定方法;
执行第一权限检查,以检查调用所述中间账户的证书绑定方法的调用方是否为所述中间账户对应的接收方,如果是,则检查通过;
执行条件支付检查,所述条件支付检查包括根据所述支付启动条件检查是否满足超过所述延期时间或所述链内资产转移的签名交易已出块或所述目标链的资产转移的签名交易已出块的条件,如果满足,则检查通过;
如果所述第一权限检查和所述条件支付检查均通过,将所述中间账户的证书绑定为接收方证书,接管中间账户成功。
5.根据权利要求4所述的方法,其特征在于,所述根据所述条件支付的支付启动条件,通过资产接收方接管中间账户,执行条件支付,还包括:
如果所述接管中间账户成功,则通过所述资产接收方调用所述资产转移方法将所述中间账户中的资产转出。
6.根据权利要求3所述的方法,其特征在于,还包括:
如果确定不进行支付,则资产发送方通过签名交易调用所述中间账户的证书绑定方法;
进行第二权限检查,所述第二权限检查包括检查调用方是否为所述中间账户对应的所述资产发送方,如果是,则所述第二权限检查通过;
进行过期阈值判断,如果当前区块高度与所述第一签名交易所在区块的区块高度的差大于所述过期阈值,则判断为已过期;
如果已过期且所述第二权限检查通过,则将所述中间账户的证书绑定为发送方证书。
7.根据权利要求6所述的方法,其特征在于,还包括:
通过所述资产发送方调用所述资产转移方法将中间账户中的资产转回给资产发送方。
8.一种区块链条件支付的方法,其特征在于,包括:
接收条件支付的支付启动条件;
根据所述条件支付的支付启动条件,接管中间账户,执行条件支付,所述中间账户由资产发送方生成;
通过升级合约版本,为账户管理合约增加新合约方法,所述新合约方法包括:所述中间账户的账户建立方法、所述中间账户的证书绑定方法;
所述账户管理合约和资产管理合约部署在区块链上,所述资产管理合约包括资产转移方法;
所述根据所述条件支付的支付启动条件,接管中间账户,执行条件支付,所述中间账户由资产发送方生成,包括:
通过第二签名交易调用所述中间账户的证书绑定方法,所述中间账户的证书绑定方法传入中间账户和对执行条件支付的证明,所述执行条件支付的证明包括超过延期交付时间、链内用于交换的资产转移签名交易已出块、目标链用于交换的资产转移签名交易已出块。
9.根据权利要求8所述的方法,其特征在于,所述根据所述条件支付的支付启动条件,接管中间账户,执行条件支付,包括:
根据所述条件支付的支付启动条件和所述中间账户的资产确定要进行支付,则执行条件支付;
所述执行条件支付包括等待延期时间、无动作、提交链内资产转移的签名交易并出块、提交指定目标链的资产转移的签名交易并出块。
10.根据权利要求9所述的方法,其特征在于,所述根据所述条件支付的支付启动条件,接管中间账户,执行条件支付,还包括:
调用所述中间账户的证书绑定方法,接管所述中间账户;
执行第一权限检查,以检查调用所述中间账户的证书绑定方法的调用方是否为所述中间账户对应的接收方,如果是,则检查通过;
执行条件支付检查,包括检查是否满足超过所述延期时间或所述链内资产转移的签名交易已出块或所述目标链的资产转移的签名交易已出块;
如果所述第一权限检查和所述条件支付检查均通过,将所述中间账户的证书绑定为接收方证书。
11.根据权利要求10所述的方法,其特征在于,所述根据所述条件支付的支付启动条件,接管中间账户,执行条件支付,还包括:
调用所述资产转移方法将所述中间账户中的资产转出。
12.一种电子设备,其特征在于,包括:
存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述权利要求1-11中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210531844.3A CN114723449B (zh) | 2022-05-17 | 2022-05-17 | 区块链条件支付的方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210531844.3A CN114723449B (zh) | 2022-05-17 | 2022-05-17 | 区块链条件支付的方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114723449A CN114723449A (zh) | 2022-07-08 |
CN114723449B true CN114723449B (zh) | 2022-10-14 |
Family
ID=82231467
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210531844.3A Active CN114723449B (zh) | 2022-05-17 | 2022-05-17 | 区块链条件支付的方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114723449B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117474534B (zh) * | 2023-12-26 | 2024-03-19 | 成都天府通数字科技有限公司 | 一种条件支付的管理系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106408299B (zh) * | 2016-08-31 | 2020-04-14 | 江苏云签有限公司 | 一种基于区块链技术的电子智能签约支付方法 |
CN111311211A (zh) * | 2020-01-23 | 2020-06-19 | 腾讯科技(深圳)有限公司 | 一种基于区块链的数据处理方法以及设备 |
WO2022090769A1 (en) * | 2020-10-29 | 2022-05-05 | Islamic Development Bank Institute | A blockchain based smart voucher system |
-
2022
- 2022-05-17 CN CN202210531844.3A patent/CN114723449B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
CN114723449A (zh) | 2022-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5547803B2 (ja) | メッセージをセキュアエレメントへ送信するための方法、サーバ、およびコンピュータプログラム | |
US7844819B2 (en) | Application authentication system | |
CN108804906B (zh) | 一种用于应用登陆的系统和方法 | |
CN115719265A (zh) | 区块链实现的方法和系统 | |
US20140189880A1 (en) | System and method for administrating access control rules on a secure element | |
EP1806674A2 (en) | Method and apparatus for protection domain based security | |
JP2013546060A (ja) | アプリケーション使用ポリシーの施行 | |
CN111383114A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN111179476B (zh) | 智能锁的配置方法及控制方法、智能锁、设备和存储介质 | |
CN111402033A (zh) | 基于区块链的资产信息管理方法和装置 | |
CN109388957A (zh) | 基于区块链的信息移转方法、装置、介质及电子设备 | |
CN111159753A (zh) | 区块链智能合约管理方法及系统、存储介质及终端 | |
CN110210863A (zh) | 区块链安全交易方法、装置、电子设备及存储介质 | |
CN111199398A (zh) | 用于跨区块链资产管理的方法、设备、计算机可读存储介质和计算机程序产品 | |
JP2022525551A (ja) | データレコードのコピーの分散型台帳システムへの誤伝送の防止 | |
CN114723449B (zh) | 区块链条件支付的方法及电子设备 | |
CN113689216A (zh) | 跨链事务处理方法及装置、设备、存储介质、程序产品 | |
Khandelwal et al. | Blockchain technology based smart contract agreement on remix ide | |
CN111915308A (zh) | 一种区块链网络的交易处理方法及区块链网络 | |
AU2016332336A1 (en) | Secure file transfer with secure ssh key authentication | |
CN112837023A (zh) | 机构的业务协同平台、方法、装置及电子设备 | |
WO2015007184A1 (zh) | 多应用智能卡及智能卡多应用管理方法 | |
CN113228075A (zh) | 用于控制或强制执行在区块链上进行的转移的计算机实现的系统和方法 | |
KR100590587B1 (ko) | 복수의 보안영역을 가진 스마트카드의 보안영역 삭제 방법 | |
Pandolfi et al. | Interoperability Between DLT Following a Gateway-Based Approach: The Case of Ethereum and Hyperledger Fabric |
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 |