CN110599340A - 一种基于联盟链的代币方法、***及钱包 - Google Patents

一种基于联盟链的代币方法、***及钱包 Download PDF

Info

Publication number
CN110599340A
CN110599340A CN201910889400.5A CN201910889400A CN110599340A CN 110599340 A CN110599340 A CN 110599340A CN 201910889400 A CN201910889400 A CN 201910889400A CN 110599340 A CN110599340 A CN 110599340A
Authority
CN
China
Prior art keywords
amount
token
alliance
transaction
currency
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.)
Pending
Application number
CN201910889400.5A
Other languages
English (en)
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.)
Individual
Original Assignee
Individual
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 Individual filed Critical Individual
Priority to CN201910889400.5A priority Critical patent/CN110599340A/zh
Publication of CN110599340A publication Critical patent/CN110599340A/zh
Pending legal-status Critical Current

Links

Classifications

    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • G06Q20/3829Payment protocols; Details thereof insuring higher security of transaction involving key management
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, 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/401Transaction verification
    • G06Q20/4014Identity check for transactions
    • 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

  • Business, Economics & Management (AREA)
  • Accounting & Taxation (AREA)
  • Engineering & Computer Science (AREA)
  • Finance (AREA)
  • Strategic Management (AREA)
  • Physics & Mathematics (AREA)
  • General Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Development Economics (AREA)
  • Economics (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明提出的一种基于联盟链不需要信用中介的代币方法和***,通过去中心化的债务发行和联盟成员共同提供的信用担保,向用户提供了一种去中心化无浮动风险价值稳定的信用代币,本方法及***不仅利于联盟成员间的相互监督和有效制衡,有效避免联盟成员对代币的随意超发,而且,方便联盟成员的加入和退出。本方法和***在部署实施上,初期可以实现纸币与代币的同步流通,在现有货币体系的情况下,让代币逐步取代纸币,形态上与银行账户依赖较少,用户间的交易环节不依赖银行账户,这样方便代币的流通,易于依托代币的可追溯性实现责任监管,易于发挥数字代币的优势。

Description

一种基于联盟链的代币方法、***及钱包
技术领域
本发明属于代币领域,具体涉及一种基于联盟链的代币方法、***及钱包。
背景技术
目前市场上主流的代币都是非稳定代币,币值随市场波动而不断变化,典型代表如比特币、以太坊等,价格的大幅波动,使代币难以适应日常支付、交易、记账和核算,企业和消费者面临不必要的风险,严重阻碍了其在实际生活中的应用和介入更多的使用场景,难以大规模的采用和实现广泛的流通。
基于现状,迫切需要一种价值稳定的代币,目前的代币主要有三种模式:一、中心化的实体资产抵押模式,典型如Tether的USDT,价格锚定1美元,Tether每发行1USDT就在银行存1美元,这种模式解决方案简单直接,很好的解决了浮动风险,但带来了中心化的信任风险;二、去中心化的数字资产抵押模式,以MakerDao为例,由ETH超额担保获得锚定1美元的稳定币Dai,抵押在以太坊的智能合约中,用价值时常波动的去中心化数字资产作为抵押物,虽然解决了中心化的信任风险,但带来了浮动性风险;三、无资产抵押的铸币特权模式,Basecoin是一种典型的无资产抵押代币,在思路上和前两种代币模式不同,它的机制是发行方通过算法自动调节市场上代币的供求关系,进而将代币的价格稳定在和法币的固定比例上,这种模式完全依赖算法,虽然消除了信任风险,但仍然会面临浮动性风险。目前解决代币的方案,要么有中心化的信任风险,要么有浮动性风险,还没有一种代币方案,能够有效地同时解决代币中心化信任风险和币值浮动风险。
发明内容
本发明的目的是提供一种基于联盟链的代币方法、***及钱包,有效地解决代币中心化信任风险和币值浮动风险,用户持有的代币实际上是发行方对用户的负债,由发行方的信用作担保,债务是少数不需要托管且保持价格相对稳定的金融产品,通过去中心化的债务发行,向用户提供一种去中心化无浮动风险价值稳定的信用代币。
为了实现上述目的,根据本发明的一个方面,提供了一种基于联盟链的代币方法,包括如下步骤:
A) 联盟成员结成联盟,根据准入机制和退出机制进行加盟和退盟,遵循共识协议参与区块链共识;
B) 用户通过联盟成员注入法币,联盟成员构造创币交易发放代币;
C) 用户间用发放的代币进行转账交易;
D) 用户构造销币交易,通过联盟成员抽离法币,联盟成员回收销毁代币;
E) 联盟成员遵循共识协议对交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行清分,对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链;
F) 清算中心根据区块链上记录的退盟成员负债转让信息和联盟成员负债清分信息对退盟成员和联盟成员进行债务清算。
优选的,步骤A)中的加盟和退盟,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块。
优选的,步骤B)中的联盟成员根据代币出账发生额和创币交易费额计算构造创币交易需要的代币发放额,构造创币交易,提交到联盟链***参与共识,其中,代币出账发生额为用户注入的法币兑换额。
优选的,步骤C)中的发送方用户获取区块链上的可用代币,根据构造转账交易需要的代币支付额和转账交易费额计算转账交易代币出账发生额,构造转账交易,提交到联盟链***参与共识。
优选的,步骤D)中的发送方用户获取区块链上的可用代币,根据构造销币交易需要的代币回收额和销币交易费额计算销币交易代币出账发生额,构造销币交易,提交到联盟链***参与共识。
优选的,步骤D)中的联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币;
优选的,步骤E)中的联盟成员对共同承担的用户负债进行均等的清分。
优选的,步骤E)中的交易信息包含创币交易、转账交易和销币交易。
优选的,步骤E)和步骤F)中的退盟成员负债转让信息包含退盟成员负债转让额。
优选的,步骤E)和步骤F)中的联盟成员负债清分信息包含联盟成员负债清分均额和联盟成员负债清分额。
优选的,在多币种联盟链中,对联盟链***中的代币分币种进行操作处理。
为了实现上述目的,根据本发明的另一个方面,提供了一种基于联盟链的代币***,包括:联盟管理模块、代币发放模块、转账支付模块、代币回收模块、共识记账模块、债务清算模块,其中,
联盟管理模块,用于设定联盟成员的准入机制和退出机制,设定联盟成员参与区块链共识需要遵循的共识协议,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块;
代币发放模块,用于用户通过联盟成员注入法币,联盟成员构造创币交易,向用户发放代币,把用户注入的法币转换为可使用的代币;
转账支付模块,用于用户间进行转账支付,接收发送方用户支付的代币,花费区块链上的可用代币给接收方用户;
代币回收模块,用于用户通过联盟成员抽离法币,用户构造销币交易,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币;
共识记账模块,用于联盟成员遵循共识协议对交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行清分,对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链;
债务清算模块,用于清算中心根据区块链上记录的退盟成员负债转让信息和联盟成员负债清分信息对退盟成员和联盟成员进行债务清算。
为了实现上述目的,根据本发明的另一个方面,提供了一种基于联盟链的用户钱包,包括:密钥模块、法币模块、代币模块,其中,
密钥模块,用于用户生成、保存和管理用于交易签名的私钥、验证交易签名的公钥和用于接收代币的地址;
法币模块,用于用户支付通过联盟成员注入的法币,用于用户接收通过联盟成员抽离的法币;
代币模块,用于用户作为发送方时,构造转账交易,向接收方用户发送代币,构造销币交易,向接收方联盟成员支付用于兑换法币的代币,作为接收方时,向发送方联盟成员和发送方用户提供用于接收代币的地址。
本发明与现有技术相比的优点为:
本发明中联盟成员通过对发放代币形成的对用户负债进行清分清算,对任何一个联盟成员集中发放代币形成的对用户集中负债通过联盟成员间的清分清算,等效于每个联盟成员均参与了代币的发放,均形成了对用户的负债,通过联盟成员间对负债的清分清算可以形成任何一个联盟成员发放代币形成的对用户负债均可以由联盟成员共同提供信用担保,这样不仅可以向用户提供一种去中心化无浮动风险价值稳定的信用代币,还可以形成对各联盟成员间的相互监督和有效制衡,避免任何一个联盟成员随意的超发代币。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定,其中:
图 1 为本发明实施例提供的一种基于联盟链的代币方法主要步骤示意图;
图 2 为本发明实施例提供的联盟链代币方法中一种基于UTXO模型的交易验证主要流程示意图;
图 3为本发明实施例提供的联盟链代币方法中一种共识记账主要流程示意图;
图 4为本发明实施例提供的联盟链代币方法中一种基于Account模型的交易验证主要流程示意图;
图5为本发明实施例提供的一种基于联盟链的代币***主要模块示意图;
图6为本发明实施例提供的一种基于联盟链的用户钱包主要模块示意图。
具体实施方式
本发明的核心涉及一种基于联盟链的代币方法、***及钱包,通过去中心化的债务发行和联盟成员共同提供的信用担保,向用户提供了一种去中心化无浮动风险价值稳定的信用代币,在本发明所述的实施例中以联盟成员对共同承担的用户负债进行均等的清分为例进行说明。
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明的一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域的普通技术人员,在没有做出创造性劳动的前提下,所获得的所有其他实施例,均属于本发明保护的范围。应当理解,给出这些示例性实施例,仅仅是为了使本领域的技术员能够更好地理解进而实现本发明公开的实施例,而非以任何方式限制本发明的范围。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
下面,在对本发明实施例进行进一步详细说明之前,首先对本发明实施例中涉及的名词和术语进行说明,但这些名词和术语只是为了方便说明,并不对本发明构成任何限制。还需要说明的是,在本说明书中,涉及的诸如“ 包括”、“ 包含”及类似术语应该被理解为是开放性的术语,即“包括但不限于或者包含但不限于”,表示还可以包括或包含其他内容。
联盟是指由联盟成员结成的联合,根据准入机制和退出机制进行加盟和退盟,遵循共识协议参与区块链共识,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块。
共识协议是指预先设定的一组规则和程序,联盟成员遵循预先设定的规则和程序对交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行清分,对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链。
联盟准入机制是指联盟预先设定的用于非联盟成员加入联盟需要遵循的一组规则和程序。
联盟退出机制是指联盟预先设定的用于联盟成员退出联盟需要遵循的一组规则和程序。
联盟成员是指能够提供接入联盟链节点、不会联合欺诈、对发放的代币被信任有清偿能力,经联盟授权许可加入联盟,有权进行共识记账并承担对用户负债的实体、机构或组织等。
退盟成员是指经联盟授权许可退出联盟成为不再参与共识记账,不再发放回收代币,不再承担对用户的新增负债,但未对其承担的用户历史负债完成债务转让清算的实体、机构或组织等。
非联盟成员是指从未加入过联盟或者原来加入过联盟现已退出联盟并完成历史负债转让清算的实体、机构或组织等。
加盟区块是指非联盟成员加入联盟的起始区块,由本区块开始,非联盟成员成为有权进行共识记账,有权发放回收代币,并承担对用户负债的联盟成员。
退盟区块是指联盟成员退出联盟的起始区块,由本区块开始,联盟成员成为不能再参与共识记账,不能再发放回收代币,不再承担对用户的新增负债,并把其承担的用户历史负债进行转让的退盟成员。
代币是指通过区块链***与价值稳定波动较小的法币或法币组合锚定挂购的加密货币,在本发明所述的实施例中分别以锚定挂钩一种法币、“一篮子法币”和多币种法币为例进行说明,在锚定挂钩的一种法币或“一篮子法币”的实施例中,联盟链***中代币的货币单位为同一币种的货币单位,记为同币种联盟链,在锚定挂钩的多币种法币的实施例中,联盟链***中代币的货币单位可以为多个币种的货币单位,记为多币种联盟链。
UTXO是不能再分割的代币基本单位,是未花费的交易输出,是被所有者锁定并记录于区块链中,被整个联盟链***识别成货币单位的一定数额的代币,在花费时会被当作一个整体消耗掉。
交易费是指处理交易的费用,用以防止垃圾交易、流量攻击等。
候选交易集是指根据共识协议中的交易验证规则标准,由通过合法性验证的交易组成的集合。
电子货币是等值法币的数据表示,可以以等值法币的数据形式存储到银行账户,也可以方便的通过银行账户兑换为法币。
清算中心是指联盟公认的可以根据区块链上记录的退盟成员负债转让信息和联盟成员负债清分信息对退盟成员和联盟成员进行资金划拨和债务核销的实体、机构或组织等。
图1为本发明实施例提供的一种基于联盟链的代币方法主要步骤示意图,参考图1提供一种能有效地同时解决代币中心化信任风险和币值浮动风险,基于UTXO模型的同币种联盟链代币实施方案,在本实施方案中代币和交易费所属货币单位使用同一币种的货币单位作为记账单位。
在本实施方案中,当代币和交易费把锚定挂钩的法币所属货币单位作为记账单位时,当注入和抽离法币时,法币和代币按1:1的比例进行兑换,当进行债务清算时,清算中心采用锚定挂钩的法币进行资金划拨和债务核销,法币和代币按1:1的比例进行换算。
在本实施方案中,当代币和交易费把锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时,当注入法币时,法币和代币按“一篮子法币”注入汇率进行兑换,当抽离法币时,法币和代币按“一篮子法币”抽离汇率进行兑换,当进行债务清算时,清算中心采用联盟公认的法币进行资金划拨和债务核销,法币和代币按“一篮子法币”清算汇率进行换算。
基于UTXO模型的同币种联盟链代币实施方案主要包括如下步骤:
步骤S101,全体联盟成员结成联盟,预先设定联盟成员的准入机制和退出机制,预先设定联盟成员参与区块链共识需要遵循的共识协议,联盟成员各自提供节点接入联盟链,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块;
步骤S102,用户向联盟成员支付法币,联盟成员根据代币出账发生额和创币交易费额计算构造创币交易需要的代币发放额,构造创币交易,提交到联盟链***参与共识,其中,代币出账发生额为用户注入的法币兑换额;
代币发放额计算公式:代币发放额=代币出账发生额-创币交易费额。
在法币的注入过程中,当代币和交易费把锚定挂钩的法币所属货币单位作为记账单位时,代币出账发生额为用户注入法币后按1:1的比例兑换的代币额,代币出账发生额=用户注入的法币额,创币交易费额是以锚定挂钩的法币所属货币单位作为记账单位时的交易费额。
在法币的注入过程中,当代币和交易费把锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时,代币出账发生额为用户注入法币后按“一篮子法币”注入汇率兑换的代币额,代币出账发生额=用户注入的法币额ד一篮子法币”注入汇率,其中,“一篮子法币”注入汇率是用“一篮子法币”所属货币单位表示注入的法币所属货币单位的价格,创币交易费额是以锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时的交易费额。
联盟成员构造的创币交易包含代币发放额、接收方用户提供的代币接收地址和附加的联盟成员对创币交易的签名,联盟成员通过签名可以向联盟链***提供代币发放的凭证,联盟链***通过签名可以确认发送构造创币交易的联盟成员。
用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户只有用自己的私钥签名才能解锁并发送给下一位所有者。
联盟成员发放的代币是合法代币的源头,是代币全生命周期的起点,联盟成员基于UTXO模型构造的创币交易不消耗 UTXO,不需要找零,不需要考虑重放攻击,是联盟成员签发的用户拥有合法代币的证明。
步骤S103,发送方用户获取区块链上的可用代币,根据构造转账交易需要的代币支付额和转账交易费额计算转账交易代币出账发生额,构造转账交易,提交到联盟链***参与共识;
发送方用户通过扫描区块链汇聚属于本用户的 UTXO 来获取本用户的可用代币。
代币出账发生额计算公式:代币出账发生额=代币支付额+转账交易费额。
发送方用户基于UTXO模型构造的转账交易包含转账输入和转账输出,转账输入包含发送方用户引用的UTXO和UTXO解锁脚本,转账输出包含代币支付额和代币支付锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在转账输出中,追加找零金额和发送方用户提供的找零锁定脚本,以便把找零金额再返还给发送方用户。
转账交易UTXO解锁脚本包含发送方用户对引用的UTXO和转账输出的签名,发送方用户通过签名来解锁UTXO,并使用接收方用户提供的代币接收地址来锁定转账支付的代币并创建新的 UTXO,需要时发送方用户还提供找零代币接收地址来锁定用于找零的代币并创建新的 UTXO,联盟链***通过签名可以确认发送构造转账交易的用户。
代币支付锁定脚本包含接收方用户提供的代币接收地址,用于锁定转账支付的代币,用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户只有用自己的私钥签名才能解锁并发送给下一位所有者。
转账输出最多包含两种锁定脚本:代币支付锁定脚本和找零锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在转账输出中,追加找零金额和发送方用户提供的找零锁定脚本,以便把找零金额再返还给发送方用户。
找零金额为发送方用户在交易中未消耗的剩余UTXO引用额,找零金额=发送方用户UTXO引用额-代币出账发生额。
找零锁定脚本包含发送方用户提供的找零代币接收地址,用于锁定找零代币,用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户只有用自己的私钥签名才能解锁并发送给下一位所有者。
步骤S104,发送方用户获取区块链上的可用代币,根据构造销币交易需要的代币回收额和销币交易费额计算销币交易代币出账发生额,构造销币交易,提交到联盟链***参与共识,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币。
发送方用户通过扫描区块链汇聚属于本用户的 UTXO 来获取本用户的可用代币。
代币出账发生额计算公式:代币出账发生额=代币回收额+销币交易费额。
发送方用户基于UTXO 模型构造的销币交易包含销币输入和销币输出,销币输入包含发送方用户引用的UTXO和UTXO解锁脚本,销币输出包含代币回收额和代币回收锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在销币输出中,追加找零金额和发送方用户提供的找零锁定脚本,以便把找零金额再返还给发送方用户。
销币交易UTXO解锁脚本包含发送方用户对引用的UTXO和销币输出的签名,发送方用户通过签名来解锁UTXO,并使用接收方联盟成员提供的代币接收地址来锁定和销毁代币,需要时发送方用户还提供找零代币接收地址来锁定用于找零的代币并创建新的 UTXO,联盟链***通过签名可以确认发送构造销币交易的用户。
代币回收锁定脚本包含接收方联盟成员提供的代币接收地址,用于联盟链***识别回收销毁代币的联盟成员,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币,被回收销毁的代币可以被查询不可以再次被花费。
联盟成员提供的代币接收地址可以有两种可选实现方式,一种回收销毁代币的接收地址由联盟成员的公钥生成,并与联盟成员的私钥相匹配,联盟成员仅能用私钥访问查询,以便根据回收销毁的代币兑换用户需要的法币,不可以通过私钥再次花费代币,一旦出现,联盟链***会立即标记为无效交易,另外一种回收销毁代币的接收地址仅作为识别联盟成员的ID标识使用,不与私钥相匹配,不可以再次被花费,可以通过设置控制访问的PIN码查询,以便根据回收销毁的代币兑换用户需要的法币。
销币输出最多包含两种锁定脚本:代币回收锁定脚本和找零锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在销币输出中,追加找零金额和发送方用户提供的找零锁定脚本,以便把找零金额再返还给发送方用户。
找零金额为发送方用户在交易中未消耗的剩余UTXO引用额,找零金额=发送方用户UTXO引用额-代币出账发生额。
找零锁定脚本包含发送方用户提供的找零代币接收地址,用于锁定找零代币,用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户只有用自己的私钥签名才能解锁并发送给下一位所有者。
在法币的抽离过程中,当代币把锚定挂钩的法币所属货币单位作为记账单位时,用户抽离法币额=代币回收额,联盟成员根据回收销毁的代币额按1:1的比例兑换给用户需要的法币。
在法币的抽离过程中,当代币把锚定挂钩的“一篮子法币”所属货币单位作为记账单位时,用户抽离法币额=代币回收额ד一篮子法币”抽离汇率,联盟成员根据回收销毁的代币额按“一篮子法币”抽离汇率兑换给用户需要的法币,其中,“一篮子法币”抽离汇率是用抽离的法币所属货币单位表示“一篮子法币”所属货币单位的价格。
步骤S105,联盟成员遵循预先设定的共识协议各自独立对收集到的交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行均等的清分,通过交流投票信息对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链。
为了对步骤S105中基于UTXO模型的交易验证流程进一步详细完整的描述,下面结合附图2说明如下:
步骤S201,联盟成员各自检验待验证交易是否为创币交易,若是,进入步骤S205,若不是,进入步骤S202;
步骤S202,联盟成员各自沿着区块链按时间倒序根据交易输入指向的UTXO形成的交易链条,追溯待验证交易之前发生的所有交易,直至创币交易,并进入步骤S203;
步骤S203,联盟成员各自检验待验证交易引用的UTXO是否首次被引用且引用额是否不小于交易所需消耗量并被作为整体一次性消耗掉,若是,进入步骤S204,若不是,进入步骤S206;
步骤S204,联盟成员各自检验待验证交易引用的UTXO交易链条是否是联盟链***唯一公认的历史交易序列且链条上的交易引用量是否均不小于交易所需消耗量并被作为整体一次性消耗掉,若是,进入步骤S205,若不是,进入步骤S206;
步骤S205,待验证交易通过合法性验证,可以被联盟成员放入候选交易集。
步骤S206,待验证交易未通过合法性验证,不能被联盟成员放入候选交易集。
基于UTXO模型的交易验证流程在实际应用中,各个联盟成员对共识过的UTXO可做好便于应用查询的记录,需要时,联盟成员可根据记录的UTXO情况,直接引用,不必进行重复的追溯校验,可进一步提高联盟链***的交易处理速度。
为了对步骤S105中基于UTXO模型的共识记账流程进一步详细完整的描述,下面结合附图3说明如下:
步骤S301,联盟成员各自尽可能多的收集待验证交易,各自独立对收集到的待验证交易进行合法性验证,通过合法性验证的交易形成候选交易集,并进入步骤S302;
步骤S302,联盟成员各自计算基于候选交易集的新增代币负债额,并进入步骤S303;
基于候选交易集的新增代币负债额公式:新增代币负债额=创币交易代币发放额汇总求和-销币交易代币回收额汇总求和-转账交易费额汇总求和-销币交易费额汇总求和。
新增代币负债额结果为正数表示联盟成员共同负债额的增加量,结果为负数表示联盟成员共同负债额的减少量,结果为零表示联盟成员共同负债额未发生增减。
步骤S303,联盟成员各自计算基于候选交易集的新增流通代币额,并进入步骤S304;
基于候选交易集的新增流通代币额公式:新增流通代币额=创币交易代币发放额汇总求和+转账交易代币支付额汇总求和+找零金额汇总求和-UTXO引用额汇总求和。
新增流通代币额结果为正数表示流通代币额的增加量,结果为负数表示流通代币额的减少量,结果为零表示流通代币额未发生增减。
步骤S304,联盟成员各自检验新增代币负债额和新增流通代币额是否相等,若不相等,重复步骤S301至步骤S304,若相等,进入步骤S305;
步骤S305,联盟成员各自检验是否有联盟成员退盟,若无退盟成员,则进入步骤S306,若有退盟成员,则进入步骤S307;
步骤S306,联盟成员各自计算基于候选交易集无退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额,各自形成包含候选交易集、无退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额的候选记账提案,并进入步骤S309;
基于候选交易集无退盟成员的联盟成员负债清分均额公式:无退盟成员的联盟成员负债清分均额=新增代币负债额÷联盟成员数量。
联盟成员负债清分均额结果为正数表示每个联盟成员的平均负债增加额,结果为负数表示每个联盟成员的平均负债减少额,结果为零表示每个联盟成员的平均负债额未发生增减。
基于候选交易集无退盟成员的某联盟成员负债清分额公式:无退盟成员的某联盟成员负债清分额=该联盟成员代币发放额汇总求和+该联盟成员创币交易费汇总求和-该联盟成员代币回收额汇总求和-交易费均额-无退盟成员的联盟成员负债清分均额,
其中,基于候选交易集的交易费均额公式:交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量。
某联盟成员负债清分额结果为正数表示该联盟成员以代币所属货币单位的法币作为清算货币时应付的清算法币额,结果为负数表示该联盟成员以代币所属货币单位的法币作为清算货币时应收的清算法币额,结果为零表示该联盟成员以代币所属货币单位的法币作为清算货币时应收应付的清算法币额为零。
步骤S307,联盟成员各自计算基于历史负债的各个退盟成员负债转让额和退盟成员负债转让均额,并进入步骤S308;
基于历史负债的某退盟成员负债转让额公式:某退盟成员负债转让额=该退盟成员从加盟区块起至退盟区块止且不包含退盟区块的所有区块上记录的该退盟成员作为联盟成员时的负债清分均额汇总求和。
某退盟成员负债转让额结果为正数表示该退盟成员以代币所属货币单位的法币作为清算货币时应收的清算法币额,结果为负数表示该退盟成员以代币所属货币单位的法币作为清算货币时应付的清算法币额,结果为零表示该退盟成员以代币所属货币单位的法币作为清算货币时应收应付的清算法币额为零。
基于历史负债的退盟成员负债转让均额公式:退盟成员负债转让均额=在该区块退盟的所有退盟成员的负债转让额汇总求和÷联盟成员数量。
退盟成员负债转让均额结果为正数表示每个联盟成员以代币所属货币单位的法币作为清算货币时均应付的清算法币额,结果为负数表示每个联盟成员以代币所属货币单位的法币作为清算货币时均应收的清算法币额,结果为零表示每个联盟成员以代币所属货币单位的法币作为清算货币时均应收应付的清算法币额为零。
步骤S308,联盟成员各自计算基于候选交易集和历史负债有退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额,各自形成包含候选交易集、各个退盟成员负债转让额、有退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额的候选记账提案,并进入步骤S309;
基于候选交易集和历史负债有退盟成员的联盟成员负债清分均额公式:有退盟成员的联盟成员负债清分均额=新增代币负债额÷联盟成员数量+退盟成员负债转让均额。
联盟成员负债清分均额结果为正数表示每个联盟成员的平均负债增加额,结果为负数表示每个联盟成员的平均负债减少额,结果为零表示每个联盟成员的平均负债额未发生增减。
基于候选交易集和历史负债有退盟成员的某联盟成员负债清分额公式:有退盟成员的某联盟成员负债清分额=该联盟成员代币发放额汇总求和+该联盟成员创币交易费汇总求和-该联盟成员代币回收额汇总求和-交易费均额-有退盟成员的联盟成员负债清分均额,
其中,基于候选交易集的交易费均额公式:交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量。
某联盟成员负债清分额结果为正数表示该联盟成员以代币所属货币单位的法币作为清算货币时应付的清算法币额,结果为负数表示该联盟成员以代币所属货币单位的法币作为清算货币时应收的清算法币额,结果为零表示该联盟成员以代币所属货币单位的法币作为清算货币时应收应付的清算法币额为零。
联盟成员负债清分均额可以有两种:无退盟成员的联盟成员负债清分均额和有退盟成员的联盟成员负债清分均额,有退盟成员的联盟成员负债清分均额公式,当退盟成员负债转让均额按零值计算时,即退变为无退盟成员的联盟成员负债清分均额公式。
联盟成员负债清分额可以有两种:无退盟成员的联盟成员负债清分额和有退盟成员的联盟成员负债清分额,有退盟成员的联盟成员负债清分额公式,当退盟成员负债转让均额按零值计算时,即退变为无退盟成员的联盟成员负债清分额公式。
候选记账提案为Merkle树的数据结构,步骤S306中形成的候选记账提案为无联盟成员退盟的情况下形成的候选记账提案,步骤S308中形成的候选记账提案为有联盟成员退盟的情况下形成的候选记账提案。
步骤S309,联盟成员各自独立把形成的候选记账提案提交到联盟链***通过交流投票信息达成共识一致并记账到区块链。
步骤S106,清算中心定期对区块链进行分段清算,根据清算区段上记录的各个联盟成员负债清分额,计算出各个联盟成员区段负债清分额 ;
某联盟成员区段负债清分额公式:某联盟成员区段负债清分额=清算区段上实际记录的该联盟成员负债清分额汇总求和。
清算区段上实际记录的联盟成员负债清分额可以有两种:无退盟成员的联盟成员负债清分额和有退盟成员的联盟成员负债清分额。
当清算区段上无联盟成员退盟时,退盟成员负债转让额按零值计算,当清算区段上有联盟成员退盟时,各退盟成员负债转让额按区块链上实际记录的转让额计算。
某联盟成员区段负债清分额结果为正数表示该联盟成员以代币所属货币单位的法币作为清算货币时应付的清算法币额,结果为负数表示该联盟成员以代币所属货币单位的法币作为清算货币时应收的清算法币额,结果为零表示该联盟成员以代币所属货币单位的法币作为清算货币时应收应付的清算法币额为零。
清算中心根据清算区段上实际记录的各个退盟成员负债转让额和计算出的各个联盟成员区段负债清分额,对各个退盟成员和各个联盟成员进行资金划拨和债务核销。
在债务的清算过程中,当代币把锚定挂钩的法币所属货币单位作为记账单位时,清算中心采用锚定挂钩的法币进行资金划拨和债务核销,法币和代币按1:1的比例进行换算,某退盟成员法币清算额=该退盟成员负债转让额,某联盟成员法币清算额=该联盟成员区段负债清分额。
在债务的清算过程中,当代币把锚定挂钩的“一篮子法币”作为记账单位时,清算中心采用联盟公认的法币进行资金划拨和债务核销,法币和代币按“一篮子法币”清算汇率进行换算,某退盟成员法币清算额=该退盟成员负债转让额ד一篮子法币”清算汇率,某联盟成员法币清算额=该联盟成员区段负债清分额ד一篮子法币”清算汇率,其中,“一篮子法币”清算汇率是用清算的法币所属货币单位表示“一篮子法币”所属货币单位的价格。
图1为本发明实施例提供的一种基于联盟链的代币方法主要步骤示意图,参考图1再提供一种能有效地同时解决代币中心化信任风险和币值浮动风险,基于Account模型的同币种联盟链代币实施方案,在本实施方案中代币和交易费所属货币单位使用同一币种的货币单位作为记账单位。
在本实施方案中,当代币和交易费把锚定挂钩的法币所属货币单位作为记账单位时,当注入和抽离法币时,法币和代币按1:1的比例进行兑换,当进行债务清算时,清算中心采用锚定挂钩的法币进行资金划拨和债务核销,法币和代币按1:1的比例进行换算。
在本实施方案中,当代币和交易费把锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时,当注入法币时,法币和代币按“一篮子法币”注入汇率进行兑换,当抽离法币时,法币和代币按“一篮子法币”抽离汇率进行兑换,当进行债务清算时,清算中心采用联盟公认的法币进行资金划拨和债务核销,法币和代币按“一篮子法币”清算汇率进行换算。
基于Account模型的同币种联盟链代币实施方案主要包括如下步骤:
步骤S101,全体联盟成员结成联盟,预先设定联盟成员的准入机制和退出机制,预先设定联盟成员参与区块链共识需要遵循的共识协议,联盟成员各自提供节点接入联盟链,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块;
步骤S102,用户向联盟成员支付法币,联盟成员根据代币出账发生额和创币交易费额计算构造创币交易需要的代币发放额,构造创币交易,提交到联盟链***参与共识,其中,代币出账发生额为用户注入的法币兑换额;
代币发放额计算公式:代币发放额=代币出账发生额-创币交易费额。
在法币的注入过程中,当代币和交易费把锚定挂钩的法币所属货币单位作为记账单位时,代币出账发生额为用户注入法币后按1:1的比例兑换的代币额,代币出账发生额=用户注入的法币额,创币交易费额是以锚定挂钩的法币所属货币单位作为记账单位时的交易费额。
在法币的注入过程中,当代币和交易费把锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时,代币出账发生额为用户注入法币后按“一篮子法币”注入汇率兑换的代币额,代币出账发生额=用户注入的法币额ד一篮子法币”注入汇率,其中,“一篮子法币”注入汇率是用“一篮子法币”所属货币单位表示注入的法币所属货币单位的价格,创币交易费额是以锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时的交易费额。
联盟成员构造的创币交易包含代币发放额、接收方用户提供的代币接收地址和附加的联盟成员对创币交易的签名。
用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户可以使用私钥重新构造和签署交易。
联盟成员通过签名可以向联盟链***提供代币发放的凭证,联盟链***通过签名可以确认发送构造创币交易的联盟成员。
联盟成员发放的代币是合法代币的源头,是代币全生命周期的起点,联盟成员基于Account模型构造的创币交易不需要考虑重放攻击,是联盟成员签发的用户拥有合法代币的证明。
步骤S103,发送方用户获取区块链上的可用代币,根据构造转账交易需要的代币支付额和转账交易费额计算转账交易代币出账发生额,构造转账交易,提交到联盟链***参与共识;
发送方用户通过扫描区块链计算属于本用户的代币轧差额来获取本用户的可用代币。
代币出账发生额计算公式:代币出账发生额=代币支付额+转账交易费额。
发送方用户基于Account模型构造的转账交易包含代币支付额、接收方用户提供的代币接收地址、nonce和附加的发送方用户对转账交易的签名。
nonce是用来防止重放攻击仅使用一次的数字。
用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户可以使用私钥重新构造和签署交易。
发送方用户通过签名可以向联盟链***提供代币转账的凭证,联盟链***通过签名可以确认发送构造转账交易的用户。
步骤S104,发送方用户获取区块链上的可用代币,根据构造销币交易需要的代币回收额和销币交易费额计算销币交易代币出账发生额,构造销币交易,提交到联盟链***参与共识,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币。
发送方用户通过扫描区块链计算属于本用户的代币轧差额来获取本用户的可用代币。
代币出账发生额计算公式:代币出账发生额=代币回收额+销币交易费额。
发送方用户基于Account模型构造的销币交易包含代币回收额、接收方联盟成员提供的代币接收地址、nonce和附加的发送方用户对销币交易的签名。
nonce是用来防止重放攻击仅使用一次的数字。
联盟成员提供的代币接收地址,用于联盟链***识别回收销毁代币的联盟成员,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币,被回收销毁的代币可以被查询不可以再次被花费。
联盟成员提供的代币接收地址可以有两种可选实现方式,一种回收代币的接收地址由联盟成员的公钥生成,并与联盟成员的私钥相匹配,联盟成员仅能用私钥访问查询,以便根据回收销毁的代币兑换用户需要的法币,不可以通过私钥再次花费代币,一旦出现,联盟链***会立即标记为无效交易,另外一种回收销毁代币的接收地址仅作为识别联盟成员的ID标识使用,不与私钥相匹配,不可以再次被花费,可以通过设置控制访问的PIN 码查询,以便根据回收销毁的代币兑换用户需要的法币。
发送方用户通过签名可以向联盟链***提供代币兑换的凭证,联盟链***通过签名可以确认发送构造销币交易的用户。
在法币的抽离过程中,当代币把锚定挂钩的法币所属货币单位作为记账单位时,用户抽离法币额=代币回收额,联盟成员根据回收销毁的代币额按1:1的比例兑换给用户需要的法币。
在法币的抽离过程中,当代币把锚定挂钩的“一篮子法币”所属货币单位作为记账单位时,用户抽离法币额=代币回收额ד一篮子法币”抽离汇率,联盟成员根据回收销毁的代币额按“一篮子法币”抽离汇率兑换给用户需要的法币,其中,“一篮子法币”抽离汇率是用抽离的法币所属货币单位表示“一篮子法币”所属货币单位的价格。
步骤S105,联盟成员遵循预先设定的共识协议各自独立对收集到的交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行均等的清分,通过交流投票信息对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链。
为了对步骤S105中基于Account模型的交易验证流程进一步详细完整的描述,下面结合附图4说明如下:
步骤S401,联盟成员各自检验待验证交易是否是创币交易,若是,进入步骤S406,若不是,进入步骤S402;
步骤S402,联盟成员各自从创世区块开始沿着区块链按时间正序遵循代币的发放流通路径,根据用户参与区块链的顺序,按区块产生的顺序逐块检验区块内用户的代币余额来源,直至正被共识的区块,并进入步骤S403;
创世区块是指区块链上的第一个区块,用于初始化代币。
步骤S403,联盟成员各自检验被检区块是否是正被共识的区块,若是,进入步骤S404,若不是,进入步骤S409;
步骤S404,联盟成员各自检验构造待验证交易的用户是否是合法用户,若是,进入步骤S405,若不是,进入步骤S407;
合法用户为符合条件1至条件3中任一条件的用户:条件1、用户的代币余额来源仅由创币交易构成;条件2、用户的代币余额来源仅由合法用户构造的合法交易构成;条件3、用户的代币余额来源由创币交易和合法用户构造的合法交易共同构成。
步骤S405,联盟成员各自检验合法用户构造的待验证交易是否是合法交易,若是,进入步骤S406,若不是,进入步骤S407;
合法交易为符合条件1至条件2中任一条件的交易:条件1、交易为创币交易;条件2、合法用户构造的基于nonce且出账发生额不小于交易所需消耗量的交易。
步骤S406,待验证交易通过合法性验证,可以放入候选交易集,并进入步骤S408;
步骤S407,待验证交易未通过合法性验证,不能被放入候选交易集,并进入步骤S408;
步骤S408,联盟成员各自重复步骤404至步骤407,遍历收集的所有待验证交易。
步骤S409,联盟成员各自检验用户的代币余额来源是否合法,若是,进入步骤S410,若不是,进入步骤S411;
步骤S410,被检用户为合法用户,并进入步骤S412;
步骤S411,被检用户为非法用户,并进入步骤S412;
步骤S412,联盟成员各自重复步骤409至步骤411,遍历被检区块内的所有用户后,进入步骤S403。
基于Account模型的交易验证流程在实际应用中,各个联盟成员对共识过的合法用户可做好便于应用查询的记录,需要时,联盟成员可根据记录的合法用户情况,直接应用,不必遵循代币的发放流通路径进行重复的校验,可进一步提高联盟链***的交易验证处理速度。
为了对步骤S105中基于Account模型的共识记账流程进一步详细完整的描述,下面结合附图3说明如下:
步骤S301,联盟成员各自尽可能多的收集待验证交易,各自独立对收集到的待验证交易进行合法性验证,通过合法性验证的交易形成候选交易集,并进入步骤S302;
步骤S302,联盟成员各自基于候选交易集按联盟成员进行发生额汇总,得到各个联盟成员基于候选交易集的出账发生额和入账发生额,同时,汇总交易费发生额,计算出基于候选交易集的交易费均额,再计算出基于候选交易集的各个联盟成员轧差额,根据各个联盟成员轧差额计算出基于候选交易集的新增代币负债额,并进入步骤S303;
基于候选交易集的某联盟成员轧差额公式:某联盟成员轧差额=该联盟成员出账发生额-该联盟成员入账发生额-交易费均额。
其中,基于候选交易集的该联盟成员出账发生额公式:该联盟成员出账发生额=该联盟成员代币发放额汇总求和+该联盟成员创币交易费汇总求和,
其中,基于候选交易集的该联盟成员入账发生额公式:该联盟成员入账发生额=该联盟成员代币回收额汇总求和,
其中,基于候选交易集的交易费均额公式:交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量。
某联盟成员轧差额结果为正数表示该联盟成员的负债增加额,结果为负数表示该联盟成员的负债减少额,结果为零表示该联盟成员的负债额未发生增减。
基于候选交易集的新增代币负债额公式:新增代币负债额=各联盟成员轧差额汇总求和;
新增代币负债额结果为正数表示联盟成员共同负债额的增加量,结果为负数表示联盟成员共同负债额的减少量,结果为零表示联盟成员共同负债额未发生增减。
步骤S303,联盟成员各自基于候选交易集按用户进行发生额汇总,得到各个用户基于候选交易集的出账发生额和入账发生额,再计算出基于候选交易集的各个用户代币轧差额,根据各个用户代币轧差额计算出基于候选交易集的新增流通代币额,并进入步骤S304;
基于候选交易集的某用户代币轧差额公式:某用户代币轧差额=该用户入账发生额-该用户出账发生额。
其中,基于候选交易集的该用户入账发生额公式:该用户入账发生额=该用户作为创币交易接收方时的代币发放额汇总求和+该用户作为转账交易接收方时的代币支付额汇总求和。
其中,基于候选交易集的该用户出账发生额公式:该用户出账发生额=该用户作为转账交易发送方时的代币支付额汇总求和+该用户作为转账交易发送方时的转账交易费汇总求和+该用户作为销币交易发送方时的代币回收额汇总求和+该用户作为销币交易发送方时的销币交易费汇总求和。
某用户代币轧差额结果为正数表示该用户的可用代币增加额,结果为负数表示该用户的可用代币减少额,结果为零表示该用户的可用代币额未发生增减。
基于候选交易集的新增流通代币额公式:新增流通代币额=各用户代币轧差额汇总求和。
新增流通代币额结果为正数表示流通代币额的增加量,结果为负数表示流通代币额的减少量,结果为零表示流通代币额未发生增减。
步骤S304,联盟成员各自检验新增代币负债额和新增流通代币额是否相等,若不相等,重复步骤S301至步骤S304,若相等,进入步骤S305;
步骤S305,联盟成员各自检验是否有联盟成员退盟,若无退盟成员,则进入步骤S306,若有退盟成员,则进入步骤S307;
步骤S306,联盟成员各自计算基于候选交易集无退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额,各自形成包含候选交易集、无退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额的候选记账提案,并进入步骤S309;
基于候选交易集无退盟成员的联盟成员负债清分均额公式:无退盟成员的联盟成员负债清分均额=新增代币负债额÷联盟成员数量。
联盟成员负债清分均额结果为正数表示每个联盟成员的平均负债增加额,结果为负数表示每个联盟成员的平均负债减少额,结果为零表示每个联盟成员的平均负债额未发生增减。
基于候选交易集无退盟成员的某联盟成员负债清分额公式:无退盟成员的某联盟成员负债清分额=该联盟成员轧差额-无退盟成员的联盟成员负债清分均额。
某联盟成员负债清分额结果为正数表示该联盟成员以代币所属货币单位的法币作为清算货币时应付的清算法币额,结果为负数表示该联盟成员以代币所属货币单位的法币作为清算货币时应收的清算法币额,结果为零表示该联盟成员以代币所属货币单位的法币作为清算货币时应收应付的清算法币额为零。
步骤S307,联盟成员各自计算基于历史负债的各个退盟成员负债转让额和退盟成员负债转让均额,并进入步骤S308;
基于历史负债的某退盟成员负债转让额公式:某退盟成员负债转让额=该退盟成员从加盟区块起至退盟区块止且不包含退盟区块的所有区块上记录的该退盟成员作为联盟成员时的负债清分均额汇总求和。
某退盟成员负债转让额结果为正数表示该退盟成员以代币所属货币单位的法币作为清算货币时应收的清算法币额,结果为负数表示该退盟成员以代币所属货币单位的法币作为清算货币时应付的清算法币额,结果为零表示该退盟成员以代币所属货币单位的法币作为清算货币时应收应付的清算法币额为零。
基于历史负债的退盟成员负债转让均额公式:退盟成员负债转让均额=在该区块退盟的所有退盟成员的负债转让额汇总求和÷联盟成员数量。
退盟成员负债转让均额结果为正数表示每个联盟成员以代币所属货币单位的法币作为清算货币时均应付的清算法币额,结果为负数表示每个联盟成员以代币所属货币单位的法币作为清算货币时均应收的清算法币额,结果为零表示每个联盟成员以代币所属货币单位的法币作为清算货币时均应收应付的清算法币额为零。
步骤S308,联盟成员各自计算基于候选交易集和历史负债有退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额,各自形成包含候选交易集、各个退盟成员负债转让额、有退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额的候选记账提案,并进入步骤S309;
基于候选交易集和历史负债有退盟成员的联盟成员负债清分均额公式:有退盟成员的联盟成员负债清分均额=新增代币负债额÷联盟成员数量+退盟成员负债转让均额。
联盟成员负债清分均额结果为正数表示每个联盟成员的平均负债增加额,结果为负数表示每个联盟成员的平均负债减少额,结果为零表示每个联盟成员的平均负债额未发生增减。
基于候选交易集和历史负债有退盟成员的某联盟成员负债清分额公式:有退盟成员的某联盟成员负债清分额=该联盟成员轧差金额-有退盟成员的联盟成员负债清分均额。
某联盟成员负债清分额结果为正数表示该联盟成员以代币所属货币单位的法币作为清算货币时应付的清算法币额,结果为负数表示该联盟成员以代币所属货币单位的法币作为清算货币时应收的清算法币额,结果为零表示该联盟成员以代币所属货币单位的法币作为清算货币时应收应付的清算法币额为零。
联盟成员负债清分均额可以有两种:无退盟成员的联盟成员负债清分均额和有退盟成员的联盟成员负债清分均额,有退盟成员的联盟成员负债清分均额公式,当退盟成员负债转让均额按零值计算时,即退变为无退盟成员的联盟成员负债清分均额公式。
联盟成员负债清分额可以有两种:无退盟成员的联盟成员负债清分额和有退盟成员的联盟成员负债清分额,有退盟成员的联盟成员负债清分额公式,当退盟成员负债转让均额按零值计算时,即退变为无退盟成员的联盟成员负债清分额公式。
候选记账提案为Merkle树的数据结构,步骤S306中形成的候选记账提案为无联盟成员退盟的情况下形成的候选记账提案,步骤S308中形成的候选记账提案为有联盟成员退盟的情况下形成的候选记账提案。
步骤S309,联盟成员各自独立把形成的候选记账提案提交到联盟链***通过交流投票信息达成共识一致并记账到区块链。
步骤S106,清算中心定期对区块链进行分段清算,根据清算区段上记录的各个联盟成员负债清分额,计算出各个联盟成员区段负债清分额 ;
某联盟成员区段负债清分额公式:某联盟成员区段负债清分额=清算区段上实际记录的该联盟成员负债清分额汇总求和。
清算区段上实际记录的联盟成员负债清分额可以有两种:无退盟成员的联盟成员负债清分额和有退盟成员的联盟成员负债清分额。
当清算区段上无联盟成员退盟时,退盟成员负债转让额按零值计算,当清算区段上有联盟成员退盟时,各退盟成员负债转让额按区块链上实际记录的转让额计算。
某联盟成员区段负债清分额结果为正数表示该联盟成员以代币所属货币单位的法币作为清算货币时应付的清算法币额,结果为负数表示该联盟成员以代币所属货币单位的法币作为清算货币时应收的清算法币额,结果为零表示该联盟成员以代币所属货币单位的法币作为清算货币时应收应付的清算法币额为零。
清算中心根据清算区段上实际记录的各个退盟成员负债转让额和计算出的各个联盟成员区段负债清分额,对各个退盟成员和各个联盟成员进行资金划拨和债务核销。
在债务的清算过程中,当代币把锚定挂钩的法币所属货币单位作为记账单位时,清算中心采用锚定挂钩的法币进行资金划拨和债务核销,法币和代币按1:1的比例进行换算,某退盟成员法币清算额=该退盟成员负债转让额,某联盟成员法币清算额=该联盟成员区段负债清分额。
在债务的清算过程中,当代币把锚定挂钩的“一篮子法币”作为记账单位时,清算中心采用联盟公认的法币进行资金划拨和债务核销,法币和代币按“一篮子法币”清算汇率进行换算,某退盟成员法币清算额=该退盟成员负债转让额ד一篮子法币”清算汇率,某联盟成员法币清算额=该联盟成员区段负债清分额ד一篮子法币”清算汇率,其中,“一篮子法币”清算汇率是用清算的法币所属货币单位表示“一篮子法币”所属货币单位的价格。
以上基于UTXO模型的代币方法实施例和基于Account模型的代币方法实施例均为用户和联盟成员使用同币种代币的实施方案,当用户和联盟成员使用不同币种的代币时,应使用基于UTXO模型的多币种联盟链代币实施方案或者使用基于Account模型的多币种联盟链代币实施方案。
图1为本发明实施例提供的一种基于联盟链的代币方法主要步骤示意图,参考图1再提供一种能有效地同时解决代币中心化信任风险和币值浮动风险,基于UTXO模型的多币种联盟链代币实施方案,在本实施方案中的代币可以使用不同币种的货币单位作为记账单位,交易费所属货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位。
基于UTXO模型的多币种联盟链代币实施方案主要包括如下步骤:
步骤S101,全体联盟成员结成联盟,预先设定联盟成员的准入机制和退出机制,预先设定联盟成员参与区块链共识需要遵循的共识协议,联盟成员各自提供节点接入联盟链,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块;
步骤S102,用户向联盟成员支付法币,联盟成员根据代币出账发生额和创币交易费额计算构造创币交易需要的代币发放额,构造创币交易,提交到联盟链***参与共识,其中,代币出账发生额为用户注入的法币兑换额;
代币发放额计算公式:代币发放额=代币出账发生额-创币交易费换算额。
在法币的注入过程中,当注入的法币所属货币单位与发放的代币所属货币单位不一致时,代币出账发生额=用户注入的法币额×法币注入汇率,其中:法币注入汇率是用发放的代币所属货币单位表示注入的法币所属货币单位价格,法币注入汇率一般采用外汇市场中相应货币对的汇率。
在法币的注入过程中,当创币交易费所属货币单位与发放的代币所属货币单位不一致时,创币交易费换算额=采用联盟公认的货币单位作为记账单位时的创币交易费额×创币交易费汇率,其中:创币交易费汇率是用发放的代币所属货币单位表示创币交易费所属货币单位的价格,创币交易费所属货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位,创币交易费汇率一般采用外汇市场中相应货币对的汇率。
联盟成员构造的创币交易包含代币发放额、接收方用户提供的代币接收地址和附加的联盟成员对创币交易的签名,联盟成员通过签名可以向联盟链***提供代币发放的凭证,联盟链***通过签名可以确认发送构造创币交易的联盟成员。
用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户只有用自己的私钥签名才能解锁并发送给下一位所有者。
联盟成员发放的代币是合法代币的源头,是代币全生命周期的起点,联盟成员基于UTXO模型构造的创币交易不消耗 UTXO,不需要找零,不需要考虑重放攻击,是联盟成员签发的用户拥有合法代币的证明。
步骤S103,发送方用户获取区块链上的可用代币,根据构造转账交易需要的代币支付额和转账交易费额计算转账交易代币出账发生额,构造转账交易,提交到联盟链***参与共识;
发送方用户通过扫描区块链分币种汇聚属于本用户的 UTXO 来获取本用户的可用代币。
代币出账发生额计算公式:代币出账发生额=代币支付换算额+转账交易费换算额。
在代币的转账过程中,当构造转账交易的支付代币所属货币单位与出账代币所属货币单位不一致时,代币支付换算额=采用构造转账交易的支付代币所属货币单位作为记账单位时的代币支付额×代币支付汇率,其中:代币支付汇率是用出账代币所属货币单位表示构造转账交易的支付代币所属货币单位的价格,代币支付汇率一般采用外汇市场中相应货币对的汇率。
在代币的转账过程中,当转账交易费所属货币单位与出账代币所属货币单位不一致时,转账交易费换算额=采用联盟公认的货币单位作为记账单位时的转账交易费额×转账交易费汇率,其中:转账交易费汇率是用出账代币所属货币单位表示转账交易费所属货币单位的价格,转账交易费所属货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位,转账交易费汇率一般采用外汇市场中相应货币对的汇率。
发送方用户基于UTXO模型构造的转账交易包含转账输入和转账输出,转账输入包含发送方用户引用的UTXO和UTXO解锁脚本,转账输出包含代币支付额和代币支付锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在转账输出中,追加找零金额和发送方用户提供的找零锁定脚本,以便把找零金额再返还给发送方用户。
转账交易UTXO解锁脚本包含发送方用户对引用的UTXO和转账输出的签名,发送方用户通过签名来解锁UTXO,并使用接收方用户提供的代币接收地址来锁定转账支付的代币并创建新的 UTXO,需要时发送方用户还提供找零代币接收地址来锁定用于找零的代币并创建新的 UTXO,联盟链***通过签名可以确认发送构造转账交易的用户。
代币支付锁定脚本包含接收方用户提供的代币接收地址,用于锁定转账支付的代币,用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户只有用自己的私钥签名才能解锁并发送给下一位所有者。
转账输出最多包含两种锁定脚本:代币支付锁定脚本和找零锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在转账输出中,追加找零金额和发送方用户提供的找零锁定脚本,以便把找零金额再返还给发送方用户。
找零金额为发送方用户在交易中未消耗的剩余UTXO引用额,找零金额=发送方用户UTXO引用额-代币出账发生额,其中,发送方用户引用的UTXO、出账代币和找零代币所属货币单位均为同币种货币单位,一般为发送方用户引用的UTXO所属货币单位。
找零锁定脚本包含发送方用户提供的找零代币接收地址,用于锁定找零代币,用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户只有用自己的私钥签名才能解锁并发送给下一位所有者。
步骤S104,发送方用户获取区块链上的可用代币,根据构造销币交易需要的代币回收额和销币交易费额计算销币交易代币出账发生额,构造销币交易,提交到联盟链***参与共识,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币。
发送方用户通过扫描区块链分币种汇聚属于本用户的 UTXO 来获取本用户的可用代币。
代币出账发生额计算公式:代币出账发生额=代币回收换算额+销币交易费换算额。
在代币的回收过程中,当构造销币交易的回收代币所属货币单位与出账代币所属货币单位不一致时,代币回收换算额=采用构造销币交易的回收代币所属货币单位作为记账单位时的代币回收额×代币回收汇率,其中:代币回收汇率是用出账代币所属货币单位表示构造销币交易的回收代币所属货币单位的价格,代币回收汇率一般采用外汇市场中相应货币对的汇率。
在代币的回收过程中,当销币交易费所属货币单位与出账代币所属货币单位不一致时,销币交易费换算额=采用联盟公认的货币单位作为记账单位时的销币交易费额×销币交易费汇率,其中:销币交易费汇率是用出账代币所属货币单位表示销币交易费所属货币单位的价格,销币交易费所属货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位,销币交易费汇率一般采用外汇市场中相应货币对的汇率。
发送方用户基于UTXO 模型构造的销币交易包含销币输入和销币输出,销币输入包含发送方用户引用的UTXO和UTXO解锁脚本,销币输出包含代币回收额和代币回收锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在销币输出中,追加找零金额和发送方用户提供的找零锁定脚本,以便把找零金额再返还给发送方用户。
销币交易UTXO解锁脚本包含发送方用户对引用的UTXO和销币输出的签名,发送方用户通过签名来解锁UTXO,并使用接收方联盟成员提供的代币接收地址来锁定和销毁代币,需要时发送方用户还提供找零代币接收地址来锁定用于找零的代币并创建新的 UTXO,联盟链***通过签名可以确认发送构造销币交易的用户。
代币回收锁定脚本包含接收方联盟成员提供的代币接收地址,用于联盟链***识别回收销毁代币的联盟成员,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币,被回收销毁的代币可以被查询不可以再次被花费。
联盟成员提供的代币接收地址可以有两种可选实现方式,一种回收销毁代币的接收地址由联盟成员的公钥生成,并与联盟成员的私钥相匹配,联盟成员仅能用私钥访问查询,以便根据回收销毁的代币兑换用户需要的法币,不可以通过私钥再次花费代币,一旦出现,联盟链***会立即标记为无效交易,另外一种回收销毁代币的接收地址仅作为识别联盟成员的ID标识使用,不与私钥相匹配,不可以再次被花费,可以通过设置控制访问的PIN码查询,以便根据回收销毁的代币兑换用户需要的法币。
销币输出最多包含两种锁定脚本:代币回收锁定脚本和找零锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在销币输出中,追加找零金额和发送方用户提供的找零锁定脚本,以便把找零金额再返还给发送方用户。
找零金额为发送方用户在交易中未消耗的剩余UTXO引用额,找零金额=发送方用户UTXO引用额-代币出账发生额,其中,发送方用户引用的UTXO、出账代币和找零代币所属货币单位均为同币种货币单位,一般为发送方用户引用的UTXO所属货币单位。
找零锁定脚本包含发送方用户提供的找零代币接收地址,用于锁定找零代币,用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户只有用自己的私钥签名才能解锁并发送给下一位所有者。
在法币的抽离过程中,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币;其中,用户抽离法币额=采用回收代币所属货币单位作为记账单位时的法币额。
步骤S105,联盟成员遵循预先设定的共识协议各自独立对收集到的交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行均等的清分,通过交流投票信息对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链。
为了对步骤S105中基于UTXO模型的交易验证流程进一步详细完整的描述,下面结合附图2说明如下:
步骤S201,联盟成员各自检验待验证交易是否为创币交易,若是,进入步骤S205,若不是,进入步骤S202;
步骤S202,联盟成员各自沿着区块链按时间倒序根据交易输入指向的UTXO形成的交易链条,追溯待验证交易之前发生的所有交易,直至创币交易,并进入步骤S203;
步骤S203,联盟成员各自检验待验证交易引用的UTXO是否首次被引用且引用额是否不小于交易所需消耗量并被作为整体一次性消耗掉,若是,进入步骤S204,若不是,进入步骤S206;
步骤S204,联盟成员各自检验待验证交易引用的UTXO交易链条是否是联盟链***唯一公认的历史交易序列且链条上的交易引用量是否均不小于交易所需消耗量并被作为整体一次性消耗掉,若是,进入步骤S205,若不是,进入步骤S206;
步骤S205,待验证交易通过合法性验证,可以被联盟成员放入候选交易集。
步骤S206,待验证交易未通过合法性验证,不能被联盟成员放入候选交易集。
基于UTXO模型的交易验证流程在实际应用中,各个联盟成员对共识过的UTXO可做好便于应用查询的记录,需要时,联盟成员可根据记录的UTXO情况,直接引用,不必进行重复的追溯校验,可进一步提高联盟链***的交易处理速度。
为了对步骤S105中基于UTXO模型的共识记账流程进一步详细完整的描述,下面结合附图3说明如下:
步骤S301,联盟成员各自尽可能多的收集待验证交易,各自独立对收集到的待验证交易进行合法性验证,通过合法性验证的交易形成候选交易集,并进入步骤S302;
步骤S302,联盟成员各自计算基于候选交易集的分币种新增代币负债额,并进入步骤S303;
基于候选交易集的分币种新增代币负债额公式:某币种新增代币负债额=该币种创币交易代币发放额汇总求和-该币种销币交易代币回收额汇总求和-该币种转账交易费额汇总求和-该币种销币交易费额汇总求和;
某币种新增代币负债额结果为正数表示联盟成员该币种共同负债额的增加量,结果为负数表示联盟成员该币种共同负债额的减少量,结果为零表示联盟成员该币种共同负债额未发生增减。
步骤S303,联盟成员各自计算基于候选交易集的分币种新增流通代币额,并进入步骤S304;
基于候选交易集的分币种新增流通代币额公式:某币种新增流通代币额=该币种创币交易代币发放额汇总求和+该币种转账交易代币支付额汇总求和+该币种找零金额汇总求和-该币种UTXO引用额汇总求和;
某币种新增流通代币额结果为正数表示该币种流通代币额的增加量,结果为负数表示该币种流通代币额的减少量,结果为零表示该币种流通代币额未发生增减。
步骤S304,联盟成员各自检验各币种新增代币负债额和各币种新增流通代币额是否相等,若不相等,重复步骤S301至步骤S304,若相等,进入步骤S305;
步骤S305,联盟成员各自检验是否有联盟成员退盟,若无退盟成员,则进入步骤S306,若有退盟成员,则进入步骤S307;
步骤S306,联盟成员各自计算基于候选交易集无退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额,各自形成包含候选交易集、无退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额的候选记账提案,并进入步骤S309;
基于候选交易集无退盟成员的联盟成员分币种负债清分均额公式:无退盟成员的联盟成员某币种负债清分均额=该币种新增代币负债额÷联盟成员数量。
联盟成员某币种负债清分均额结果为正数表示每个联盟成员的该币种平均负债增加额,结果为负数表示每个联盟成员的该币种平均负债减少额,结果为零表示每个联盟成员的该币种平均负债额未发生增减。
基于候选交易集无退盟成员的某联盟成员分币种负债清分额公式:无退盟成员的某联盟成员某币种负债清分额=该联盟成员的该币种代币发放额汇总求和+该联盟成员的该币种创币交易费汇总求和-该联盟成员的该币种代币回收额汇总求和-该币种交易费均额-无退盟成员的联盟成员该币种负债清分均额;
其中,基于候选交易集的交易费均额公式:交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量,交易费货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位。
某联盟成员某币种负债清分额结果为正数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应付的该币种清算法币额,结果为负数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收的该币种清算法币额,结果为零表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收应付的该币种清算法币额为零。
步骤S307,联盟成员各自计算基于历史负债的各个退盟成员各币种负债转让额和退盟成员各币种负债转让均额,并进入步骤S308;
基于历史负债的某退盟成员分币种负债转让额公式:某退盟成员某币种负债转让额=该退盟成员从加盟区块起至退盟区块止且不包含退盟区块的所有区块上记录的该退盟成员作为联盟成员时的该币种负债清分均额汇总求和。
某退盟成员某币种负债转让额结果为正数表示该退盟成员以该币种代币所属货币单位的法币作为清算货币时应收的该币种清算法币额,结果为负数表示该退盟成员以该币种代币所属货币单位的法币作为清算货币时应付的该币种清算法币额,结果为零表示该退盟成员以该币种代币所属货币单位的法币作为清算货币时应收应付的该币种清算法币额为零。
基于历史负债的退盟成员分币种负债转让均额公式:退盟成员某币种负债转让均额=在该区块退盟的所有退盟成员的该币种负债转让额汇总求和÷联盟成员数量。
退盟成员某币种负债转让均额结果为正数表示每个联盟成员以该币种代币所属货币单位的法币作为清算货币时均应付的该币种清算法币额,结果为负数表示每个联盟成员以该币种代币所属货币单位的法币作为清算货币时均应收的该币种清算法币额,结果为零表示每个联盟成员以该币种代币所属货币单位的法币作为清算货币时均应收应付的该币种清算法币额为零。
步骤S308,联盟成员各自计算基于候选交易集和历史负债有退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额,各自形成包含候选交易集、各个退盟成员各币种负债转让额、有退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额的候选记账提案,并进入步骤S309;
基于候选交易集和历史负债有退盟成员的联盟成员分币种负债清分均额公式:有退盟成员的联盟成员某币种负债清分均额=该币种新增代币负债额÷联盟成员数量+退盟成员该币种负债转让均额。
联盟成员某币种负债清分均额结果为正数表示每个联盟成员的该币种平均负债增加额,结果为负数表示每个联盟成员的该币种平均负债减少额,结果为零表示每个联盟成员的该币种平均负债额未发生增减。
基于候选交易集和历史负债有退盟成员的某联盟成员分币种负债清分额公式:有退盟成员的某联盟成员某币种负债清分额=该联盟成员该币种代币发放额汇总求和+该联盟成员该币种创币交易费汇总求和-该联盟成员该币种代币回收额汇总求和-该币种交易费均额-有退盟成员的联盟成员该币种负债清分均额。
其中,基于候选交易集的交易费均额公式:交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量,交易费货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位。
某联盟成员某币种负债清分额结果为正数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应付的该币种清算法币额,结果为负数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收的该币种清算法币额,结果为零表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收应付的该币种清算法币额为零。
联盟成员分币种负债清分均额可以有两种:无退盟成员的联盟成员分币种负债清分均额和有退盟成员的联盟成员分币种负债清分均额,有退盟成员的联盟成员分币种负债清分均额公式,当退盟成员负债转让均额按零值计算时,即退变为无退盟成员的联盟成员分币种负债清分均额公式。
联盟成员分币种负债清分额可以有两种:无退盟成员的联盟成员分币种负债清分额和有退盟成员的联盟成员分币种负债清分额,有退盟成员的联盟成员分币种负债清分额公式,当退盟成员负债转让均额按零值计算时,即退变为无退盟成员的联盟成员分币种负债清分额公式。
候选记账提案为Merkle树的数据结构,步骤S306中形成的候选记账提案为无联盟成员退盟的情况下形成的候选记账提案,步骤S308中形成的候选记账提案为有联盟成员退盟的情况下形成的候选记账提案。
步骤S309,联盟成员各自独立把形成的候选记账提案提交到联盟链***通过交流投票信息达成共识一致并记账到区块链。
步骤S106,清算中心定期对区块链进行分段清算,根据清算区段上记录的各个联盟成员各币种负债清分额,计算出各个联盟成员各币种区段负债清分额 ;
某联盟成员分币种区段负债清分额公式:某联盟成员某币种区段负债清分额=清算区段上实际记录的该联盟成员该币种负债清分额汇总求和。
清算区段上实际记录的联盟成员分币种负债清分额可以有两种:无退盟成员的联盟成员分币种负债清分额和有退盟成员的联盟成员分币种负债清分额。
当清算区段上无联盟成员退盟时,退盟成员负债转让额按零值计算,当清算区段上有联盟成员退盟时,各退盟成员各币种负债转让额按区块链上实际记录的转让额分币种进行计算。
某联盟成员某币种区段负债清分额结果为正数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应付的该币种清算法币额,结果为负数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收的该币种清算法币额,结果为零表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收应付的该币种清算法币额为零。
清算中心根据清算区段上实际记录的各个退盟成员各币种负债转让额和计算出的各个联盟成员各币种区段负债清分额,采用与代币币种相对应的法币对各个退盟成员和各个联盟成员分币种进行资金划拨和债务核销。
图1为本发明实施例提供的一种基于联盟链的代币方法主要步骤示意图,参考图1再提供一种能有效地同时解决代币中心化信任风险和币值浮动风险,基于Account模型的多币种联盟链代币实施方案,在本实施方案中的代币可以使用不同币种的货币单位作为记账单位,交易费所属货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位。
基于Account模型的多币种联盟链代币实施方案主要包括如下步骤:
步骤S101,全体联盟成员结成联盟,预先设定联盟成员的准入机制和退出机制,预先设定联盟成员参与区块链共识需要遵循的共识协议,联盟成员各自提供节点接入联盟链,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块;
步骤S102,用户向联盟成员支付法币,联盟成员根据代币出账发生额和创币交易费额计算构造创币交易需要的代币发放额,构造创币交易,提交到联盟链***参与共识,其中,代币出账发生额为用户注入的法币兑换额;
代币发放额计算公式:代币发放额=代币出账发生额-创币交易费换算额。
在法币的注入过程中,当注入的法币所属货币单位与发放的代币所属货币单位不一致时,代币出账发生额=用户注入的法币额×法币注入汇率,其中:法币注入汇率是用发放的代币所属货币单位表示注入的法币所属货币单位价格,法币注入汇率一般采用外汇市场中相应货币对的汇率。
在法币的注入过程中,当创币交易费所属货币单位与发放的代币所属货币单位不一致时,创币交易费换算额=采用联盟公认的货币单位作为记账单位时的创币交易费额×创币交易费汇率,其中:创币交易费汇率是用发放的代币所属货币单位表示创币交易费所属货币单位的价格,创币交易费所属货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位,创币交易费汇率一般采用外汇市场中相应货币对的汇率。
联盟成员构造的创币交易包含代币发放额、接收方用户提供的代币接收地址和附加的联盟成员对创币交易的签名。
用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户可以使用私钥重新构造和签署交易。
联盟成员通过签名可以向联盟链***提供代币发放的凭证,联盟链***通过签名可以确认发送构造创币交易的联盟成员。
联盟成员发放的代币是合法代币的源头,是代币全生命周期的起点,联盟成员基于Account模型构造的创币交易不需要考虑重放攻击,是联盟成员签发的用户拥有合法代币的证明。
步骤S103,发送方用户获取区块链上的可用代币,根据构造转账交易需要的代币支付额和转账交易费额计算转账交易代币出账发生额,构造转账交易,提交到联盟链***参与共识;
发送方用户通过扫描区块链分币种计算属于本用户的代币轧差额来获取本用户的可用代币。
代币出账发生额计算公式:代币出账发生额=代币支付换算额+转账交易费换算额。
在代币的转账过程中,当构造转账交易的支付代币所属货币单位与出账代币所属货币单位不一致时,代币支付换算额=采用构造转账交易的支付代币所属货币单位作为记账单位时的代币支付额×代币支付汇率,其中:代币支付汇率是用出账代币所属货币单位表示构造转账交易的支付代币所属货币单位的价格,代币支付汇率一般采用外汇市场中相应货币对的汇率。
在代币的转账过程中,当转账交易费所属货币单位与出账代币所属货币单位不一致时,转账交易费换算额=采用联盟公认的货币单位作为记账单位时的转账交易费额×转账交易费汇率,其中:转账交易费汇率是用出账代币所属货币单位表示转账交易费所属货币单位的价格,转账交易费所属货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位,转账交易费汇率一般采用外汇市场中相应货币对的汇率。
发送方用户基于Account模型构造的转账交易包含代币支付额、接收方用户提供的代币接收地址、nonce和附加的发送方用户对转账交易的签名。
nonce是用来防止重放攻击仅使用一次的数字。
用户提供的代币接收地址,由用户的公钥生成,并与用户的私钥相匹配,再次花费时,用户可以使用私钥重新构造和签署交易。
发送方用户通过签名可以向联盟链***提供代币转账的凭证,联盟链***通过签名可以确认发送构造转账交易的用户。
步骤S104,发送方用户获取区块链上的可用代币,根据构造销币交易需要的代币回收额和销币交易费额计算销币交易代币出账发生额,构造销币交易,提交到联盟链***参与共识,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币。
发送方用户通过扫描区块链分币种计算属于本用户的代币轧差额来获取本用户的可用代币。
代币出账发生额计算公式:代币出账发生额=代币回收换算额+销币交易费换算额。
在代币的回收过程中,当构造销币交易的回收代币所属货币单位与出账代币所属货币单位不一致时,代币回收换算额=采用构造销币交易的回收代币所属货币单位作为记账单位时的代币回收额×代币回收汇率,其中:代币回收汇率是用出账代币所属货币单位表示构造销币交易的回收代币所属货币单位的价格,代币回收汇率一般采用外汇市场中相应货币对的汇率。
在代币的回收过程中,当销币交易费所属货币单位与出账代币所属货币单位不一致时,销币交易费换算额=采用联盟公认的货币单位作为记账单位时的销币交易费额×销币交易费汇率,其中:销币交易费汇率是用出账代币所属货币单位表示销币交易费所属货币单位的价格,销币交易费所属货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位,销币交易费汇率一般采用外汇市场中相应货币对的汇率。
发送方用户基于Account模型构造的销币交易包含代币回收额、接收方联盟成员提供的代币接收地址、nonce和附加的发送方用户对销币交易的签名。
nonce是用来防止重放攻击仅使用一次的数字。
联盟成员提供的代币接收地址,用于联盟链***识别回收销毁代币的联盟成员,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币,被回收销毁的代币可以被查询不可以再次被花费。
联盟成员提供的代币接收地址可以有两种可选实现方式,一种回收代币的接收地址由联盟成员的公钥生成,并与联盟成员的私钥相匹配,联盟成员仅能用私钥访问查询,以便根据回收销毁的代币兑换用户需要的法币,不可以通过私钥再次花费代币,一旦出现,联盟链***会立即标记为无效交易,另外一种回收销毁代币的接收地址仅作为识别联盟成员的ID标识使用,不与私钥相匹配,不可以再次被花费,可以通过设置控制访问的PIN 码查询,以便根据回收销毁的代币兑换用户需要的法币。
发送方用户通过签名可以向联盟链***提供代币兑换的凭证,联盟链***通过签名可以确认发送构造销币交易的用户。
在法币的抽离过程中,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币;其中,用户抽离法币额=采用回收代币所属货币单位作为记账单位时的法币额。
步骤S105,联盟成员遵循预先设定的共识协议各自独立对收集到的交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行均等的清分,通过交流投票信息对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链。
为了对步骤S105中基于Account模型的交易验证流程进一步详细完整的描述,下面结合附图4说明如下:
步骤S401,联盟成员各自检验待验证交易是否是创币交易,若是,进入步骤S406,若不是,进入步骤S402;
步骤S402,联盟成员各自从创世区块开始沿着区块链按时间正序遵循代币的发放流通路径,根据用户参与区块链的顺序,按区块产生的顺序逐块检验区块内用户的代币余额来源,直至正被共识的区块,并进入步骤S403;
创世区块是指区块链上的第一个区块,用于初始化代币。
步骤S403,联盟成员各自检验被检区块是否是正被共识的区块,若是,进入步骤S404,若不是,进入步骤S409;
步骤S404,联盟成员各自检验构造待验证交易的用户是否是合法用户,若是,进入步骤S405,若不是,进入步骤S407;
合法用户为符合条件1至条件3中任一条件的用户:条件1、用户的代币余额来源仅由创币交易构成;条件2、用户的代币余额来源仅由合法用户构造的合法交易构成;条件3、用户的代币余额来源由创币交易和合法用户构造的合法交易共同构成。
步骤S405,联盟成员各自检验合法用户构造的待验证交易是否是合法交易,若是,进入步骤S406,若不是,进入步骤S407;
合法交易为符合条件1至条件2中任一条件的交易:条件1、交易为创币交易;条件2、合法用户构造的基于nonce且出账发生额不小于交易所需消耗量的交易。
步骤S406,待验证交易通过合法性验证,可以放入候选交易集,并进入步骤S408;
步骤S407,待验证交易未通过合法性验证,不能被放入候选交易集,并进入步骤S408;
步骤S408,联盟成员各自重复步骤404至步骤407,遍历收集的所有待验证交易。
步骤S409,联盟成员各自检验用户的代币余额来源是否合法,若是,进入步骤S410,若不是,进入步骤S411;
步骤S410,被检用户为合法用户,并进入步骤S412;
步骤S411,被检用户为非法用户,并进入步骤S412;
步骤S412,联盟成员各自重复步骤409至步骤411,遍历被检区块内的所有用户后,进入步骤S403。
基于Account模型的交易验证流程在实际应用中,各个联盟成员对共识过的合法用户可做好便于应用查询的记录,需要时,联盟成员可根据记录的合法用户情况,直接应用,不必遵循代币的发放流通路径进行重复的校验,可进一步提高联盟链***的交易验证处理速度。
为了对步骤S105中基于Account模型的共识记账流程进一步详细完整的描述,下面结合附图3说明如下:
步骤S301,联盟成员各自尽可能多的收集待验证交易,各自独立对收集到的待验证交易进行合法性验证,通过合法性验证的交易形成候选交易集,并进入步骤S302;
步骤S302,联盟成员各自基于候选交易集按联盟成员分币种进行发生额汇总,得到各个联盟成员基于候选交易集的各币种出账发生额和入账发生额,同时,汇总交易费发生额,计算出基于候选交易集的交易费均额,再计算出基于候选交易集的各个联盟成员各币种轧差额,根据各个联盟成员各币种轧差额计算出基于候选交易集的各币种新增代币负债额,并进入步骤S303;
基于候选交易集的某联盟成员分币种轧差额公式:某联盟成员某币种轧差额=该联盟成员该币种出账发生额-该联盟成员该币种入账发生额-该币种交易费均额。
其中,基于候选交易集的该联盟成员该币种出账发生额公式:该联盟成员该币种出账发生额=该联盟成员该币种代币发放额汇总求和+该联盟成员该币种创币交易费汇总求和。
其中,基于候选交易集的该联盟成员该币种入账发生额公式:该联盟成员该币种入账发生额=该联盟成员该币种代币回收额汇总求和。
其中,基于候选交易集的交易费均额公式:交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量,交易费货币单位采用联盟公认的货币单位,一般采用外汇市场中主流货币的货币单位。
某联盟成员某币种轧差额结果为正数表示该联盟成员该币种负债增加额,结果为负数表示该联盟成员该币种负债减少额,结果为零表示该联盟成员该币种负债额未发生增减。
基于候选交易集的分币种新增代币负债额公式:某币种新增代币负债额=各联盟成员该币种轧差额汇总求和;
某币种新增代币负债额结果为正数表示联盟成员该币种共同负债额的增加量,结果为负数表示联盟成员该币种共同负债额的减少量,结果为零表示联盟成员该币种共同负债额未发生增减。
步骤S303,联盟成员各自基于候选交易集按用户分币种进行发生额汇总,得到各个用户基于候选交易集的各币种出账发生额和入账发生额,再计算出基于候选交易集的各个用户各币种代币轧差额,根据各个用户各币种代币轧差额计算出基于候选交易集的各币种新增流通代币额,并进入步骤S304;
基于候选交易集的某用户分币种代币轧差额公式:某用户某币种代币轧差额=该用户该币种入账发生额-该用户该币种出账发生额。
其中,基于候选交易集的该用户该币种入账发生额=该用户作为创币交易接收方时的该币种代币发放额汇总求和+该用户作为转账交易接收方时的该币种代币支付额汇总求和。
其中,基于候选交易集的该用户该币种出账发生额=该用户作为转账交易发送方时的该币种代币支付额汇总求和+该用户作为转账交易发送方时的该币种转账交易费汇总求和+该用户作为销币交易发送方时的该币种代币回收额汇总求和+该用户作为销币交易发送方时的该币种销币交易费汇总求和。
某用户某币种代币轧差额结果为正数表示该用户该币种的可用代币增加额,结果为负数表示该用户该币种的可用代币减少额,结果为零表示该用户该币种的可用代币额未发生增减。
基于候选交易集的分币种新增流通代币额公式:某币种新增流通代币额=各用户该币种代币轧差额汇总求和。
某币种新增流通代币额结果为正数表示该币种流通代币额的增加量,结果为负数表示该币种流通代币额的减少量,结果为零表示该币种流通代币额未发生增减。
步骤S304,联盟成员各自检验各币种新增代币负债额和各币种新增流通代币额是否相等,若不相等,重复步骤S301至步骤S304,若相等,进入步骤S305;
步骤S305,联盟成员各自检验是否有联盟成员退盟,若无退盟成员,则进入步骤S306,若有退盟成员,则进入步骤S307;
步骤S306,联盟成员各自计算基于候选交易集无退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额,各自形成包含候选交易集、无退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额的候选记账提案,并进入步骤S309;
基于候选交易集无退盟成员的联盟成员分币种负债清分均额公式:无退盟成员的联盟成员某币种负债清分均额=该币种新增代币负债额÷联盟成员数量。
联盟成员某币种负债清分均额结果为正数表示每个联盟成员的该币种平均负债增加额,结果为负数表示每个联盟成员的该币种平均负债减少额,结果为零表示每个联盟成员的该币种平均负债额未发生增减。
基于候选交易集无退盟成员的某联盟成员分币种负债清分额公式:无退盟成员的某联盟成员某币种负债清分额=该联盟成员该币种轧差金额-无退盟成员的联盟成员该币种负债清分均额;
某联盟成员某币种负债清分额结果为正数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应付的该币种清算法币额,结果为负数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收的该币种清算法币额,结果为零表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收应付的该币种清算法币额为零。
步骤S307,联盟成员各自计算基于历史负债的各个退盟成员各币种负债转让额和退盟成员各币种负债转让均额,并进入步骤S308;
基于历史负债的某退盟成员分币种负债转让额公式:某退盟成员某币种负债转让额=该退盟成员从加盟区块起至退盟区块止且不包含退盟区块的所有区块上记录的该退盟成员作为联盟成员时的该币种负债清分均额汇总求和。
某退盟成员某币种负债转让额结果为正数表示该退盟成员以该币种代币所属货币单位的法币作为清算货币时应收的该币种清算法币额,结果为负数表示该退盟成员以该币种代币所属货币单位的法币作为清算货币时应付的该币种清算法币额,结果为零表示该退盟成员以该币种代币所属货币单位的法币作为清算货币时应收应付的该币种清算法币额为零。
基于历史负债的退盟成员分币种负债转让均额公式:退盟成员某币种负债转让均额=在该区块退盟的所有退盟成员的该币种负债转让额汇总求和÷联盟成员数量。
退盟成员某币种负债转让均额结果为正数表示每个联盟成员以该币种代币所属货币单位的法币作为清算货币时均应付的该币种清算法币额,结果为负数表示每个联盟成员以该币种代币所属货币单位的法币作为清算货币时均应收的该币种清算法币额,结果为零表示每个联盟成员以该币种代币所属货币单位的法币作为清算货币时均应收应付的该币种清算法币额为零。
步骤S308,联盟成员各自计算基于候选交易集和历史负债有退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额,各自形成包含候选交易集、各个退盟成员各币种负债转让额、有退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额的候选记账提案,并进入步骤S309;
基于候选交易集和历史负债有退盟成员的联盟成员分币种负债清分均额公式:有退盟成员的联盟成员某币种负债清分均额=该币种新增代币负债额÷联盟成员数量+退盟成员该币种负债转让均额。
联盟成员某币种负债清分均额结果为正数表示每个联盟成员的该币种平均负债增加额,结果为负数表示每个联盟成员的该币种平均负债减少额,结果为零表示每个联盟成员的该币种平均负债额未发生增减。
基于候选交易集和历史负债有退盟成员的某联盟成员分币种负债清分额公式:有退盟成员的某联盟成员某币种负债清分额=该联盟成员该币种轧差金额-有退盟成员的联盟成员该币种负债清分均额。
某联盟成员某币种负债清分额结果为正数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应付的该币种清算法币额,结果为负数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收的该币种清算法币额,结果为零表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收应付的该币种清算法币额为零。
联盟成员分币种负债清分均额可以有两种:无退盟成员的联盟成员分币种负债清分均额和有退盟成员的联盟成员分币种负债清分均额,有退盟成员的联盟成员分币种负债清分均额公式,当退盟成员负债转让均额按零值计算时,即退变为无退盟成员的联盟成员分币种负债清分均额公式。
联盟成员分币种负债清分额可以有两种:无退盟成员的联盟成员分币种负债清分额和有退盟成员的联盟成员分币种负债清分额,有退盟成员的联盟成员分币种负债清分额公式,当退盟成员负债转让均额按零值计算时,即退变为无退盟成员的联盟成员分币种负债清分额公式。
候选记账提案为Merkle树的数据结构,步骤S306中形成的候选记账提案为无联盟成员退盟的情况下形成的候选记账提案,步骤S308中形成的候选记账提案为有联盟成员退盟的情况下形成的候选记账提案。
步骤S309,联盟成员各自独立把形成的候选记账提案提交到联盟链***通过交流投票信息达成共识一致并记账到区块链。
步骤S106,清算中心定期对区块链进行分段清算,根据清算区段上记录的各个联盟成员各币种负债清分额,计算出各个联盟成员各币种区段负债清分额 ;
某联盟成员分币种区段负债清分额公式:某联盟成员某币种区段负债清分额=清算区段上实际记录的该联盟成员该币种负债清分额汇总求和。
清算区段上实际记录的联盟成员分币种负债清分额可以有两种:无退盟成员的联盟成员分币种负债清分额和有退盟成员的联盟成员分币种负债清分额。
当清算区段上无联盟成员退盟时,退盟成员负债转让额按零值计算,当清算区段上有联盟成员退盟时,各退盟成员各币种负债转让额按区块链上实际记录的转让额分币种进行计算。
某联盟成员某币种区段负债清分额结果为正数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应付的该币种清算法币额,结果为负数表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收的该币种清算法币额,结果为零表示该联盟成员以该币种代币所属货币单位的法币作为清算货币时应收应付的该币种清算法币额为零。
清算中心根据清算区段上实际记录的各个退盟成员各币种负债转让额和计算出的各个联盟成员各币种区段负债清分额,采用与代币币种相对应的法币对各个退盟成员和各个联盟成员分币种进行资金划拨和债务核销。
在多币种联盟链中,对交易中不同币种间的货币根据外汇市场中相应货币对的汇率进行换算,对联盟链***中的代币分币种进行操作处理,多币种联盟链完全模拟了现实场景中的多币种跨境支付,而且相对于传统的跨境支付更安全、更方便、更快捷,费用更低。
图5为本发明实施例提供的一种基于联盟链的代币***主要模块示意图,为了提供一种能有效地同时解决代币中心化信任风险和币值浮动风险的实施方案,根据本发明的另一个方面,参考图5再提供一种基于联盟链的代币***。
基于联盟链的代币***主要包括:联盟管理模块501、代币发放模块502、转账支付模块503、代币回收模块504、共识记账模块505、债务清算模块506,其中:
联盟管理模块501,用于设定联盟成员的准入机制和退出机制,设定联盟成员参与区块链共识需要遵循的共识协议,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块;
全体联盟成员结成联盟,预先设定联盟成员的准入机制和退出机制,预先设定联盟成员参与区块链共识需要遵循的共识协议,联盟成员各自提供节点接入联盟链,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块。
代币发放模块502,用于用户通过联盟成员注入法币,联盟成员构造创币交易,向用户发放代币,把用户注入的法币转换为可使用的代币;
当用户需要把法币兑换为代币时,用户向联盟成员支付法币,联盟成员根据用户注入的法币额和创币交易费额计算代币发放额,构造创币交易,提交到联盟链***参与共识,把用户支付的法币兑换为可使用的代币。
转账支付模块503,用于用户间进行转账支付,接收发送方用户支付的代币,花费区块链上的可用代币给接收方用户;
当用户间需要进行转账支付时,发送方用户获取区块链上的可用代币,根据构造转账交易需要的代币支付额和转账交易费额计算转账交易代币出账发生额,构造转账交易,提交到联盟链***参与共识,把发送的代币支付给接收方用户。
代币回收模块504,用于用户通过联盟成员抽离法币,用户构造销币交易,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币;
当用户需要把代币兑换为法币时,发送方用户获取区块链上的可用代币,根据构造销币交易需要的代币回收额和销币交易费额计算销币交易代币出账发生额,构造销币交易,提交到联盟链***参与共识,向联盟成员支付代币,联盟成员回收销毁用户支付的代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币。
共识记账模块505,用于联盟成员遵循共识协议对交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行清分,对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链;
联盟成员收集待验证交易,合法验证后形成候选交易集,在新增代币负债额和新增流通代币额相等的情况下,对退盟成员承担的用户负债进行转让,对共同承担的用户负债进行清分,形成包含候选交易集、退盟成员负债转让信息和联盟成员负债清分信息的候选记账提案,把形成的候选记账提案提交到联盟链***通过交流投票信息达成共识一致并记账到区块链。
债务清算模块506,用于清算中心根据区块链上记录的退盟成员负债转让信息和联盟成员负债清分信息对退盟成员和联盟成员进行债务清算。
清算中心定期对区块链进行分段清算,根据清算区段上记录的各个联盟成员负债清分额,计算出各个联盟成员区段负债清分额 ,根据清算区段上实际记录的各个退盟成员负债转让额和计算出的各个联盟成员区段负债清分额,对各个退盟成员和各个联盟成员进行资金划拨和债务核销。
图6为本发明实施例提供的一种基于联盟链的用户钱包主要模块示意图,为了提供一种能有效地同时解决代币中心化信任风险和币值浮动风险的实施方案,根据本发明的另一个方面,参考图6再提供一种基于联盟链的用户钱包。
基于联盟链的用户钱包主要包括:密钥模块601、法币模块602、代币模块603,其中:
密钥模块601,用于用户生成、保存和管理用于交易签名的私钥、验证交易签名的公钥和用于接收代币的地址;
数字密钥是由用户钱包通过算法得到并保存在用户钱包中的公钥和私钥密钥对,私钥常用于对交易进行签名,公钥常用于验证交易签名,代币地址一般为公钥的数字指纹表示,代币的所有权通过数字密钥、代币地址和数字签名来确立,每笔交易都需要一个有效的签名才会被存储在区块链,只有有效的数字密钥才能产生有效的数字签名。
钱包是密钥的集合,为了便于管理成千上百万的密钥,实际应用中一般使用根种子通过单向衍生方程来重构成千上百万的密钥序列,因为成千上百万的密钥都衍生自这个根种子,因此简单的复制、储存、导出和导入这个根种子就可以实现成千上百万密钥的复制、储存、导出和导入,为便于根种子的抄写和存储,实际应用中一般使用易于抄写和存储的助记码词汇来对应和确定根种子的随机数,并通过根种子随机数来重建钱包和所有的密钥。
法币模块602,用于用户支付通过联盟成员注入的法币,用于用户接收通过联盟成员抽离的法币;
法币即法定货币,电子货币是等值法币的数据表示,可以以等值法币的数据形式存储到银行账户,也可以方便的通过银行账户兑换为法币,用户可以通过银行账户向联盟成员提供电子货币转账,支付用于兑换代币的电子货币,也可以接收来自联盟成员的银行账户转账支付的电子货币,来自联盟成员的电子货币为用户用代币兑换的电子货币。
代币模块603,用于用户作为发送方时,构造转账交易,向接收方用户发送代币,构造销币交易,向接收方联盟成员支付用于兑换法币的代币,作为接收方时,向发送方联盟成员和发送方用户提供用于接收代币的地址。
用户作为转账交易的发送方时,获取区块链上的可用代币,根据构造转账交易需要的代币支付额和转账交易费额计算转账交易代币出账发生额,构造转账交易,提交到联盟链***参与共识,把发送的代币支付给接收方用户。
用户作为销币交易的发送方时,获取区块链上的可用代币,根据构造销币交易需要的代币回收额和销币交易费额计算销币交易代币出账发生额,构造销币交易,提交到联盟链***参与共识,向接收方联盟成员支付用于兑换法币的代币。
用户作为创币交易的接收方时,向发放代币的联盟成员提供用于接收代币的地址。
用户作为转账交易的接收方时,向作为发送方的用户提供用于接收代币的地址。
由上文可知,本发明所述的用户钱包在基于联盟链的代币***中,既可以管理用户的电子货币,也可以管理用户的数字代币,还可以实现电子货币与数字货币的兑换。
应当注意,尽管在上文的描述中提及了若干模块,但是这种划分仅仅是示例性而非强制性的,实际上,根据本公开的实施例,上文描述的两个或更多模块的特征和功能可以在一个模块中具体化,反之,上文描述的一个模块的特征和功能也可以进一步划分为由多个模块来具体化。
在上述所述的实施例中,对联盟成员发放代币形成的对用户负债采取了均等的清分清算方式,对任何一个联盟成员集中发放代币形成的对用户集中负债通过联盟成员间均等的清分清算,等效于每一个联盟成员均参与了代币的发放,均发放了等量的代币,并形成了对用户的均等负债,对用户负债采取均等的清分清算方式相比于其他的清分清算方式,更有利于对各联盟成员间进行相互监督和有效制衡,可以更有效地避免联盟成员对代币的随意超发。
在上述所述的实施例中,联盟成员间的大部分工作是彼此独立的,只需要很少的协同,使联盟成员的加入和退出变得相对容易,在联盟授权许可的情况下,联盟成员既可以退出共识离开网络,在需要时还可以再重新加入网络参与共识。
本发明提出的一种基于联盟链不需要信用中介的代币方法和代币支付***,通过去中心化的债务发行和联盟成员共同提供的信用担保,向用户提供了一种去中心化无浮动风险价值稳定的信用代币,本代币方法和***在部署实施上,初期首先可以实现纸币与代币的同步流通,在现有货币运行框架下让代币逐步取代纸币,而不颠覆现有货币发行流通体系;在形态上与银行账户依赖较少,仅通过银行账户对代币和电子货币进行互兑,对债务进行转让清算,用户间的代币交易环节不存在对银行账户的依赖,这样,既有利于代币的流通,又可以依托代币的可追溯性,实现责任监管,实时查看管控资金动向,更有利于发挥数字代币的优势,节约成本、提高货币流通速度,提升支付的便捷性和安全性。
本说明书中的每个代币方法实施例重点说明的都是与其他代币方法实施例的不同之处,各个实施例之间的相同和相似部分可以互相参见。对于代币***实施例公开的模块而言,由于其与代币方法实施例公开的方法相对应,所以描述的比较简单,相关之处可以参见代币方法中对应部分的详细说明。
专业人员还可以进一步意识到,根据本发明公开的实施例描述的方法步骤和***模块,能够以硬件、软件或者二者相结合的方式来实现,具体的实现方式取决于技术方案的特定应用和设计约束条件,针对不同的特定应用,专业技术人员可以使用不同的方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
上述具体实施方式,并不构成对本发明保护范围的限制,任何熟悉本技术领域的技术人员,在不背离本发明的精神或范围的情况下,对本发明实施例做出的各种变更、组合、修改、增减、替代、修饰和所获得的所有其他实施例,都应涵盖在本发明的保护范围之内,因此,本发明的保护范围应该以权利要求的保护范围为准,并符合权利要求保护范围最宽泛的解释。

