CN111539721A - 一种基于零知识证明的100%资产准备金证明方法及证明装置 - Google Patents
一种基于零知识证明的100%资产准备金证明方法及证明装置 Download PDFInfo
- Publication number
- CN111539721A CN111539721A CN202010252928.4A CN202010252928A CN111539721A CN 111539721 A CN111539721 A CN 111539721A CN 202010252928 A CN202010252928 A CN 202010252928A CN 111539721 A CN111539721 A CN 111539721A
- Authority
- CN
- China
- Prior art keywords
- platform
- asset
- user
- assets
- merkle tree
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000002360 preparation method Methods 0.000 title abstract description 10
- 238000012795 verification Methods 0.000 claims abstract description 11
- 238000004422 calculation algorithm Methods 0.000 claims description 26
- 238000004364 calculation method Methods 0.000 claims description 8
- 238000010200 validation analysis Methods 0.000 claims description 5
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000002860 competitive effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
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/389—Keeping log of transactions for guaranteeing non-repudiation of a transaction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- General Physics & Mathematics (AREA)
- Finance (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Development Economics (AREA)
- Economics (AREA)
- Marketing (AREA)
- Technology Law (AREA)
- Computing Systems (AREA)
- Storage Device Security (AREA)
Abstract
本申请公开了一种基于零知识证明的100%资产准备金证明方法及证明装置,利用了零知识证明,证明平台对所宣示资产的所有权的合法性。本技术基于零知识证明的100%资产准备金证明方法旨在提高资产所有人和资产管理平台之间的信任,让资产所有人的资产不被随意挪用,让资产管理平台能自证清白。基于该方法,资产管理平台可以向所有的平台用户证明,平台的准备金率不低于100%,证明平台拥有的数字资产大于所有用户资产的总额;所有用户都可以采用本技术流程进行资产验证,所有用户都能确认自己的资产数目在平台公布的储备资产数据中,没有任何用户提出资产数据被重复验证或者伪造。
Description
技术领域
本申请涉及区块链数字化应用技术领域,具体而言,涉及一种基于零知识证明的100%资产准备金证明方法及证明装置。
背景技术
区块链就是一个经过特殊加密、遵循少数服从多数原则、同时记录同一笔交易的透明的大账本。在区块链上存在着许多的去中心化数字资产,但这些资产属于不同的所有人。资产所有人为了更方便的管理数字资产,往往将其托管在中心化的资产管理平台,自然而然的,带来了对平台的信任问题。在区块链链行业中,尤其是早期,挪用用户资产的丑闻屡见不鲜。如果区块链行业中的企业不能自证清白,只能天下乌鸦一般黑,因为自我操守坚持不能形成竞争优势,最终会摧毁资产所有人对每个区块链企业的信任,进而摧毁整个行业。因此,区块链行业或者平台如何证明自身资产是关键问题所在。
现有技术中,如专利号CN108389046A一种电子商务中基于区块链技术的隐私保护交易方法,该方法包括以下两个阶段:
分发阶段:将区块链、工业数据空间和物联网技术结合在一起,建立一个基础架构,以分布式的方式为管理物流业务建立一个综合平台;其中,区块链用于记录、存储数据并运行隐私智能合约;工业数据空间用于物流链各方之间的安全数据交换;物联网技术用于物流网络上的实时数据传输。
虽然在具有数据隐私保护要求的电子商务中,具备资产交易数据和过程隐私保护功能,只有隐私智能合约交易参与方可以查看限定的交易信息,对卖家隐藏诸如身份、地址、电话号码等隐私信息,但对于平台和用户之间的资产互证并无解决,且不能证明用户资产是否在平台公布的储备数字资产中以及证明平台的准备金率,从而无法确保资产安全管理。
发明内容
本申请的主要目的在于提供一种基于零知识证明的100%资产准备金证明方法及证明装置,以解决目前的问题。
为了实现上述目的,本申请提供了如下技术:
本技术基于零知识证明的100%资产准备金证明方法旨在提高资产所有人和资产管理平台之间的信任,让资产所有人的资产不被随意挪用,让资产管理平台能自证清白。基于该方法,资产管理平台可以向所有的平台用户证明,平台的准备金率不低于100%,证明平台拥有的数字资产大于所有用户资产的总额。
具体而言,一种基于零知识证明的100%资产准备金证明方法,包括如下步骤:
第一步S1、公布平台资产,
包括:S100、资产管理平台公布所有资产的持币地址,并公开其拥有的资产储备总额数量,以及
S110、基于零知识证明,资产管理平台证明对持币地址的所有权;
第二步S2、计算用户资产,生成用户节点数据的Merkle树,
包括:S200、平台根据用户的资产数据,通过如下步骤生成用户结点数据:每个用户具有userid,userinfo,amount,通过hashid hash函数算法为每个用户生成userid,userinfo,amount,nonce,以及
S220、通过算法根据用户节点生成平衡的Merkle树,非平衡的结点进行零资产结点填充;
第三步S3、向用户提供公开Merkle树:资产管理平台向每个用户提供平台完整的平衡Merkle树数据;
第四步S4、用户自行验证资产,
包括:S400、首先验证平台公布的持币地址,确定其所有权真正归属于平台。按照如下算法:
valid=Verify_Addr(asset,addr,pubkeys,messages,signature)
输入:
asset:资产种类
addr:资产地址
pubkeys:公钥,可以为一个和多个公钥
messages:平台一直以来公布的随机消息序列
signatures:随机消息序列对应的签名序列
输出:
valid:验证结果,true/false
Verify_Addr(asset,addr,pubkeys,messages,signatures):
(1)、v←Equal(addr,Cal_Addr(asset,,pukeys))
(2)、assert(Equal(len(messages),len(pubkeys)))
(3)、for i←0…len(messages)-1:
(4)、v←v||Verify_Sig(pubkeys,signature)
(5)、return v
检查valid值,如果为true,地址所有权验证成功;反之,验证失败,证明平台造假,验证流程结束。其中Cal_Addr中针对不同数字资产,使用不同的地址计算算法;Verify_Sig资产对应的签名算法,包括但不限于Secp256k1、Ed25519、Schnorr。
S410、接着验证平台公布的持币地址资产是否大于等于Merkle资产树的根结点数字资产数量,如果大于等于,则证明平台拥有大于等于100%的用户储备金,则验证成功,反之证伪,以及
S420、用户可以根据app端展示的nonce等相关数据,按照上述描述的hash函数,自行计算hashID,然后在平衡Merkle树中自行搜索查找叶子结点,证明用户资产在平台公布的储备数字资产中;
第五步S5、在Merkle Tree中查找用户HASH。
进一步地,在步骤S120中,基于零知识证明,资产管理平台证明对持币地址的所有权,具体指:基于指定签名算法,用地址私钥对某随机事件生成的随机Hash进行签名,并对外公开签名值。
进一步地,在步骤S200中,hashid hash计算函数为:
hashid=Cal(userid,userinfo,nonce,amount,hlen)
计算如下:
输入:
userid:用户ID
userinfo:户信息
nonce:随机数
amount:用户资产余额
hlen:截断长度
输出:
hashid:哈希ID
Cal(userid,userinfo,nonce,amount,hlen):
(1)、str←userid||userinfo||nonce||amount,
(2)、h←HashFunc(str),
(3)、hashid←h.substr[0:hlen*2],
(4)、return hashid。
进一步地,在步骤S200与S220之间,还可以存在:S210、***根据展示需求,可以选取部分hash值截断展示。
进一步地,在步骤S410后,还可以存在:S420、用户可以公布“用户自行验证资产”的过程与数据。
进一步地,在步骤S1中,公布平台资产,如果平台公开的地址不属于平台,那么平台无法用对应私钥对随机的字符串签名,并长期对外公布;用户验证可知平台弄虚作假,则证伪。
进一步地,在步骤S3中,资产管理平台向每个用户提供平台完整的平衡Merkle树数据,如果平台对不同的用户提供不同的Merkle树,对应的Merkle树的根节点必然不同,只需要两个用户对比就能判断平台弄虚作假,则证伪。
一种证明装置,包括:
平台资产公布模块:公布资产管理平台其所有资产的持币地址和储备数额;
Merkle树生成模块:根据用户节点数据,生成平衡的Merkle树模型;
Merkle树公开模块:公开上述Merkle树生成模块生成平衡的Merkle树模型;
用户自行验证资产模块:能够验证平台的准备金率和用户资产在平台公布的储备数字资产中的情况;
用户HASH查询模块:查询用户在Merkle树中的地址以及显示用户资产情况。
与现有技术相比较,本申请能够带来如下技术效果:
1、利用了零知识证明,证明平台对所宣示资产的所有权的合法性;
2、利用了平衡默克尔树的不可篡改性,构造默克尔树,保证用户的资产组成树的唯一性;
3、首次提出100%资产准备金证明的完整实施方案;
4、所有用户都可以采用本技术流程进行资产验证,所有用户都能确认自己的资产数目在平台公布的储备资产数据中,没有任何用户提出资产数据被重复验证或者伪造;在上述两点满足的情况下,通过上述步骤即可证明平台拥有100%储备数字资产;
5、如果平台公开的地址不属于平台,那么平台无法用对应私钥对随机的字符串签名,并长期对外公布,用户验证可知平台弄虚作假,证伪;如果平台对不同的用户提供不同的Merkle树,对应的Merkle树的根节点必然不同,只需要两个用户对比就能判断平台弄虚作假,证伪;
如果平台准备金率<100%,说明平台准备金率不足,视具体情况而定,判断平台的准备金问题的严重程度,若接近100%且很快恢复,说明是平台的正常操作(比如大额充值晚到账);否则,说明平台准备金率不正常。
附图说明
构成本申请的一部分的附图用来提供对本申请的进一步理解,使得本申请的其它特征、目的和优点变得更明显。本申请的示意性实施例附图及其说明用于解释本申请,并不构成对本申请的不当限定。在附图中:
图1是本发明实施的流程示意图;
图2是以BTC资产为例的Merkle树类似的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分的实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、***、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本申请中,术语“上”、“下”、“左”、“右”、“前”、“后”、“顶”、“底”、“内”、“外”、“中”、“竖直”、“水平”、“横向”、“纵向”等指示的方位或位置关系为基于附图所示的方位或位置关系。这些术语主要是为了更好地描述本申请及其实施例,并非用于限定所指示的装置、元件或组成部分必须具有特定方位,或以特定方位进行构造和操作。
并且,上述部分术语除了可以用于表示方位或位置关系以外,还可能用于表示其他含义,例如术语“上”在某些情况下也可能用于表示某种依附关系或连接关系。对于本领域普通技术人员而言,可以根据具体情况理解这些术语在本申请中的具体含义。
另外,术语“多个”的含义应为两个以及两个以上。
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本申请。
实施例1
如附图1所示,本技术基于零知识证明的100%资产准备金证明方法旨在提高资产所有人和资产管理平台之间的信任,让资产所有人的资产不被随意挪用,让资产管理平台能自证清白。基于该方法,资产管理平台可以向所有的平台用户证明,平台的准备金率不低于100%,证明平台拥有的数字资产大于所有用户资产的总额。
具体而言,一种基于零知识证明的100%资产准备金证明方法,包括如下步骤:
第一步S1、公布平台资产,
包括:S100、资产管理平台公布所有资产的持币地址,并公开其拥有的资产储备总额数量,以及
S110、基于零知识证明,资产管理平台证明对持币地址的所有权;
第二步S2、计算用户资产,生成用户节点数据的Merkle树,
包括:S200、平台根据用户的资产数据,通过如下步骤生成用户结点数据:每个用户具有userid,userinfo,amount,通过hashid hash函数算法为每个用户生成userid,userinfo,amount,nonce,以及
S220、通过算法根据用户节点生成平衡的Merkle树,非平衡的结点进行零资产结点填充;
第三步S3、向用户提供公开Merkle树:资产管理平台向每个用户提供平台完整的平衡Merkle树数据;
第四步S4、用户自行验证资产,
包括:S400、首先验证平台公布的持币地址,确定其所有权真正归属于平台。按照如下算法:
valid=Verify_Addr(asset,addr,pubkeys,messages,signature)
输入:
asset:资产种类
addr:资产地址
pubkeys:公钥,可以为一个和多个公钥
messages:平台一直以来公布的随机消息序列
signatures:随机消息序列对应的签名序列
输出:
valid:验证结果,true/false
Verify_Addr(asset,addr,pubkeys,messages,signatures):
(1)、v←Equal(addr,Cal_Addr(asset,,pukeys))
(2)、assert(Equal(len(messages),len(pubkeys)))
(3)、for i←0…len(messages)-1:
(4)、v←v||Verify_Sig(pubkeys,signature)
(5)、return v
检查valid值,如果为true,地址所有权验证成功;反之,验证失败,证明平台造假,验证流程结束。其中Cal_Addr中针对不同数字资产,使用不同的地址计算算法;Verify_Sig资产对应的签名算法,包括但不限于Secp256k1、Ed25519、Schnorr。
S410、接着验证平台公布的持币地址资产是否大于等于Merkle资产树的根结点数字资产数量,如果大于等于,则证明平台拥有大于等于100%的用户储备金,则验证成功,反之证伪,以及
S420、用户可以根据app端展示的nonce等相关数据,按照上述描述的hash函数,自行计算hashID,然后在平衡Merkle树中自行搜索查找叶子结点,证明用户资产在平台公布的储备数字资产中;
具体的,如果用户在Renrenbit云钱包中,有一定数量的BTC,那么用户可以验证自己的BTC百分百资产证明,具体操作步骤如下:
首先,用户打开客户端Bit App,获取自己的用户ID(UID)、随机数(Nonce)、余额(Amount),输入:
UID:1563256765354==>1563256765354,
UserInfo:""==>"",
Nonce:19039==>19039,
Amount:0.13991643==>13991643,
其中,BTC币种的平台精度是10^8=100000000,所以计算0.13991643*10^8=13991643;
其次,计算字符串=str(UID)+str(Nonce)+str(UserInfo)+str(Amount)
字符串="1563256765354"+""+"13974"+"13991643"="15632567653541903913991643";
最后,计算hash值
hash计算采用SHA256算法,在所提供的第三方在线Hash算法工具,都能计算HASH256算法,如下:
SHA256("15632567653541903913991643")=90d404dfaad97c23c2df3f1234d774dc88626825c4badc38b906e74df16e56b8,
取前16个字符,故用户HASH=90d404dfaad97c23,
其中,结果不区分大小写,90d404dfaad97c23和90D404DFAAD97C23是一样的;
第五步、S5、在Merkle Tree中查找用户HASH。
具体查找流程如下:
Level,Number,Amount,Hash
0,0,1.91752000,eba80bc08c79d106
0,1,47.94822258,ee350eea6f8cb492
0,2,0.00054241,0d0a4c548f50dc0f
0,3,0.00152490,802f09fc23f90418
0,4,0.11042455,30a1681b474a98cb
0,5,0.10482076,add3d0d3fc1f86b5
0,6,0.00558000,1f1a4a83c896a74a
0,7,0.19614663,0d122b896db2a3d2
0,8,0.95972872,1aa46995b911a072
0,9,0.00066497,924c84586d6ca305
0,10,0.05185066,31b6e65f5fb3eaee
0,11,283.97299139,5a1b487021bb9eab
0,12,0.00000239,f2333a1e42a586d3
0,13,0.00000024,69ed031686af93da
0,14,0.00834000,6d3f2e89b0125a0d
0,15,1.24884468,29b4a398123cb0e7
##在这里##
0,16,0.13991643,90d404dfaad97c23
0,17,0.13252314,acdb92f515bef17e
0,18,4.00350239,cf36f3061133fc62
0,19,0.12932834,54ee2ba25591eb90
0,20,0.06461708,cca2b192d0d63302
0,21,0.00227000,02759e7972e79550
0,22,0.03963867,bf68c210400a3312
0,23,0.03366789,7f0bf2b94f03898e
0,24,177.03102948,6551016b5dcf36e7
0,25,0.00000481,36c32980082316db
0,26,0.00000789,ec59240a475879f7
0,27,1.19111166,77aa7b923c1b3138
0,28,0.04801322,bcbe16ad3790c0c6
0,29,0.21463450,5d67e5c769ac58b6
0,30,35.29639568,44535df6e4664445
0,31,1.02122205,a410e18cb5e066de
0,32,0.51984214,bd600e3baca65f92
0,33,0.00000883,2802427b1d68b499
0,34,0.04932213,51cc039b07c6cc81
0,35,0.00573294,73a7c5ae8f741815
0,36,10.13089000,9543948400babc5c
在Merkle Tree中找到该用户地址为90d404dfaad97c23,0,16,0.13991643,90d404dfaad97c23,
说明位于Merkle树叶子层,位置为16,余额为0.13991643。
进一步地,在步骤S120中,基于零知识证明,资产管理平台证明对持币地址的所有权,具体指:基于指定签名算法,用地址私钥对某随机事件生成的随机Hash进行签名,并对外公开签名值。
进一步地,在步骤S200中,hashid hash计算函数为:
hashid=Cal(userid,userinfo,nonce,amount,hlen)
计算如下:
输入:
userid:用户ID
userinfo:户信息
nonce:随机数
amount:用户资产余额
hlen:截断长度
输出:
hashid:哈希ID
Cal(userid,userinfo,nonce,amount,hlen):
(1)、str←userid||userinfo||nonce||amount,
(2)、h←HashFunc(str),
(3)、hashid←h.substr[0:hlen*2],
(4)、return hashid。
如附图2所示,以BTC资产为例,图中数量单位为聪,按照上述运算后,得到关于BTC资产的Merkle树模型结构。
进一步地,在步骤S200与S220之间,还可以存在:S210、***根据展示需求,可以选取部分hash值截断展示。
进一步地,在步骤S410后,还可以存在:S420、用户可以公布“用户自行验证资产”的过程与数据。
进一步地,在步骤S1中,公布平台资产,如果平台公开的地址不属于平台,那么平台无法用对应私钥对随机的字符串签名,并长期对外公布;用户验证可知平台弄虚作假,则证伪。
进一步地,在步骤S3中,资产管理平台向每个用户提供平台完整的平衡Merkle树数据,如果平台对不同的用户提供不同的Merkle树,对应的Merkle树的根节点必然不同,只需要两个用户对比就能判断平台弄虚作假,则证伪。
一种证明装置,包括:
平台资产公布模块:公布资产管理平台其所有资产的持币地址和储备数额;
Merkle树生成模块:根据用户节点数据,生成平衡的Merkle树模型;
Merkle树公开模块:公开上述Merkle树生成模块生成平衡的Merkle树模型;
用户自行验证资产模块:能够验证平台的准备金率和用户资产在平台公布的储备数字资产中的情况;
用户HASH查询模块:查询用户在Merkle树中的地址以及显示用户资产情况。
实施例2
如附图1所示,本技术基于零知识证明的100%资产准备金证明方法旨在提高资产所有人和资产管理平台之间的信任,让资产所有人的资产不被随意挪用,让资产管理平台能自证清白。基于该方法,资产管理平台可以向所有的平台用户证明,平台的准备金率不低于100%,证明平台拥有的数字资产大于所有用户资产的总额。
基于实施例1的实施,在步骤S200中,hashid hash计算函数为:
在hashid计算算法中:
hashid=Cal(userid,userinfo,nonce,amount,hlen)
算法描述如下:
输入:
userid:用户ID
userinfo:用户信息
nonce:随机数
amount:用户资产余额
hlen:截断长度
输出:
hashid:哈希ID
Cal(userid,userinfo,nonce,amount,hlen):
(1)、str←userid||userinfo||nonce||amount,
(2)、h←HashFunc(str),
(3)、hashid←h.substr[0:hlen*2],
(4)、return hashid。
其中HashFunc不仅仅限于采用SHA256算法,它可以是安全散列算法2(含SHA-224、SHA-256、SHA-384、SHA-512、SHA-512/224、SHA-512/256),或者国密SM3杂凑算法。
其中userinfo可以是与用户相关的任何信息,比如手机号、用户名字或其它任意的用户设置的短语。
其中userinfo可以是与用户相关的任何信息,比如手机号、用户名字或其它任意的用户设置的短语。
其中用于调用HashFunc的字符串,不仅仅可以是:userid||userinfo||nonce||amount,还可以是这几个字段的任意顺序组合。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (8)
1.一种基于零知识证明的100%资产准备金证明方法,其特征在于,包括如下步骤:
第一步S1、公布平台资产,
包括:S100、资产管理平台公布所有资产的持币地址,并公开其拥有的资产储备总额数量,以及
S110、基于零知识证明,资产管理平台证明对持币地址的所有权;
第二步S2、计算用户资产,生成用户节点数据的Merkle树,
包括:S200、平台根据用户的资产数据,通过如下步骤生成用户结点数据:每个用户具有userid,userinfo,amount,通过hashid hash函数算法为每个用户生成userid,userinfo,amount,nonce,以及
S220、通过算法根据用户节点生成平衡的Merkle树,非平衡的结点进行零资产结点填充;
第三步S3、向用户提供公开Merkle树:资产管理平台向每个用户提供平台完整的平衡Merkle树数据;
第四步S4、用户自行验证资产,
包括:S400、首先验证平台公布的持币地址,确定其所有权真正归属于平台。按照如下算法:
valid=Verify_Addr(asset,addr,pubkeys,messages,signature)
输入:
asset:资产种类
addr:资产地址
pubkeys:公钥,可以为一个和多个公钥
messages:平台一直以来公布的随机消息序列
signatures:随机消息序列对应的签名序列
输出:
valid:验证结果,true/false
Verify_Addr(asset,addr,pubkeys,messages,signatures):
(1)、v←Equal(addr,Cal_Addr(asset,,pukeys))
(2)、assert(Equal(len(messages),len(pubkeys)))
(3)、for i←0…len(messages)-1:
(4)、v←v||Verify_Sig(pubkeys,signature)
(5)、return v
检查valid值,如果为true,地址所有权验证成功;反之,验证失败,证明平台造假,验证流程结束。其中Cal_Addr中针对不同数字资产,使用不同的地址计算算法;Verify_Sig资产对应的签名算法,包括但不限于Secp256k1、Ed25519、Schnorr。
S410、接着验证平台公布的持币地址资产是否大于等于Merkle资产树的根结点数字资产数量,如果大于等于,则证明平台拥有大于等于100%的用户储备金,则验证成功,反之证伪,以及
S420、用户可以根据app端展示的nonce等相关数据,按照上述描述的hash函数,自行计算hashID,然后在平衡Merkle树中自行搜索查找叶子结点,证明用户资产在平台公布的储备数字资产中;
第五步S5、在Merkle Tree中查找用户HASH。
2.如权利要求1所述的一种基于零知识证明的100%资产准备金证明方法,其特征在于,在步骤S120中,基于零知识证明,资产管理平台证明对持币地址的所有权,具体指:基于指定签名算法,用地址私钥对某随机事件生成的随机Hash进行签名,并对外公开签名值。
3.如权利要求1所述的一种基于零知识证明的100%资产准备金证明方法,其特征在于,在步骤S200中,hashid hash计算函数为:
hashid=Cal(userid,userinfo,nonce,amount,hlen)
计算如下:
输入:
userid:用户ID
userinfo:户信息
nonce:随机数
amount:用户资产余额
hlen:截断长度
输出:
hashid:哈希ID
Cal(userid,userinfo,nonce,amount,hlen):
(1)、str←userid||userinfo||nonce||amount,
(2)、h←HashFunc(str),
(3)、hashid←h.substr[0:hlen*2],
(4)、return hashid。
4.如权利要求1所述的一种基于零知识证明的100%资产准备金证明方法,其特征在于,在步骤S200与S220之间,还可以存在:S210、***根据展示需求,可以选取部分hash值截断展示。
5.如权利要求1所述的一种基于零知识证明的100%资产准备金证明方法,其特征在于,在步骤S410后,还可以存在:S420、用户可以公布“用户自行验证资产”的过程与数据。
6.如权利要求1或2所述的一种基于零知识证明的100%资产准备金证明方法,其特征在于,在步骤S1中,公布平台资产,如果平台公开的地址不属于平台,那么平台无法用对应私钥对随机的字符串签名,并长期对外公布;用户验证可知平台弄虚作假,则证伪。
7.根据权利要求1-6任一所述的一种基于零知识证明的100%资产准备金证明方法,其特征在于,在步骤S3中,资产管理平台向每个用户提供平台完整的平衡Merkle树数据,如果平台对不同的用户提供不同的Merkle树,对应的Merkle树的根节点必然不同,只需要两个用户对比就能判断平台弄虚作假,则证伪。
8.一种证明装置,其特征在于,包括:
平台资产公布模块:公布资产管理平台其所有资产的持币地址和储备数额;
Merkle树生成模块:根据用户节点数据,生成平衡的Merkle树模型;
Merkle树公开模块:公开上述Merkle树生成模块生成平衡的Merkle树模型;
用户自行验证资产模块:能够验证平台的准备金率和用户资产在平台公布的储备数字资产中的情况;
用户HASH查询模块:查询用户在Merkle树中的地址以及显示用户资产情况。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010252928.4A CN111539721B (zh) | 2020-04-01 | 2020-04-01 | 一种基于零知识证明的100%资产准备金证明方法及证明装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010252928.4A CN111539721B (zh) | 2020-04-01 | 2020-04-01 | 一种基于零知识证明的100%资产准备金证明方法及证明装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111539721A true CN111539721A (zh) | 2020-08-14 |
CN111539721B CN111539721B (zh) | 2024-08-06 |
Family
ID=71976889
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010252928.4A Active CN111539721B (zh) | 2020-04-01 | 2020-04-01 | 一种基于零知识证明的100%资产准备金证明方法及证明装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111539721B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277197A (zh) * | 2022-07-27 | 2022-11-01 | 深圳前海微众银行股份有限公司 | 模型所有权验证方法、电子设备、介质及程序产品 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109242675A (zh) * | 2018-07-27 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 基于区块链的资产发布方法及装置、电子设备 |
CN110311782A (zh) * | 2019-04-29 | 2019-10-08 | 山东工商学院 | 个人信息的零知识证明方法、***及存储介质 |
CN110321735A (zh) * | 2019-04-29 | 2019-10-11 | 山东工商学院 | 基于零知识证明的业务办理方法、***及存储介质 |
US20200059361A1 (en) * | 2018-08-18 | 2020-02-20 | Ernst & Young Global Limited | Methods and systems for enhancing privacy and efficiency on distributed ledger-based networks |
-
2020
- 2020-04-01 CN CN202010252928.4A patent/CN111539721B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109242675A (zh) * | 2018-07-27 | 2019-01-18 | 阿里巴巴集团控股有限公司 | 基于区块链的资产发布方法及装置、电子设备 |
US20200059361A1 (en) * | 2018-08-18 | 2020-02-20 | Ernst & Young Global Limited | Methods and systems for enhancing privacy and efficiency on distributed ledger-based networks |
US20200059364A1 (en) * | 2018-08-18 | 2020-02-20 | Eygs Llp | Methods and systems for implementing zero-knowledge proofs in transferring partitioned tokens on distributed ledger-based networks |
CN110311782A (zh) * | 2019-04-29 | 2019-10-08 | 山东工商学院 | 个人信息的零知识证明方法、***及存储介质 |
CN110321735A (zh) * | 2019-04-29 | 2019-10-11 | 山东工商学院 | 基于零知识证明的业务办理方法、***及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115277197A (zh) * | 2022-07-27 | 2022-11-01 | 深圳前海微众银行股份有限公司 | 模型所有权验证方法、电子设备、介质及程序产品 |
CN115277197B (zh) * | 2022-07-27 | 2024-01-16 | 深圳前海微众银行股份有限公司 | 模型所有权验证方法、电子设备、介质及程序产品 |
Also Published As
Publication number | Publication date |
---|---|
CN111539721B (zh) | 2024-08-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102636102B1 (ko) | 블록체인 기반의 암호화폐를 위한 토큰을 검증하는 컴퓨터로 구현된 방법 및 시스템 | |
CN110473105B (zh) | 一种区块链交易结算方法、***及相关设备 | |
US11797982B2 (en) | Digital ledger authentication using address encoding | |
CN113239382B (zh) | 一种基于区块链智能合约的可信身份模型 | |
US20200013026A1 (en) | Systems and methods for blockchain addresses and owner verification | |
US20200193432A1 (en) | Method and system for settling a blockchain transaction | |
TW201800989A (zh) | 一種用區塊鏈來標示數位貨幣流通的方法 | |
CN110958110A (zh) | 一种基于零知识证明的区块链隐私数据管理方法和*** | |
Brunner et al. | SPROOF: A Platform for Issuing and Verifying Documents in a Public Blockchain. | |
CN110800254A (zh) | 用于生成数字标记的***和方法 | |
CN105227317B (zh) | 一种支持认证器隐私的云数据完整性检测方法和*** | |
US11818266B2 (en) | Methods and systems for distributed cryptographically secured data validation | |
CN111461852A (zh) | 一种基于区块链的数据处理方法、装置及可读存储介质 | |
CN109816386A (zh) | 一种基于区块链的统一身份认证的链上数据打通方法 | |
Sayyad et al. | Features of blockchain voting: A survey | |
JP5084746B2 (ja) | ピアツーピアでのカルマおよび信頼を確立する方法ならびにその装置 | |
Humdullah et al. | Secured data storage framework for land registration using blockchain technology | |
CN110503429B (zh) | 一种去中心化的内容交互方法及*** | |
CN111539721B (zh) | 一种基于零知识证明的100%资产准备金证明方法及证明装置 | |
CN113645036A (zh) | 一种基于环签名和智能合约的以太坊交易隐私保护方法 | |
Boontaetae et al. | RDI: Real digital identity based on decentralized PKI | |
CN114846765B (zh) | 提供去中心化身份验证的方法和设备 | |
CN114584311A (zh) | 一种基于信誉的安全动态智能车位共享方法 | |
CN113723953A (zh) | 数字资产的交易方法、装置、***和电子设备 | |
CN110474763A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20201102 Address after: Room 302, building 2, Sanwei Zhihui center, Wuchang Street, Yuhang District, Hangzhou City, Zhejiang Province Applicant after: Hangzhou Xianbing Technology Co.,Ltd. Address before: 1427, 1st floor, building A1, No.1 Huangchang West Road, Dougezhuang, Chaoyang District, Beijing 100024 Applicant before: Beijing qianyuntianxia Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant |