CN110428249A - 一种基于零知识证明的侧链小额支付系统 - Google Patents

一种基于零知识证明的侧链小额支付系统 Download PDF

Info

Publication number
CN110428249A
CN110428249A CN201910675921.0A CN201910675921A CN110428249A CN 110428249 A CN110428249 A CN 110428249A CN 201910675921 A CN201910675921 A CN 201910675921A CN 110428249 A CN110428249 A CN 110428249A
Authority
CN
China
Prior art keywords
block
side chain
chain
transaction
zero
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
CN201910675921.0A
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.)
Chongqing University of Post and Telecommunications
Original Assignee
Chongqing University of Post and Telecommunications
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 Chongqing University of Post and Telecommunications filed Critical Chongqing University of Post and Telecommunications
Priority to CN201910675921.0A priority Critical patent/CN110428249A/zh
Publication of CN110428249A publication Critical patent/CN110428249A/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/22Payment schemes or models
    • G06Q20/29Payment schemes or models characterised by micropayments
    • 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

Landscapes

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

Abstract

本发明请求保护一种基于零知识证明的侧链小额支付系统,包括区块链主链模块,还包括区块链侧链模块及零知识证明加密模块,通过在区块链主链上扩展的侧链进行交易支付,减少了主链的交易量,增强了主链的可扩展性,该交易系统提高了侧链的区块出块速度,提升了交易的速度,并且用零知识证明对发起交易的地址生成隐秘交易地址,对交易信息进行隐私保护。

Description