Claims (9)

1.一种基于联盟链的代币方法,其特征在于,包括如下步骤:
A) 联盟成员结成联盟,根据准入机制和退出机制进行加盟和退盟,遵循共识协议参与区块链共识;
B) 用户通过联盟成员注入法币,联盟成员构造创币交易发放代币;
C) 用户间用发放的代币进行转账交易;
D) 用户构造销币交易,通过联盟成员抽离法币,联盟成员回收销毁代币;
E) 联盟成员遵循共识协议对交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行清分,对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链;
F) 清算中心根据区块链上记录的退盟成员负债转让信息和联盟成员负债清分信息对退盟成员和联盟成员进行债务清算。
2.如权利要求1所述基于联盟链的代币方法,其特征在于:
所述步骤A)中的加盟和退盟,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块;
所述步骤B)中的联盟成员根据代币出账发生额和创币交易费额计算构造创币交易需要的代币发放额,构造创币交易,提交到联盟链***参与共识,其中,代币出账发生额为用户注入的法币兑换额;
所述步骤C)中的发送方用户获取区块链上的可用代币,根据构造转账交易需要的代币支付额和转账交易费额计算转账交易代币出账发生额,构造转账交易,提交到联盟链***参与共识;
所述步骤D)中的发送方用户获取区块链上的可用代币,根据构造销币交易需要的代币回收额和销币交易费额计算销币交易代币出账发生额,构造销币交易,提交到联盟链***参与共识;
所述步骤D)中的联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币;
所述步骤E)中的联盟成员对共同承担的用户负债进行均等的清分;
所述步骤E)中的交易信息包含创币交易、转账交易和销币交易;
所述步骤E)和步骤F)中的退盟成员负债转让信息包含退盟成员负债转让额;
所述步骤E)和步骤F)中的联盟成员负债清分信息包含联盟成员负债清分均额和联盟成员负债清分额。
3.如权利要求2所述基于联盟链的代币方法,其中基于UTXO模型的同币种联盟链,其特征在于:
当代币和交易费把锚定挂钩的法币所属货币单位作为记账单位时,所述步骤B)中的代币发放额=代币出账发生额-创币交易费额;其中,代币出账发生额=用户注入的法币额,创币交易费额是以锚定挂钩的法币所属货币单位作为记账单位时的交易费额;
当代币和交易费把锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时,所述步骤B)中的代币发放额=代币出账发生额-创币交易费额;其中,代币出账发生额=用户注入的法币额ד一篮子法币”注入汇率,“一篮子法币”注入汇率是用“一篮子法币”所属货币单位表示注入的法币所属货币单位的价格,创币交易费额是以锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时的交易费额;
所述步骤B)中的创币交易包含代币发放额、接收方用户提供的代币接收地址和附加的联盟成员对创币交易的签名;
所述步骤C)中的发送方用户通过扫描区块链汇聚属于本用户的 UTXO 来获取本用户的可用代币;
所述步骤C)中的代币出账发生额=代币支付额+转账交易费额;
所述步骤C)中的转账交易包含转账输入和转账输出,转账输入包含发送方用户引用的UTXO和UTXO解锁脚本,转账输出包含代币支付额和代币支付锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在转账输出中,追加找零金额和发送方用户提供的找零锁定脚本;其中,转账交易UTXO解锁脚本包含发送方用户对引用的UTXO和转账输出的签名,代币支付锁定脚本包含接收方用户提供的代币接收地址,找零锁定脚本包含发送方用户提供的找零代币接收地址,找零金额=发送方用户UTXO引用额-代币出账发生额;
所述步骤D)中的发送方用户通过扫描区块链汇聚属于本用户的 UTXO 来获取本用户的可用代币;
所述步骤D)中的代币出账发生额=代币回收额+销币交易费额;
所述步骤D)中的销币交易包含销币输入和销币输出,销币输入包含发送方用户引用的UTXO和UTXO解锁脚本,销币输出包含代币回收额和代币回收锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在销币输出中,追加找零金额和发送方用户提供的找零锁定脚本;其中,销币交易UTXO解锁脚本包含发送方用户对引用的UTXO和销币输出的签名,代币回收锁定脚本包含接收方联盟成员提供的代币接收地址,找零锁定脚本包含发送方用户提供的找零代币接收地址,找零金额=发送方用户UTXO引用额-代币出账发生额;
当代币把锚定挂钩的法币所属货币单位作为记账单位时,所述步骤D)中的用户抽离法币额=代币回收额,联盟成员根据回收销毁的代币额按1:1的比例兑换给用户需要的法币;
当代币把锚定挂钩的“一篮子法币”所属货币单位作为记账单位时,所述步骤D)中的用户抽离法币额=代币回收额ד一篮子法币”抽离汇率,联盟成员根据回收销毁的代币额按“一篮子法币”抽离汇率兑换给用户需要的法币;其中,“一篮子法币”抽离汇率是用抽离的法币所属货币单位表示“一篮子法币”所属货币单位的价格;
所述步骤E)中的交易验证,创币交易作为待验证交易时为合法交易,可直接被放入候选交易集;非创币交易作为待验证交易时,联盟成员各自沿着区块链按时间倒序根据交易输入指向的UTXO形成的交易链条,追溯待验证交易之前发生的所有交易,直至创币交易;若作为非创币交易的待验证交易同时符合条件1和条件2,则作为非创币交易的待验证交易通过合法性验证,可以被放入候选交易集,否则,作为非创币交易的待验证交易未通过合法性验证,不能被放入候选交易集;其中,条件1、作为非创币交易的待验证交易引用的UTXO是首次被引用且引用额不小于交易所需消耗量并被作为整体一次性消耗掉,条件2、作为非创币交易的待验证交易引用的UTXO交易链条是联盟链***唯一公认的历史交易序列且链条上的交易引用量均不小于交易所需消耗量并被作为整体一次性消耗掉;
所述步骤E)中的共识记账,联盟成员把通过合法性验证的交易汇聚成候选交易集;计算基于候选交易集的新增代币负债额;其中,新增代币负债额=创币交易代币发放额汇总求和-销币交易代币回收额汇总求和-转账交易费额汇总求和-销币交易费额汇总求和;计算基于候选交易集的新增流通代币额;其中,新增流通代币额=创币交易代币发放额汇总求和+转账交易代币支付额汇总求和+找零金额汇总求和-UTXO引用额汇总求和;在新增代币负债额和新增流通代币额相等的情况下检验有无联盟成员退盟;若无联盟成员退盟,计算无退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额,形成包含候选交易集、无退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额的候选记账提案;其中,无退盟成员的联盟成员负债清分均额=新增代币负债额÷联盟成员数量,无退盟成员的某联盟成员负债清分额=该联盟成员代币发放额汇总求和+该联盟成员创币交易费汇总求和-该联盟成员代币回收额汇总求和-交易费均额-无退盟成员的联盟成员负债清分均额;若有联盟成员退盟,计算各个退盟成员负债转让额和退盟成员负债转让均额,计算有退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额,形成包含候选交易集、各个退盟成员负债转让额、有退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额的候选记账提案;其中,某退盟成员负债转让额=该退盟成员从加盟区块起至退盟区块止且不包含退盟区块的所有区块上记录的该退盟成员作为联盟成员时的负债清分均额汇总求和,退盟成员负债转让均额=在该区块退盟的所有退盟成员的负债转让额汇总求和÷联盟成员数量,有退盟成员的联盟成员负债清分均额=新增代币负债额÷联盟成员数量+退盟成员负债转让均额,有退盟成员的某联盟成员负债清分额=该联盟成员代币发放额汇总求和+该联盟成员创币交易费汇总求和-该联盟成员代币回收额汇总求和-交易费均额-有退盟成员的联盟成员负债清分均额,交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量;把形成的候选记账提案提交到联盟链***通过交流投票信息达成共识一致并记账到区块链;
所述步骤F)中的债务清算,清算中心定期对区块链进行分段清算,根据清算区段上记录的各个联盟成员负债清分额,计算出各个联盟成员区段负债清分额 ;清算中心根据清算区段上实际记录的各个退盟成员负债转让额和计算出的各个联盟成员区段负债清分额,对各个退盟成员和各个联盟成员进行资金划拨和债务核销;其中,某联盟成员区段负债清分额=清算区段上实际记录的该联盟成员负债清分额汇总求和;
当代币把锚定挂钩的法币所属货币单位作为记账单位时,清算中心采用锚定挂钩的法币进行资金划拨和债务核销,法币和代币按1:1的比例进行换算,某退盟成员法币清算额=该退盟成员负债转让额,某联盟成员法币清算额=该联盟成员区段负债清分额;
当代币把锚定挂钩的“一篮子法币”作为记账单位时,清算中心采用联盟公认的法币进行资金划拨和债务核销,法币和代币按“一篮子法币”清算汇率进行换算,某退盟成员法币清算额=该退盟成员负债转让额ד一篮子法币”清算汇率,某联盟成员法币清算额=该联盟成员区段负债清分额ד一篮子法币”清算汇率;其中,“一篮子法币”清算汇率是用清算的法币所属货币单位表示“一篮子法币”所属货币单位的价格。
4.如权利要求2所述基于联盟链的代币方法,其中基于Account模型的同币种联盟链,其特征在于:
当代币和交易费把锚定挂钩的法币所属货币单位作为记账单位时,所述步骤B)中的代币发放额=代币出账发生额-创币交易费额;其中,代币出账发生额=用户注入的法币额,创币交易费额是以锚定挂钩的法币所属货币单位作为记账单位时的交易费额;
当代币和交易费把锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时,所述步骤B)中的代币发放额=代币出账发生额-创币交易费额;其中,代币出账发生额=用户注入的法币额ד一篮子法币”注入汇率,“一篮子法币”注入汇率是用“一篮子法币”所属货币单位表示注入的法币所属货币单位的价格,创币交易费额是以锚定挂钩的“一篮子法币” 所属货币单位作为记账单位时的交易费额;
所述步骤B)中的创币交易包含代币发放额、接收方用户提供的代币接收地址和附加的联盟成员对创币交易的签名;
所述步骤C)中的发送方用户通过扫描区块链计算属于本用户的代币轧差额来获取本用户的可用代币;
所述步骤C)中的代币出账发生额=代币支付额+转账交易费额;
所述步骤C)中的转账交易包含代币支付额、接收方用户提供的代币接收地址、nonce和附加的发送方用户对转账交易的签名;
所述步骤D)中的发送方用户通过扫描区块链计算属于本用户的代币轧差额来获取本用户的可用代币;
所述步骤D)中的代币出账发生额=代币回收额+销币交易费额;
所述步骤D)中的销币交易包含代币回收额、接收方联盟成员提供的代币接收地址、nonce和附加的发送方用户对销币交易的签名;
当代币把锚定挂钩的法币所属货币单位作为记账单位时,所述步骤D)中的用户抽离法币额=代币回收额,联盟成员根据回收销毁的代币额按1:1的比例兑换给用户需要的法币;
当代币把锚定挂钩的“一篮子法币”所属货币单位作为记账单位时,所述步骤D)中的用户抽离法币额=代币回收额ד一篮子法币”抽离汇率,联盟成员根据回收销毁的代币额按“一篮子法币”抽离汇率兑换给用户需要的法币;其中,“一篮子法币”抽离汇率是用抽离的法币所属货币单位表示“一篮子法币”所属货币单位的价格;
所述步骤E)中的交易验证,创币交易作为待验证交易时为合法交易,可直接被放入候选交易集;非创币交易作为待验证交易时,联盟成员从创世区块开始沿着区块链按时间正序遵循代币的发放流通路径,根据用户参与区块链的顺序,按区块产生的顺序逐块检验区块内用户的代币余额来源,直至正被共识的区块;若构造待验证交易的用户为合法用户且构造的待验证交易为合法交易,则待验证交易通过合法性验证,可以被放入候选交易集,否则,待验证交易未通过合法性验证,不能被放入候选交易集;其中,合法用户为符合条件1至条件3中任1条件的用户,条件1、用户的代币余额来源仅由创币交易构成,条件2、用户的代币余额来源仅由合法用户构造的合法交易构成,条件3、用户的代币余额来源由创币交易和合法用户构造的合法交易共同构成,合法交易为符合条件1至条件2中任1条件的交易,条件1、交易为创币交易,条件2、合法用户构造的基于nonce且出账发生额不小于交易所需消耗量的交易;
所述步骤E)中的共识记账,联盟成员把通过合法性验证的交易汇聚成候选交易集;计算基于候选交易集的新增代币负债额;其中,新增代币负债额=各联盟成员轧差额汇总求和,某联盟成员轧差额=该联盟成员出账发生额-该联盟成员入账发生额-交易费均额,该联盟成员出账发生额=该联盟成员代币发放额汇总求和+该联盟成员创币交易费汇总求和,该联盟成员入账发生额=该联盟成员代币回收额汇总求和, 交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量;计算基于候选交易集的新增流通代币额;其中,新增流通代币额=各用户代币轧差额汇总求和,某用户代币轧差额=该用户入账发生额-该用户出账发生额,该用户入账发生额=该用户作为创币交易接收方时的代币发放额汇总求和+该用户作为转账交易接收方时的代币支付额汇总求和,该用户出账发生额=该用户作为转账交易发送方时的代币支付额汇总求和+该用户作为转账交易发送方时的转账交易费汇总求和+该用户作为销币交易发送方时的代币回收额汇总求和+该用户作为销币交易发送方时的销币交易费汇总求和;在新增代币负债额和新增流通代币额相等的情况下检验有无联盟成员退盟;若无联盟成员退盟,计算无退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额,形成包含候选交易集、无退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额的候选记账提案;其中,无退盟成员的联盟成员负债清分均额=新增代币负债额÷联盟成员数量,无退盟成员的某联盟成员负债清分额=该联盟成员轧差额-无退盟成员的联盟成员负债清分均额;若有联盟成员退盟,计算各个退盟成员负债转让额和退盟成员负债转让均额,计算有退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额,形成包含候选交易集、各个退盟成员负债转让额、有退盟成员的联盟成员负债清分均额和各个联盟成员负债清分额的候选记账提案;其中,某退盟成员负债转让额=该退盟成员从加盟区块起至退盟区块止且不包含退盟区块的所有区块上记录的该退盟成员作为联盟成员时的负债清分均额汇总求和,退盟成员负债转让均额=在该区块退盟的所有退盟成员的负债转让额汇总求和÷联盟成员数量,有退盟成员的联盟成员负债清分均额=新增代币负债额÷联盟成员数量+退盟成员负债转让均额,有退盟成员的某联盟成员负债清分额=该联盟成员轧差金额-有退盟成员的联盟成员负债清分均额;把形成的候选记账提案提交到联盟链***通过交流投票信息达成共识一致并记账到区块链;
所述步骤F)中的债务清算,清算中心定期对区块链进行分段清算,根据清算区段上记录的各个联盟成员负债清分额,计算出各个联盟成员区段负债清分额 ;清算中心根据清算区段上实际记录的各个退盟成员负债转让额和计算出的各个联盟成员区段负债清分额,对各个退盟成员和各个联盟成员进行资金划拨和债务核销;其中,某联盟成员区段负债清分额=清算区段上实际记录的该联盟成员负债清分额汇总求和;
当代币把锚定挂钩的法币所属货币单位作为记账单位时,清算中心采用锚定挂钩的法币进行资金划拨和债务核销,法币和代币按1:1的比例进行换算,某退盟成员法币清算额=该退盟成员负债转让额,某联盟成员法币清算额=该联盟成员区段负债清分额;
当代币把锚定挂钩的“一篮子法币”作为记账单位时,清算中心采用联盟公认的法币进行资金划拨和债务核销,法币和代币按“一篮子法币”清算汇率进行换算,某退盟成员法币清算额=该退盟成员负债转让额ד一篮子法币”清算汇率,某联盟成员法币清算额=该联盟成员区段负债清分额ד一篮子法币”清算汇率,其中,“一篮子法币”清算汇率是用清算的法币所属货币单位表示“一篮子法币”所属货币单位的价格。
5.如权利要求2所述基于联盟链的代币方法,其中的多币种联盟链,其特征在于:对联盟链***中的代币分币种进行操作处理。
6.如权利要求5述基于联盟链的代币方法,其中基于UTXO模型的多币种联盟链,其特征在于:
所述步骤B)中的代币发放额=代币出账发生额-创币交易费换算额;其中,代币出账发生额=用户注入的法币额×法币注入汇率,法币注入汇率是用发放的代币所属货币单位表示注入的法币所属货币单位价格,创币交易费换算额=采用联盟公认的货币单位作为记账单位时的创币交易费额×创币交易费汇率,创币交易费汇率是用发放的代币所属货币单位表示创币交易费所属货币单位的价格,创币交易费所属货币单位采用联盟公认的货币单位;
所述步骤B)中的创币交易包含代币发放额、接收方用户提供的代币接收地址和附加的联盟成员对创币交易的签名;
所述步骤C)中的发送方用户通过扫描区块链分币种汇聚属于本用户的 UTXO 来获取本用户的可用代币;
所述步骤C)中的代币出账发生额=代币支付换算额+转账交易费换算额;其中,代币支付换算额=采用构造转账交易的支付代币所属货币单位作为记账单位时的代币支付额×代币支付汇率,代币支付汇率是用出账代币所属货币单位表示构造转账交易的支付代币所属货币单位的价格,转账交易费换算额=采用联盟公认的货币单位作为记账单位时的转账交易费额×转账交易费汇率,转账交易费汇率是用出账代币所属货币单位表示转账交易费所属货币单位的价格,转账交易费所属货币单位采用联盟公认的货币单位;
所述步骤C)中的转账交易包含转账输入和转账输出,转账输入包含发送方用户引用的UTXO和UTXO解锁脚本,转账输出包含代币支付额和代币支付锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在转账输出中,追加找零金额和发送方用户提供的找零锁定脚本;其中,转账交易UTXO解锁脚本包含发送方用户对引用的UTXO和转账输出的签名,代币支付锁定脚本包含接收方用户提供的代币接收地址,找零锁定脚本包含发送方用户提供的找零代币接收地址,找零金额=发送方用户UTXO引用额-代币出账发生额;
所述步骤D)中的发送方用户通过扫描区块链分币种汇聚属于本用户的 UTXO 来获取本用户的可用代币;
所述步骤D)中的代币出账发生额=代币回收换算额+销币交易费换算额;其中,代币回收换算额=采用构造销币交易的回收代币所属货币单位作为记账单位时的代币回收额×代币回收汇率,代币回收汇率是用出账代币所属货币单位表示构造销币交易的回收代币所属货币单位的价格,销币交易费换算额=采用联盟公认的货币单位作为记账单位时的销币交易费额×销币交易费汇率,销币交易费汇率是用出账代币所属货币单位表示销币交易费所属货币单位的价格,销币交易费所属货币单位采用联盟公认的货币单位;
所述步骤D)中的销币交易包含销币输入和销币输出,销币输入包含发送方用户引用的UTXO和UTXO解锁脚本,销币输出包含代币回收额和代币回收锁定脚本,当发送方用户UTXO引用额大于代币出账发生额时,再在销币输出中,追加找零金额和发送方用户提供的找零锁定脚本;其中,销币交易UTXO解锁脚本包含发送方用户对引用的UTXO和销币输出的签名,代币回收锁定脚本包含接收方联盟成员提供的代币接收地址,找零锁定脚本包含发送方用户提供的找零代币接收地址,找零金额=发送方用户UTXO引用额-代币出账发生额;
所述步骤D)中的用户抽离法币额=采用回收代币所属货币单位作为记账单位时的法币额;
所述步骤E)中的交易验证,创币交易作为待验证交易时为合法交易,可直接被放入候选交易集;非创币交易作为待验证交易时,联盟成员各自沿着区块链按时间倒序根据交易输入指向的UTXO形成的交易链条,追溯待验证交易之前发生的所有交易,直至创币交易;若作为非创币交易的待验证交易同时符合条件1和条件2,则作为非创币交易的待验证交易通过合法性验证,可以被放入候选交易集,否则,作为非创币交易的待验证交易未通过合法性验证,不能被放入候选交易集;其中,条件1、作为非创币交易的待验证交易引用的UTXO是首次被引用且引用额不小于交易所需消耗量并被作为整体一次性消耗掉,条件2、作为非创币交易的待验证交易引用的UTXO交易链条是联盟链***唯一公认的历史交易序列且链条上的交易引用量均不小于交易所需消耗量并被作为整体一次性消耗掉;
所述步骤E)中的共识记账,联盟成员把通过合法性验证的交易汇聚成候选交易集;计算基于候选交易集的分币种新增代币负债额;其中,某币种新增代币负债额=该币种创币交易代币发放额汇总求和-该币种销币交易代币回收额汇总求和-该币种转账交易费额汇总求和-该币种销币交易费额汇总求和;计算基于候选交易集的分币种新增流通代币额;其中,某币种新增流通代币额=该币种创币交易代币发放额汇总求和+该币种转账交易代币支付额汇总求和+该币种找零金额汇总求和-该币种UTXO引用额汇总求和;在各币种新增代币负债额和各币种新增流通代币额相等的情况下检验有无联盟成员退盟;若无联盟成员退盟,计算无退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额,形成包含候选交易集、无退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额的候选记账提案;其中,无退盟成员的联盟成员某币种负债清分均额=该币种新增代币负债额÷联盟成员数量,无退盟成员的某联盟成员某币种负债清分额=该联盟成员的该币种代币发放额汇总求和+该联盟成员的该币种创币交易费汇总求和-该联盟成员的该币种代币回收额汇总求和-该币种交易费均额-无退盟成员的联盟成员该币种负债清分均额;若有联盟成员退盟,计算各个退盟成员各币种负债转让额和退盟成员各币种负债转让均额,计算有退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额,形成包含候选交易集、各个退盟成员各币种负债转让额、有退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额的候选记账提案;其中,某退盟成员某币种负债转让额=该退盟成员从加盟区块起至退盟区块止且不包含退盟区块的所有区块上记录的该退盟成员作为联盟成员时的该币种负债清分均额汇总求和,退盟成员某币种负债转让均额=在该区块退盟的所有退盟成员的该币种负债转让额汇总求和÷联盟成员数量,有退盟成员的联盟成员某币种负债清分均额=该币种新增代币负债额÷联盟成员数量+退盟成员该币种负债转让均额,有退盟成员的某联盟成员某币种负债清分额=该联盟成员该币种代币发放额汇总求和+该联盟成员该币种创币交易费汇总求和-该联盟成员该币种代币回收额汇总求和-该币种交易费均额-有退盟成员的联盟成员该币种负债清分均额,交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量,交易费货币单位采用联盟公认的货币单位;把形成的候选记账提案提交到联盟链***通过交流投票信息达成共识一致并记账到区块链;
所述步骤F)中的债务清算,清算中心定期对区块链进行分段清算,根据清算区段上记录的各个联盟成员各币种负债清分额,计算出各个联盟成员各币种区段负债清分额 ;清算中心根据清算区段上实际记录的各个退盟成员各币种负债转让额和计算出的各个联盟成员各币种区段负债清分额,采用与代币币种相对应的法币,对各个退盟成员和各个联盟成员分币种进行资金划拨和债务核销;其中,某联盟成员某币种区段负债清分额=清算区段上实际记录的该联盟成员该币种负债清分额汇总求和。
7.如权利要求5述基于联盟链的代币方法,其中基于Account模型的多币种联盟链,其特征在于:
所述步骤B)中的代币发放额=代币出账发生额-创币交易费换算额;其中,代币出账发生额=用户注入的法币额×法币注入汇率,法币注入汇率是用发放的代币所属货币单位表示注入的法币所属货币单位价格,创币交易费换算额=采用联盟公认的货币单位作为记账单位时的创币交易费额×创币交易费汇率,创币交易费汇率是用发放的代币所属货币单位表示创币交易费所属货币单位的价格,创币交易费所属货币单位采用联盟公认的货币单位;
所述步骤B)中的创币交易包含代币发放额、接收方用户提供的代币接收地址和附加的联盟成员对创币交易的签名;
所述步骤C)中的发送方用户通过扫描区块链分币种计算属于本用户的代币轧差额来获取本用户的可用代币;
所述步骤C)中的代币出账发生额=代币支付换算额+转账交易费换算额;其中,代币支付换算额=采用构造转账交易的支付代币所属货币单位作为记账单位时的代币支付额×代币支付汇率,代币支付汇率是用出账代币所属货币单位表示构造转账交易的支付代币所属货币单位的价格,转账交易费换算额=采用联盟公认的货币单位作为记账单位时的转账交易费额×转账交易费汇率,转账交易费汇率是用出账代币所属货币单位表示转账交易费所属货币单位的价格,转账交易费所属货币单位采用联盟公认的货币单位;
所述步骤C)中的转账交易包含代币支付额、接收方用户提供的代币接收地址、nonce和附加的发送方用户对转账交易的签名;
所述步骤D)中的发送方用户通过扫描区块链分币种计算属于本用户的代币轧差额来获取本用户的可用代币;
所述步骤D)中的代币出账发生额=代币回收换算额+销币交易费换算额;其中,代币回收换算额=采用构造销币交易的回收代币所属货币单位作为记账单位时的代币回收额×代币回收汇率,代币回收汇率是用出账代币所属货币单位表示构造销币交易的回收代币所属货币单位的价格,销币交易费换算额=采用联盟公认的货币单位作为记账单位时的销币交易费额×销币交易费汇率,销币交易费汇率是用出账代币所属货币单位表示销币交易费所属货币单位的价格,销币交易费所属货币单位采用联盟公认的货币单位;
所述步骤D)中的销币交易包含代币回收额、接收方联盟成员提供的代币接收地址、nonce和附加的发送方用户对销币交易的签名;
所述步骤D)中的用户抽离法币额=采用回收代币所属货币单位作为记账单位时的法币额;
所述步骤E)中的交易验证,创币交易作为待验证交易时为合法交易,可直接被放入候选交易集;非创币交易作为待验证交易时,联盟成员从创世区块开始沿着区块链按时间正序遵循代币的发放流通路径,根据用户参与区块链的顺序,按区块产生的顺序逐块检验区块内用户的代币余额来源,直至正被共识的区块;若构造待验证交易的用户为合法用户且构造的待验证交易为合法交易,则待验证交易通过合法性验证,可以被放入候选交易集,否则,待验证交易未通过合法性验证,不能被放入候选交易集;其中,合法用户为符合条件1至条件3中任1条件的用户,条件1、用户的代币余额来源仅由创币交易构成,条件2、用户的代币余额来源仅由合法用户构造的合法交易构成,条件3、用户的代币余额来源由创币交易和合法用户构造的合法交易共同构成,合法交易为符合条件1至条件2中任1条件的交易,条件1、交易为创币交易,条件2、合法用户构造的基于nonce且出账发生额不小于交易所需消耗量的交易;
所述步骤E)中的共识记账,联盟成员把通过合法性验证的交易汇聚成候选交易集;计算基于候选交易集的分币种新增代币负债额;其中,某币种新增代币负债额=各联盟成员该币种轧差额汇总求和,某联盟成员某币种轧差额=该联盟成员该币种出账发生额-该联盟成员该币种入账发生额-该币种交易费均额,该联盟成员该币种出账发生额=该联盟成员该币种代币发放额汇总求和+该联盟成员该币种创币交易费汇总求和,该联盟成员该币种入账发生额=该联盟成员该币种代币回收额汇总求和,交易费均额=(创币交易费汇总求和+转账交易费汇总求和+销币交易费汇总求和)÷联盟成员数量,交易费货币单位采用联盟公认的货币单位;计算基于候选交易集的分币种新增流通代币额;其中,某币种新增流通代币额=各用户该币种代币轧差额汇总求和,某用户某币种代币轧差额=该用户该币种入账发生额-该用户该币种出账发生额,该用户该币种入账发生额=该用户作为创币交易接收方时的该币种代币发放额汇总求和+该用户作为转账交易接收方时的该币种代币支付额汇总求和,该用户该币种出账发生额=该用户作为转账交易发送方时的该币种代币支付额汇总求和+该用户作为转账交易发送方时的该币种转账交易费汇总求和+该用户作为销币交易发送方时的该币种代币回收额汇总求和+该用户作为销币交易发送方时的该币种销币交易费汇总求和;在各币种新增代币负债额和各币种新增流通代币额相等的情况下检验有无联盟成员退盟;若无联盟成员退盟,计算无退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额,形成包含候选交易集、无退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额的候选记账提案;其中,无退盟成员的联盟成员某币种负债清分均额=该币种新增代币负债额÷联盟成员数量;无退盟成员的某联盟成员某币种负债清分额=该联盟成员该币种轧差金额-无退盟成员的联盟成员该币种负债清分均额;若有联盟成员退盟,计算各个退盟成员各币种负债转让额和退盟成员各币种负债转让均额,计算有退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额,形成包含候选交易集、各个退盟成员各币种负债转让额、有退盟成员的联盟成员各币种负债清分均额和各个联盟成员各币种负债清分额的候选记账提案;其中,某退盟成员某币种负债转让额=该退盟成员从加盟区块起至退盟区块止且不包含退盟区块的所有区块上记录的该退盟成员作为联盟成员时的该币种负债清分均额汇总求和;退盟成员某币种负债转让均额=在该区块退盟的所有退盟成员的该币种负债转让额汇总求和÷联盟成员数量;有退盟成员的联盟成员某币种负债清分均额=该币种新增代币负债额÷联盟成员数量+退盟成员该币种负债转让均额;有退盟成员的某联盟成员某币种负债清分额=该联盟成员该币种轧差金额-有退盟成员的联盟成员该币种负债清分均额;把形成的候选记账提案提交到联盟链***通过交流投票信息达成共识一致并记账到区块链;
所述步骤F)中的债务清算,清算中心定期对区块链进行分段清算,根据清算区段上记录的各个联盟成员各币种负债清分额,计算出各个联盟成员各币种区段负债清分额 ;清算中心根据清算区段上实际记录的各个退盟成员各币种负债转让额和计算出的各个联盟成员各币种区段负债清分额,采用与代币币种相对应的法币,对各个退盟成员和各个联盟成员分币种进行资金划拨和债务核销;其中,某联盟成员某币种区段负债清分额=清算区段上实际记录的该联盟成员该币种负债清分额汇总求和。
8.一种基于联盟链的代币***,其特征在于,包括:联盟管理模块、代币发放模块、转账支付模块、代币回收模块、共识记账模块、债务清算模块,其中,
联盟管理模块,用于设定联盟成员的准入机制和退出机制,设定联盟成员参与区块链共识需要遵循的共识协议,当非联盟成员加盟时,指定加盟的起始区块,当联盟成员退盟时,指定退盟的起始区块;
代币发放模块,用于用户通过联盟成员注入法币,联盟成员构造创币交易,向用户发放代币,把用户注入的法币转换为可使用的代币;
转账支付模块,用于用户间进行转账支付,接收发送方用户支付的代币,花费区块链上的可用代币给接收方用户;
代币回收模块,用于用户通过联盟成员抽离法币,用户构造销币交易,联盟成员回收销毁代币,根据回收销毁的代币计算用户抽离法币额,根据抽离法币额兑换给用户需要的法币;
共识记账模块,用于联盟成员遵循共识协议对交易进行验证,对退盟成员承担的用户负债进行转让,对联盟成员共同承担的用户负债进行清分,对操作后的交易信息、退盟成员负债转让信息和联盟成员负债清分信息达成共识一致并记账到区块链;
债务清算模块,用于清算中心根据区块链上记录的退盟成员负债转让信息和联盟成员负债清分信息对退盟成员和联盟成员进行债务清算。
9.一种基于联盟链的用户钱包,其特征在于,包括:密钥模块、法币模块、代币模块,其中,
密钥模块,用于用户生成、保存和管理用于交易签名的私钥、验证交易签名的公钥和用于接收代币的地址;
法币模块,用于用户支付通过联盟成员注入的法币,用于用户接收通过联盟成员抽离的法币;
代币模块,用于用户作为发送方时,构造转账交易,向接收方用户发送代币,构造销币交易,向接收方联盟成员支付用于兑换法币的代币,作为接收方时,向发送方联盟成员和发送方用户提供用于接收代币的地址。
CN201910889400.5A 2019-09-19 2019-09-19 一种基于联盟链的代币方法、***及钱包 Pending CN110599340A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910889400.5A CN110599340A (zh) 2019-09-19 2019-09-19 一种基于联盟链的代币方法、***及钱包

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910889400.5A CN110599340A (zh) 2019-09-19 2019-09-19 一种基于联盟链的代币方法、***及钱包

