CN110675265A - 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法 - Google Patents

无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法 Download PDF

Info

Publication number
CN110675265A
CN110675265A CN201910935096.3A CN201910935096A CN110675265A CN 110675265 A CN110675265 A CN 110675265A CN 201910935096 A CN201910935096 A CN 201910935096A CN 110675265 A CN110675265 A CN 110675265A
Authority
CN
China
Prior art keywords
transaction
key
sender
receiver
temporary
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
Application number
CN201910935096.3A
Other languages
English (en)
Other versions
CN110675265B (zh
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.)
Sichuan Normal University
Original Assignee
Sichuan Normal University
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 Sichuan Normal University filed Critical Sichuan Normal University
Priority to CN201910935096.3A priority Critical patent/CN110675265B/zh
Publication of CN110675265A publication Critical patent/CN110675265A/zh
Application granted granted Critical
Publication of CN110675265B publication Critical patent/CN110675265B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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
    • G06Q40/00Finance; Insurance; Tax strategies; Processing of corporate or income taxes
    • G06Q40/04Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/602Providing cryptographic facilities or services
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • 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

  • Engineering & Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Security & Cryptography (AREA)
  • Finance (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Marketing (AREA)
  • Technology Law (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Medical Informatics (AREA)
  • Databases & Information Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)

Abstract

本发明属于区块链隐私信息处理技术领域,公开了一种无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,初始化:生成交易的发送方和接收方的双密钥对,并将双公钥公布在区块链上;交易记录数据库的维护:系统中的每个用户维护一个本地的交易记录数据库,本地交易记录数据库中的交易次数进行加密存储;隐匿交易:在进行转账交易时,隐匿交易接收方的地址。本发明能够在不泄露交易临时密钥的情况下保证交易的正确进行,有效解决目前广泛使用的双密钥隐匿地址协议中由于交易临时密钥泄露带来的隐私安全问题;另外,敌手或攻击者无法构造与发送方相同的交易临时输出地址,且无法计算出交易临时输出地址对应的确认交易私钥。

Description

无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法
技术领域
本发明属于区块链隐私信息处理技术领域,尤其涉及一种无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法。
背景技术
目前,最接近的现有技术:近年来,许多加密技术被应用到区块链的隐私保护中,如零知识证明、环签名和隐匿地址协议被用来实现交易金额、交易发送方地址和交易接收方地址的隐私性。进行隐私保护的重点工作是隐匿地址协议,隐匿地址协议要求发送方每次进行交易时,生成交易的一次性临时输出地址,从而隐藏交易的真实输出地址,破坏交易输入地址和真实输出地址之间的关联性,且使得同一收款人的不同交易无法被关联,以实现对交易中用户身份进行隐私保护的目的。最先被提出的隐匿地址协议是基础隐匿协议(BSAP),是名为“ByteCoin”的比特币论坛成员于2011年提出;2013年,Nicolas vanSaberhagen在CryptoNote白皮书中介绍了一种BSAP的改进的隐匿地址协议,名为ISAP,通过引入临时密钥对,解决BSAP中使用固定共享密钥使得相应的交易仍能被关联,和发送方改变主意撤回款项的问题;2014年,名为rynomster/sdcoin的开发商基于ISAP提出了一种双重密钥隐匿地址协议DKSAP,解决ISAP中由于接收方频繁使用私钥扫描交易带来的私钥被破解的风险增高的问题。DKSAP是目前使用最为广泛的隐匿地址协议,自提出后,已应用在Monero,Samourai Wallet,TokenPay等加密货币系统中。
在DKSAP中,用户拥有两个密钥对,分别是“扫描密钥对”和“支付密钥对”,协议的具体交互过程如下:
(1)接收方生成扫描密钥对(s,S=s*G)和支付密钥对(b,B=b*G),接收方将双公钥S和B发布到区块链上;
(2)发送方从区块链上获得接收方的双公钥S和B;
(3)发送方在交易时产生一个交易的临时公私钥对(r,R=r*G);
(4)发送方利用交易临时私钥r和接收方的扫描公钥S,计算共享密钥c=H(r*S*G);
(5)发送方利用公钥密钥c和接收方的支付公钥B,计算交易的临时输出地址T=c*G+B,即T=H(r*S*G)*G+B;
(6)发送方将交易发布到临时地址T,并将临时公钥R附加在交易上,随交易一起传输;
(7)接收方扫描区块链系统中产生的交易;
(8)根据交易附加的临时公钥R和自己的扫描私钥s,计算共享密钥c=H(s*R*G);注:此处,c=H(s*R*G)=H(R*S)=H(r*S*G);
(9)接收方利用共享密钥c计算交易的临时输出地址T’=c*G+B,即T’=H(s*R*G)*G+B,判断T是否等于T’;
(10)如果T=T’,接收方利用公钥密钥c和支付私钥b,计算相应的确认交易私钥txSK=c+b,确认该交易。
综上所述,现有技术存在的问题是:在DKSAP中,每次隐匿交易时都要附加临时公钥R,使得进行的隐匿交易能够通过公开的公钥R很容易地被识别出,即R标志着相应的交易为隐匿交易,相应的输出地址并非交易的真实接收方地址,导致一些隐私信息的丢失,如攻击者可以通过数据挖掘等相关技术恶意对交易进行分析,获得IP地址、用户资金流动轨迹、用户交易习惯等用户的隐私信息,从而对用户的隐私安全造成严重威胁。
解决上述技术问题的难度:
解决上述问题的难度在于如何在不公开交易临时公钥的情况下,保证隐匿交易的正确进行。
解决上述技术问题的意义:
解决目前广泛使用的双密钥隐匿地址协议(DKSAP)中存在的泄露交易临时公钥的问题后,隐匿交易和非隐匿交易的结构一致,攻击者无法识别隐匿交易和隐匿交易,从而难以挖掘用户的隐私信息,将极高地提高安全性。
发明内容
针对DKSAP中存在的泄露临时交易密钥的问题,本发明提供了一种无临时密钥泄露的区块链双密钥隐匿地址协议(PDKSAP)。
本发明是这样实现的,一种无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,所述无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法包括以下步骤:
第一步,生成交易发送方双密钥对和接收方双密钥对,双密钥对为扫描密钥对和支付密钥对,并将双公钥公布在区块链上;
第二步,交易记录数据库的维护是每个用户维护一个本地的交易记录数据库,包括记录自己作为发送方发送给相应接收方的交易和记录自己作为接收方接收到相应发送方的交易;本地交易记录数据库中的交易次数进行加密存储;用户对交易记录表的操作包括查询与其他用户的交易次数、更新与其他用户的交易次数和插入新的交易记录;
第三步,在进行转账交易时,隐匿交易接收方的地址。
进一步,所述生成交易发送方双密钥对和接收方双密钥对具体包括:
步骤一,接收方生成自己的支付密钥对和扫描密钥对,支付密钥对(pubKRT1,priKRT1)和扫描密钥对(pubKRT2,priKRT2);
步骤二,接收方将自己的双公钥(双公钥都指支付公钥和扫描公钥。一个密钥对包含一个公钥和一个私钥,即支付密钥对指支付公钥和支付私钥,扫描密钥对指扫描公钥和扫描私钥;交易临时密钥对指交易临时公钥和交易临时私钥。)pubKRT1和pubKRT2公布到区块链上;
步骤三,发送方从区块链上获得接收方的双公钥pubKRT1和pubKRT2
进一步,所述生成交易发送方双密钥对和接收方双密钥对过程形式:密钥对生成函数keyGen(),在用户端生成用户的公私钥对;生成成功,返回用户公私钥对pubK和priK;生成失败,返回NULL;其中,pubK=priK*G,G是椭圆曲线上的基点,且系统中G的取值是相同的;另外,用(pubKRT1,priKRT1)和(pubKRT2,priKRT2)表示交易接收方的支付密钥对和扫描密钥对。
进一步,所述第二步的交易记录数据库中的交易次数进行加密存储,加密方式是通过对称密钥K加密交易次数,并将对称密钥K用私钥pubKRT2进行非对称加密。
进一步,所述第二步的交易记录的形式:
(1)查询交易次数函数queryTx(SRT,Table),查询与相应接收方或者发送方的交易次数;参数SRT表示一个接收方或者一个发送方,Table表示交易记录表TableS或者TableR;表中存在相应记录,返回解密后的交易次数TxNum;表中不存在相应记录,返回0;
(2)更新交易次数函数updateTxNum(SRT,Table,Enc(TxNum+1)),queryTx()的返回值不为0,进行交易后,更新与相应接收方或者发送方的交易次数记录,相应的交易次数加1;参数SRT表示一个接收方或者一个发送方,Table表示交易记录表TableS或者TableR,Enc(TxNum+1)表示更新后的交易次数的密文;更新成功,返回true;更新不成功,返回false;
(3)插入交易记录函数insertTx(SRT,Table,Enc(1)),queryTx()的返回值为0,进行交易后,插入与相应接收方或者发送方的交易记录,交易次数为1;参数SRT表示一个接收方或者一个发送方,Table表示交易记录表TableS或者TableR,Enc(1)表示插入交易次数为1的密文;插入成功,返回true;插入不成功,返回false。
进一步,所述第三步的隐匿交易包括以下步骤:
步骤一,发送方在交易记录表TableS中查询与相应接收方的交易次数NumRT
步骤二,发送方根据交易次数NumRT,计算交易临时私钥r=H(NumRT);
步骤三,发送方计算交易的一次性临时输出地址TAddr=pubKRT1+H(r*pubKRT2)*G;
步骤四,发送方往交易临时输出地址TAddr发布转账交易;
步骤五,在此次交易之前,发送方已与相应接收方进行过交易,则在发布转账交易后,发送方将交易记录表TableS中与相应接收方的交易次数加1,NumRT=NumRT+1;在此次交易之前,发送方未与相应接收方进行过交易,则在发布转账交易后,发送方在交易记录表TableS中新增与相应接收方的交易记录,此时,交易次数为1,即NumRT=1;
步骤六,接收方扫描区块链系统中产生的交易,获得相应交易交易的临时地址值,记为TAddrScan
步骤七,接收方在交易记录表TableR中查询与相应发送方的交易次数NumST
步骤八,接收方根据交易次数NumST,计算交易临时公钥R=H(NumST)*G;
步骤九,接收方计算TAddr’=pubKRT1+H(priKRT2*R)*G;
步骤十,地址TAddr’=TAddrScan,即TAddr’=TAddr,接收方计算确认交易的私钥txSK=priKRT1+H(priKRT2*R),确认该笔交易;另外,对于发送方与接收方的交易次数相等,NumRT=NumST
步骤十一,在此次交易之前,接收方已与相应发送方进行过交易,则在发布转账交易后,接收方将交易记录表TableR中与相应发送方的交易次数加1,即NumST=NumST+1;在此次交易之前,接收方未与相应发送方进行过交易,则在发布转账交易后,接收方在交易记录表TableR中新增与相应发送方的交易记录;此时,交易次数为1,NumST=1;
另外,交易临时输出地址TAddr和确认交易私钥txSK之间的关系如下:
txSK*G=(priKRT1+H(priKRT2*R))*G=TAddr。
进一步,所述第三步的隐匿交易形式:
(1)哈希函数H(content),实现对内容的哈希加密处理;参数content表示哈希加密的密文内容;哈希加密成功,返回哈希加密结果content_H;哈希加密不成功,返回NULL;
(2)转账交易函数TxTranfer(ST,txAddr),交易发送方将资金转入目的地址中;参数ST交易的发送方,txAddr表示此次转账的目的地址;转账成功,返回true;转账不成功,返回false;
(3)交易扫描函数TxScan(),交易接收方扫描区块链中产生的交易;扫描成功,返回相应交易的地址值TAddrScan;扫描不成功,返回NULL。
本发明的另一目的在于提供一种实现所述无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法的计算机程序。
本发明的另一目的在于提供一种实现所述无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法的信息数据处理终端。
本发明的另一目的在于提供一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行所述的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法。
综上所述,本发明的优点及积极效果为:本发明能够在不泄露交易临时密钥的情况下保证交易的正确进行,匿名地址交易与非匿名地址交易的结构相同,敌手或攻击者无法分辨隐匿交易和非隐匿交易;能够有效解决现在广泛使用的双密钥隐匿地址协议DKSAP中由于交易临时密钥泄露带来的隐私安全问题。另外,敌手获或攻击者无法构造与发送方相同的交易临时输出地址,且敌手或攻击者无法计算出交易临时输出地址对应的确认交易私钥。
附图说明
图1是本发明实施例提供的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法流程图。
图2是本发明实施例提供的无临时密钥泄露的区块链双密钥隐匿地址协议的架构图。
图3是本发明实施例提供的初始化阶段示意图。
图4是本发明实施例提供的隐匿交易阶段示意图。
图5是本发明实施例提供的交易临时输出地址和确认交易私钥计算结果示意图。
图6是本发明实施例提供的时间对比图;
图中:(a)是KeyPaG时间对比图;(b)是ENnonce时间对比图;(c)是DEnonce时间对比图;图(d)是DBQuy时间对比图;(e)是DBUpt时间对比图;(f)是DBInst时间对比图;(g)是CaTAddr时间对比图;(h)是CaTAddr’时间对比图;(i)是CaTxPriK时间对比图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
针对现有技术存在的问题,本发明提供了一种无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,下面结合附图对本发明作详细的描述。
本发明是这样实现的,PDKSAP的系统架构图如图2所示,涉及到的实体是交易的发送方、接收方以及区块链,其中,ST表示交易发送方,RT表示交易接收方,BC表示区块链。
如图1所示,本发明实施例提供的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,包括三部分:初始化、交易记录数据库的维护、隐匿交易。
第一部分,初始化
初始化的主要功能是生成交易的发送方和接收方的双密钥对,即“扫描密钥对”和“支付密钥对”,并将双公钥公布在区块链上。
下面详细介绍初始化阶段的过程,具体的形式定义如下:
定义1.密钥对生成函数keyGen(),功能是在用户端生成用户的公私钥对;如果生成成功,返回用户公私钥对pubK和priK;否则,返回NULL。其中,pubK=priK*G,G是椭圆曲线上的基点,且系统中G的取值是相同的。另外,用(pubKRT1,priKRT1)和(pubKRT2,priKRT2)表示交易接收方的“支付密钥对”和“扫描密钥对”。
根据上述定义,初始化的过程如图3所示,具体的交互过程如下:
1)RT:pubKRT1,priKRT1=keyGen();pubKRT2,priKRT2=keyGen();
2)RT→BC:pubKRT1||pubKRT2
3)BC→ST:pubKRT1||pubKRT2
初始化阶段包括以下步骤:
S101:接收方生成自己的“支付密钥对”和“扫描密钥对”,(pubKRT1,priKRT1)和(pubKRT2,priKRT2);
S102:接收方将自己的双公钥pubKRT1和pubKRT2公布到区块链上;
S103:发送方从区块链上获得接收方的双公钥pubKRT1和pubKRT2
第二部分,交易记录数据库的维护
交易记录数据库的维护的主要功能是系统中的每个用户维护一个本地的交易记录数据库,包括两张交易记录表,分别用TableS和TableR表示,一张记录自己作为发送方发送给相应接收方的交易,一张记录自己作为接收方接收到相应发送方的交易。同时,为了保证数据存储的机密性,本地交易记录数据库中的交易次数进行加密存储,具体加密方式是通过对称密钥K加密交易次数,并将对称密钥K用私钥pubKRT2进行非对称加密。
TableS和TableR的格式分别如表1和表2所示。表1中,参数NO.表示记录序号,Reciver表示相应的接收方,Enc(TxNum)表示与相应接收方的交易次数的密文,Sig(TxNum)表示用户的签名信息;表2中,参数NO.表示记录序号,Sender表示相应的发送方,Enc(TxNum)表示与相应发送方的交易次数的密文,Sig(TxNum)表示用户的签名信息。
表1 TableS的格式
Figure BDA0002221395420000091
表2 TableR的格式
Figure BDA0002221395420000092
用户对交易记录表的操作包括查询与其他用户的交易次数、更新与其他用户的交易次数和插入新的交易记录。
交易记录的形式定义如下:
定义2.查询交易次数函数queryTx(SRT,Table),功能是查询与相应接收方或者发送方的交易次数;参数SRT表示一个接收方或者一个发送方,Table表示交易记录表TableS或者TableR。如果表中存在相应记录,返回解密后的交易次数TxNum;否则,返回0。需要说明的是,如果返回值为0,表示表中没有与相应接收方或者发送方的交易记录,即相应的交易次数为0。
定义3.更新交易次数函数updateTxNum(SRT,Table,Enc(TxNum+1)),功能是如果queryTx()的返回值不为0,进行交易后,更新与相应接收方或者发送方的交易次数记录,即相应的交易次数加1;参数SRT表示一个接收方或者一个发送方,Table表示交易记录表TableS或者TableR,Enc(TxNum+1)表示更新后的交易次数的密文。如果更新成功,返回true;否则,返回false。
定义4.插入交易记录函数insertTx(SRT,Table,Enc(1)),功能是如果queryTx()的返回值为0,进行交易后,插入与相应接收方或者发送方的交易记录,此时交易次数为1;参数SRT表示一个接收方或者一个发送方,Table表示交易记录表TableS或者TableR,Enc(1)表示插入交易次数为1的密文。如果插入成功,返回true;否则,返回false。
第三部分,隐匿交易
隐匿交易的主要功能是在进行转账交易时,隐匿交易接收方的地址,破坏交易发送方和接收方的关联性,从而实现交易中对用户身份的隐私保护。下面详细介绍隐匿交易阶段的过程。
具体的形式定义如下:
定义5.哈希函数H(content),功能是实现对内容的哈希加密处理;参数content表示哈希加密的密文内容。如果哈希加密成功,返回哈希加密结果content_H;否则,返回NULL。
定义6.转账交易函数TxTranfer(ST,txAddr),功能是交易发送方将资金转入目的地址中;参数txAddr表示此次转账的目的地址。如果转账成功,返回true;否则,返回false。
定义7.交易扫描函数TxScan(),功能是交易接收方扫描区块链中产生的交易。如果扫描成功,返回相应交易的地址值TAddrScan;否则,返回NULL。
根据上述定义,协商交易标识的过程如图4所示,具体的交互过程如下:
1)ST→TableS:NumRT=queryTx(RT,TableS);
2)ST:r=H(NumRT);
3)ST:TAddr=pubKRT1+H(r*pubKRT2)*G;
4)ST→BC:TxTranfer(ST,TAddr);
5)ST→TableS:IfNumRT!=0,updateTxNum(RT,TableS,Enc(NumRT+1));if NumRT==0,insertTx(RT,TableS,Enc(1));
6)RT→BC:TAddrScan=TxScan();
7)RT→TableR:NumST=queryTx(ST,TableR);
8)RT:R=H(NumST)*G;
9)RT:TAddr’=pubKRT1+H(priKRT2*R)*G;
10)RT:txSK=priKRT1+H(priKRT2*R);
11)RT→TableR:IfNumST!=0,updateTxNum(ST,TableR,Enc(NumST+1));if NumST==0,insertTx(ST,TableR,Enc(1))。
下面对隐匿交易阶段中各步骤进行详细介绍:
S101:发送方在交易记录表TableS中查询与相应接收方的交易次数NumRT
S102:发送方根据交易次数NumRT,计算交易临时私钥r=H(NumRT);
S103:发送方计算交易的一次性临时输出地址TAddr=pubKRT1+H(r*pubKRT2)*G;
S104:发送方往交易临时输出地址TAddr发布转账交易;
S105:如果在此次交易之前,发送方已与相应接收方进行过交易,则在发布转账交易后,发送方将交易记录表TableS中与相应接收方的交易次数加1,即NumRT=NumRT+1;如果在此次交易之前,发送方未与相应接收方进行过交易,则在发布转账交易后,发送方在交易记录表TableS中新增与相应接收方的交易记录,此时,交易次数为1,即NumRT=1;
S106:接收方扫描区块链系统中产生的交易,获得相应交易交易的临时地址值,记为TAddrScan
S107:接收方在交易记录表TableR中查询与相应发送方的交易次数NumST
S108:接收方根据交易次数NumST,计算交易临时公钥R=H(NumST)*G;
S109:接收方计算TAddr’=pubKRT1+H(priKRT2*R)*G;
S110:如果地址TAddr’=TAddrScan,即TAddr’=TAddr,接收方计算确认交易的私钥txSK=priKRT1+H(priKRT2*R),来确认该笔交易;注:此处,TAddr=TAddr’=pubKRT1+H(priKRT2*r*G)*G=pubKRT1+H(r*priKRT2*G)*G;另外,对于发送方与接收方的交易次数相等,即NumRT=NumST
S111:如果在此次交易之前,接收方已与相应发送方进行过交易,则在发布转账交易后,接收方将交易记录表TableR中与相应发送方的交易次数加1,即NumST=NumST+1;如果在此次交易之前,接收方未与相应发送方进行过交易,则在发布转账交易后,接收方在交易记录表TableR中新增与相应发送方的交易记录,此时,交易次数为1,即NumST=1。
另外,交易临时输出地址TAddr和确认交易私钥txSK之间的关系如下:
txSK*G=(priKRT1+H(priKRT2*R))*G=TAddr。
进一步,一种无临时密钥泄露的区块链双密钥隐匿地址协议的实现原理包括:
发送方和接收方各自维护一个用于记录交易的本地数据库,且数据库中的内容加密存储,记录与其他用户的交易次数。存储在用户的本地数据库中交易次数用于生成发送方和接收方进行交易时的临时密钥对,仅交易相应的发送方和接收方知晓,且发送方本地数据库中记录的与相应接收方的交易次数与接收方本地数据库中记录的与相应发送方的交易值相等。在初始化阶段,接收方生成自己的“扫描密钥对”和“支付密钥对”,然后将双公钥发布在区块链上,接收方从区块链获得接收方的双公钥。在隐匿交易阶段,发送方从本地数据库中查询与相应接收方的交易次数,并根据交易次数计算交易临时私钥,再根据临时私钥计算交易的临时输出地址,并在完成本次交易后更新数据库中与相应接收方的交易次数记录;接收方扫描区块链中产生的交易,扫描到交易后,从本地数据库中查询与相应发送方的交易次数,并根据交易次数计算交易临时公钥,在根据临时公钥计算交易的临时输出地址,验证其自身是否非交易的真实接收方,如果是,计算确认交易私钥来确认该笔交易,并在相应的交易完成后,更新数据库中与相应发送方的交易次数记录。
下面结合实验对本发明的技术效果作详细的描述。
1、实验环境
基于以太坊构建联盟链对无临时密钥泄露的双密钥隐匿地址协--PDKSAP进行验证。实验PC机操作系统为win10操作系统,处理器为Intel(R)Core(TM)i7-8550U CPU@1.80GHz 1.99GHz,8G内存;选取的以太坊区块链为go-ethereum-1.9;主要编程语言为Go;椭圆曲线选取的是y2=x3+x;非对称加密采用ECC;对称加密采用AES;用于存储交易记录的数据库为MySQl 8.0.16。
2、结果分析
如图5所示,发送方通过TAddr=pubKRT1+H(r*pubKRT2)*G计算交易的临时输出地址的结果和接收方通过TAddr’=pubKRT1+H(priKRT2*R)*G计算交易的临时输出地址的结果,以及接收方通过txSK=priKRT1+H(priKRT2*R)计算确认交易私钥的结果。
从图5可以看出,发送方可以根据本地数据库中存储的与接收方的交易次数计算出交易的临时输出地址,同时,接收方能够根据本地数据库中存储的与相应发送方的交易次数计算出正确的交易临时输出地址,且能够正确计算相应的确认交易私钥。即,PDKSAP能够在不泄露交易临时密钥的情况下保证交易的正确进行,匿名地址交易与非匿名地址交易的结构相同,敌手或攻击者无法分辨隐匿交易和非隐匿交易,能够有效解决现在广泛使用的双密钥隐匿地址协议DKSAP中由于交易临时密钥泄露带来的隐私安全问题。
3、性能分析
进行多次实验测试,并记录产生一个公私钥对(用“KeyPaG”表示)、加密交易次数(用“ENnonce”表示)、解密交易次数(用“DEnonce”表示)、在数据库中查询交易次数(用“DBQuy”表示)、更新数据库中交易次数(用“DBUpt”表示)、往数据库中插入交易记录(用“DBInst”表示)发送方计算交易临时输出地址(简称为“CaTAddr”表示)、接收方计算交易临时输出地址(用“CaTAddr’”表示)和接收方计算确认交易私钥(用“CaTxPriK”表示)的时间(单位:ms)各10次,相应的运行时间和平均运行时间如表3所示。
表3 PDSKAP时间记录表(单位:ms)
Figure BDA0002221395420000131
Figure BDA0002221395420000141
另外,测试DKSAP协议中各阶段的运行时间,与PDKSAP进行对比。PDKSAP和DSKAP中各阶段的运行时间和平均运行对比时间记录如表4所示,时间对比图如图6(a)-6(i)所示。另外,由于DKSAP中只有即KeyPaG、CaTAddr、CaTAddr’和CaTxPriK四个阶段,因此只对比PDKSAP和DKSAP中这四个阶段。
表4对比时间记录表(单位:ms)
Figure BDA0002221395420000142
由表3和图6(a)-6(i)可以看出,在PDKSAP中,用时最少的是从数据库中查询交易次数,平均用时仅为1.6ms,用时最多的是对称加密交易次数和非对称加密对称密钥,平均用时为289.3ms,即0.289s。
另外,由表4和图6(a)-6(i)可以看出,PDKSAP在公私钥对的生成(KeyPaG)、发送方计算交易临时输出地址(CaTAddr)、接收方计算交易临时输出地址(CaTAddr’)和接收方计算确认交易私钥(CaTxPriK)平均运行时间基本相同。
应当注意,本发明的实施方式可以通过硬件、软件或者软件和硬件的结合来实现。硬件部分可以利用专用逻辑来实现;软件部分可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域的普通技术人员可以理解上述的设备和方法可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本发明的设备及其模块可以由诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用由各种类型的处理器执行的软件实现,也可以由上述硬件电路和软件的结合例如固件来实现。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,其特征在于,所述无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法包括以下步骤:
第一步,生成交易发送方双密钥对和接收方双密钥对,双密钥对为扫描密钥对和支付密钥对,并将双公钥公布在区块链上;
第二步,交易记录数据库的维护是每个用户维护一个本地的交易记录数据库,包括记录自己作为发送方发送给相应接收方的交易和记录自己作为接收方接收到相应发送方的交易;本地交易记录数据库中的交易次数进行加密存储;用户对交易记录表的操作包括查询与其他用户的交易次数、更新与其他用户的交易次数和插入新的交易记录;
第三步,在进行转账交易时,隐匿交易接收方的地址。
2.如权利要求1所述的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,其特征在于,所述生成交易发送方双密钥对和接收方双密钥对具体包括:
步骤一,接收方生成自己的支付密钥对和扫描密钥对,支付密钥对(pubKRT1,priKRT1)和扫描密钥对(pubKRT2,priKRT2);
步骤二,接收方将自己的双公钥pubKRT1和pubKRT2公布到区块链上;
步骤三,发送方从区块链上获得接收方的双公钥pubKRT1和pubKRT2
发送方生成双密钥对的步骤与接收方相同。
3.如权利要求2中所述的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,其特征在于,所述生成交易发送方双密钥对和接收方双密钥对过程形式:密钥对生成函数keyGen(),在用户端生成用户的公私钥对;生成成功,返回用户公私钥对pubK和priK;生成失败,返回NULL;其中,pubK=priK*G,G是椭圆曲线上的基点,且系统中G的取值是相同的;另外,用(pubKRT1,priKRT1)和(pubKRT2,priKRT2)表示交易接收方的支付密钥对和扫描密钥对。
4.如权利要求1中所述的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,其特征在于,所述第二步的交易记录数据库中的交易次数进行加密存储,加密方式是通过对称密钥K加密交易次数,并将对称密钥K用公钥pubKRT2进行非对称加密。
5.如权利要求1所述的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,其特征在于,所述第二步的交易记录的形式:
(1)查询交易次数函数queryTx(SRT,Table),查询与相应接收方或者发送方的交易次数;参数SRT表示一个接收方或者一个发送方,Table表示交易记录表TableS或者TableR;表中存在相应记录,返回解密后的交易次数TxNum;表中不存在相应记录,返回0;
(2)更新交易次数函数updateTxNum(SRT,Table,Enc(TxNum+1)),queryTx()的返回值不为0,进行交易后,更新与相应接收方或者发送方的交易次数记录,相应的交易次数加1;参数SRT表示一个接收方或者一个发送方,Table表示交易记录表TableS或者TableR,Enc(TxNum+1)表示更新后的交易次数的密文;更新成功,返回true;更新不成功,返回false;
(3)插入交易记录函数insertTx(SRT,Table,Enc(1)),queryTx()的返回值为0,进行交易后,插入与相应接收方或者发送方的交易记录,交易次数为1;参数SRT表示一个接收方或者一个发送方,Table表示交易记录表TableS或者TableR,Enc(1)表示插入交易次数为1的密文;插入成功,返回true;插入不成功,返回false。
6.如权利要求1所述的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,其特征在于,所述第三步的隐匿交易包括以下步骤:
步骤一,发送方在交易记录表TableS中查询与相应接收方的交易次数NumRT
步骤二,发送方根据交易次数NumRT,计算交易临时私钥r=H(NumRT);
步骤三,发送方计算交易的一次性临时输出地址TAddr=pubKRT1+H(r*pubKRT2)*G;
步骤四,发送方往交易临时输出地址TAddr发布转账交易;
步骤五,在此次交易之前,发送方已与相应接收方进行过交易,则在发布转账交易后,发送方将交易记录表TableS中与相应接收方的交易次数加1,NumRT=NumRT+1;在此次交易之前,发送方未与相应接收方进行过交易,则在发布转账交易后,发送方在交易记录表TableS中新增与相应接收方的交易记录,此时,交易次数为1,即NumRT=1;
步骤六,接收方扫描区块链系统中产生的交易,获得相应交易交易的临时地址值,记为TAddrScan
步骤七,接收方在交易记录表TableR中查询与相应发送方的交易次数NumST
步骤八,接收方根据交易次数NumST,计算交易临时公钥R=H(NumST)*G;
步骤九,接收方计算TAddr’=pubKRT1+H(priKRT2*R)*G;
步骤十,地址TAddr’=TAddrScan,即TAddr’=TAddr,接收方计算确认交易的私钥txSK=priKRT1+H(priKRT2*R),确认该笔交易;另外,对于发送方与接收方的交易次数相等,NumRT=NumST
步骤十一,在此次交易之前,接收方已与相应发送方进行过交易,则在发布转账交易后,接收方将交易记录表TableR中与相应发送方的交易次数加1,即NumST=NumST+1;在此次交易之前,接收方未与相应发送方进行过交易,则在发布转账交易后,接收方在交易记录表TableR中新增与相应发送方的交易记录;此时,交易次数为1,NumST=1;
另外,交易临时输出地址TAddr和确认交易私钥txSK之间的关系如下:
txSK*G=(priKRT1+H(priKRT2*R))*G=TAddr。
7.如权利要求1所述的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法,其特征在于,所述第三步的隐匿交易形式:
(1)哈希函数H(content),实现对内容的哈希加密处理;参数content表示哈希加密的密文内容;哈希加密成功,返回哈希加密结果content_H;哈希加密不成功,返回NULL;
(2)转账交易函数TxTranfer(ST,txAddr),交易发送方将资金转入目的地址中;参数ST表示交易发送方,txAddr表示此次转账的目的地址;转账成功,返回true;转账不成功,返回false;
(3)交易扫描函数TxScan(),交易接收方扫描区块链中产生的交易;扫描成功,返回相应交易的地址值TAddrScan;扫描不成功,返回NULL。
8.一种实现权利要求1~7任意一项所述无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法的计算机程序。
9.一种实现权利要求1~7任意一项所述无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法的信息数据处理终端。
10.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-7任意一项所述的无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法。
CN201910935096.3A 2019-09-29 2019-09-29 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法 Expired - Fee Related CN110675265B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910935096.3A CN110675265B (zh) 2019-09-29 2019-09-29 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910935096.3A CN110675265B (zh) 2019-09-29 2019-09-29 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法