一种基于零知识证明的侧链小额支付系统
技术领域
本发明属于区块链技术领域,特别涉及一种基于零知识证明的区块链侧链小额支付系统。
背景技术
在2008年比特币诞生后加密货币逐步涌现,并且获得了各个领域的专家重点关注。比特币的关键特征是去中心化,同时比特币是第一个成功基于点对点网络的分布式支付系统。
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
这种分布式的系统很死板,不善于做出改变,因为没有单一的实体来决定更新。即使是更改微小的协议也需要社区之间协商,过程繁琐,这使得增加新功能变得非常困难。
因此提出了侧链的概念,侧链方法能够改进现有的区块链系统,而无需实际更改系统本身。侧链实质上不是特指某个区块链,而是指遵守侧链协议的所有区块链,该名词是相对与比特币主链来说的。侧链协议是指:可以让比特币安全地从比特币主链转移到其他区块链,又可以从其他区块链安全地返回比特币主链的一种协议。
发明内容
本发明旨在解决以上现有技术的问题。提出了一种能够提高侧链上的交易速度以及对交易进行隐私保护的基于零知识证明的侧链小额支付系统。本发明的技术方案如下:
一种基于零知识证明的侧链小额支付系统,包括区块链主链模块,所述区块链主链模块用于产生资产代币,侧链模块交易使用主链产生的代币作为交易支付的手续费,其还包括区块链侧链模块及零知识证明加密模块,所述区块链侧链模块(与区块链主链通过传输协议连接)所述区块链主链模块用于资产通过正向传输协议转移到区块链侧链模块,正向传输协议指的是,在区块链主链上发送交易,在区块链主链模块上锁定代币的数量,所述区块链侧链遵循侧链SCP共识协议,然后在区块链侧链上创建相同数量的代币,实现区块链主链和区块链侧链间的资产转移;零知识证明加密模块在发送者不需要向验证者提供任何有用信息的情况下,验证者即可完成验证,零知识证明包括以下步骤:第一个步骤是同态隐藏:第二个步骤是多项式盲估:第三个步骤是系数测试及其假设:第四个步骤是进行可验证多项式盲估:第五个步骤是将计算转化为多项式:第六个步骤用匹诺曹协议来验证发送者具有一个满足QAP的成真指派;第七个步骤是椭圆曲线配对。
交易的输入输出结构体被形象成了代码中的note结构体,note=<a_pk,v,r,rho>。a_pk:持有者的公钥,又称收款人地址。value:代币数值,又被简称为v,代表这笔note的代币数值。rho:随机数,是每一条note的唯一标识。r:随机数。
一个钱包地址里面包含两个公钥a_pk,pk_enc,两个私钥a_sk,sk_enc。
发送者向接收者进行转账,找到一天还没有消费的note,其中note中的value大于发送者需要转账的数额,如果不满足的话,发送者需要找多条note来作为输出。
发送者找到了note1,使用自己的私钥sk_enc解密note1,获取note1中的value和其他数据,其中value要大于所需转账的金额。
发送者新建两条note,分别是note2,note3,note2内部的value设置成需要转账的金额,代表是要给接收者的。note3里面的value是转账剩下来的代币数值。
发送者为note2和note3分别生成随机数r2和r3。
发送者将接收者的a_pk公钥设置到note2里面去,代表收款人是接收者。再将自己的a_pk公钥设置到note3里面去,代表收款人是自己。使用hash函数生成note2和note3的rho。rho:随机数,是每一条note的唯一标识,rho=HASH(r)。
发送者此时使用接收者的pk_enc加密note2,和自己的pk_nec加密note 3。这里接收者的pk_enc是公开的。
发送者将note2通过秘密通道发给接收者,自己的note3便自己保存,同时将note2和note3的hash值h2、h3发给所有链上的节点,完成交易。
进一步的,所述正向传输协议指的是是一种燃烧/抵押代币的方法,方法表达式为:sending TX={ledgerid,txid,(sendAcc,receiveAcc),amount,sig}在另一个侧链上接受交易,sending TX指发送交易,ledgerid是针对侧链的唯一标识,txid是唯一的转账标识,sendAcc是原始发送交易的地址,receiveAcc是接受交易的地址,amount是转移的代币数量,sig是发送方对应的签名。
进一步的,所述零知识证明加密模块利用零知识证明加密对交易信息进行加密,具体包括:
将需要验证的问题编写成一个多项式方程t(x)h(x)=w(x)v(x);其中t(x)、h(x)、w(x)、v(x)分别为四个随机的多项式
进行简单随机抽样,选择一个私密评估点s来验证等式t(s)h(s)=w(s)v(s);其中t(s)、h(s)、w(s)、v(s)分别为更改过s值的四个随机的多项式。
进行同态加密,用函数E来隐藏t(s),h(s),w(s),v(s);我们把同态隐藏称为HH,具有HH属性E(x)是一个关于x的函数,对于大部分的x,给定某个E(x)通常很难求解出x,在E(x)中,不同输入将会得到不同输出,因此,如果x≠y,则E(x)≠E(y)。如果某人知道了E(x)和E(y),则他可以生成x和y的算术表达式的HH函数。
进行零知识加密,证明者通过替换一个数将E(t(s)),E(h(s)),E(w(s)),E(v(s))乘以一个数来替换E(t(s)),E(h(s)),E(w(s)),E(v(s))的值,来对真实的编码值进行隐藏;
进一步的,所述区块链侧链遵循侧链SCP共识协议将时间划分为具有预定数量的时隙,每个时隙开始时,时隙领导者选择出下一个领导者,领导者被授权产生新的区块,时隙领导者用于跳跃性地生成块,后面的区块引用最新生成的块;
侧链产出区块的同时要与主链保持一致性和有序性,侧链块SBj要包含对主链块Bi的引用,以及对之前主链块Bk(k∈η,η+1,…,i-1)的参照,完全参照意味着侧链块包含主链块的完整链,即使某些区块产生者错过了新生成区块的机会,但是下一位区块产生者将弥补前一位错过的主区块数据,通过这种方式,可以对主链块进行精简验证,从而能在侧链中引入包括跨链交易的精简验证在内的附加功能,。
进一步的,所述精简验证具体包括:当在主链块Bj中发生txMC→SC的交易时,侧链时隙领导者创建相应的侧链块,在Bj的区块头旁边产生了一笔Tex parse error!的交易,以及相应的merkle路径,此类交易可以由任何侧链节点验证,而无需与主链核实,侧链时隙领导者必须在生成的侧链块中参照主链块出现所有与该侧链有关的交易。
进一步的,所述区块链侧链对侧链参数进行设置,调整侧链难度系数,增快侧链出块速度:在侧链执行挖矿算法前,首先要构建一个区块头,区块头的结构如下:区块头里包含版本号nVersion,前一区块的哈希值hashPreBlock,难度系数nBits,机器当前时间轴nTime,根默克尔树的哈希值hashMerkleRoot,随机数nNonce,挖矿问题转化为一个广义生日悖论问题,通过算力碰撞解决广义生日悖论问题。但并不是谁先构造解决了一个生日问题谁就取得了挖矿的胜利,还需要进行是否符合难度系数的判断,难度算法条件的结果有n个前导0,碰撞产生的结果如果满足前导0的结果,则验证为正确解。
进一步的,零知识证明协议包含有三个算法,分别为:KeyGen,Prove和Verify。所述KeyGen是一种随机算法,输入公共参数,输出证明密钥pk和验证公钥vk.Prove算法输入证明公钥pk,实例x以及证据a,输出一个零知识证明π,Verify算法则输入验证密钥sk、实例x以及证明π,输出一个判定比特。
本发明的优点及有益效果如下:
本发明在区块链主链上扩展出了平行的侧链,设计了一个基于侧链的小型支付系统,侧链和主链通过传输协议连接,主链通过特殊交易将主链上的代币转移到侧链上,侧链可以进行交易。在侧链上交易缓解了主链的交易压力,同时侧链增加了区块的出块速度,侧链的交易速度比主链的交易速度有很大提升。
侧链交易使用零知识证明进行加密,对交易发送和接收方的地址及交易本身的信息进行隐藏,可以保护交易双方的隐私,比起交易双方的公开地址信息,该方法具有更好的安全性。
附图说明
图1是本发明提供优选实施例提供的侧链上进行交易的系统结构图。
图2为本发明一实施例提供的丢失的侧链区块通过参照主链区块的弥补结构图。
图3为本发明一实施例提供的在侧链上零知识证明将计算表达式转化为数字电路的流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、详细地描述。所描述的实施例仅仅是本发明的一部分实施例。
本发明解决上述技术问题的技术方案是:
本发明的一个方面是构建一条平行于区块链主链的侧链,提供一个在侧链上进行交易的系统。
所述主链与侧链的区块链系统,用于进行小额支付。
区块链主链的资产通过正向传输协议转移到侧链,在主链上锁定代币的数量,然后在侧链上创建相同数量的代币,实现主链和侧链间的资产转移。
所述主链资产是指区块链主链上流通的代币。
所述正向传输协议,是一种燃烧/抵押代币的方法,在区块链主链上发送交易,sending TX={ledgerid,txid,(sendAcc,receiveAcc),amount,sig}在另一个侧链上接受交易。
在一些实施方式中,所述交易信息:ledgerid是针对侧链的唯一标识,txid是唯一的转账标识,sendAcc是原始发送交易的地址,receiveAcc是接受交易的地址,amount是转移的代币数量,sig是发送方对应的签名。
所述平行于主链的区块链侧链,遵循侧链SCP共识协议。
本发明的第二方面是通过对侧链参数进行设置,调整侧链难度系数,增快侧链出块速度,包括:
调整挖矿难度系数,使区块链出块速度增快。
所述难度系数是一个动态参数,为通过算力解决了生日问题碰撞进行验证的难度算法所设定的一个动态值。
本发明的第二方面是利用零知识证明加密对交易信息进行加密,包括:
将需要验证的问题编写成一个多项式方程t(x)h(x)=w(x)v(x);
进行简单随机抽样,选择一个私密评估点s来验证等式t(s)h(s)=w(s)v(s);进行同态加密,用函数E来隐藏t(s),h(s),w(s),v(s);
进行零知识加密,证明者通过替换一个数来替换E(t(s)),E(h(s)),E(w(s)),E(v(s))的值,来对真实的编码值进行隐藏;
本发明所要解决区块链主链交易速度慢的问题,提出了构建区块链侧链进行小额交易的交易系统,同时运用零知识加密对交易的双方进行隐私保护。
第一方面,该系统先构建了一条平行于区块链主链的侧链,包括:
选择侧链的共识协议,将时间划分为具有预定数量的时隙。
每个时隙开始时,时隙领导者选择出下一个领导者,领导者被授权产生新的区块,
时隙领导者可以跳跃性地生成块,后面的区块引用最新生成的块。
侧链产出区块的同时要与主链保持一致性和有序性,侧链块SBj要包含对主链块Bi的引用,以及对之前主链块Bk(k∈η,η+1,…,i-1)的参照。
完全参照意味着侧链块包含主链块的完整链,即使某些区块产生者错过了新生成区块的机会,但是下一位区块产生者将弥补前一位错过的主区块数据。
通过这种方式,可以对主链块进行精简验证,从而能在侧链中引入附加功能,例如跨链交易的精简验证。
所述精简验证,当在主链块Bj中发生txMC→SC的交易时,侧链时隙领导者创建相应的侧链块,在Bj的区块头旁边产生了一笔Tex parse error!的交易,以及相应的merkle路径,此类交易可以由任何侧链节点验证,而无需与主链核实。
通过这样的同步,侧链时隙领导者必须在生成的侧链块中参照主链块出现所有与该侧链有关的交易。
第二方面,对侧链参数进行设置,调整侧链难度系数,增快侧链出块速度:
在侧链执行挖矿算法前,首先要构建一个区块头,区块头的结构如下:
区块头里包含版本号nVersion,前一区块的哈希值hashPreBlock,难度系数nBits,机器当前时间轴nTime,根默克尔树的哈希值hashMerkleRoot,随机数nNonce。
挖矿问题转化为一个广义生日悖论问题,通过算力碰撞解决广义生日悖论问题。
但并不是谁先构造解决了一个生日问题谁就取得了挖矿的胜利,还需要进行是否符合难度系数的判断。
难度算法条件的结果有n个前导0,碰撞产生的结果如果满足前导0的结果,则验证为正确解。
生成侧链之后调整难度系数,同样的算力情况下增加出块速度,来提高交易速度。
第三方面,运用零知识证明技术对交易的发送者和接收者以及交易本身的信息进行加密。
零知识证明是指发送者不需要向验证者提供任何有用信息的情况下,验证者即可完成验证,可以有效的解决保护交易双方以及交易本身的隐私安全问题。
零知识证明协议包含有三个算法,分别为:
KeyGen,Prove和Verify。
所述KeyGen是一种随机算法,输入公共参数,输出证明密钥pk和验证公钥vk.
Prove算法输入证明公钥pk,实例x以及证据a,输出一个零知识证明π。
Verify算法则输入验证密钥sk、实例x以及证明π,输出一个判定比特。
零知识证明的第一个步骤是同态隐藏:
同态隐藏函数E(x)是x的函数,通过E(x)很难推算出x,不同的x会得到不同的E(x)值,如果知道E(x)和E(y),那么就可以计算出E(x+y)。
第二个步骤是多项式盲估:
给定a,b,E(x),E(y),我们可以计算出E(ax+by):
E(ax+by)=g^(ax+by)=g^(ax)·g^(by)=((g^x)^a)·((g^y)^b)=(E(x)^a)·(E(y)^b)。
交易发送者发送匿数E(1),E(s),…,E(s^d)给验证者,验证者根据送达的匿数计算E(P(s)),并且发送E(P(s))给发送者,验证者能够利用E对线性组合的支持进行计算,并且P(s)就是1,s,…,s^d的线性组合。
第三个步骤是系数测试及其假设:
在多项式盲估之后,发送者为了确定验证者验证结果是正确的,需要用到系数假设。
验证者生成一个α对,发送给发送者。
发送者不知道α的具体参数,发送者选定一个参数λ,生成新的α对。验证者验证的即是这个α对和自己发送的是否是同一个α对(比例相同)。
第四个步骤是进行可验证多项式盲估:
对知识系数假设进行扩展,对于生成的盲估多项式也可以被验证。
所述验证者产生α对的方式是从发送者收到配对的(ai,bi),并将两个元素都与c∈F(*,p)相乘。当验证者同时收到多个α对,验证者选择两个值c1,c2∈Fp并计算配对(a′,b′)=(c1·a1+c2·a2,c1·b1+c2·b2),这样验证者也可以生成多个α对返还给发送者。
第五个步骤是将计算转化为多项式:
将计算表达式表示成数字电路的形式,将乘法门与域元素联系起来,还原成QAP形式。
计算转化为算术电路的方式为计算→算术电路→R1CS→QAP→zk-SNARK,包括:
将逻辑步骤分解为最小可能的操作,从而创建一个“算术电路”。
输入输入值的下一步是建立一级约束系统(R1CS)来检查这些输入值的行进路线是否正确。
所述QAP为二次算术程序,将所有约束系统集中成一个。
第六个步骤用匹诺曹协议来验证发送者具有一个满足QAP的成真指派。
发送者选择最大阶数为d的多项式L,R,O,H。
验证者选择一个随机的点s∈Fp,并计算出E(T(s))。
发送者将这些多项式在s点计算出的值的匿数E(L(s)),E(R(s)),E(O(s)),E(H(s))传给验证者。
验证者检查这是否是s点想要的等式,检查E(L(s)·R(s)-O(s))=E(T(s)·H(s))是否成立。
用零知识来给每个匿数添加随机T-shift来隐藏赋值信息。
选择随机的δ1,δ2,δ3∈F(*,p),定义Lz:=L+δ1·T,Rz:=R+δ2·T,Oz:=O+δ3·T。
第七个步骤是椭圆曲线配对:
使用椭圆曲线配对来支持对加法和乘法的同态隐藏。
同时完成从交互式协议向非交互式证明系统的转换。
所述椭圆曲线配对种乘法群F(p^k)包含了一个r阶子群,表示为GT。曲线上的点的坐标在F(p^k)中,而不只是在Fp中。在加法规则下,这些点和O一起也形成了一个群,被称为C(F(p^k))。C(F(p^k))包含了G1。除了G1,C(F(p^k))包含一个以r为阶的加法子群G2(实事上,r的加法子群的阶是r-1)。
固定生成器g∈G1,h∈G2,称map为Tate-缩减配对,接收一对G1和G2的元素,生成一个GT的元素,如下:
Tate(g,h)=g()得到一个GT的生成器g()。
给定一对元素a,b∈Fr,我们有Tate(a·g,b·h)=(g()^(ab))。
Tate(P,Q)定义为(fP(Q)^((pk-1)/r))。
所述非交互式证明系统获取发送者的多项式P在随机选择的s∈Fr点上匿数E(P(s))。
随机选择α∈F(*,r),s∈Fr,CRS是:(E1(1),E1((s)),…,E1(s^d),E2(α),E2(α(s)),…,E2(α(s^d)))。
发送者使用CRS的元素计算a=E1(P(s))和b=E2(αP(S))
固定x,y∈Fr,使之满足a=E1(x)和b=E2(y)。Bob计算E(αx)=Tate(E1(x),E2(α))和E(y)=Tate(E1(1),E2(y)),检查是否相等。
零知识证明libsnark库使用了签名长度BN254的BN曲线,bellman库使用了BLS12-381曲线,dalek bulletproofs库使用了ristretto255曲线。
以上这些实施例应理解为仅用于说明本发明而不用于限制本发明的保护范围。在阅读了本发明的记载的内容之后,技术人员可以对本发明作各种改动或修改,这些等效变化和修饰同样落入本发明权利要求所限定的范围。