Publications (1)

Publication Number Publication Date
CN110599340A true CN110599340A (zh) 2019-12-20

Family

ID=68861651

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910889400.5A Pending CN110599340A (zh) 2019-09-19 2019-09-19 一种基于联盟链的代币方法、***及钱包

Country Status (1)

Country Link
CN (1) CN110599340A (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111275414A (zh) * 2019-12-31 2020-06-12 深圳市网心科技有限公司 一种基于区块链的数字货币兑换方法、装置及***
CN111639122A (zh) * 2020-04-08 2020-09-08 广东中科智能区块链技术有限公司 一种融合公有链的联盟链激励方案与装置
CN111813855A (zh) * 2020-06-22 2020-10-23 上海申铁信息工程有限公司 一种基于区块链智能合约的资产交易***和装置
CN114638678A (zh) * 2022-03-22 2022-06-17 成都质数斯达克科技有限公司 一种基于区块链的清算方法、装置、设备及可读存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106940854A (zh) * 2017-03-06 2017-07-11 钱德君 一种utxo模型与合约之间的搭桥方法
CN108629583A (zh) * 2018-04-16 2018-10-09 上海分赋信息科技有限公司 基于分布式技术实现数字资产在映射链上的映射***及相应方法
CN109493053A (zh) * 2018-11-22 2019-03-19 质数链网科技成都有限公司 一种用于联盟区块链***的匿名交易方法
CN109685658A (zh) * 2018-12-20 2019-04-26 杭州云象网络技术有限公司 一种基于联盟通证的发行及运行方法
CN109934710A (zh) * 2018-11-08 2019-06-25 杭州基尔区块链科技有限公司 基于双通证的适用于知识产权联盟链的智能共识机制
CN109964446A (zh) * 2018-06-08 2019-07-02 北京大学深圳研究生院 一种基于投票的共识方法
CN110020860A (zh) * 2019-04-09 2019-07-16 湖南天河国云科技有限公司 一种跨链资产转移方法、***及计算机可读存储介质
CN110096905A (zh) * 2019-04-28 2019-08-06 杭州秘猿科技有限公司 采用区块链技术加密信托资产的方法、装置和电子设备

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106940854A (zh) * 2017-03-06 2017-07-11 钱德君 一种utxo模型与合约之间的搭桥方法
CN108629583A (zh) * 2018-04-16 2018-10-09 上海分赋信息科技有限公司 基于分布式技术实现数字资产在映射链上的映射***及相应方法
CN109964446A (zh) * 2018-06-08 2019-07-02 北京大学深圳研究生院 一种基于投票的共识方法
CN109934710A (zh) * 2018-11-08 2019-06-25 杭州基尔区块链科技有限公司 基于双通证的适用于知识产权联盟链的智能共识机制
CN109493053A (zh) * 2018-11-22 2019-03-19 质数链网科技成都有限公司 一种用于联盟区块链***的匿名交易方法
CN109685658A (zh) * 2018-12-20 2019-04-26 杭州云象网络技术有限公司 一种基于联盟通证的发行及运行方法
CN110020860A (zh) * 2019-04-09 2019-07-16 湖南天河国云科技有限公司 一种跨链资产转移方法、***及计算机可读存储介质
CN110096905A (zh) * 2019-04-28 2019-08-06 杭州秘猿科技有限公司 采用区块链技术加密信托资产的方法、装置和电子设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
张健毅等: "基于区块链的可监管数字货币模型", 《计算机研究与发展》 *
曹兆磊: "一种适用于联盟链的共识机制", 《网络空间安全》 *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111275414A (zh) * 2019-12-31 2020-06-12 深圳市网心科技有限公司 一种基于区块链的数字货币兑换方法、装置及***
CN111639122A (zh) * 2020-04-08 2020-09-08 广东中科智能区块链技术有限公司 一种融合公有链的联盟链激励方案与装置
CN111813855A (zh) * 2020-06-22 2020-10-23 上海申铁信息工程有限公司 一种基于区块链智能合约的资产交易***和装置
CN114638678A (zh) * 2022-03-22 2022-06-17 成都质数斯达克科技有限公司 一种基于区块链的清算方法、装置、设备及可读存储介质
CN114638678B (zh) * 2022-03-22 2024-07-02 成都质数斯达克科技有限公司 一种基于区块链的清算方法、装置、设备及可读存储介质

Similar Documents

Publication Publication Date Title
WO2022100078A1 (zh) 智慧供应链区块链BaaS跨境数字支付平台
CN109615510B (zh) 一种基于区块链的供应链金融多级增信方法
CN110599340A (zh) 一种基于联盟链的代币方法、***及钱包
US10956878B2 (en) Minting and use of digital money
CN201707689U (zh) 税务征管***
CN107146101A (zh) 一种基于区块链的通用电子优惠券发行方法
CN106780033A (zh) 一种基于联盟链的数字票据交易***构建方法
CN109685486A (zh) 一种基于区块链技术的聚合链架构
CN109784886B (zh) 可监管的限制流通的双账户模型
CN107369010A (zh) 一种基于区块链的电子钱包的创建方法
CN110737721B (zh) 基于区块链架构的应收账款流转融资方法及装置
CN101004810A (zh) 一种基于网络的电子票据方法及***
CN101699506A (zh) 电子***及其生成装置、税务征管***及其方法
CN108881164B (zh) 一种带主权货币发布机制和区块链发布机制的多中心有限域区块链认证***
Bergara et al. Central bank digital currency: the Uruguayan e-Peso case
CN114511398B (zh) 基于区块链的铁路工程保理融资平台
KR20210100693A (ko) 온라인 및 오프라인에서의 가상화폐 이전 방법 및 그 시스템
CN112053232B (zh) 自助设备业务账务一致性处理方法及装置
CN111369371A (zh) 一种基于区块链的商票融资***及方法
CN113570350A (zh) 一种基于区块链的票据数字化交互***及其方法
CN101377844A (zh) 债务清偿***与方法
KR20210041456A (ko) 퍼블릭 블록체인 네트워크 기반의 신재생에너지 공급인증서(rec) 거래 시스템 및 방법
CN104992351A (zh) 基于多级成本服务的智能化需求匹配和交易***及方法
CN108428133A (zh) 一种互联网供应链金融信用支付交易方法
CN111582864A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20191220

RJ01 Rejection of invention patent application after publication