Publications (2)

Publication Number Publication Date
CN110675265A true CN110675265A (zh) 2020-01-10
CN110675265B CN110675265B (zh) 2022-07-08

Family

ID=69080104

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910935096.3A Expired - Fee Related CN110675265B (zh) 2019-09-29 2019-09-29 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法

Country Status (1)

Country Link
CN (1) CN110675265B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111047313A (zh) * 2020-03-12 2020-04-21 支付宝(杭州)信息技术有限公司 扫码支付、信息发送和密钥管理方法、装置和设备
CN111159683A (zh) * 2020-04-03 2020-05-15 深圳壹账通智能科技有限公司 电子投票方法、装置、计算机和存储介质
CN111241586A (zh) * 2020-01-20 2020-06-05 布比(北京)网络技术有限公司 区块链地址匿名处理方法及系统、终端、存储介质
CN111585992A (zh) * 2020-04-26 2020-08-25 数网金融有限公司 一种检测网络攻击的方法、客户端及存储介质
CN111683070A (zh) * 2020-05-28 2020-09-18 平安科技(深圳)有限公司 基于身份加密的数据传送方法、装置及存储介质
CN111709740A (zh) * 2020-05-18 2020-09-25 杜晓楠 区块链系统中隐藏交易地址的方法、计算机可读存储介质和区块链系统
CN111709742A (zh) * 2020-05-18 2020-09-25 杜晓楠 区块链系统中防止根地址曝露的方法、计算机可读存储介质和区块链系统
CN113328854A (zh) * 2021-05-24 2021-08-31 杭州溪塔科技有限公司 基于区块链的业务处理方法及系统

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000331240A (ja) * 1999-05-25 2000-11-30 Fujitsu Ltd 記録媒体へのデータ記録装置
CN107085807A (zh) * 2017-04-19 2017-08-22 迅鳐成都科技有限公司 一种基于区块链的数据资产交易方法
CN108650073A (zh) * 2018-05-07 2018-10-12 浙江工商大学 一种基于区块链的隐私保护竞价方法
TW201840159A (zh) * 2017-04-07 2018-11-01 安地卡及巴布達商區塊鏈控股有限公司 用於使用區塊鏈之安全資料記錄分配之方法及系統
CN109067547A (zh) * 2018-09-21 2018-12-21 北京计算机技术及应用研究所 一种基于一次性环签名的区块链隐私保护方法
CN109474589A (zh) * 2018-11-05 2019-03-15 江苏大学 基于以太坊的隐私保护传输方法
CN110008733A (zh) * 2019-01-31 2019-07-12 阿里巴巴集团控股有限公司 一种对写入块链的交易进行隐匿的方法及装置
CN110084068A (zh) * 2018-01-26 2019-08-02 阿里巴巴集团控股有限公司 区块链系统及用于区块链系统的数据处理方法
CN110149335A (zh) * 2019-05-24 2019-08-20 众安信息技术服务有限公司 建立用于区块链数据隐私保护的私有区域的方法及设备
CN110289946A (zh) * 2019-07-12 2019-09-27 深圳市元征科技股份有限公司 一种区块链钱包本地化文件的生成方法及区块链节点设备

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000331240A (ja) * 1999-05-25 2000-11-30 Fujitsu Ltd 記録媒体へのデータ記録装置
TW201840159A (zh) * 2017-04-07 2018-11-01 安地卡及巴布達商區塊鏈控股有限公司 用於使用區塊鏈之安全資料記錄分配之方法及系統
CN107085807A (zh) * 2017-04-19 2017-08-22 迅鳐成都科技有限公司 一种基于区块链的数据资产交易方法
CN110084068A (zh) * 2018-01-26 2019-08-02 阿里巴巴集团控股有限公司 区块链系统及用于区块链系统的数据处理方法
CN108650073A (zh) * 2018-05-07 2018-10-12 浙江工商大学 一种基于区块链的隐私保护竞价方法
CN109067547A (zh) * 2018-09-21 2018-12-21 北京计算机技术及应用研究所 一种基于一次性环签名的区块链隐私保护方法
CN109474589A (zh) * 2018-11-05 2019-03-15 江苏大学 基于以太坊的隐私保护传输方法
CN110008733A (zh) * 2019-01-31 2019-07-12 阿里巴巴集团控股有限公司 一种对写入块链的交易进行隐匿的方法及装置
CN110149335A (zh) * 2019-05-24 2019-08-20 众安信息技术服务有限公司 建立用于区块链数据隐私保护的私有区域的方法及设备
CN110289946A (zh) * 2019-07-12 2019-09-27 深圳市元征科技股份有限公司 一种区块链钱包本地化文件的生成方法及区块链节点设备

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
XINXIN FAN: ""Fan X.: Faster Dual-Key Stealth Address for Blockchain-Based Internet of Things Systems"", 《INTERNATIONAL CONFERENCE ON BLOCKCHAIN ICBC 2018》 *
高峰 等: ""轻量级比特币交易溯源机制"", 《计算机学报》 *

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111241586A (zh) * 2020-01-20 2020-06-05 布比(北京)网络技术有限公司 区块链地址匿名处理方法及系统、终端、存储介质
CN111241586B (zh) * 2020-01-20 2023-02-07 布比(北京)网络技术有限公司 区块链地址匿名处理方法及系统、终端、存储介质
CN111047313A (zh) * 2020-03-12 2020-04-21 支付宝(杭州)信息技术有限公司 扫码支付、信息发送和密钥管理方法、装置和设备
CN111159683A (zh) * 2020-04-03 2020-05-15 深圳壹账通智能科技有限公司 电子投票方法、装置、计算机和存储介质
CN111159683B (zh) * 2020-04-03 2020-08-21 深圳壹账通智能科技有限公司 电子投票方法、装置、计算机和存储介质
CN111585992A (zh) * 2020-04-26 2020-08-25 数网金融有限公司 一种检测网络攻击的方法、客户端及存储介质
CN111709740A (zh) * 2020-05-18 2020-09-25 杜晓楠 区块链系统中隐藏交易地址的方法、计算机可读存储介质和区块链系统
CN111709742A (zh) * 2020-05-18 2020-09-25 杜晓楠 区块链系统中防止根地址曝露的方法、计算机可读存储介质和区块链系统
CN111709742B (zh) * 2020-05-18 2023-08-01 杜晓楠 区块链系统中防止根地址曝露的方法、计算机可读存储介质和区块链系统
WO2021239034A1 (zh) * 2020-05-28 2021-12-02 平安科技(深圳)有限公司 基于身份加密的数据传送方法、装置、电子设备及存储介质
CN111683070A (zh) * 2020-05-28 2020-09-18 平安科技(深圳)有限公司 基于身份加密的数据传送方法、装置及存储介质
CN113328854A (zh) * 2021-05-24 2021-08-31 杭州溪塔科技有限公司 基于区块链的业务处理方法及系统
CN113328854B (zh) * 2021-05-24 2022-09-16 杭州溪塔科技有限公司 基于区块链的业务处理方法及系统

