CN110933088A - 一种基于区块链的去中心化可验证隐匿代表方法、系统及存储介质 - Google Patents
一种基于区块链的去中心化可验证隐匿代表方法、系统及存储介质 Download PDFInfo
- Publication number
- CN110933088A CN110933088A CN201911215459.2A CN201911215459A CN110933088A CN 110933088 A CN110933088 A CN 110933088A CN 201911215459 A CN201911215459 A CN 201911215459A CN 110933088 A CN110933088 A CN 110933088A
- Authority
- CN
- China
- Prior art keywords
- node
- identity
- election
- representative
- block
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/08—Network architectures or network communication protocols for network security for authentication of entities
- H04L63/0876—Network architectures or network communication protocols for network security for authentication of entities based on the identity of the terminal or configuration, e.g. MAC address, hardware or software configuration or device fingerprint
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0428—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
- H04L63/0442—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1051—Group master selection mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/104—Peer-to-peer [P2P] networks
- H04L67/1044—Group management mechanisms
- H04L67/1053—Group management mechanisms with pre-configuration of logical or physical connections with a determined number of other peers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/133—Protocols for remote procedure calls [RPC]
-
- 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/3297—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 time stamps, e.g. generation of time stamps
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q40/00—Finance; Insurance; Tax strategies; Processing of corporate or income taxes
- G06Q40/04—Trading; Exchange, e.g. stocks, commodities, derivatives or currency exchange
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/04—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
- H04L63/0407—Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the identity of one or more communicating identities is hidden
- H04L63/0421—Anonymous communication, i.e. the party's identifiers are hidden from the other party or parties, e.g. using an anonymizer
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1441—Countermeasures against malicious traffic
- H04L63/1458—Denial of Service
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computing Systems (AREA)
- Computer Hardware Design (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Theoretical Computer Science (AREA)
- Power Engineering (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种基于区块链的去中心化可验证隐匿代表方法、系统及存储介质,该去中心化可验证隐匿代表方法包括:步骤1:区块链底层系统为每个节点ID加一层可单向验证的隐身身份ID,该隐身身份ID称为隐匿ID;步骤2:参选节点手动选择参选状态,并通知启动节点;步骤3:矿工节点打包区块时,打包一个选举交易上链,在选举交易中计算所有下一轮候选人的选举值,并将前n的候选人的隐身身份ID和选举值记入选举交易,并将选举结果进行公示;步骤4:通过单向验证算法对代表的身份进行核验。本发明的有益效果是:本发明建立了一种新型的实用选举机制,来隐藏这些代表的可见度,使得贿赂攻击失去目标,大大降低了中心化程度,但并不损失代表制原本的高效率。
Description
技术领域
本发明涉及区块链技术领域,尤其涉及一种基于区块链的去中心化可验证隐匿代表方法、系统及存储介质。
背景技术
缩略语和关键术语定义:
POW(Proof of Work):工作量证明;
POS(Proof of Stake):权益证明;
DPOS(Delegated Proof of Stake):代表权益证明;
Hash:哈希散列。
关于目前区块链的共识机制主要有:工作量证明(PoW)和代表制权益证明(DPoS)。
工作量证明(PoW):矿工节点对打包区块内容做哈希散列运算,对结果进行二进制数值排序,序列小于某个难度值的获胜。使用这种机制可以防止任何人对结果的预测。哈希散列的单向可验证性为公众提供了任何时间的快速核实。哈希散列的随机效果为整个共识事件提供了公平性。缺点是获得正确结果的代价太大,需要耗费大量电力资源来做没有实际效益的运算(不环保)。同时P2P网络的异步性容易导致两个不同地区接近同一时间获得的结果在网络中出现两种先后次序,导致共识分叉。为了减小分叉的影响需要将难度调大到足够安全。比特币为此付出了每10分钟出一个块,每1小时才得到充分确认(6个确认)的代价。使用PoW的主要代表有比特币和以太坊。
代表制权益证明(DPoS):对于PoW的低效和不环保问题,EOS等区块链使用了新的代表值共识机制来克服。这个机制不使用哈希排序算法,而是直接由一组代表(比如EOS的21个,波场的27个)打包出块。具体的细节是由一个主代表打包,其余的做验证,达成2/3以上共识即盖戳确定。主代表每出一个块轮换一下。这些代表是预先由公众选举出来的。选举机制是通过权益证明,即参与选举的节点所持有的区块链币数量。
区块链共识机制中使用的代表制(Delegate)带来了高效性,同时也带来了安全性的降低。这种机制依赖于预先明确的少数代表(21/27个)来组成记账集体,决定区块账本内容。这些成员因为工作极为重要,话语权分量很大,让整个社区变成了少数人专制的王国。这些节点身份很特殊,身价高,使其成为贿赂攻击的对象。比如EOS,其21个代表在EOS公链发布前便已成为实际上的超级节点,成为各方资源大户连横合纵的战场,成为一个强中心化的区块链。
背景技术1的技术方案:
POW:
工作量证明协议,最早是在1993年由Cynthia Dwork和Moni Naor在学术论文中提出的,其是一种应对拒绝服务攻击和其他服务滥用的一种策略。而POW这个名词则是在1999年由Markus Jakobsson和Ari Juels在文章中提出。
2008年,在中本聪发布的比特币白皮书《比特币:一种点对点的电子现金系统》中,使用了POW工作量证明的方式作为其系统的共识机制。一个工作量证明是指满足特定条件的一个数据计算,产生正确结果比较困难,但验证正确结果比较简单。其正确结果的只能通过不断的枚举随机数来进行验证试错,从而最终找到正确答案。而这个数据计算使用hash算法来实现,hash算法是一种单向散列算法。计算数据hash值十分简单,但要根据固定hash值获取原数据,则只能通过枚举试错来进行。
在比特币系统中,在进行随机散列运算时,工作量证明机制引入了对某一个特定值的扫描工作,比方说SHA-256下,随机散列值以一个或多个0开始。那么随着0的数目的上升,找到这个解所需要的工作量将呈指数增长,而对结果进行检验则仅需要一次随机散列运算。
与此同时,比特币系统区块中增补了一个随机数(Nonce),这个随机数需要满足使得给定区块的hash值出现所需的那么多个0的条件。由于hash计算的不可逆特性,只能通过反复尝试来找到这个随机数,这样就构建了一个工作量证明机制。只要节点找到了能计算出满足要求的Nonce,那么该节点即完成了工作量的证明,获得了区块的打包记账权。
在比特币系统中,其具体共识机制流程为:
1.每个节点首先收集并选择交易,然后计算交易列表的Merkle根hash
2.节点构造区块头,其中包含版本、上一个区块头的hash值、计算的交易列表Merkle根hash、时间戳、
难度值和生成的随机数nonce
3.然后节点会计算构造的区块头hash值,检查其hash值是否小于或等于当前难度值。如果正确,则完成工作量证明,将打包的区块提交网络中,网络中的其它节点将会检测其合法性。如果计算的hash值,大于当前难度值,则返回第二步,继续进行工作量计算。
此过程即为比特币系统中的挖矿过程,而进行挖矿的相关节点被称之为矿工。
在比特币POW共识机制中,只要CPU耗费的工作量能够满足该工作量证明机制,那么那么除非重新完成相当的工作量,生成的区块的信息就不可更改。由于之后的区块是链接在该区块之后的,所以想要更改该区块中的信息,就还需要重新完成之后所有区块的全部工作量。
同时,该工作量证明机制还解决了在集体投票表决时,谁是大多数的问题。如果决定大多数的方式是基于IP地址的,一IP地址一票,那么如果有人拥有分配大量IP地址的权力,则该机制就被破坏了。而工作量证明机制的本质则是一CPU一票。“大多数”的决定表达为最长的链,因为最长的链包含了最大的工作量。如果大多数的CPU为诚实的节点控制,那么诚实的链条将以最快的速度延长,并超越其他的竞争链条。如果想要对业已出现的区块进行修改,攻击者必须重新完成该区块的工作量外加该区块之后所有区块的工作量,并最终赶上和超越诚实节点的工作量。
另一个问题是,硬件的运算速度在高速增长,而节点参与网络的程度则会有所起伏。为了解决这个问题,工作量证明的难度(the proof-of-work difficulty)将采用移动平均目标的方法来确定,即令难度指向令每小时生成区块的速度为某一个预定的平均数。如果区块生成的速度过快,那么难度就会提高。
比特币通过POW共识机制来在众多矿工节点中选取出拥有记账权的矿工,其舍弃了可扩展性,保证高一致性和去中心化水平。
背景技术1的缺点:
1)由于全网中的每个节点需要通过工作量证明来获取区块打包记账权,因此使用POW共识机制时,系统中的每个矿工节点都需要不断的生成随机数试错,以求找到合适的Nonce值,这需要大量的电力支撑,也会造成大量的能源浪费。据统计,目前比特币挖矿的电力消耗,占全球总电力消耗的0.29%。
2)使用POW共识机制,会导致网络性能太低,需要等待多个确认,容易产生分叉,区块的确认共识达成的周期较长(10分钟)。由于共识达成需要等待多个确认,因此共识达成的结果是不确定的,继而账本里的交易也不是确定性的。一个区块的后面跟着越多的新区快就表示他获得了越多的确认,这个区块就越难被取消。比特币网络一般建议一个交易的确认需要6个区块的时间,也就是一个小时,但是数额越大的交易需要的确认时间越长。但是即使等待了很长的确认时间,也不能百分之百的确认这个交易不会被取消,因此当用于超过50%算力时,就可以通过从新完成工作量证明来改写链上数据,著名的51%算力攻击就是针对这个弱点的。这就导致了区块链的可扩展性降低。而且分叉的存在也导致比特币网络不能以太快的速度产出新的区块,否则越快的出块速度导致越高的分叉率,进而也就导致削弱了整个P2P网络共识的稳定性。从而导致比特币现在每秒交易量上限只有7笔,这对区块链系统在商业上的应用产生了巨大的限制。
背景技术2的技术方案:
POS:
在POW中,共识达成,是通过全网矿工节点通过挖矿来达成的。而挖矿的难度是系统自动动态调节的,以保证每小时生成区块的速度为某一个预定的平均数。因此某个固定时刻的挖矿难度值,对于全网所有节点来说,都是相同的。
由于POW存在诸多问题,人们提出了股权证明机制,在股权证明机制中,其核心思想为:在全网中拥有币的权益多的节点将容易获得区块的打包记账权,与此同时其也将获得系统给予的记账奖励。在使用POS共识算法的区块链系统中,节点拥有币的权益越多,其在系统中的权利越大,但这些节点攻击网络的意愿会比较低,因为一旦系统受到攻击,那么币的价格将会下降,那么其利益也将受到相应的损害。
目前股权证明机制已有很多不同变种,但其基本原理不变,都是使产生区块难度与节点在网络中拥有币的权益成比例,如今已有使用POS共识机制的区块链系统开始运行,如:点点币(Peercoin)和未来币(NXT)等。
在点点币中,其引入了币龄的概念。币龄是根据钱包中的货币多少以及货币在钱包中存在的天数来合称的一个单位,及定义为币的数量和币拥有天数的乘积。其将矿工挖矿的难度值与矿工的币龄的数量相关联,矿工的币龄,相当于其拥有系统权益比例。其币龄越大,那么矿工挖矿的难度值越低,即其越容易完成工作量证明,那么在区块链系统中的区块打包记账权,其便越容易得到。在其共识机制中,币龄与挖矿难度并非线性关系,其做了如下限制:只有未使用30天的币才能够参与到打包下一个区块的竞争中,并且,一旦币的权益被用于打包一个区块,那么其币龄将会被清零,这样就需要至少再等待30天,才能有从新打包记录区块的权利。与此同时,其为了防止非常老和非常大的权益控制区块链,寻找下一区块的最大概率会在在90天后达到最大值。
背景技术2的缺点:
POS将系统的记账权和节点在系统中的持币权益关联起来。以舍弃去中心化水平,提升系统的效率。系统中拥有大量币的节点将会拥有长久的优势,其对系统的控制权过大,影响系统的安全性。在目前的PoS机制中,并没有对当选代表做隐匿处理。由于权力过大,这些代表节点会立刻成为贿赂的目标,导致代表所最终代表的利益发生扭曲,使记账内容导向不公平。
由于节点信息的暴露,带来了黑客针对性的攻击当选节点,破坏出块进程,或者篡改记账内容。
背景技术3的技术方案:
DPOS:
DPOS是基于POS衍生出的共识方案,其类似于董事会的投票机制。节点中的所有持币人都拥有投票选举权,其票数和持币数成正比。所有全网节点统一选举出拥有区块打包记账权的节点,然后由这些节点来打包交易,并将其记录到区块链中。
DPOS是在2014年4月由Bitshares的首席开发者Dan Larimer提出并应用的。在Bitshares使用的DPOS共识机制中,其将被成功选举的节点称之为见证人,见证人拥有打包区块记录交易到区块链上的权利,同时也将获得系统对其的工作的奖励。系统中每一个持币人选取见证人,其中总同意票数中的前N(N通常定义为101)个候选者可以成功当选为见证人。由于在DPOS中,相当于通过选举的方式,将系统记账权全部集中到N个见证人手中,因此对于N的取值,必须要保证至少有一半的投票节点认为N已经充分的区中心化,多数见证人联合作恶的可能性很低。
当见证人名单被系统节点成功选出后,其将会被随机排列,然后每个见证人开始轮流打包区块记账。与此同时,见证人的名单排列不是一直固定不变的,其在每个维护周期会被从新随机排列一次,其中维护周期为1天。为了防止见证人节点故障或因为性能问题影响系统正常高效运行,系统对于见证人生成区块设有2秒的超时时间,一旦在规定的超时时间内没有生成区块,那么其记账权交由名单中的下一个见证人执行。与此同时为了防止见证人作恶,持币节点可以随时通过投票更换见证人,这样就可以防止见证人利用手中的机制权作恶,或者其节点故障及性能不足影响系统正常运行。
背景技术3的缺点:
在DPOS中,被成功选举的见证人节点拥有完全的记账权,其中心化水平非常高。因为选举是通过显式流程,各个代表是否被当选,谁被当选都是公开一目了然的,因此很容易滋生贿赂,形成利益绑定集团。对于中小节点社区成员则无法体现其独立意见。
由于节点信息的暴露,带来了黑客针对性的攻击当选节点,破坏出块进程,或者篡改记账内容。
发明内容
本发明提供了一种基于区块链的去中心化可验证隐匿代表方法,包括如下步骤:
步骤1,节点ID加密步骤:区块链底层系统为每个节点ID加一层可单向验证的隐身身份ID,该隐身身份ID称为隐匿ID;
步骤2,参选步骤:参选节点手动选择参选状态,并通知启动节点;
步骤3,隐匿集体选举步骤:矿工节点打包区块时,打包一个选举交易上链,在选举交易中计算所有下一轮候选人的选举值,并将前n的候选人的隐身身份ID和选举值记入选举交易,并将选举结果进行公示;
步骤4,代表身份核验步骤:通过单向验证算法对代表的身份进行核验。
作为本发明的进一步改进,在所述步骤1,节点ID加密步骤中,使用一个公私钥对对节点ID进行非对称加密,得到的密文成为选举结果公布的代表身份ID;隐身身份ID由代码层计算,选举得到结果后连同公钥一起上链,形成公开的不可篡改记录。
作为本发明的进一步改进,在所述步骤2,参选步骤中,参选节点通过命令行远程过程调用RPC接口配置自己的参选状态信息,该参选状态信息会被P2P网络读取。
作为本发明的进一步改进,在所述步骤3,隐匿集体选举步骤中,选举交易被打包到此时记账的区块中,然后被写入区块链,因此公示后,该选举结果不可篡改。
作为本发明的进一步改进,所述步骤4,代表身份核验步骤包括:
步骤4.1,自身核验步骤:参选代表节点根据链上选举交易判断自己是否当选;
步骤4.2,相互身份验证步骤:当选代表组队时,当选代表在即将工作时通过P2P网络进行相互身份确认;
步骤4.3,对记帐代表的身份确认步骤:节点接受新帐本时,当记账代表出块后,通过P2P网络将新区块广播给其他节点,其他节点在接收到新块后会作一个验证,验证出块代表身份,将新区块加入区块链。
作为本发明的进一步改进,在所述步骤4.1,自身核验步骤中,参选代表节点如果发现自己的隐身身份ID出现在选举结果中,就表明自己当选,否则就是没当选;
在所述步骤4.2,相互身份验证步骤中,代表会将对方传过来的节点ID通过公钥加密后与区块链上的当选代表的隐身身份ID进行匹配,如果相同则通过,如果不同则证伪;
在所述步骤4.3,对记帐代表的身份确认步骤中,矿工出块时会使用自己的私钥加盖一个身份戳,其他节点通过验证该身份戳确认是有资格的代表出的块。
本发明还提供了一种基于区块链的去中心化可验证隐匿代表系统,包括:
节点ID加密模块:用于区块链底层系统为每个节点ID加一层可单向验证的隐身身份ID,该隐身身份ID称为隐匿ID;
参选模块:用于参选节点手动选择参选状态,并通知启动节点;
隐匿集体选举模块:用于矿工节点打包区块时,打包一个选举交易上链,在选举交易中计算所有下一轮候选人的选举值,并将前n的候选人的隐身身份ID和选举值记入选举交易,并将选举结果进行公示;
代表身份核验模块:用于通过单向验证算法对代表的身份进行核验。
作为本发明的进一步改进,在所述节点ID加密模块中,使用一个公私钥对对节点ID进行非对称加密,得到的密文成为选举结果公布的代表身份ID;隐身身份ID由代码层计算,选举得到结果后连同公钥一起上链,形成公开的不可篡改记录;
在所述参选模块中,参选节点通过命令行远程过程调用RPC接口配置自己的参选状态信息,该参选状态信息会被P2P网络读取;
在所述隐匿集体选举模块中,选举交易被打包到此时记账的区块中,然后被写入区块链,因此公示后,该选举结果不可篡改;
所述代表身份核验模块包括:
自身核验模块:用于参选代表节点根据链上选举交易判断自己是否当选;
相互身份验证模块:用于当选代表组队时,当选代表在即将工作时通过P2P网络进行相互身份确认;
对记帐代表的身份确认模块:用于节点接受新帐本时,当记账代表出块后,通过P2P网络将新区块广播给其他节点,其他节点在接收到新块后会作一个验证,验证出块代表身份,将新区块加入区块链。
作为本发明的进一步改进,在所述自身核验模块中,参选代表节点如果发现自己的隐身身份ID出现在选举结果中,就表明自己当选,否则就是没当选;
在所述相互身份验证模块中,代表会将对方传过来的节点ID通过公钥加密后与区块链上的当选代表的隐身身份ID进行匹配,如果相同则通过,如果不同则证伪;
在所述对记帐代表的身份确认模块中,矿工出块时会使用自己的私钥加盖一个身份戳,其他节点通过验证该身份戳确认是有资格的代表出的块。
本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的方法的步骤。
本发明的有益效果是:本发明建立了一种新型的实用选举机制,来隐藏这些代表的可见度,使得贿赂攻击失去目标,大大降低了中心化程度,但并不损失代表制原本的高效率。
附图说明
图1是本发明的方法流程图;
图2是代表身份核验步骤的流程图。
具体实施方式
本发明公开了一种基于区块链的去中心化可验证隐匿代表方法。
目前现有的共识机制都有缺陷。工作量证明PoW因为不环保和效率低被代表制取而代之。然而,代表制并没有完美升级PoW,而是以牺牲去中心化来解决PoW的问题。如果要得到共识技术的全面升级,需要解决代表制的中心化问题。
本发明旨在解决代表制去中心化和抵押黑客攻击的问题:
1.如何防止代表身份信息公开,防止黑客攻击,防止无良者跟踪、调查、骚扰、贿赂等。
2.如何让社区公众能够不知道身份信息的情况下验证被当选的代表是正确的人,而不是被人冒名顶替的。
为了把当选代表节点的信息隐藏起来,又能够让社区任何人可以验证其身份真伪,如图1所示,本发明基于区块链的去中心化可验证隐匿代表方法包括:
步骤1,节点ID加密步骤:区块链底层系统为每个节点ID加一层可单向验证的隐身身份ID,该隐身身份ID称为隐匿ID。
节点的ID是公开的,在P2P网络中可以任意获取。通过P2P网络探针可以探测到节点的诸多信息,包括推导出其地理位置,活跃状态,交易池大小等等。
这些节点信息对于实现区块链网络底层功能是不可缺少的。然而,代表制因为将节点信息纳入选举对象,使得这些信息也因为节点的身份不同而产生额外的意义。
为了防止代表的节点信息泄露,本发明在原有的节点ID上加了一层隐身身份ID。具体的,我们使用一个公私钥对对节点ID进行非对称加密,得到的密文成为选举结果公布的代表身份ID。
这个隐身身份ID由代码层计算,选举得到结果后连同公钥一起上链,形成公开的不可篡改记录。
步骤2,参选步骤:参选步骤:参选节点手动选择参选状态,并通知启动节点。
我们需要定义一个参选状态。因为作为代表,该节点必须保证在执行职责的时间范围内是在线的。所以,并不是P2P网络中所有节点都做候选人,而是那些有意愿保证完成工作任务的节点才成为候选人。因此,需要给予节点一个自主选择参不参选的设置。
节点通过命令行远程过程调用RPC接口配置自己的参选状态信息。该信息会被P2P网络读取。
步骤3,隐匿集体选举步骤:矿工节点打包区块时,打包一个选举交易上链,在选举交易中计算所有下一轮候选人的选举值,并将前n的候选人的隐身身份ID和选举值记入选举交易,并将选举结果进行公示。
选举会有一个算法,这个算法不在本发明范围内,可以作为插件存在。算法主要工作是对参选节点的一些参数进行计算,排序,然后得到一个最高值的当选列表。经过确定的选举算法后将会得到选举结果,列出获选的节点的隐身身份ID(而不是原来的节点ID),公示。选举过程由矿工节点来实现。在代表制共识机制中,矿工节点由上一轮选举出来的代表节点担任。
公示是通过写入一个特殊的选举交易实现的。这个交易被打包到此时记账的区块中,然后被写入区块链。因此公示后此选举结果就不可篡改,永不磨灭,永远可查询。
步骤4,代表身份核验步骤:通过单向验证算法对代表的身份进行核验。
如图2所示,步骤4,代表身份核验步骤包括:
步骤4.1,自身核验步骤:参选代表节点根据链上选举交易判断自己是否当选;具体为:参选代表节点在同步新区块时会看到这个特殊的选举交易,如果发现自己的隐身身份ID出现在选举结果中,就表明自己当选,否则就是没当选。
步骤4.2,相互身份验证步骤:当选代表组队时,当选代表在即将工作时通过P2P网络进行相互身份确认;具体为:这时候代表会将对方传过来的节点ID通过公钥加密后与区块链上的当选代表的隐身ID进行匹配,如果相同则通过,如果不同则证伪。
步骤4.3,对记帐代表的身份确认步骤:节点接受新帐本时,当记账代表出块后,通过P2P网络将新区块广播给其他节点,其他节点在接收到新块后会作一个验证,验证出块代表身份,将新区块加入区块链。其中包括对出块矿工(代表)的身份验证。矿工出块时会使用自己的私钥加盖一个身份戳,其他节点通过验证这个身份戳确认是有资格的代表出的块。
本发明还公开了一种基于区块链的去中心化可验证隐匿代表系统,包括:
节点ID加密模块:用于区块链底层系统为每个节点ID加一层可单向验证的隐身身份ID,该隐身身份ID称为隐匿ID;
参选模块:用于参选节点手动选择参选状态,并通知启动节点;
隐匿集体选举模块:用于矿工节点打包区块时,打包一个选举交易上链,在选举交易中计算所有下一轮候选人的选举值,并将前n的候选人的隐身身份ID和选举值记入选举交易,并将选举结果进行公示;
代表身份核验模块:用于通过单向验证算法对代表的身份进行核验。
在所述节点ID加密模块中,使用一个公私钥对对节点ID进行非对称加密,得到的密文成为选举结果公布的代表身份ID;隐身身份ID由代码层计算,选举得到结果后连同公钥一起上链,形成公开的不可篡改记录;
在所述参选模块中,参选节点通过命令行远程过程调用RPC接口配置自己的参选状态信息,该参选状态信息会被P2P网络读取;
在所述隐匿集体选举模块中,选举交易被打包到此时记账的区块中,然后被写入区块链,因此公示后,该选举结果不可篡改;
所述代表身份核验模块包括:
自身核验模块:用于参选代表节点根据链上选举交易判断自己是否当选;
相互身份验证模块:用于当选代表组队时,当选代表在即将工作时通过P2P网络进行相互身份确认;
对记帐代表的身份确认模块:用于节点接受新帐本时,当记账代表出块后,通过P2P网络将新区块广播给其他节点,其他节点在接收到新块后会作一个验证,验证出块代表身份,将新区块加入区块链。
在所述自身核验模块中,参选代表节点如果发现自己的隐身身份ID出现在选举结果中,就表明自己当选,否则就是没当选;
在所述相互身份验证模块中,代表会将对方传过来的节点ID通过公钥加密后与区块链上的当选代表的隐身身份ID进行匹配,如果相同则通过,如果不同则证伪;
在所述对记帐代表的身份确认模块中,矿工出块时会使用自己的私钥加盖一个身份戳,其他节点通过验证该身份戳确认是有资格的代表出的块。
本发明还公开了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现本发明所述的方法的步骤。
使用本发明的代表机制可以解决背景技术1的PoW带来的环保问题和低效率问题。
针对背景技术2的问题:使用本发明的可验证隐匿选举技术可以防止代表节点曝光,抵御贿赂攻击,降低当选节点的中心化控制权,增强对黑客的抵押力。
针对背景技术3的问题:使用本发明的可验证隐匿选举技术可以降低当选节点的中心化控制权,增强对黑客攻击的抵押力。
本发明的有益效果如下:
1.防止黑客对代表节点的探查、攻击,包括入侵电脑和通过出口阻塞实现网络禁闭,阻止其执行功能。
2.防止贿赂攻击,防止他人对代表节点实行物理地址解析,对其进行物理上的各种骚扰。
3.提供隐私保护,防止他人通过数据分析解析跟踪代表的财务帐流通。
4.确保代表的身份资格,确保不被他人冒名顶替。
以上内容是结合具体的优选实施方式对本发明所作的进一步详细说明,不能认定本发明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干简单推演或替换,都应当视为属于本发明的保护范围。
Claims (10)
1.一种基于区块链的去中心化可验证隐匿代表方法,其特征在于,包括如下步骤:
步骤1,节点ID加密步骤:区块链底层系统为每个节点ID加一层可单向验证的隐身身份ID,该隐身身份ID称为隐匿ID;
步骤2,参选步骤:参选节点手动选择参选状态,并通知启动节点;
步骤3,隐匿集体选举步骤:矿工节点打包区块时,打包一个选举交易上链,在选举交易中计算所有下一轮候选人的选举值,并将前n的候选人的隐身身份ID和选举值记入选举交易,并将选举结果进行公示;
步骤4,代表身份核验步骤:通过单向验证算法对代表的身份进行核验。
2.根据权利要求1所述的去中心化可验证隐匿代表方法,其特征在于,在所述步骤1,节点ID加密步骤中,使用一个公私钥对对节点ID进行非对称加密,得到的密文成为选举结果公布的代表身份ID;隐身身份ID由代码层计算,选举得到结果后连同公钥一起上链,形成公开的不可篡改记录。
3.根据权利要求1所述的去中心化可验证隐匿代表方法,其特征在于,在所述步骤2,参选步骤中,参选节点通过命令行远程过程调用RPC接口配置自己的参选状态信息,该参选状态信息会被P2P网络读取。
4.根据权利要求1所述的去中心化可验证隐匿代表方法,其特征在于,在所述步骤3,隐匿集体选举步骤中,选举交易被打包到此时记账的区块中,然后被写入区块链,因此公示后,该选举结果不可篡改。
5.根据权利要求1至4任一项所述的去中心化可验证隐匿代表方法,其特征在于,所述步骤4,代表身份核验步骤包括:
步骤4.1,自身核验步骤:参选代表节点根据链上选举交易判断自己是否当选;
步骤4.2,相互身份验证步骤:当选代表组队时,当选代表在即将工作时通过P2P网络进行相互身份确认;
步骤4.3,对记帐代表的身份确认步骤:节点接受新帐本时,当记账代表出块后,通过P2P网络将新区块广播给其他节点,其他节点在接收到新块后会作一个验证,验证出块代表身份,将新区块加入区块链。
6.根据权利要求5所述的去中心化可验证隐匿代表方法,其特征在于,在所述步骤4.1,自身核验步骤中,参选代表节点如果发现自己的隐身身份ID出现在选举结果中,就表明自己当选,否则就是没当选;
在所述步骤4.2,相互身份验证步骤中,代表会将对方传过来的节点ID通过公钥加密后与区块链上的当选代表的隐身身份ID进行匹配,如果相同则通过,如果不同则证伪;
在所述步骤4.3,对记帐代表的身份确认步骤中,矿工出块时会使用自己的私钥加盖一个身份戳,其他节点通过验证该身份戳确认是有资格的代表出的块。
7.一种基于区块链的去中心化可验证隐匿代表系统,其特征在于,包括:
节点ID加密模块:用于区块链底层系统为每个节点ID加一层可单向验证的隐身身份ID,该隐身身份ID称为隐匿ID;
参选模块:用于参选节点手动选择参选状态,并通知启动节点;
隐匿集体选举模块:用于矿工节点打包区块时,打包一个选举交易上链,在选举交易中计算所有下一轮候选人的选举值,并将前n的候选人的隐身身份ID和选举值记入选举交易,并将选举结果进行公示;
代表身份核验模块:用于通过单向验证算法对代表的身份进行核验。
8.根据权利要求7所述的去中心化可验证隐匿代表系统,其特征在于,在所述节点ID加密模块中,使用一个公私钥对对节点ID进行非对称加密,得到的密文成为选举结果公布的代表身份ID;隐身身份ID由代码层计算,选举得到结果后连同公钥一起上链,形成公开的不可篡改记录;
在所述参选模块中,参选节点通过命令行远程过程调用RPC接口配置自己的参选状态信息,该参选状态信息会被P2P网络读取;
在所述隐匿集体选举模块中,选举交易被打包到此时记账的区块中,然后被写入区块链,因此公示后,该选举结果不可篡改;
所述代表身份核验模块包括:
自身核验模块:用于参选代表节点根据链上选举交易判断自己是否当选;
相互身份验证模块:用于当选代表组队时,当选代表在即将工作时通过P2P网络进行相互身份确认;
对记帐代表的身份确认模块:用于节点接受新帐本时,当记账代表出块后,通过P2P网络将新区块广播给其他节点,其他节点在接收到新块后会作一个验证,验证出块代表身份,将新区块加入区块链。
9.根据权利要求8所述的去中心化可验证隐匿代表系统,其特征在于,在所述自身核验模块中,参选代表节点如果发现自己的隐身身份ID出现在选举结果中,就表明自己当选,否则就是没当选;
在所述相互身份验证模块中,代表会将对方传过来的节点ID通过公钥加密后与区块链上的当选代表的隐身身份ID进行匹配,如果相同则通过,如果不同则证伪;
在所述对记帐代表的身份确认模块中,矿工出块时会使用自己的私钥加盖一个身份戳,其他节点通过验证该身份戳确认是有资格的代表出的块。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机程序,所述计算机程序配置为由处理器调用时实现权利要求1-6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911215459.2A CN110933088B (zh) | 2019-12-02 | 2019-12-02 | 一种基于区块链的去中心化可验证隐匿代表方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911215459.2A CN110933088B (zh) | 2019-12-02 | 2019-12-02 | 一种基于区块链的去中心化可验证隐匿代表方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110933088A true CN110933088A (zh) | 2020-03-27 |
CN110933088B CN110933088B (zh) | 2022-11-08 |
Family
ID=69848493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911215459.2A Active CN110933088B (zh) | 2019-12-02 | 2019-12-02 | 一种基于区块链的去中心化可验证隐匿代表方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110933088B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112436944A (zh) * | 2020-11-06 | 2021-03-02 | 深圳前海微众银行股份有限公司 | 一种基于pow的区块链共识方法及装置 |
CN115580442A (zh) * | 2022-09-20 | 2023-01-06 | 北京航空航天大学 | 多链区块链领导者隐蔽选举方法及装置 |
CN115664716A (zh) * | 2022-09-27 | 2023-01-31 | 北京航空航天大学 | 基于置换证明的多链领导者隐蔽分配方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170289114A1 (en) * | 2016-04-01 | 2017-10-05 | Cisco Technology, Inc. | Method and system for mutating and caching content in a content centric network |
CN108777616A (zh) * | 2018-04-11 | 2018-11-09 | 中国科学院信息工程研究所 | 一种抗量子计算机攻击的电子选举方法、管理装置和和电子选举系统 |
EP3429122A1 (en) * | 2017-07-11 | 2019-01-16 | Panasonic Intellectual Property Corporation of America | Methods and apparatuses for controlling electronic voting |
CN109286497A (zh) * | 2018-09-06 | 2019-01-29 | 贵阳信息技术研究院(中科院软件所贵阳分部) | 一种基于区块链的不记名投票和多条件计票的方法 |
CN109426567A (zh) * | 2017-08-22 | 2019-03-05 | 汇链丰(北京)科技有限公司 | 一种区块链的节点部署和选举方法 |
-
2019
- 2019-12-02 CN CN201911215459.2A patent/CN110933088B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20170289114A1 (en) * | 2016-04-01 | 2017-10-05 | Cisco Technology, Inc. | Method and system for mutating and caching content in a content centric network |
EP3429122A1 (en) * | 2017-07-11 | 2019-01-16 | Panasonic Intellectual Property Corporation of America | Methods and apparatuses for controlling electronic voting |
CN109426567A (zh) * | 2017-08-22 | 2019-03-05 | 汇链丰(北京)科技有限公司 | 一种区块链的节点部署和选举方法 |
CN108777616A (zh) * | 2018-04-11 | 2018-11-09 | 中国科学院信息工程研究所 | 一种抗量子计算机攻击的电子选举方法、管理装置和和电子选举系统 |
CN109286497A (zh) * | 2018-09-06 | 2019-01-29 | 贵阳信息技术研究院(中科院软件所贵阳分部) | 一种基于区块链的不记名投票和多条件计票的方法 |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112436944A (zh) * | 2020-11-06 | 2021-03-02 | 深圳前海微众银行股份有限公司 | 一种基于pow的区块链共识方法及装置 |
WO2022095779A1 (zh) * | 2020-11-06 | 2022-05-12 | 深圳前海微众银行股份有限公司 | 一种基于pow的区块链共识方法及装置 |
CN112436944B (zh) * | 2020-11-06 | 2023-04-07 | 深圳前海微众银行股份有限公司 | 一种基于pow的区块链共识方法及装置 |
CN115580442A (zh) * | 2022-09-20 | 2023-01-06 | 北京航空航天大学 | 多链区块链领导者隐蔽选举方法及装置 |
CN115580442B (zh) * | 2022-09-20 | 2024-05-03 | 北京航空航天大学 | 多链区块链领导者隐蔽选举方法及装置 |
CN115664716A (zh) * | 2022-09-27 | 2023-01-31 | 北京航空航天大学 | 基于置换证明的多链领导者隐蔽分配方法及装置 |
CN115664716B (zh) * | 2022-09-27 | 2024-05-03 | 北京航空航天大学 | 基于置换证明的多链领导者隐蔽分配方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN110933088B (zh) | 2022-11-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Zaghloul et al. | Bitcoin and blockchain: Security and privacy | |
Zhang et al. | Security and privacy on blockchain | |
CN109964446B (zh) | 一种基于投票的共识方法 | |
Desai et al. | A hybrid blockchain architecture for privacy-enabled and accountable auctions | |
US10812274B2 (en) | Transferring ledger assets between blockchains via pegged sidechains | |
CN110517139B (zh) | 一种基于投票机制的联盟区块链分权共识方法 | |
Courtois et al. | On subversive miner strategies and block withholding attack in bitcoin digital currency | |
JP7319961B2 (ja) | 一対の結合ブロックチェーンを構成するバイナリブロックチェーンに関連するコンピュータ実装システム及び方法 | |
Tasca et al. | Ontology of blockchain technologies. Principles of identification and classification | |
JPWO2018020944A1 (ja) | 掲示板情報管理システム | |
JP2020509680A (ja) | 分散型ブロックチェーンコンセンサスネットワークにおいて新しいブロックに署名する方法 | |
CN110189128A (zh) | 一种用于区块快速生成的分布式共识的算法和装置 | |
US11503036B2 (en) | Methods of electing leader nodes in a blockchain network using a role-based consensus protocol | |
EP3259722A1 (en) | Verifying electronic transactions | |
CN110933088A (zh) | 一种基于区块链的去中心化可验证隐匿代表方法、系统及存储介质 | |
CN109598506A (zh) | 区块链精确延迟加密的方法、系统、计算设备及计算机可读存储介质 | |
CN111062717A (zh) | 一种数据转移处理方法、装置和计算机可读存储介质 | |
Dash et al. | Artificial intelligence models for blockchain-based intelligent networks systems: Concepts, methodologies, tools, and applications | |
Barinov et al. | POSDAO: Proof of stake decentralized autonomous organization | |
Febrero et al. | Cryptocurrency constellations across the three-dimensional space: Governance decentralization, security, and scalability | |
Lerner | Rsk | |
Flood et al. | Blockchain’s future: can the decentralized blockchain community succeed in creating standards? | |
Clark et al. | Research perspectives and challenges for bitcoin and cryptocurrencies | |
CN111786772B (zh) | 一种基于区块链的确定的非确定性选择方法、系统及存储介质 | |
US20240205025A1 (en) | Decentralized blockchain system for transaction of cryptocurrency that prevents illegal transactions while allowing anonymous users to participate, and its computer program |
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 | ||
TR01 | Transfer of patent right | ||
TR01 | Transfer of patent right |
Effective date of registration: 20230407 Address after: No. 4145, Building 4, Yard 10, Xixiaoying South Ring Road, Sujiatuo Town, Haidian District, Beijing, 100194 Patentee after: Beijing Mingtai Hengtong Information Technology Co.,Ltd. Address before: 518000 Room 201, building A, No. 1, Qian Wan Road, Qianhai Shenzhen Hong Kong cooperation zone, Shenzhen, Guangdong (Shenzhen Qianhai business secretary Co., Ltd.) Patentee before: Shenzhen Qiyuan Information Service Co.,Ltd. |