CN111448579A - 量子证明区块链 - Google Patents
量子证明区块链 Download PDFInfo
- Publication number
- CN111448579A CN111448579A CN201880064983.1A CN201880064983A CN111448579A CN 111448579 A CN111448579 A CN 111448579A CN 201880064983 A CN201880064983 A CN 201880064983A CN 111448579 A CN111448579 A CN 111448579A
- Authority
- CN
- China
- Prior art keywords
- public key
- blockchain
- blockchain transaction
- generating
- transaction
- 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
Links
- 238000000034 method Methods 0.000 claims abstract description 79
- 230000000694 effects Effects 0.000 claims abstract description 16
- 238000003860 storage Methods 0.000 claims description 55
- 238000004891 communication Methods 0.000 claims description 7
- 238000005516 engineering process Methods 0.000 abstract description 9
- 238000004422 calculation algorithm Methods 0.000 description 24
- 230000008569 process Effects 0.000 description 14
- 238000012545 processing Methods 0.000 description 11
- 238000013515 script Methods 0.000 description 9
- 238000012795 verification Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 238000013459 approach Methods 0.000 description 5
- 230000008859 change Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000001010 compromised effect Effects 0.000 description 4
- 230000003287 optical effect Effects 0.000 description 4
- 238000011160 research Methods 0.000 description 4
- 238000012546 transfer Methods 0.000 description 4
- 230000007704 transition Effects 0.000 description 4
- 238000001152 differential interference contrast microscopy Methods 0.000 description 3
- 230000009977 dual effect Effects 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000006872 improvement Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 238000005065 mining Methods 0.000 description 3
- 239000002096 quantum dot Substances 0.000 description 3
- 230000009286 beneficial effect Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000002474 experimental method Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 230000008520 organization Effects 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 239000000758 substrate Substances 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000003190 augmentative effect Effects 0.000 description 1
- 230000000903 blocking effect Effects 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 239000013256 coordination polymer Substances 0.000 description 1
- 238000005520 cutting process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 229910001349 ledeburite Inorganic materials 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- VKQFCGNPDRICFG-UHFFFAOYSA-N methyl 2-methylpropyl 2,6-dimethyl-4-(2-nitrophenyl)-1,4-dihydropyridine-3,5-dicarboxylate Chemical compound COC(=O)C1=C(C)NC(C)=C(C(=O)OCC(C)C)C1C1=CC=CC=C1[N+]([O-])=O VKQFCGNPDRICFG-UHFFFAOYSA-N 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000005192 partition Methods 0.000 description 1
- 238000002360 preparation method Methods 0.000 description 1
- 230000000644 propagated effect Effects 0.000 description 1
- 229940035718 sular Drugs 0.000 description 1
- 230000029305 taxis Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000001131 transforming effect Effects 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3242—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving keyed hash functions, e.g. message authentication codes [MACs], CBC-MAC or HMAC
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N10/00—Quantum computing, i.e. information processing based on quantum-mechanical phenomena
-
- 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/04—Payment circuits
- G06Q20/06—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
- G06Q20/065—Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/382—Payment protocols; Details thereof insuring higher security of transaction
- G06Q20/3827—Use of message hashing
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q20/00—Payment architectures, schemes or protocols
- G06Q20/38—Payment protocols; Details thereof
- G06Q20/40—Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
- G06Q20/401—Transaction verification
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/006—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving public key infrastructure [PKI] trust models
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
- H04L9/0816—Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
- H04L9/0852—Quantum cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3006—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
- H04L9/3026—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters details relating to polynomials generation, e.g. generation of irreducible polynomials
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3093—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving Lattices or polynomial equations, e.g. NTRU scheme
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3236—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
- H04L9/3239—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions involving non-keyed hash functions, e.g. modification detection codes [MDCs], MD5, SHA or RIPEMD
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
- H04L9/3247—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- 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
- G06Q2220/00—Business processing using cryptography
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/56—Financial cryptography, e.g. electronic payment or e-cash
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- General Physics & Mathematics (AREA)
- Accounting & Taxation (AREA)
- Computing Systems (AREA)
- Finance (AREA)
- General Business, Economics & Management (AREA)
- Strategic Management (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Algebra (AREA)
- Artificial Intelligence (AREA)
- Power Engineering (AREA)
- Computational Mathematics (AREA)
- Condensed Matter Physics & Semiconductors (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Electromagnetism (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Abstract
比特币和底层区块链技术是建立去中心化应用的主要创新之一。从总体分析了量子计算对该技术的影响。本文提供了解决基于区块链的***中可被量子攻击者利用的安全漏洞的有效解决方案。
Description
相关专利申请的交叉引证
本申请要求于2018年6月14日提交的美国临时申请号62/684,848《QuantumproofBlockchain》、2017年12月1日提交的美国临时申请号62/593,741《QuantumproofBlockchain》以及2017年10月4日提交的美国临时申请号62/567,879《QuantumproofBlockchain》的优先权,出于任何和所有目的,这些申请的全部内容通过引用并入本文。
技术领域
本公开的发明属于区块链技术及加密货币领域。
背景技术
近年来,由于许多令人满意的特征,加密货币的重要性日益增长。尽管比特币被普遍认为是第一种加密货币,但其他一些货币还包括以太币(ethereum)和莱特币(litecoin),该以太币专注于智能合约,该莱特币是比特币链的分支并执行更快的区块生成。比特币(以及其他加密货币或“币”)利用区块链的概念,使实体和个人之间的交易能够不需要集中的管理机构。
区块链不是负责验证和维护所有交易的分类账的集中管理机构,取而代之的是依赖于节点网络以执行这些操作。当一个新的交易发布到网络上时,通过解决计算密集型任务来验证该交易,该任务称为工作证明(PoW),也可以称为利害关系证明(PoS)。从PoW创建一个区块以表示交易,并且添加该区块到表示先前交易的区块链中。PoW的可靠性源自于任务的计算强度,这意味着恶意用户要想进行欺骗(例如,双倍花费或窃取币),该用户将需要比网络的综合计算能力更强大的计算能力,才可用他的恶意交易重新创建链的区块。
除了区块链基础设施的积极安全方面,比特币还受益于可以带入***的有限数量的币。比特币对可生成的币总数有2100万的界限。工作证明的复杂性有助于生成稳定的货币供应。比特币已经被许多零售商接受为支付模式,包括Dell、PayPal、Overstock以及Expedia。最近,日本已经让比特币成为该国合法的支付形式。随着比特币的成功和流行,底层区块链技术也被深入研究,以用于其他有用的应用,诸如技术(arts)、文件共享以及去中心化DNS服务等。
比特币***最早由一位匿名作者以中本聪(Satoshi Nakomoto)的名字发表。它提供了使用数字签名和工作证明的自足式支付***的详细信息,在该自足式支付***中,工作证明用于约束用户双倍花费货币。即使比特币宣称用户将具有匿名性,但是还有很多工作通过将网络和/或电子邮件地址映射到比特币用户来对用户去匿名化。这种映射可以经由一些比特币零售商要求的后交易(post transaction)处理来发生。例如,一些零售商为了后续服务,可以要求用户在交易完成之后发送电子邮件(例如,在购买或捐赠的情况下)。
当公钥重用于多个交易时,对用户去匿名化的另一努力是成功的。交易包括输入、输出以及比特币被发送到的目标位币地址。在具有公钥散列(public key hash)的用户决定花费币之前,此输出金额标记为未花费。为了花费这些币,用户必须发布利用用户的私钥和节点网络的完全非散列的公钥签名的新的交易,以验证该交易。
针对地址聚类的研究,已试图通过创建地址集的分区来将比特币用户与地址进行映射,这些地址集可以由比特币交易中的同一实体控制。研究人员使用了各种启发式方法已能够识别出易受攻击的钱包中69%的地址。这种方法在识别用户方面有效的主要原因之一是因为没有为每笔交易生成新的密钥对。在最初的比特币论文(在其他来源中也是如此)中已经强调了为每笔交易创建新密钥对以确保私密性的必要性,但这种建议并不总是被遵循。当量子计算机可用时,这可能被证明是更加灾难性,会允许量子对手通过多种方式操纵网络来窃取币。
量子影响:互联网上使用的许多经典密码算法都是基于诸如大整数因式分解问题和离散对数问题的数论问题的难解性来保证安全性的,然而如上所述,舒尔(Shor)的算法可以在多项式时间内用量子计算机解决这些问题。该算法依赖于量子周期搜索例程,该例程可用于解决数的因式分解问题和解决离散对数问题两者。2001年,IBM使用7量子位量子计算机将数字15因式分解为数字3和5成功地实验了舒尔的算法。继IBM的实验之后,在实现舒尔的算法方面有了更多的工作,诸如使用固态量子位因式分解数字15、以及因式分解数字21的实验。
2015年8月,美国国家***(NSA)宣布计划为其B套算法(suite B algorithms)过渡到抗量子密码原语。在宣布之后,美国国家标准与技术研究所(NIST)一直在进行标准化抗量子密码原语工作。开发抗量子技术,并且特定地,后量子密码***的努力,正在成为信息安全的核心研究领域。
发明内容
本文描述了用于安全地对区块链交易签名的***和方法,该***和方法可包括:对区块链交易散列以生成散列位串,其中,该散列位串的长度是预定数目;生成包括随机数的对的私钥,其中,生成的对的数目由预定数目确定,并且其中,生成的每个对对应于散列位串的位;对私钥的随机数散列以生成公钥;并且对于散列位串的每个散列位,选择对应的随机数对中的随机数;对每个所选随机数级联以生成签名;并且使散列位、签名及公钥与区块链交易相关联。该预定数目可以为256。每个随机数可以包括具有预定数目长度的位串。对应的随机数的对中的所选随机数可以基于散列位的值来选择。
本文还描述了用于为固定公钥/私钥对生成区块链交易的***和方法,该***和方法可包括:在固定公钥上附加多个随机位以生成填充公钥;存储多个随机位;使用填充公钥生成区块链地址;使用固定公钥和多个随机位作为输入生成区块链交易;并且使用固定私钥和区块链地址对区块链交易签名。生成区块链地址可以包括:生成区块链的版本的编码;对填充公钥散列;并且为版本和散列填充公钥的编码生成校验和。
本文还描述了用于使用固定公钥/私钥对为相关联的区块链生成区块链交易的***和方法,其中,该区块链具有包括多个公钥和对应的散列值的相关联的散列表。该方法可以包括:在固定公钥上附加多个随机位以生成填充公钥;存储多个随机位;使用填充公钥生成区块链地址;使用多个随机位作为输入生成区块链交易;使用固定私钥和区块链地址对区块链交易签名;并且使区块链交易与散列表中对应于固定公钥的条目相关联。固定公钥可以与公钥基础设施(PKI)证书相关联。区块链交易可以与这种PKI证书相关联。区块链地址也可以与PKI证书相关联。
本文还描述了用于维护包括多个公钥和对应的散列表值的区块链散列表的***和方法,其中,该多个公钥中的每个公钥是固定的且与单个用户相关联;并且对于每个区块链交易:确定用于生成区块链交易的公钥;并且在区块链散列表中将区块链交易与公钥相关联。该***和方法还可以包括:确定区块链交易包括恶意活动;确定用于生成区块链交易的公钥;并且在区块链散列表中将恶意活动与公钥相关联。
本文还描述了用于维护包括多个证书的公钥基础设施的***和方法,其中,多个证书中的每个证书是固定的且与单个用户相关联;接收多个区块链交易;并且对于每个区块链交易:确定用于生成所述区块链交易的证书;并且使区块链交易与证书相关联。该***和方法还可包括维护与每个证书相关联的信任分数。该***和方法也可以确定区块链交易包括恶意活动;确定用于生成所述区块链交易的证书;并且基于恶意活动改变与证书相关联的信任分数。
本文还描述了用于生成与区块链交易相关联的新区块的***和方法,包括:在有限域中以n个未知变量的预定数目生成m个随机二次多项式方程组Fi(x1,…,xn),i=1,…,m,其中,所述二次多项式的形式为∑aijxixj+∑bixi+c,其中,aij、bi和c是来自所述有限域的随机值,并且其中,x1,…,xn表示预定数目的未知变量;将所述区块链交易的数据嵌入到生成的随机二次多项式方程组Fi(x1,…,xn)的二次项aij、线性项bi及常数项c中,i=1,…,m;求解方程组F1(x1,…,xn)=0,F2(x1,…,xn)=0,…,Fm(x1,…,xn)=0;使用方程组的解验证交易的有效性;并且生成新的区块。
附图说明
图1示出了交易的示例默克尔根(Merkle Root);
图2示出了公钥的示例填充;以及
图3示出了示例计算***。
具体实施方式
随着比特币目前获得的势头,分析和理解比特币和其他加密货币(或“币”)在当前状态以及进入未来的安全性变得有必要。基于经典计算机无法在多项式时间内解决的数学问题的难解性,今天使用的密码算法是安全的,但这种假设随着量子计算机的存在而改变。目前,比特币使用的数字签名算法是下面将介绍的具有secp256k1曲线的椭圆曲线数字签名算法(ECDSA),该secp256k1曲线基于离散对数问题具有安全性。在量子计算机的帮助下,已知舒尔的算法在多项式时间内解决了离散对数问题,因此打破了ECDSA的安全性,从而影响比特币。对比特币的另一个担忧是地址重用,因为交易是公开广播的,所以可以利用地址重用来对比特币用户去匿名化。可以跟踪对应于具体地址的交易以泄露用户地址的身份。本文描述了对利用量子计算机的比特币的安全性进行的分析、后量子设置中密钥重用的影响的分析、以及抵御此类威胁的安全性的解决方案。例如,目前使用散列函数的比特币中的工作证明(PoW)并不灵活,并且给了拥有字符串专用集成电路(ASIC)机器的用户太多的权力。引入了一种新PoW来解决这些问题和其他问题。虽然比特币用作本文描述的***和方法的示例加密货币,但是所描述的***和方法可以同样地应用于其它加密货币,这些其他加密货币使用类似于在比特币中使用的***和方法的机制。
预备
数字签名是区块链的核心,用于交易的验证和用于维护一致的节点网络。椭圆曲线数字签名的基本算法描述如下。
定义1.椭圆曲线:椭圆曲线E是魏尔斯特拉斯(Weierstrass)方程解的集合,
E:Y2=X3+aX+b
在点O,其中常数a和b满足4a3+27b2≠0。
为了在密码学中使用,对于质数p,椭圆曲线定义在有限域Fp上。E(Fp)如本领域已知,通过使用弦切法则定义的加法运算来形成组。ECDSA的参数是基域大小、椭圆曲线以及基点G,通常表示为(p,a,b,G,n,h),其中p是指有限域的大小、a和b定义曲线Y2=X3+aX+b、G是曲线中的基点、n是G的阶、并且h是定义为#E(Fp)/n的余因子。以这种方式选择点G的阶是为了避免已知的对椭圆曲线离散对数问题的攻击。ECDSA的密钥生成包括生成d∈[1,n-1],其中n是基点G的阶。计算P=dG,则P是公钥,而d是私钥。比特币中使用的secp256k1曲线生成大小为256位的私钥和大小为264位的压缩公钥。压缩公钥仅存储密钥的x坐标,因为如果曲线已知,可以导出y坐标,因此将大小压缩一半。下面的处理描述如何计算给定的消息的签名以及如何验证给定的签名。
签名:
让m作为消息。
1.从[1,n-1]中选择随机k。
2.计算P1=kG,其中G是基点。
3.计算r=xP1 mod n,其中xP1是点P1的x坐标。如果r=0,则转到步骤1。
4.计算e=Hash(m)和k-1(e+rd)mod n。如果s=0,则转到步骤1。
则,消息m的签名是(r,s)。因此,使用secp256k1曲线,签名大小约为512位。
验证:给定消息散列e的签名(r,s)和签名者P的公钥,按照以下步骤验证签名是否有效:
1.计算u1=es-1mod n和u2=rs-1mod n。
2.计算P'=u1G+u2P。如果P'=O,则拒绝签名。如果r=xP'mod n,则接受签名,其中xP'是点P'的x坐标。
椭圆曲线离散对数问题是在给定公钥P=dG的情况下,求签名人的私钥d。应当理解,如果d是已知的,则任何人都可以对给定消息m签名,从而损害了签名者的真实性。因为椭圆曲线群上的离散对数问题被认为是经典计算机难以解决的问题,所以ECDSA被认为是安全的。
区块链及区块链在比特币中的使用
以下是与区块链相关的定义,以便更清楚地理解比特币的工作原理。区块链是在参与的节点网络上曾经执行过的所有交易的公共分类账。在可信任的第三方(例如,银行)的情况下,维护交易的公共记录使人们能够验证和防范像双倍花费的攻击。除了加密货币,区块链似乎还具有从区块链物联网(IoT)到可编程自执行合约的广泛应用的潜力。
定义2.输入:交易的输入包括交易Id、发送方正使用的输出的索引以及输入脚本。
定义3.输出:输出是指传送到接收方的比特币数额,同时还有找零数额或交易费用。每个输出都有一个索引号,以便在该输出在将来的交易中用作输入时引用。输出包括正在使用的比特币数额和输出脚本。
定义4.交易:交易是交易版本号、输入、输出以及接收方的散列公钥、发送方的完全非散列公钥(对应于在使用的未使用交易的公钥散列)、对应于发送方的私钥的签名的集合。为区块链中的每个交易生成唯一的交易标识符,该标识符是交易的散列。
定义5.创世(Genesis)区块:这是区块链的第一个区块,通常分配区块号0,并硬编码到比特币软件中。该区块是创始人中本聪创建的第一个区块并且包括将50个比特币分配给一地址的交易。
定义6.币基(Coinbase)交易:这是区块的比特币生成交易。该交易向区块的矿工分配相当于回报(目前为12:5美元)的比特币以及区块中所有交易的交易费用。
比特币使用基于堆栈的脚本***来处理交易。在上述定义中,交易中的接收方的散列公钥通常与一组机器级代码一起包括在输出脚本中以用于当接受方决定花费他的币时所需的验证,而发送方的签名和非散列的完全公钥包括在输入脚本中。此外,当交易被散列以添加到区块(下面定义)时,它们被散列到默克尔根中以节省存储空间。默克尔根通过散列区块中的每对交易直到仅剩下一个散列值来导出,如图1所示。
定义7.区块:一个区块报头包括区块版本、先前区块的报头的散列(从而形成链)、交易默克尔根、时间、目标位以及一个随机数(nonce)。目标位是区块报头的散列必须小于或等于的阈值,并用于确定挖掘区块的难度级别。一个区块包括区块头、交易数以及交易。
定义8.比特币地址:用户的比特币地址是(版本、公钥的散列160、散列的校验和)的base58编码。校验和作为SHA256算法的前四个字节来计算,该算法对散列公钥应用了两次。公钥的散列160是应用在公钥的SHA256上的RIPEMD160散列算法。
在考虑过渡到量子计算机时显而易见的一些安全问题时,概述如何使用底层区块链概念交换比特币是有帮助的。比特币用户为用于签名的ECDSA算法生成公钥/私钥对,并且可以创建利用他的比特币地址接收或花费币的交易。
对于比特币从发送方到接收方的对等传送,接收方创建公钥/私钥对,并将对应的比特币地址给发送方。发送方创建如上定义的交易,并用发送方的私钥对该交易签名。然后将交易广播到节点网络,并进行验证。当接收方决定花费币(传送到另一用户地址)时,接收方公布他的完整公钥和新的交易的签名。因此,如果接收方丢失他的密钥,则具有未使用的交易输出(即,可用比特币余额)的接收方不能使用比特币。因为不存在涉及验证交易的集中管理机构,所以验证处理由网络中的节点执行,并且仅当网络中的大多数节点验证签名并接受发送方拥有的比特币正在传送并且这些比特币未在先前交易中使用时,交易才被接受。这是使用一个叫做工作证明(PoW)的概念来完成的。为了在链中创建新区块,节点致力于寻找一随机数值,使得先前区块、要添加的交易以及随机数的散列小于或等于目标阈值。做这项工作的回报是固定数量的比特币,这些比特币生成为新区块中的币基交易并分配给区块挖掘器。通过将交易散列到基于散列的工作证明的正在进行的链中,在网络中对交易加时间戳,根据生成区块的速率定期调整证明的难度。工作证明有助于防止双倍花费,因为为了修改交易,恶意用户将需要修改其中包括交易的区块,从而必须执行创建区块以及在已修改的交易区块之后的链中的区块所需的工作。只要诚实节点(honest nodes)主宰网络的CPU能力,这种情况就不太可能发生。比特币***总结如下:
1.新的交易广播到所有节点。
2.每个节点将新的交易收集到一区块中。
3.每个节点都在为其区块寻找困难的工作证明。
4.当一节点发现工作证明时,它将该区块广播到所有节点。
5.只有当区块中的所有交易都有效且尚未使用时,节点才接受该区块。
6.节点通过创建链中的下一区块来表示它们对该区块的接受,并使用接受的区块的散列作为先前散列。
量子计算机对比特币的影响
下面是量子计算机存在的情况下的比特币范围的分析,并指出了在后量子环境下针对安全使用比特币和类似货币需要解决的潜在问题。即使使用量子计算,散列函数和对称密钥密码术仍然被认为是安全的,因此可以假定比特币地址的生成和工作证明在后量子设置中是安全的。下面列出了攻击者可以在比特币环境中利用量子计算的示例用例。虽然比特币用作示例加密货币,但以下用例可以同样适用于其他加密货币。
量子攻击者与DDoS:比特币***中的交易和区块使用对等网络传播。当一个用户有新的交易或区块时,他向他的对等节点发送inv消息,之后跟随的是希望从用户下载新信息的对等节点的GetData或GetBlock消息。
攻击者可以在接收到新信息后,对已发送inv消息的任何用户节点执行DDoS(分布式拒绝服务)攻击。在这种情况下,受害节点无法与网络交互以验证他的原始交易。取而代之的是,攻击者节点通过计算对应于原始交易中正在使用的比特币的公钥的私钥,来修改从受害节点接收的原始交易信息,以将比特币发送给自己。虽然工作证明计算密集型的并且约束恶意用户作弊双倍花费,但如果DDoS攻击的时间足够长以使攻击者的交易被验证并添加到区块中,则攻击者就会成功窃取用户的比特币。
在DDoS攻击的情况下,通过阻碍发布交易的用户节点,并利用导出对应于交易中使用的用户公钥的私钥的能力,量子恶意用户可以替换诚实用户节点并创建新的交易以花费比特币。新的交易平均需要10分钟来确认(即,添加到区块中)。通常,交易费用较低的交易需要更长的时间来确认,因为挖掘区块以添加交易的回报较少。因此,如果攻击可以持续至挖掘区块所花的时间,则攻击者就会成功窃取比特币。
这种DDoS攻击也可以被日蚀攻击(eclipse attack)所取代,如在本领域中所知,而受害者节点没有意识到仅修改过的交易正被广播到实际的比特币网络。因此,日蚀攻击更有效。
密钥重用:有了密钥重用,应当理解,窃取比特币对于量子攻击者变得更加容易。在不对受害节点执行DDoS或日蚀攻击的情况下,它允许攻击者创建窃取比特币的恶意交易,从而使攻击更加高效。这也是因为当用户为该地址花费他的可用一组币时,该地址的完全非散列公钥会泄露。网络中的量子攻击者可以访问此公钥,以后在地址被重用的情况下可以使用该公钥创建交易。因为所有的交易都是公开的,所以如果恶意用户能计算出对应的私钥,则他可以跟踪每个重用的地址可用的比特币并创建交易以将这些比特币传送到他的地址。因为舒尔的算法可以用于在多项式时间内解决离散对数问题,所以如果恶意用户可以访问他的比特币地址的公钥,则比特币地址就可以被打破以找到对应的私钥。
即使在比特币***的当前状态下,密钥重用也允许通过跟踪和识别来自公开广播的交易的花费模式来对用户去匿名化。然而,当量子计算机存在时,它就成为一个主要的安全漏洞。
对抗量子计算机攻击的新对策
在后量子时代,需要针对安全交易对比特币***进行明显的改变。交易中的密钥重用打破了用户的匿名性,并且可以导致恶意用户利用量子计算机窃取比特币。如本文所述的解决方案包括使用抗量子签名(quantum resistant signature)替换ECDSA,以及使用固定公钥填充以针对每个交易生成新公钥。填充可以提供在可以针对每个交易生成和使用新地址的同时存储单个固定私钥的优点。
后量子密码学
在比特币***中避免量子攻击的一种方法是利用可用的抗量子签名方案来替换ECDSA。随着近段时间抗量子原语的搜索愈演愈烈,为了使比特币被认为是未来可靠的支付***,有必要在比特币***中使用抗量子算法。虽然这种方法看起来很简单,但是实现还需要更多的分析。为了理解向后量子比特币***的可能过渡,描述了比特币叉(fork)的概念。比特币区块链中的叉是区块链的分支,不同的用户节点跟随其中一个分支。
它可分类为三种情况:
1.意外叉:这是当两个区块同时挖掘时出现的叉。这最终会被纠正,深度较高的链被接受,而另一个被孤立。比特币用户对此并不太关心,因为它会随着分叉后多挖掘几个区块而自动纠正。
2.软叉:这是区块链中未升级节点(即那些未遵循新一致性规则的节点)仍然接受升级节点但反之不成立时的叉。因此,软叉是向后兼容的,并且在所有节点升级到新的一致性规则时进行解析。这通常比修改规则更可取,因为它对比特币***的影响更小。
3.硬叉:这是比特币***中的一个永久分歧,用户针对区块链的每个分支拥有两份他们的币的副本。这里,升级了的节点接受由未升级节点创建的区块,并且未升级节点拒绝根据新规则而创建的区块。因此,如果旧节点不同意新规则,叉就永远不会解析。存在一些诸如莱特币的山寨币(altcoin)(即不是比特币的加密货币),该币作为从比特币区块链的分叉的结果而创建。另一个硬叉出现在以太加密货币***(Ethereumcryptocurrencysystem)中,现在分为以太(Ethereum)和以太经典(Ethereum Classic)。
因为后量子原语是未来,所以可以提出这种论点:后量子叉将吸引更多的散列力(hashing power)和区块链上的构建。作为另一种选择,在无需分叉比特币链的情况下,后量子***可以作为一种新的货币***开始,并可以证明比比特币本身更有前景。
从多元和基于格的密码学中,存在有效的潜在抗量子签名算法。一些最有效的基于散列的方案包括XMSS(扩展默克尔签名方案(Extended Merkle Signature scheme))和XMSS的多树版本。公钥的大小范围自7千字节(kB)至14kB。然而,由于它需要管理全局状态,以确保如果使用相同的密钥对多个消息签名时签名不会被伪造,所以这种签名方案具有一个缺点。已提出了一种名为SPHINCS的无状态签名方案,但该方案效率较低,且具有较大的签名大小。数字签名算法中的这种变化的缺点是密钥大小。ECDSA允许短的256位密钥,而大多数抗量子签名算法需要相对较大的密钥大小。下面描述的是比特币***中的替换候选者及其密钥大小。
1.彩虹(Rainbow):这是一个高效并提供快速的签名和验证的多元签名方案。以下参数可以是安全的:底层字段为GF(31),签名大小约为456位,接近ECDSA签名大小,并且公钥大小范围约为138KB。
2.格签名:一些有效的基于格的签名包括ring-Tesla、BLISS以及GLP。该ring-TESLA签名的安全性基于环带错误学习(RLWE)问题的难解性,并且具有大小约为1至2kB的公钥和大小为12544位的更大的签名。此签名方案具有可证明安全实例的参数,并且性能与诸如BLISS和GLP的其它基于格的签名方案相当。
由于在上述情况下密钥大小较大,因此交易大小也会增加,因为在花费比特币时包括了非散列的完全公钥和花费者的签名。区块大小被确定为区块的大小、区块中交易数的大小以及区块中交易的大小之和。因为当签名算法被抗量子的替代方案替换时,交易大小会增加,因此它会影响区块大小。目前,区块的大小存在1MB的限制,并且对增加区块大小限制非常支持。随着利用上面列出的抗量子签名之一来替换ECDSA,区块大小的增加将是合乎情理的,以允许在区块中包括合理数量的交易。
双重签名***
本文描述的是一种用于新的量子证明(quantumproof)区块链的双重签名***,它既是后量子的,又是长期安全的。在双重签名***中,一个是为了完全匿名性,而第二个是为了给用户建立信用分数。
签名的第一选项是基于散列的温特尼茨一次性签名(WOTS+),该签名提供了高级别的私密性并消除了针对状态管理的需要。这称为“高级别私密性”,因为通过用于安全性的签名方案的设计,为网络中的每个交易生成了新的私/公密钥对,且因此生成了新的地址。即使比特币宣称对用户匿名,但通过映射地址到比特币用户来对用户去匿名化的工作已存在很多。这有时是因为一些比特币零售商为了后续服务要求用户在交易发布后发送电子邮件(例如,在购买或捐赠的情况下)的后交易处理。一次性签名通过为每个交易生成新的密钥对来提供私密性的优点。这也是基于散列的一次性签名的一个有趣的应用。Lamport-Diffie签名是第一个基于散列的签名方案,该签名涉及生成如下的私/公钥对:为了对消息m签名,对消息m进行散列(通常使用输出大小为256位的标准散列函数)。然后生成包括256个随机位的256对(对应于0和1)的私钥。公钥是私钥中随机位的散列。为了对H(m)签名,对于散列的每个位(取决于它是0还是1),从私钥中选择对应的随机256位。因此,签名为256×256=65536位的字符串。为了验证签名,使用公钥对H(m)重复相同的处理。然后,如果结果与256位随机数的256个数的散列匹配,则接受签名。否则,拒绝签名。使用温特尼茨参数w的温特尼茨一次性签名是一种更有效的基于散列的签名,具有更短的签名并在签名生成时间和大小之间进行折衷。
这第一选项可能与普通区块链不同,并在此基础上加以改进。公钥可以不存储在区块中,因为公钥可以从签名直接计算出,该签名还可以使用地址来验证。这种变化可以节省用于区块的存储器存储,该存储是超过现有区块的实质性存储器节省。这种改变也可以要求在货币花费完之后的网络中不存储公钥。
签名的第二选择是2005年引入的多元彩虹签名方案。该方案被认为是一个非常快速、有效且安全的签名方案,并且在参数选择适当的情况下,迄今为止还没有针对该方案的有效的实际攻击。然而,彩虹方案使用的密钥大小通常大于当前使用的椭圆曲线签名或WOTS+。所以,签名方法可以选择固定用户的公钥/私钥对,并使用该密钥对生成多个地址。这种方法可以通过使用以下两种技术之一来减少交易的大小。第一技术可以包括:未在交易中包括用于验证的公钥。取而代之的是,可以维护公钥和对应散列值的散列表。第二技术可以包括以下内容。当第一次使用新的彩虹公钥时,该公钥可记录在区块中。当第二次使用公钥时,用户可以不提供公钥,而是提供先前使用的位置,特定是区块号(即,公钥第一次出现在哪个区块中),和/或具体区块中的位置,使得节点和其他人可以定位它并验证公钥是正确的,然后使用公钥验证交易的签名是正确的。
区块链中的交易和区块是公开广播的,并且对于网络中的每个人都是可用的。因此,尽管第二选项提供了与基于散列的WOTS+选项相同的128位安全性(p位安全方案是一种需要2^p操作进行攻击的方案),但该选项提供的私密性较小。这是因为总是有可能从特定的固定公钥中找到公钥之间的关联。
填充公钥:通过填充固定公钥可以生成新的公钥。在这种情况下,用户可能仅需要存储一个固定公钥和对应于每个生成的公钥的固定长度的填充位。所以,当使用彩虹方案时,钱包大小可能不太会受到密钥大小增加的影响。这有助于从固定公钥中为每个交易随机地生成新的公钥。因为固定公钥在花费时被泄露,所以这种填充方案仍然会损害用户的私密性,但是当用户使用相同的固定公钥为不同的交易创建新密钥时,这种方法允许该用户防御量子攻击者窃取他的币。
信用分数:因为这种方法涉及使用单个公钥以使用填充生成多个地址,并且有可能与这些地址关联以属于根公钥,所以有利于使用这种关联以提供诸如信用分数的有用的功能。这种信用分数方案可以以以下方式操作。因为交易和区块数据是公共的,用户可能会跟踪和记录双倍花费的尝试或其他攻击尝试。此外,因为可以在散列表中维护公钥,所以可以在恶意活动地址和对应的公钥之间创建链接或关联。针对所记录的每个恶意活动,可以对与公钥和/或用户相关联的信用分数施加惩罚。这针对诚实的用户特别有用,因为他们可以证明自己的信用度。
在第二签名选项中,也可以将公钥基础设施(PKI)集成到***中。具体地,可信任的第三方可以为公钥发出证书。在这种情况下,证书也可以用作地址。通过这样做,用户网络可以保证可以追踪到真实的人,该真实的人可以通过在必要时经由适当的合法程序从可信的第三方请求信息来定位。因此,PKI为网络上的用户提供所需的凭证。应当理解,即使已知证书,也不一定意味着该人暴露,因为如果不存在公开身份的合法理由,受信任的第三方通常应保守身份秘密。此外,一人或一机构可以申请多个不同用途的证书,这些证书还可以加强隐私。识别用户的能力对于当局在未来使用加密货币进行交易征税方面可能具有很大的价值。
最终,可以使用第一或第二签名选项来构建新的区块链。使用第一签名选项可以建立完全强制的匿名区块链。第二签名选项与PKI一起使用,可以建立具有良好私密性的可追踪和可验证的区块链。
应当理解,在区块链的情况下,一次性签名比基于默克尔树的签名(像xmss)更适合。为每个交易生成分离的公钥/私钥对和地址本质上保障了私密性。为了至少实现新的加密货币的标准安全性,如互联网工程任务组(IETF)标准中所描述,可以利用128位安全性的参数来实现一次性签名方案。
新的工作证明
介绍了一种基于通过猜测方程中的一个或多个变量的随机值来求解非线性多项式方程的新的工作证明的方法。多元多项式方程求解PoW的应用也推动了科学界进一步发展和研究该课题。也是为了数学研究而开发出来的币的另一创新示例是质数币(Primecoin),该币基于其PoW生成某种形式的质数。因为PoW在网络上公布,所以科学界可以获得这种质数的列表。
PoW概要:让n表示方程组的变量数,并且变量表示为x1,…,xn。针对PoW,可以生成GF(q)中n个变量中的m个随机二元多项式方程组。所以,方程的形式为∑aijxixj+∑bixi+c,其中aij,bi,c是域GF(q)中的随机值。因为PoW的目的是将交易绑定至正在生成的区块,所以交易数据可以嵌入到多项式的线性和常数项中,并且可以求解方程组。
难度目标基于方程组中的方程和变量数,并且可以基于具体时间量中生成的区块数来调整。由于多项式求解算法的性质,这种新的PoW可以使使用这种PoW的区块链***更加民主,并可以夺走当前基于ASIC的挖掘技术的优点。
在散列之前填充公钥
虽然为每个交易创建新的密钥对可以有益于安全性和私密性,但是由于后量子签名方案的密钥大小较大,存储、管理以及跟踪密钥对于多个交易可能是困难的。在密钥大小比现有***中使用的密钥大得多时,可适用于经典和后量子两者的情况的填充对于后量子情况可能特别有益。
通过在公钥上应用安全填充方案,然后为每个交易导出新的比特币地址,接收比特币的用户在维护匿名性的同时可以重用相同的公钥以创建和/或生成不同的地址。在***露关于接收方的身份的任何信息的情况下,这种填充提供了一种替代方案以为每笔交易创建新的公钥/私钥对;然而,发送方的身份仍可能泄露。
可以使用以下方法来实现对公钥使用填充的币钱包:让私钥为合适的后量子签名方案的固定私钥。从privkey导出对应的固定公钥pubkey。现在,随机生成的填充位,并附加在pubkey位的末尾。为了获得比特币地址,该方法可以生成该版本的base58编码、填充公钥的散列160、以及散列和版本的校验和。钱包可以存储用于交易的固定私钥和填充位。当用户决定花费币时,用户可能泄露非散列的固定公钥和与其他交易细节一起的可以由网络验证的填充位。因为用于钱包维护的密钥和签名大小较大且避免密钥重用,该方法在过渡到抗量子签名时具有明显的优点,因为仅需要为每个新的交易保存填充位,从而节省了用于待存储的较大密钥所需的存储装置/存储器空间。对于n位公钥,可以将固定数目的填充位添加到公钥的末尾以创建填充公钥。当为这种地址花费比特币时,钱包的用户可以利用未用完的输出作为输入,完全非散列的固定公钥以及用于导出具有未用完的输出的地址的填充位来创建交易,并且用户可以用固定私钥签名。因为正在形成的交易是公开的,并且比特币地址可以从固定私钥和填充位导出,所以可能不必要利用交易对填充位进行索引。
通过这种改变,输入脚本现在可以包括签名、非散列的固定公钥以及填充位以用于正确的验证。固定公钥可以用于验证签名。因为比特币在输出脚本中使用操作码用于验证,所以实现这种程序可能需要新的操作码以用于利用填充位填充公钥。可以引入新的操作码OP_PAD,且该新的操作码用于利用填充位填充公钥,并且输入和输出脚本可以包括以下数据:
输入脚本
[signature]
[pubkey]
[paddingbits]
输出脚本
OP_PAD
OP_HASH160
Hash160(填充pubkey)
OP_EqualVerify
OP_DROP
op_checksig
泄露固定公钥可能不会影响安全性,因为每个交易都可以使用通过利用公钥填充新的、随机生成的位而创建的新地址。因此,对于量子攻击者创建待验证的伪造交易,攻击者将需要正确地猜测填充位,该填充为对于k个填充位具有2-k的概率。图2示出了具有含k位填充的n位长度的公钥的示例。格罗弗(Grover)的量子计算机算法针对暴力强制填充位提供了比经典算法提高了的二次速度。因此,对于后量子安全性,128位安全性将需要至少256位填充。签名方案的后量子替换的参数的选择也应在128或256位安全性级别上选择。
应当理解,填充方案仅可以保护用户抵御对重用密钥的量子攻击,而不是对拒绝服务类型的攻击或上述日蚀攻击的攻击,因为固定公钥和填充位两者在花费币时都可能泄露。一种防范这种攻击的解决方案可以是用抗量子签名替换现有的ECDSA。当使用与填充方案一起的量子签名取代重用密钥时,即使在泄露了固定公钥时,攻击者也可能无法计算与地址对应的私钥。此外,当用户使用相同的固定公钥为交易生成新地址时,攻击者可能无法确定具有不可忽略概率的填充位。
填充方案中的一个缺点是,当用户传送比特币时,用户可能泄露具有填充的用户的公钥,并且在这种情况下,传送比特币的用户在该用户使用相同的公钥以用于每次交易的场景中基本上可能泄露该用户的在线身份。因此,填充可能只保护比特币接收方的私密性,而不是发送方和接收方的私密性。
模块化
额外的区块链设计可以是使区块链中的签名***和PoW***成为新的、分离的、独立的模块,使得一个或两个模块可以在未来被新的长期安全的后量子签名方案替换/替代。这种模块化可以使关于***更新有关的区块链***非常灵活,使得它可以容易地适应未来的威胁。
其他改进
可以对使用较大的公钥大小的通用区块链(包括量子证明区块链)进行额外的改进。一个改进可以是不在区块中存储公钥,而是在***中创建一个分离的文件来存储具有对应地址的公钥。然后,用户可以在这种分离的文件中搜索具有对应地址的公钥以验证交易。另一改进可以是在一个或几个区块中存储公钥,使得稍后的区块不存储公钥。取而代之的是,稍后的区块可以(例如,经由较早的区块的区块号)参考存储有公钥的较早的区块,使得用户可以通过区块号和地址找到公钥以验证交易。
示例环境
图3描述了一种计算装置,该计算装置可用于诸如描述了与所描述的进程有关的那些组件中的任一个的各种***组件中。图3所示的计算机体系结构可以对应于台式计算机、膝上型计算机、平板计算机、网络器具、电子阅读器、智能电话或其它计算装置,并且可以用于执行诸如实现上述操作程序的本文描述的用户的任何方面。
计算装置300可以包括作为印刷电路板的基板或“母板”,多个组件或设备可以通过***总线或其它电通信路径连接到该印刷电路板。一个或多个中央处理单元(“CPU”)14可与芯片组26结合操作。CPU14可以是执行计算装置300的操作所必需的算术和逻辑操作的标准可编程处理器。
(一个或多个)CPU14可以由通过操纵区分和改变这些状态的切换元件从一离散物理状态过渡到下一状态来执行必要的操作。切换元件通常可以包括维护两个二进制状态之一的诸如触发器的电子电路,以及基于一个或多个其它切换元件的状态的逻辑组合来提供输出状态的诸如逻辑门的电子电路。这些基础切换元件可以组合以创建更复杂的逻辑电路,包括寄存器、加法减法器(adders-subtractors)、算术逻辑单元、浮点单元等。
在各种实施例中,(一个或多个)CPU14可以利用诸如(一个或多个)GPU(未示出)的其它处理单元来扩充或替换。(一个或多个)GPU可以包括专门用于但不一定限制于高度并行计算的诸如图形和其它可视化相关处理的处理单元。
芯片组26可以提供(一个或多个)CPU14与基板上的其余组件和装置之间的接口。芯片组26可提供到用作计算装置300中的主存储器的随机存取存储器(“RAM”)18的接口。芯片组26还可以提供到诸如只读存储器(“ROM”)20或非易失性RAM(“NVRAM”)(未示出)的计算机可读存储介质的接口,以用于存储可帮助启动计算装置300并在各种组件和装置之间传送信息的基本例程。根据本文描述的方面,ROM20或NVRAM也可以存储计算装置300的操作所必需的其它软件组件。
计算装置300可以使用通过局域网(“LAN”)16到远程计算节点和计算机***的逻辑连接来在联网环境中操作。芯片组26可包括用于通过诸如千兆位以太网适配器的网络接口控制器(NIC)22提供网络连通的功能。NIC22能够经过网络16将计算装置400连接到其他计算节点。应当理解,计算装置300中可以存在多个NIC22,这些NIC22将计算装置连接到其它类型的网络和远程计算机***。
计算装置300可以连接到为计算装置300提供非易失性存储的大容量存储装置10。大容量存储装置10可以存储用于实现本文更详细地描述的进程和***的***程序、应用程序、其它程序模块以及数据。大容量存储装置10可以通过连接到芯片组26的存储控制器24连接到计算装置300。大容量存储装置10可以包括一个或多个物理存储单元。存储控制器24可通过串行附加SCSI(“SAS”)接口、串行高级技术附加(“SATA”)接口、光纤通道(“FC”)接口或用于在计算机和物理存储单元之间物理连接和传送数据的其它类型的接口来与物理存储单元连接。
计算装置300可以通过变换物理存储单元的物理状态来将数据存储在大容量存储装置10上以反映正在存储的信息。物理状态的具体变换可以取决于各种因素和本说明书的不同实现。这些因素的示例可以包括但不限于用于实现物理存储单元的技术以及大容量存储装置10的特征在于是主存储还是辅助存储等等。
例如,计算装置300可以由通过存储控制器24发出指令来将信息存储到大容量存储装置10,以改变磁盘驱动器单元内特定位置的磁特性、光学存储单元中特定位置的反射或折射特性、或者固态存储单元中特定电容器、晶体管或其它分立组件的电特性。在不脱离本说明书的范围和精神的情况下,物理介质的其它变换是可能的,提供前述示例仅是为了便于本说明书。计算装置300还可以通过检测物理存储单元内的一个或多个特定位置的物理状态或特性从大容量存储装置10读取信息。
除了上述大容量存储装置10,计算装置300可以访问其它计算机可读存储介质以存储并检索诸如程序模块、数据结构或其它数据的信息。本领域技术人员应当理解,计算机可读存储介质可以是提供非瞬时数据的存储装置并且是可由计算装置300访问的任何可用介质。
作为示例而非限制,计算机可读存储介质可以包括以任何方法或技术实现的易失性和非易失性、瞬时计算机可读存储介质和非瞬时计算机可读存储介质、以及可移动和不可移动介质。计算机可读存储介质包括但不限于RAM、ROM、可擦除可编程ROM(“EPROM”)、电可擦除可编程ROM(“EEPROM”)、闪存或其它固态存储器技术、光碟ROM(“CD-ROM”)、数字多功能盘(“DVD”)、高清DVD(“HD-DVD”)、蓝光、或其它光学存储器、盒式磁带、磁带、磁盘存储装置、其它磁存储装置、或可用于以非短暂性方式存储所需信息的任何其它介质。
大容量存储装置10可以存储用于控制计算装置300的操作的操作***。例如,操作***可以包括LINUX操作***的版本。在另一示例中,操作***可以包括来自MICROSOFT公司的WINDOWS SERVER操作***的版本。根据其它方面,操作***可以包括UNIX操作***的版本。在一些实施例中也可以利用诸如IOS和ANDROID的各种移动电话操作***。应当理解,也可以使用其它操作***。大容量存储装置10可以存储由计算装置300利用的其它***或应用程序和数据。
大容量存储装置10或其它计算机可读存储介质也可以用计算机可执行指令进行编码,当该指令加载到计算装置300中时,可将计算装置从通用计算***转换为能够实现本文描述的方面的专用计算机。如上所述,这些计算机可执行指令通过指定CPU14如何在状态之间过渡来转换计算装置300。计算装置300可以访问存储计算机可执行指令的计算机可读存储介质,该计算机可执行指令在由计算装置300执行时可以执行本文描述的操作过程。
计算装置300还可以包括输入/输出控制器32,以用于接收和处理来自诸如键盘、鼠标、触摸板、触摸屏、电子触控笔或其它类型的输入装置的多个输入装置的输入。类似地,输入/输出控制器32可将诸如计算机监视器、平板显示器、数字投影仪、打印机、绘图仪或其它类型的输出装置的输出提供给显示器。可以理解,计算装置300可以不包括图3中所示的所有组件,也可以未明确在图3中所示的其它组件,或者可以利用与图3所示的体系结构完全不同的结构。
如本文所描述的,计算节点可以是诸如图3的计算装置300的物理计算装置。计算节点也可以包括虚拟机主机进程和在诸如计算装置300的物理计算装置上操作的一个或多个虚拟机实例。计算机可执行指令可以由计算装置的物理硬件间接地通过在虚拟机的环境中存储和执行的指令的解译和/或执行来执行。
描述了用于改进区块链安全性的方法和***。应当理解,该方法和***不限于具体方法、具体组件或具体实现。也应理解,本文使用的术语仅用于描述特定实施例的目的,而不旨在限制。
如在说明书和所附权利要求书中所使用,除非上下文另明确规定,单数形式“一”、“一个”和“该”包括复数指代物。范围在本文可以表示为从“大约”一特定值,和/或到“大约”另一特定值。当表示这种范围时,另一实施例包括从一特定值和/或到另一特定值。类似地,当通过使用先行词“大约”将值表示为近似值时,将理解该特定值形成另一实施例。还将理解,每个范围的端点相对于另一个端点都是明显,并且独立于另一个端点。
“任选的”或“任选地”意味着接下来描述的事件或情况可以发生或可以不发生,并且描述包括事件或情况发生的实例和未发生的实例。
在本说明书的整个描述和权利要求书中,词语“包括”和该词语的变体,例如“包含”和“包罗”意味着“包括但不限于”,并且不旨在排除例如其它组件、整数或步骤。“示例性”意味着“的示例”,且不旨在传达优选或理想实施例的指示。“诸如”不用于限制的意义,而是用于解释的目的。
公开了可用于执行所述方法和***的组件。本文公开了这些和其它组件,并且应当了解,当公开了这些组件的组合、子集、相互作用、组等时,虽然可能未明确公开这些组件的各种单独和集体组合以及排列中的每一个的具体参考,但是对于所有方法和***,本文已具体地考虑和描述了每一个。这适用于本申请的所有方面,包括但不限于所公开的方法中的操作。因此,如果存在可以执行的各种额外操作,则应了解,这些附加操作中的每一个可以利用所公开的方法的任何特定实施例或实施例的组合来执行。
通过参考优选实施例的前述详细描述和本文包括的示例和附图及其描述,可以更轻易地弄清本方法和***。
如本领域技术人员将理解,方法和***可以采用完全硬件实施例、完全软件实施例或组合软件和硬件方面的实施例的形式。此外,该方法和***可以采用计算机可读存储介质上的计算机程序产品的形式,该计算机可读存储介质具有在存储介质中包含的计算机可读程序指令(例如,计算机软件)。更特别地,本发明的方法和***可以采用网络实现的计算机软件的形式。可以利用任何合适的包括硬盘、CD-ROM、光存储装置或磁存储装置的计算机可读存储介质。
以上参考方法、***、设备以及计算机程序产品描述了该方法和***的实施例。可以了解,处理/进程可以由计算机程序指令来实现。这些计算机程序指令可以加载在通用计算机、专用计算机或其它可编程数据处理设备上以产生机器,使得在计算机或其它可编程数据处理设备上执行的指令创建用于实现所述进程的装置。
这些计算机程序指令也可以存储在计算机可读存储器中,该计算机可读存储器可以指导计算机或其它可编程数据处理设备以特定方式工作,使得在计算机可读存储器中存储的指令产生包括用于实现所述进程的计算机可读指令的制品。计算机程序指令也可以加载到计算机或其它可编程数据处理设备上,以使一系列操作步骤在计算机或其它可编程设备上执行,从而产生计算机实现的进程,使得在计算机或其它可编程设备上执行的指令提供用于实现所述进程的步骤。
上述各种特征和进程可以彼此独立地使用,或者可以以各种方式组合。所有可能的组合和子组合旨在落入本公开的范围内。此外,在一些实现中可以省略某些方法或处理块。本文描述的方法和处理也不限于任何特定序列,并且与其相关的块或与状态可以在其它适当的序列中执行。例如,所描述的块或状态可以按照不同于具体公开的顺序执行,或者可以在单个块或状态中组合多个块或状态。示例块或状态可以串行、并行或以一些其它方式执行。块或状态可以添加到公开的示例实施例中或从公开的示例实施例中移除。本文描述的示例***和组件可以不同于所述配置。例如,与公开的示例性实施例相比,可以将元件添加到所公开的示例性实施例中、从所公开的示例性实施例中移除元件、或者重新排列元件
也应理解,各种项被示出为在使用时存储在存储器中或存储在存储器上,并且为了存储器管理和数据完整性的目的,这些项或其部分可以在存储器和其它存储装置之间传送。可替代地,在其它实施例中,软件模块和/或***中的一些或全部可以在另一装置上的存储器中执行并且经由计算机间的通信与所示的计算***通信。此外,在一些实施例中,***和/或模块中的一些或全部可以以诸如至少部分地在固件和/或硬件中的其它方式实现或设置,该固件和/或硬件包括但不限于一个或多个专用集成电路(“ASIC”)、标准集成电路、控制器(例如,通过执行适当的指令,并且包括微控制器和/或嵌入式控制器)、现场可编程门阵列(“FPGA”)、复杂可编程逻辑器件(“CPLD”)等。模块、***及数据结构中的一些或全部也可以(例如,作为软件指令或结构化数据)存储在诸如硬盘、存储器、网络或便携式介质物品的计算机可读介质上,以由适当的装置读取或经由适当的连接读取。***、模块及数据结构也可以作为生成的数据信号(例如,作为载波或其它模拟或数字传播信号的部分)在包括基于无线和基于有线/电缆的介质的各种计算机可读传输介质上传输,并且可以采用各种形式(例如,作为单路或多路复用模拟信号的部分,或者作为多个离散的数字分组或帧)。这种计算机程序产品在其它实施例中也可以采用其它形式。因此,可以用其它计算机***配置来实践所公开的实施例。
虽然已结合优选实施例和具体示例描述了方法和***,但不旨在将范围限制于所述的特定实施例,因为本文的实施例所有方面都旨在是说明性的而不是限制性的。
除非另有明确陈述,否则本文所述的任何方法绝不旨在被解释为要求以具体顺序执行其操作。因此,如果方法权利要求实际上未列出其操作所遵循的顺序,或者在权利要求或说明书中未以其他方式具体陈述将操作限于具体顺序,则在任何方面都不旨在推断顺序。这适合于任何可能的非明示的解释基础,包括以下方面:与步骤安排或业务流程有关的逻辑问题;从语法组织或标点符号中导出的普通意义;以及说明书中描述的实施例的数量或类型。
对于本领域技术人员来说显而易见,在不脱离本公开的范围或精神的情况下,可以进行各种修改和变化。通过考虑所描述的说明书和实践,其它实施例对于本领域技术人员将是显而易见的。本说明书和示例性附图被认为仅是示例性的,真正的范围和精神由所附权利要求书指示。
Claims (32)
1.一种用于安全地对区块链交易签名的方法,包括:
对所述区块链交易散列以生成散列位串,其中,所述散列位串的长度是预定数目;
生成包括随机数的对的私钥,其中,生成的所述对的数目由所述预定数目确定,并且其中,生成的每个对与所述散列位串的位相对应;
对所述私钥的所述随机数散列以生成公钥;
对于所述散列位串中的每个散列位,选择对应的所述随机数的对中的随机数;
对每个所选随机数级联以生成签名;并且
使所述散列位、所述签名及所述公钥与所述区块链交易相关联。
2.根据权利要求1所述的方法,其中,所述预定数目为256。
3.根据权利要求1所述的方法,其中,每个随机数包括具有所述预定数目的长度的位串。
4.根据权利要求1所述的方法,其中,对应的所述随机数的对中所述所选随机数基于所述散列位的值来选择。
5.一种用于为固定公钥/私钥对生成区块链交易的方法,包括:
在所述固定公钥上附加多个随机位以生成填充公钥;
存储所述多个随机位;
使用所述填充公钥生成区块链地址;
使用所述固定公钥和所述多个随机位作为输入生成所述区块链交易;并且
使用所述固定私钥和所述区块链地址对所述区块链交易签名。
6.根据权利要求5所述的方法,其中,生成所述区块链地址包括:
生成所述区块链的版本的编码;
对所述填充公钥散列;并且
为所述版本和散列填充公钥的编码生成校验和。
7.一种用于使用固定公钥/私钥对为相关联的区块链生成区块链交易的方法,其中,所述区块链具有包括多个公钥和对应的散列值的相关联的散列表,所述方法包括:
在所述固定公钥上附加多个随机位以生成填充公钥;
存储所述多个随机位;
使用所述填充公钥生成区块链地址;
使用所述多个随机位作为输入生成所述区块链交易;
使用所述固定私钥和所述区块链地址对所述区块链交易签名;并且
使所述区块链交易与所述散列表中与所述固定公钥相对应的条目相关联。
8.根据权利要求7所述的方法,其中,所述固定公钥与公钥基础设施(PKI)证书相关联。
9.根据权利要求8所述的方法,还包括:
使所述区块链交易与所述PKI证书相关联。
10.根据权利要求8所述的方法,其中,所述区块链地址与所述PKI证书相关联。
11.一种方法,包括:
维护包括多个公钥和对应的散列值的区块链散列表,其中,所述多个公钥中的每个公钥是固定的且与单个用户相关联;并且
对于每个区块链交易:
确定用于生成所述区块链交易的公钥;并且
在所述区块链散列表中,使所述区块链交易与所述公钥相关联。
12.根据权利要求11所述的方法,还包括:
确定区块链交易包括恶意活动;
确定用于生成所述区块链交易的公钥;并且
在所述区块链散列表中,使所述恶意活动与所述公钥相关联。
13.一种方法,包括:
维护包括多个证书的公钥基础设施,其中,所述多个证书中的每个证书是固定的且与单个用户相关联;
接收多个区块链交易;并且
对于每个区块链交易:
确定用于生成所述区块链交易的证书;并且
使所述区块链交易与所述证书相关联。
14.根据权利要求13所述的方法,还包括:
维护与每个证书相关联的信任分数。
15.根据权利要求14所述的方法,还包括:
确定区块链交易包括恶意活动;
确定用于生成所述区块链交易的证书;并且
基于所述恶意活动改变与所述证书相关联的信任分数。
16.一种生成与区块链交易相关联的新区块的方法,包括:
在有限域中以n个未知变量的预定数目生成m个随机二次多项式方程组Fi(x1,…,xn),i=1,…,m,其中,所述二次多项式的形式为∑aijxixj+∑bixi+c,其中,aij、bi和c是来自所述有限域的随机值,并且其中,x1,…,xn表示所述预定数目的未知变量;
将所述区块链交易的数据嵌入到生成的随机二次多项式方程组Fi(x1,…,xn)的二次项aij、线性项bi及常数项c中,i=1,…,m;
求解方程组F1(x1,…,xn)=0,F2(x1,…,xn)=0,…,Fm(x1,…,xn)=0;
使用所述方程组的解证明所述交易的有效性;并且
生成所述新区块。
17.一种***,包括:
一个或多个处理器;
非瞬时计算机可读存储介质,与所述一个或多个处理器中的至少一个处理器能够操作通信,其中,所述计算机可读存储介质包含一个或多个编程指令,所述编程指令在被执行时使所述处理器安全地对区块链交易签名,所述签名包括:
对所述区块链交易散列以生成散列位串,其中,所述散列位串的长度是预定数目;
生成包括随机数的对的私钥,其中,生成的所述对的数目由所述预定数目确定,并且其中,生成的每个对与所述散列位串的位相对应;
对所述私钥的所述随机数散列以生成公钥;
对于所述散列位串中的每个散列位,选择对应的所述随机数的对中的随机数;
对每个所选随机数级联以生成签名;并且
使所述散列位、所述签名及所述公钥与所述区块链交易相关联。
18.根据权利要求17所述的***,其中,所述预定数目为256。
19.根据权利要求17所述的***,其中,每个随机数包括具有所述预定数目的长度的位串。
20.根据权利要求17所述的***,其中,对应的所述随机数的对中的所述所选随机数基于所述散列位的值来选择。
21.一种***,包括:
一个或多个处理器;
非瞬时计算机可读存储介质,与所述一个或多个处理器中的至少一个处理器能够操作通信,其中,所述计算机可读存储介质包含一个或多个编程指令,所述编程指令在被执行时使所述处理器为固定公钥/私钥对生成区块链交易,所述生成包括:
在所述固定公钥上附加多个随机位以生成填充公钥;
存储所述多个随机位;
使用所述填充公钥生成区块链地址;
使用所述固定公钥和所述多个随机位作为输入生成所述区块链交易;并且
使用所述固定私钥和所述区块链地址对所述区块链交易签名。
22.根据权利要求21所述的***,其中,生成所述区块链地址包括:
生成所述区块链的版本的编码;
对所述填充公钥散列;并且
为所述版本和散列填充公钥的编码生成校验和。
23.一种***,包括:
一个或多个处理器;
非瞬时计算机可读存储介质,与所述一个或多个处理器中的至少一个处理器能够操作通信,其中,所述计算机可读存储介质包含一个或多个编程指令,所述编程指令在被执行时使所述处理器使用固定公钥/私钥对为相关联的区块链生成区块链交易,其中,所述区块链具有包括多个公钥和对应的散列值的相关联的散列表,所述生成包括:
在所述固定公钥上附加多个随机位以生成填充公钥;
存储所述多个随机位;
使用所述填充公钥生成区块链地址;
使用所述多个随机位作为输入生成所述区块链交易;
使用所述固定私钥和所述区块链地址对所述区块链交易签名;和
使所述区块链交易与所述散列表中与所述固定公钥相对应的条目相关联。
24.根据权利要求23所述的***,其中,所述固定公钥与公钥基础设施(PKI)证书相关联。
25.根据权利要求24所述的***,其中,所述指令在被执行时还使所述至少一个处理器:
将所述区块链交易与所述PKI证书相关联。
26.根据权利要求24所述的方法,其中,所述区块链地址与所述PKI证书相关联。
27.一种***,包括:
一个或多个处理器;
非瞬时计算机可读存储介质,与所述一个或多个处理器中的至少一个处理器能够操作通信,其中,所述计算机可读存储介质包含一个或多个编程指令,所述编程指令在被执行时使所述处理器:
维护包括多个公钥和对应的散列值的区块链散列表,其中,所述多个公钥中的每个公钥是固定的且与单个用户相关联;并且
对于每个区块链交易:
确定用于生成所述区块链交易的公钥;并且
在所述区块链散列表中,使所述区块链交易与所述公钥相关联。
28.根据权利要求27所述的***,其中,所述指令在被执行时还使所述至少一个处理器:
确定区块链交易包括恶意活动;
确定用于生成所述区块链交易的公钥;并且
在所述区块链散列表中,使所述恶意活动与所述公钥相关联。
29.一种***,包括:
一个或多个处理器;
非瞬时计算机可读存储介质,与所述一个或多个处理器中的至少一个处理器能够操作通信,其中,所述计算机可读存储介质包含一个或多个编程指令,所述编程指令在被执行时使所述处理器:
维护包括多个证书的公钥基础设施,其中,所述多个证书中的每个证书是固定的且与单个用户相关联;
接收多个区块链交易;并且
对于每个区块链交易:
确定用于生成所述区块链交易的证书;并且
使所述区块链交易与证书相关联。
30.根据权利要求29所述的***,其中,所述指令在被执行时还使所述至少一个处理器:
维护与每个证书相关联的信任分数。
31.根据权利要求30所述的***,其中,所述指令在被执行时还使所述至少一个处理器:
确定区块链交易包括恶意活动;
确定用于生成所述区块链交易的证书;并且
基于所述恶意活动改变与所述证书相关联的信任分数。
32.一种***,包括:
一个或多个处理器;
非瞬时计算机可读存储介质,与所述一个或多个处理器中的至少一个处理器能够操作通信,其中,所述计算机可读存储介质包含一个或多个编程指令,所述编程指令在被执行时使所述处理器生成与区块链交易相关联的新区块,所述生成包括:
在有限域中以n个未知变量的预定数目生成m个随机二次多项式方程组Fi(x1,…,xn),i=1,…,m,其中,所述二次多项式的形式为∑aijxixj+∑bixi+c,其中,aij、bi和c是来自所述有限域的随机值,并且其中,x1,…,xn表示所述预定数目的未知变量;
将所述区块链交易的数据嵌入到生成的所述随机二次多项式方程组Fi(x1,…,xn)的二次项aij、线性项bi及常数项c中,i=1,…,m;
求解方程组F1(x1,…,xn)=0,F2(x1,…,xn)=0,…,Fm(x1,…,xn)=0;
使用所述方程组的解证明所述交易的有效性;并且
生成所述新区块。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762567879P | 2017-10-04 | 2017-10-04 | |
US62/567,879 | 2017-10-04 | ||
US201762593741P | 2017-12-01 | 2017-12-01 | |
US62/593,741 | 2017-12-01 | ||
US201862684848P | 2018-06-14 | 2018-06-14 | |
US62/684,848 | 2018-06-14 | ||
PCT/US2018/054440 WO2019071026A1 (en) | 2017-10-04 | 2018-10-04 | CHAIN OF BLOCKS IN QUANTITATIVE ATTACK |
Publications (1)
Publication Number | Publication Date |
---|---|
CN111448579A true CN111448579A (zh) | 2020-07-24 |
Family
ID=65994799
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201880064983.1A Pending CN111448579A (zh) | 2017-10-04 | 2018-10-04 | 量子证明区块链 |
Country Status (4)
Country | Link |
---|---|
US (4) | US11570003B2 (zh) |
EP (1) | EP3692489A4 (zh) |
CN (1) | CN111448579A (zh) |
WO (1) | WO2019071026A1 (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003707A (zh) * | 2020-08-25 | 2020-11-27 | 湖南宸瀚信息科技有限责任公司 | 一种抗量子计算攻击的区块链数字签名加密方法及*** |
CN112560096A (zh) * | 2020-12-21 | 2021-03-26 | 清华大学 | 一种基于身份的区块链的交易内容编辑方法及装置 |
CN112631552A (zh) * | 2020-12-31 | 2021-04-09 | 中国科学院信息工程研究所 | 基于不均匀随机源的随机数生成、再生方法及电子装置 |
CN113139016A (zh) * | 2021-04-02 | 2021-07-20 | 广东工业大学 | 一种具有抗量子特性的区块链工作量证明方法和*** |
WO2022072347A1 (en) * | 2020-09-30 | 2022-04-07 | MerQube, Inc. | Blockchain index tracking |
WO2024087347A1 (zh) * | 2022-10-24 | 2024-05-02 | 杭州舜时科技有限公司 | 一种区块链生成方法、***及相应数据存储方法和*** |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11456882B2 (en) * | 2010-04-30 | 2022-09-27 | T-Central, Inc. | Using PKI for security and authentication of control devices and their data |
US20220200797A1 (en) * | 2018-12-21 | 2022-06-23 | 01 Communique Laboratory Inc. | Cryptographic System and Method |
EP3671599A1 (de) * | 2018-12-21 | 2020-06-24 | Siemens Aktiengesellschaft | Verfahren zum betreiben eines verteilten datenbanksystems, verteiltes datenbanksystem und industrieautomatisierungssystem |
US11170128B2 (en) * | 2019-02-27 | 2021-11-09 | Bank Of America Corporation | Information security using blockchains |
US11429738B2 (en) | 2019-05-29 | 2022-08-30 | International Business Machines Corporation | Blockchain endorsement with approximate hash verification |
US11570002B2 (en) | 2019-05-29 | 2023-01-31 | International Business Machines Corporation | Reduced-step blockchain verification of media file |
US11711202B2 (en) | 2019-05-29 | 2023-07-25 | International Business Machines Corporation | Committing data to blockchain based on approximate hash verification |
US11516000B2 (en) * | 2019-05-29 | 2022-11-29 | International Business Machines Corporation | Approximate hash verification of unused blockchain output |
US11539527B2 (en) | 2019-05-29 | 2022-12-27 | International Business Machines Corporation | Peer node recovery via approximate hash verification |
CN110266872B (zh) * | 2019-05-30 | 2021-05-11 | 世纪龙信息网络有限责任公司 | 通讯录数据的管控方法、装置及云通讯录***、计算机设备、计算机可读存储介质 |
US11177934B2 (en) * | 2019-06-05 | 2021-11-16 | Nec Corporation Of America | Open processor for operation technology and internet of things |
CN110223438B (zh) * | 2019-06-13 | 2020-10-02 | 北京瑞策科技有限公司 | 一种应用区块链的彩票随机出号方法及其设备 |
US10790990B2 (en) * | 2019-06-26 | 2020-09-29 | Alibaba Group Holding Limited | Ring signature-based anonymous transaction |
US11405213B2 (en) * | 2019-06-28 | 2022-08-02 | Intel Corporation | Low latency post-quantum signature verification for fast secure-boot |
US11223483B2 (en) * | 2019-06-28 | 2022-01-11 | Intel Corporation | Odd index precomputation for authentication path computation |
CN110321723B (zh) * | 2019-07-08 | 2021-11-09 | 环玺信息科技(上海)有限公司 | 一种区块链安全信息处理***及方法、电子设备、介质 |
KR102124942B1 (ko) * | 2019-10-07 | 2020-06-19 | 신호열 | 블록체인 데이터 검색 방법 |
KR102430135B1 (ko) * | 2019-11-13 | 2022-08-05 | 알리페이 (항저우) 인포메이션 테크놀로지 씨오., 엘티디. | 에러 정정 코드에 기초하는 동적 블록체인 데이터 저장 |
US11995194B1 (en) | 2020-03-06 | 2024-05-28 | Wells Fargo Bank, N.A. | Self-contained encrypted data and decryption application for third party data storage and data dissemination |
US11223470B1 (en) | 2020-03-06 | 2022-01-11 | Wells Fargo Bank, N.A. | Post-quantum cryptography side chain |
CN111339209B (zh) * | 2020-05-19 | 2020-08-28 | 鹏城实验室 | 基于区块链的信息管理方法和信息管理*** |
US20210374843A1 (en) * | 2020-05-26 | 2021-12-02 | Mitsubishi Electric Research Laboratories, Inc. | Debt Resource Management in a Distributed Ledger System |
WO2022006473A1 (en) * | 2020-07-03 | 2022-01-06 | Inveniam Capital Partners, Inc. | Distribution of blockchain validation |
WO2022204236A1 (en) * | 2021-03-23 | 2022-09-29 | Privategrity Corporation | Secret key-using signature scheme that includes back up key for fall back and proof of ownership purposes |
CN113407958B (zh) * | 2021-06-03 | 2023-08-25 | 广东辰宜信息科技有限公司 | 签名数据处理方法、装置、设备及介质 |
US11956370B2 (en) * | 2021-06-23 | 2024-04-09 | Blackberry Limited | Method and system for digital signatures utilizing multiplicative semigroups |
US11836035B2 (en) * | 2021-08-06 | 2023-12-05 | Western Digital Technologies, Inc. | Data storage device with data verification circuitry |
US20230214822A1 (en) * | 2022-01-05 | 2023-07-06 | Mastercard International Incorporated | Computer-implemented methods and systems for authentic user-merchant association and services |
CN115021945B (zh) * | 2022-08-08 | 2022-11-08 | 四块科技(深圳)有限公司 | 区块链交易处理方法和*** |
CN115392912B (zh) * | 2022-10-26 | 2023-03-14 | 南方科技大学 | 随机数生成方法、***、设备及存储介质 |
CN117291273B (zh) * | 2023-11-24 | 2024-02-13 | 合肥微观纪元数字科技有限公司 | 量子计算区块链*** |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012122994A1 (en) * | 2011-03-11 | 2012-09-20 | Kreft Heinz | Off-line transfer of electronic tokens between peer-devices |
WO2014201059A1 (en) | 2013-06-10 | 2014-12-18 | Certimix, Llc | Secure storing and offline transfering of digitally transferable assets |
US9350550B2 (en) * | 2013-09-10 | 2016-05-24 | M2M And Iot Technologies, Llc | Power management and security for wireless modules in “machine-to-machine” communications |
US10148441B2 (en) * | 2014-09-12 | 2018-12-04 | Verisign, Inc. | Systems, devices, and methods for detecting double signing in a one-time use signature scheme |
US20160342977A1 (en) * | 2015-05-20 | 2016-11-24 | Vennd.io Pty Ltd | Device, method and system for virtual asset transactions |
US9948467B2 (en) * | 2015-12-21 | 2018-04-17 | Mastercard International Incorporated | Method and system for blockchain variant using digital signatures |
WO2017145009A1 (en) * | 2016-02-23 | 2017-08-31 | nChain Holdings Limited | A method and system for securing computer software using a distributed hash table and a blockchain |
GB2560274C (en) * | 2016-02-23 | 2022-06-15 | Nchain Holdings Ltd | Personal device security using elliptic curve cryptography for secret sharing |
EP4195128A1 (en) * | 2016-04-11 | 2023-06-14 | nChain Licensing AG | A method for secure peer-to-peer communication on a blockchain |
US10552138B2 (en) * | 2016-06-12 | 2020-02-04 | Intel Corporation | Technologies for secure software update using bundles and merkle signatures |
US10218511B2 (en) * | 2016-12-23 | 2019-02-26 | Amazon Technologies, Inc. | Signature delegation |
US11005664B2 (en) * | 2018-04-16 | 2021-05-11 | R3 Ltd. | Blockchain post-quantum signature scheme |
-
2018
- 2018-10-04 CN CN201880064983.1A patent/CN111448579A/zh active Pending
- 2018-10-04 EP EP18863967.8A patent/EP3692489A4/en active Pending
- 2018-10-04 WO PCT/US2018/054440 patent/WO2019071026A1/en active Search and Examination
- 2018-10-04 US US16/758,300 patent/US11570003B2/en active Active
-
2022
- 2022-12-16 US US18/067,509 patent/US20230120742A1/en active Pending
-
2023
- 2023-06-02 US US18/328,567 patent/US20230327880A1/en active Pending
- 2023-06-02 US US18/328,549 patent/US20230318843A1/en active Pending
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112003707A (zh) * | 2020-08-25 | 2020-11-27 | 湖南宸瀚信息科技有限责任公司 | 一种抗量子计算攻击的区块链数字签名加密方法及*** |
WO2022072347A1 (en) * | 2020-09-30 | 2022-04-07 | MerQube, Inc. | Blockchain index tracking |
US11930121B2 (en) | 2020-09-30 | 2024-03-12 | MerQube, Inc. | Blockchain index tracking |
CN112560096A (zh) * | 2020-12-21 | 2021-03-26 | 清华大学 | 一种基于身份的区块链的交易内容编辑方法及装置 |
CN112560096B (zh) * | 2020-12-21 | 2022-12-02 | 清华大学 | 一种基于身份的区块链的交易内容编辑方法及装置 |
CN112631552A (zh) * | 2020-12-31 | 2021-04-09 | 中国科学院信息工程研究所 | 基于不均匀随机源的随机数生成、再生方法及电子装置 |
CN112631552B (zh) * | 2020-12-31 | 2023-10-03 | 中国科学院信息工程研究所 | 基于不均匀随机源的随机数生成、再生方法及电子装置 |
CN113139016A (zh) * | 2021-04-02 | 2021-07-20 | 广东工业大学 | 一种具有抗量子特性的区块链工作量证明方法和*** |
WO2024087347A1 (zh) * | 2022-10-24 | 2024-05-02 | 杭州舜时科技有限公司 | 一种区块链生成方法、***及相应数据存储方法和*** |
Also Published As
Publication number | Publication date |
---|---|
WO2019071026A1 (en) | 2019-04-11 |
US20230327880A1 (en) | 2023-10-12 |
US20230318843A1 (en) | 2023-10-05 |
US11570003B2 (en) | 2023-01-31 |
US20230120742A1 (en) | 2023-04-20 |
EP3692489A4 (en) | 2021-10-20 |
EP3692489A1 (en) | 2020-08-12 |
US20200358619A1 (en) | 2020-11-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230327880A1 (en) | Quantumproof blockchain | |
US10790976B1 (en) | System and method of blockchain wallet recovery | |
JP7289298B2 (ja) | 低エントロピーパスワードを用いてブロックチェーントランザクションを許可するためのコンピュータ実装されたシステム及び方法 | |
TWI706275B (zh) | 用於資訊保護的系統和方法 | |
JP6841911B2 (ja) | 情報保護用のシステム及び方法 | |
US11212081B2 (en) | Method for signing a new block in a decentralized blockchain consensus network | |
JP6528008B2 (ja) | 秘密共有のための楕円曲線暗号化を利用したパーソナルデバイスセキュリティ | |
US10846372B1 (en) | Systems and methods for trustless proof of possession and transmission of secured data | |
JP2019507510A (ja) | 情報及び階層的で決定性の暗号化鍵のセキュアな交換のための共通秘密の決定 | |
US9219602B2 (en) | Method and system for securely computing a base point in direct anonymous attestation | |
US10887104B1 (en) | Methods and systems for cryptographically secured decentralized testing | |
KR20200096784A (ko) | 트러스트 레스 또는 무 딜러 방식으로 동작하는 그룹에 걸쳐 계산 작업을 수행하기 위한 컴퓨터 구현 시스템 및 방법 | |
JP7492508B2 (ja) | コンピュータにより実施される、デジタル署名されたデータのシェアを分配するシステム及び方法 | |
CN113875188A (zh) | 哈希函数攻击 | |
CN113875186A (zh) | 知识证明 | |
US11838405B1 (en) | Blockchain delegation | |
JP2023056011A (ja) | ブラインド化された帰結選択のためのブロックチェーンで実装されるセキュリティー・システムおよび方法 | |
US20230237437A1 (en) | Apparatuses and methods for determining and processing dormant user data in a job resume immutable sequential listing | |
Sathya et al. | A comprehensive study of blockchain services: future of cryptography | |
CN113924748A (zh) | 知识证明 | |
CN113875190A (zh) | 包括基于哈希的验证的可运行代码的区块链交易 | |
CN113939821A (zh) | 用于在工作量证明区块链网络上进行非并行挖掘的***和方法 | |
CN115885497A (zh) | 数字签名 | |
US11856095B2 (en) | Apparatus and methods for validating user data by using cryptography |
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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20200724 |
|
WD01 | Invention patent application deemed withdrawn after publication |