Also Published As

Publication number Publication date
CN110675265B (zh) 2022-07-08

Similar Documents

Publication Publication Date Title
CN110675265B (zh) 无临时密钥泄露的区块链双密钥隐匿地址协议的实现方法
US11877213B2 (en) Methods and systems for asset obfuscation
US11729150B2 (en) Key pair infrastructure for secure messaging
KR101660627B1 (ko) 암호화 화폐의 거래를 보호하는 방법 및 장치
US20190354969A1 (en) System and method for securing digital assets
US20160260091A1 (en) Universal wallet for digital currency
Wu et al. A regulated digital currency
US12003495B2 (en) Decentralized processing of interactions on delivery
CN113874899A (zh) 用于通过区块链网络实现转账的计算机实现的系统和方法
CN116132063A (zh) 安全令牌分发
WO2017006136A1 (en) Secure digital data operations
US20090048979A1 (en) Token based new digital cash protocols
CN107908932B (zh) 一种基于l算法的数字货币防伪及验证方法、系统和设备
EP3531365B1 (en) Computer system, connection apparatus, and processing method using transaction
US9171324B2 (en) Hybrid virtual account and token-based digital cash protocols
JP2021064891A (ja) コンソーシアムブロックチェーンシステム、計算機、トランザクション承認方法
WO2020047274A1 (en) System, method, and computer program product for maintaining user privacy in group transactions
CN116349203A (zh) 识别拒绝服务攻击
Wahrstätter et al. Basesap: Modular stealth address protocol for programmable blockchains
Yeh et al. Improvement of two lightweight RFID authentication protocols
US20090210349A1 (en) Virtual account based new digital cash protocols
US20180218357A1 (en) Export high value material based on ring 1 evidence of ownership
CN111861489A (zh) 基于区块链的金融产品交易份额确定方法及装置
CN115088003B (zh) 用于安全实时n方计算的系统、方法和计算机程序产品
JP6830635B1 (ja) データ管理方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20220708