Claims (7)

1.一种基于零知识证明的侧链小额支付系统,包括区块链主链模块,所述区块链主链模块用于产生资产代币,侧链模块交易使用主链产生的代币作为交易支付的手续费,其特征在于,还包括区块链侧链模块及零知识证明加密模块,所述区块链侧链模块与区块链主链通过传输协议连接,所述区块链主链模块用于资产通过正向传输协议转移到区块链侧链模块,正向传输协议指的是,在区块链主链上发送交易,在区块链主链模块上锁定代币的数量,所述区块链侧链遵循侧链SCP共识协议,然后在区块链侧链上创建相同数量的代币,实现区块链主链和区块链侧链间的资产转移;零知识证明加密模块在发送者不需要向验证者提供任何有用信息的情况下,验证者即可完成验证,零知识证明包括以下步骤:第一个步骤是同态隐藏:第二个步骤是多项式盲估:第三个步骤是系数测试及其假设:第四个步骤是进行可验证多项式盲估:第五个步骤是将计算转化为多项式:第六个步骤用匹诺曹协议来验证发送者具有一个满足QAP的成真指派;第七个步骤是椭圆曲线配对;
交易的输入输出结构体被形象成了代码中的note结构体,note=<a_pk,v,r,rho>,a_pk:持有者的公钥,又称收款人地址。value:代币数值,又被简称为v,代表这笔note的代币数值。rho:随机数,是每一条note的唯一标识。r:随机数;
一个钱包地址里面包含两个公钥a_pk,pk_enc,两个私钥a_sk,sk_enc;
发送者向接收者进行转账,找到一天还没有消费的note,其中note中的value大于发送者需要转账的数额,如果不满足的话,发送者需要找多条note来作为输出;
发送者找到了note1,使用自己的私钥sk_enc解密note1,获取note1中的value和其他数据,其中value要大于所需转账的金额;
发送者新建两条note,分别是note2,note3,note2内部的value设置成需要转账的金额,代表是要给接收者的。note3里面的value是转账剩下来的代币数值;
发送者为note2和note3分别生成随机数r2和r3;
发送者将接收者的a_pk公钥设置到note2里面去,代表收款人是接收者。再将自己的a_pk公钥设置到note3里面去,代表收款人是自己。使用hash函数生成note2和note3的rho。rho:随机数,是每一条note的唯一标识,rho=HASH(r);
发送者此时使用接收者的pk_enc加密note2,和自己的pk_nec加密note 3。这里接收者的pk_enc是公开的;
发送者将note2通过秘密通道发给接收者,自己的note3便自己保存,同时将note 2和note3的hash值h2、h3发给所有链上的节点,完成交易。
2.根据权利要求1所述的一种基于零知识证明的侧链小额支付系统,其特征在于,所述正向传输协议指的是是一种燃烧/抵押代币的方法,方法表达式为:sending TX={ledgerid,txid,(sendAcc,receiveAcc),amount,sig}在另一个侧链上接受交易,sendingTX指发送交易,ledgerid是针对侧链的唯一标识,txid是唯一的转账标识,sendAcc是原始发送交易的地址,receiveAcc是接受交易的地址,amount是转移的代币数量,sig是发送方对应的签名。
3.根据权利要求1所述的一种基于零知识证明的侧链小额支付系统,其特征在于,所述零知识证明加密模块利用零知识证明加密对交易信息进行加密,具体包括:
将需要验证的问题编写成一个多项式方程t(x)h(x)=w(x)v(x);其中t(x)、h(x)、w(x)、v(x)分别为四个随机的多项式,进行简单随机抽样,选择一个私密评估点s来验证等式t(s)h(s)=w(s)v(s);t(s)、h(s)、w(s)、v(s)分别更改过s值的四个随机的多项式;进行同态加密,用函数E来隐藏t(s),h(s),w(s),v(s);把同态隐藏称为HH,具有HH属性E(x)是一个关于x的函数,对于大部分的x,给定某个E(x)通常很难求解出x,在E(x)中,不同输入将会得到不同输出,因此,如果x≠y,则E(x)≠E(y),如果某人知道了E(x)和E(y),则他可以生成x和y的算术表达式的HH函数;
进行零知识加密,证明者通过替换一个数将E(t(s)),E(h(s)),E(w(s)),E(v(s))乘以一个数来替换E(t(s)),E(h(s)),E(w(s)),E(v(s))的值,来对真实的编码值进行隐藏。
4.根据权利要求1所述的一种基于零知识证明的侧链小额支付系统,其特征在于,所述区块链侧链遵循侧链SCP共识协议将时间划分为具有预定数量的时隙,每个时隙开始时,时隙领导者选择出下一个领导者,领导者被授权产生新的区块,时隙领导者用于跳跃性地生成块,后面的区块引用最新生成的块;侧链产出区块的同时要与主链保持一致性和有序性,侧链块SBj要包含对主链块Bi的引用,以及对之前主链块Bk(k∈η,η+1,…,i-1)的参照,完全参照意味着侧链块包含主链块的完整链,即使某些区块产生者错过了新生成区块的机会,但是下一位区块产生者将弥补前一位错过的主区块数据,通过这种方式,可以对主链块进行精简验证,从而能在侧链中引入包括跨链交易的精简验证在内的附加功能,。
5.根据权利要求4所述的一种基于零知识证明的侧链小额支付系统,其特征在于,所述精简验证具体包括:当在主链块Bj中发生txMC→SC的交易时,侧链时隙领导者创建相应的侧链块,在Bj的区块头旁边产生了一笔Tex parse error!的交易,以及相应的merkle路径,此类交易可以由任何侧链节点验证,而无需与主链核实,侧链时隙领导者必须在生成的侧链块中参照主链块出现所有与该侧链有关的交易。
6.根据权利要求4所述的一种基于零知识证明的侧链小额支付系统,其特征在于,所述区块链侧链对侧链参数进行设置,调整侧链难度系数,增快侧链出块速度:在侧链执行挖矿算法前,首先要构建一个区块头,区块头的结构如下:区块头里包含版本号nVersion,前一区块的哈希值hashPreBlock,难度系数nBits,机器当前时间轴nTime,根默克尔树的哈希值hashMerkleRoot,随机数nNonce,挖矿问题转化为一个广义生日悖论问题,通过算力碰撞解决广义生日悖论问题。但并不是谁先构造解决了一个生日问题谁就取得了挖矿的胜利,还需要进行是否符合难度系数的判断,难度算法条件的结果有n个前导0,碰撞产生的结果如果满足前导0的结果,则验证为正确解。
7.根据权利要求3所述的一种基于零知识证明的侧链小额支付系统,其特征在于,零知识证明协议包含有三个算法,分别为:KeyGen,Prove和Verify。所述KeyGen是一种随机算法,输入公共参数,输出证明密钥pk和验证公钥vk.Prove算法输入证明公钥pk,实例x以及证据a,输出一个零知识证明π,Verify算法则输入验证密钥sk、实例x以及证明π,输出一个判定比特。
CN201910675921.0A 2019-07-25 2019-07-25 一种基于零知识证明的侧链小额支付系统 Pending CN110428249A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910675921.0A CN110428249A (zh) 2019-07-25 2019-07-25 一种基于零知识证明的侧链小额支付系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910675921.0A CN110428249A (zh) 2019-07-25 2019-07-25 一种基于零知识证明的侧链小额支付系统

Publications (1)

Publication Number Publication Date
CN110428249A true CN110428249A (zh) 2019-11-08

Family

ID=68412390

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910675921.0A Pending CN110428249A (zh) 2019-07-25 2019-07-25 一种基于零知识证明的侧链小额支付系统

Country Status (1)

Country Link
CN (1) CN110428249A (zh)

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111373694A (zh) * 2020-02-21 2020-07-03 香港应用科技研究院有限公司 零知识证明硬件加速器及其方法
CN111400779A (zh) * 2020-01-07 2020-07-10 李蕴光 高维数据加密方法及系统
CN111431696A (zh) * 2020-03-26 2020-07-17 深圳市欧欣泰科技有限公司 一种基于身份的区块链封印机制
WO2020098835A3 (en) * 2020-02-03 2020-12-10 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
CN112632888A (zh) * 2020-08-18 2021-04-09 上海致居信息科技有限公司 电路合成方法、设备、介质和数据存储证明系统
CN113222747A (zh) * 2020-12-31 2021-08-06 上海能链众合科技有限公司 一种区块链隐私交易方法
CN113301013A (zh) * 2021-04-14 2021-08-24 广州广电运通金融电子股份有限公司 基于区块链的文化资产交易系统、方法、装置及存储介质
US11138602B2 (en) 2020-02-03 2021-10-05 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
CN113660092A (zh) * 2021-07-30 2021-11-16 国网天津市电力公司 一种基于零知识证明的电力数据上传系统和方法
US11182788B2 (en) 2020-02-03 2021-11-23 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11200570B2 (en) 2020-02-03 2021-12-14 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11212104B2 (en) 2020-02-03 2021-12-28 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11216807B2 (en) 2020-02-03 2022-01-04 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111400779A (zh) * 2020-01-07 2020-07-10 李蕴光 高维数据加密方法及系统
US11182788B2 (en) 2020-02-03 2021-11-23 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
WO2020098835A3 (en) * 2020-02-03 2020-12-10 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11138602B2 (en) 2020-02-03 2021-10-05 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11580539B2 (en) 2020-02-03 2023-02-14 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11216807B2 (en) 2020-02-03 2022-01-04 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11200570B2 (en) 2020-02-03 2021-12-14 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11201742B2 (en) 2020-02-03 2021-12-14 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
US11212104B2 (en) 2020-02-03 2021-12-28 Alipay (Hangzhou) Information Technology Co., Ltd. Blockchain-based trustable guarantees
CN111373694A (zh) * 2020-02-21 2020-07-03 香港应用科技研究院有限公司 零知识证明硬件加速器及其方法
CN111373694B (zh) * 2020-02-21 2023-05-02 香港应用科技研究院有限公司 零知识证明硬件加速器及其方法
CN111431696A (zh) * 2020-03-26 2020-07-17 深圳市欧欣泰科技有限公司 一种基于身份的区块链封印机制
CN111431696B (zh) * 2020-03-26 2023-10-17 深圳市欧欣泰科技有限公司 一种基于身份的区块链封印机制
CN112632888A (zh) * 2020-08-18 2021-04-09 上海致居信息科技有限公司 电路合成方法、设备、介质和数据存储证明系统
CN113222747A (zh) * 2020-12-31 2021-08-06 上海能链众合科技有限公司 一种区块链隐私交易方法
CN113222747B (zh) * 2020-12-31 2024-01-26 上海零数众合信息科技有限公司 一种区块链隐私交易方法
CN113301013A (zh) * 2021-04-14 2021-08-24 广州广电运通金融电子股份有限公司 基于区块链的文化资产交易系统、方法、装置及存储介质
CN113660092A (zh) * 2021-07-30 2021-11-16 国网天津市电力公司 一种基于零知识证明的电力数据上传系统和方法
CN113660092B (zh) * 2021-07-30 2024-01-23 国网天津市电力公司 一种基于零知识证明的电力数据上传系统和方法

Similar Documents

Publication Publication Date Title
CN110428249A (zh) 一种基于零知识证明的侧链小额支付系统
CN106911470B (zh) 一种比特币交易隐私增强方法
Raikwar et al. SoK of used cryptography in blockchain
CN111008836B (zh) 一种隐私安全转账支付方法、装置、系统及存储介质
KR102170346B1 (ko) 정보 보호를 위한 시스템 및 방법
JP7083754B2 (ja) スマートコントラクトに基づく自動給与支払方法及びシステムをもたらす、ブロックチェーン上の給与支払に関連付けられた暗号通貨の効率的な転送のための方法及びシステム
Frankel et al. “Indirect discourse proofs”: Achieving efficient Fair Off-Line e-cash
EP3268914B1 (en) Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
KR20200066259A (ko) 정보 보호를 위한 시스템 및 방법
CN108418783A (zh) 一种保护区块链智能合约隐私的方法、介质
KR20200066260A (ko) 정보 보호를 위한 시스템 및 방법
CN109493053A (zh) 一种用于联盟区块链系统的匿名交易方法
CN112131601B (zh) 基于环签名和代理重加密的区块链隐私保护方法和系统
KR20030062401A (ko) 겹선형쌍을 이용한 개인식별정보 기반의 은닉서명 장치 및방법
EP4183105A1 (en) Identifying denial-of-service attacks
CN110545169A (zh) 基于非对称密钥池和隐式证书的区块链方法和系统
US20240121109A1 (en) Digital signatures
CN113159745B (zh) 基于全同态的区块链交易隐私保护方法
CN114547695A (zh) 一种物联网中基于同态加密的区块链交易隐私保护方法
EP4111637A1 (en) (ec)dsa threshold signature with secret sharing
CN114844622A (zh) 一种基于区块链的隐私交易生成、验证方法及系统
CN113343261B (zh) 一种基于门限审计的交易隐私保护方法
WO2023036528A1 (en) Generating shared cryptographic keys
CN111523892B (zh) 一种区块链的跨链交易方法及装置
Ferretti et al. Transferable Anonymous Payments via TumbleBit in Permissioned Blockchains.

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20191108