CN110535629A - 一种异步网络条件下的出块共识方法 - Google Patents
一种异步网络条件下的出块共识方法 Download PDFInfo
- Publication number
- CN110535629A CN110535629A CN201910890807.XA CN201910890807A CN110535629A CN 110535629 A CN110535629 A CN 110535629A CN 201910890807 A CN201910890807 A CN 201910890807A CN 110535629 A CN110535629 A CN 110535629A
- Authority
- CN
- China
- Prior art keywords
- hash
- common recognition
- list
- random
- function
- 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
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/06—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
- H04L9/0643—Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
-
- 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/0861—Generation of secret information including derivation or calculation of cryptographic keys or passwords
- H04L9/0869—Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Power Engineering (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种异步网络条件下的出块共识方法,方法包括生成共识和验证共识;验证通过的列表为共识得到的出块列表;生成共识的方法包括:建立拼接字符串;通过可验证随机函数获得哈希值和对应的证明;对每个1~wi范围内的j,计算哈希函数,并且选取最小值:以步骤Ⅲ中获得的τi为优先级,并根据τi逆推出相应的j;用随机洗牌函数对默认的列表进行随机置换;将用户i置于置换后列表的最高优先级位置,得到列表;广播。本发明给出的共识方法可以解决异步网络中的共识问题,若共识出的节点不能出块,则由排在第二位的节点出块,以此类推,所以对网络同步要求大大降低;同时,该方法不需要知道全网的份额信息,可以降低计算和通信开支。
Description
技术领域
本发明涉及一种共识方法,尤其涉及一种异步网络条件下的出块共识方法。
背景技术
区块链是继大数据和人工智能之后的又一项互联网革命,融合了分布式计算、加密技术和可证明安全等多项技术。区块链技术为去中心系统提供了一种可行方案。区块链中的一个核心步骤是共识,即如何在多个矿工生成区块的情况下决定哪个矿工的区块被接收到链上。
比特币是第一个得到广泛应用的区块链系统,采用了PoW计算力证明共识机制(以下称PoW)。在PoW共识机制中,算力是出块的决定因素,即算得最快的节点,其区块更容易上链并得到奖励。在该体制下,由于每次只能有一个节点的出块被接受到链上,其他的算力都都浪费掉。于是PoS权益证明体制(以下称PoS)被提出并被区块链系统接受。在PoS体制中,节点出块的概率与其占有的某项资源相关,该资源可以是其持有的代币、拥有的内存或者存储资源。与PoW相比,PoS不会出现分叉,不需要大量的计算,节省了能源。
为了防止女巫攻击,要求节点获得出块的概率与其持有的资源成正比,与其分拆和合并没有关系。在实际系统中往往采用PoS+PoW共识机制,即出块节点仍然需要一定的计算量,但比传统PoW体制计算量要小得多。在PoS体制中,核心问题是如何设计高效、公平的共识算法。图灵奖获得者Micali教授提出了一种PoS共识机制,该机制对网络有同步性要求,即数据包在一定时间内可以到达大部分节点。如果网络不能同步,则共识失败,进入转换等待,等待下一轮共识。
发明内容
为了解决上述技术所存在的不足之处,本发明提供了一种异步网络条件下的出块共识方法。
为了解决以上技术问题,本发明采用的技术方案是:一种异步网络条件下的出块共识方法,方法包括生成共识和验证共识;验证通过的列表为共识得到的出块列表;
其中,生成共识的方法包括:
Ⅰ、建立拼接字符串;如公式①所示:
m=leader|e|r, 公式①
其中,m表示拼接后的字符串,leader表示leader字符串,e表示当前共识所处的阶段数,||表示拼接,r表示当前的轮数;
Ⅱ、通过可验证随机函数获得哈希值和对应的证明;如公式②所示:
VRF(ski,m)→(hashi,proofi), 公式②
其中,VRF表示可验证随机函数,ski表示用户i的私钥,hashi表示生成的哈希值,proofi表示生成的对应的证明;
Ⅲ、对每个1~wi范围内的j,用哈希函数计算Hash(hashi|j),并且根据公式③选取最小值:
其中,τi表示用户i下的最小哈希值,min表示取最小值,Hash(hashi|j)表示应用hashi和j的哈希值,wi表示用户i所占有的份额,j表示在1~wi之间的取值;
Ⅳ、以步骤Ⅲ中获得的τi为优先级,并根据τi逆推出相应的j;用随机洗牌函数对默认的列表进行随机置换;将用户i置于置换后列表的最高优先级位置,得到列表listi;
Ⅴ、广播hashi、proofi、τi以及listi。
验证共识的方法包括:
i、验证步骤Ⅳ中j在1至wi范围内;
ii、用可验证随机函数、用户的公钥和proofi验证hashi是由该用户i生成;
iii、验证τi等于Hash(hashi|j);
iv、取验证通过的最小的τi对应的listi为共识得到的出块列表。
进一步地,随机洗牌函数的方法为:
a、对于一个初始数组a[N],其中N为网络节点数量;
b、对当前i,利用Knuth洗牌函数生成随机数r,交换a[i]和a[r]的值;a[i]表示数组i,a[r]表示洗牌后的数组r;
c、对i从1到N,执行步骤b;
d、最终生成的数组a'[N]为随机洗牌后的结果。
进一步地,步骤Ⅲ中所用的哈希函数为Keccak函数。
本发明主要解决了两个问题:针对异步网络提出了一种新的出块共识方法,可以在异步网络中快速实现出块共识,解决了传统共识方法对网络同步要求过高的问题,在当前出块节点出现故障后可以快速决定下一个出块节点,无需多轮共识。同时,该方法不需要知道全网的份额信息,可以降低计算和通信开支。
附图说明
图1为生成共识的流程图。
图2为验证共识的流程图。
具体实施方式
下面结合附图和具体实施方式对本发明作进一步详细的说明。
图1、2所示的一种异步网络条件下的出块共识方法,方法包括生成共识和验证共识;验证通过的列表为共识得到的出块列表;
其中,生成共识的方法包括:
Ⅰ、建立拼接字符串;如公式①所示:
m=leader|e|r, 公式①
其中,m表示拼接后的字符串,leader表示leader字符串,e表示当前共识所处的阶段数,||符号表示拼接,r表示当前的轮数;
Ⅱ、通过可验证随机函数获得哈希值和对应的证明;如公式②所示:
VRF(ski,m)→(hashi,proofi), 公式②
其中,VRF表示可验证随机函数,ski表示用户i的私钥,hashi表示生成的哈希值,proofi表示生成的对应的证明;
可验证随机函数可根据输入和用户私钥生成哈希值和一个证明,该哈希值可以被网络中其他节点用该用户的公钥和证明进行验证。
Ⅲ、对每个1~wi范围内的j,用Keccak哈希函数计算Hash(hashi|j),并且根据公式③选取最小值:
其中,τi表示用户i下的最小哈希值,min表示取最小值,Hash(hashi|j)表示应用hashi和j的哈希值,wi表示用户i所占有的份额,j表示在1~wi之间的取值;
Keccak哈希函数为美国国家标准技术局征集的哈希函数竞赛SHA-3的标准。
Ⅳ、以步骤Ⅲ中获得的τi为优先级,并根据τi逆推出相应的j;用随机洗牌函数对默认的列表进行随机置换;将用户i置于置换后列表的最高优先级位置,得到列表listi;
在本发明中,较小的值具有较高优先级。如i<j,则称i优先级大于j。本发明中的共识方法也适用于其他优先级定义,如最大值具有最高优先级或者与指定的随机数最近的数具有最高优先级。
Ⅴ、广播hashi、proofi、τi以及listi。在生成共识过程中,可以选择不广播j,共识节点计算1~wi范围内能不能找到相应的j即可,只是计算复杂度会有上升。
验证共识的方法包括:
i、验证步骤Ⅳ中由τi逆推得出的j在1至wi范围内;为了防止j为非正常取值,可直接观察j是否在1~wi范围内,是的话就进行后续验证,不是的话该节点为拜占庭节点。
ii、用可验证随机函数、用户的公钥和proofi验证hashi是由该用户i生成;
iii、验证τi等于Hash(hashi|j);步骤ii和步骤iii中验证方法均为现有技术中常用的验证方法,本发明不再举例。
iv、经过上述验证后,取验证通过的最小的τi对应的listi为共识得到的出块列表。
随机洗牌函数是将用户顺序随机打乱的过程,即随机置换过程;随机洗牌函数的方法为:
a、对于一个初始数组a[N],其中N为网络节点数量;
b、对当前i,利用Knuth洗牌函数生成随机数r,交换a[i]和a[r]的值;a[i]表示数组i,a[r]表示洗牌后的数组r;
c、对i从1到N,执行步骤b;
d、最终生成的数组a'[N]为随机洗牌后的结果。
本发明相比现有技术具有的优势为:
本发明给出的共识方法可以解决异步网络中的共识问题,若共识出的节点不能出块,则由排在第二位的节点出块,以此类推,所以对网络同步要求大大降低;同时,该方法不需要知道全网的份额信息,可以降低计算和通信开支。
上述实施方式并非是对本发明的限制,本发明也并不仅限于上述举例,本技术领域的技术人员在本发明的技术方案范围内所做出的变化、改型、添加或替换,也均属于本发明的保护范围。
Claims (4)
1.一种异步网络条件下的出块共识方法,其特征在于:所述方法包括生成共识和验证共识;验证通过的列表为共识得到的出块列表;
其中,生成共识的方法包括:
Ⅰ、建立拼接字符串;如公式①所示:
m=leader|e|r, 公式①
其中,m表示拼接后的字符串,leader表示leader字符串,e表示当前共识所处的阶段数,||表示拼接,r表示当前的轮数;
Ⅱ、通过可验证随机函数获得哈希值和对应的证明;如公式②所示:
VRF(ski,m)→(hashi,proofi), 公式②
其中,VRF表示可验证随机函数,ski表示用户i的私钥,hashi表示生成的哈希值,proofi表示生成的对应的证明;
Ⅲ、对每个1~wi范围内的j,用哈希函数计算Hash(hashi|j),并且根据公式③选取最小值:
其中,τi表示用户i下的最小哈希值,min表示取最小值,Hash(hashi|j)表示应用hashi和j的哈希值,wi表示用户i所占有的份额,j表示在1~wi之间的取值;
Ⅳ、以步骤Ⅲ中获得的τi为优先级,并根据τi逆推出相应的j;用随机洗牌函数对默认的列表进行随机置换;将用户i置于置换后列表的最高优先级位置,得到列表listi;
Ⅴ、广播hashi、proofi、τi以及listi。
2.根据权利要求1所述的异步网络条件下的出块共识方法,其特征在于:所述验证共识的方法包括:
i、验证步骤Ⅳ中j在1至wi范围内;
ii、用可验证随机函数、用户的公钥和proofi验证hashi是由该用户i生成;
iii、验证τi等于Hash(hashi|j);
iv、取验证通过的最小的τi对应的listi为共识得到的出块列表。
3.根据权利要求2所述的异步网络条件下的出块共识方法,其特征在于:所述随机洗牌函数的方法为:
a、对于一个初始数组a[N],其中N为网络节点数量;
b、对当前i,利用Knuth洗牌函数生成随机数r,交换a[i]和a[r]的值;a[i]表示数组i,a[r]表示洗牌后的数组r;
c、对i从1到N,执行步骤b;
d、最终生成的数组a'[N]为随机洗牌后的结果。
4.根据权利要求3所述的异步网络条件下的出块共识方法,其特征在于:所述步骤Ⅲ中所用的哈希函数为Keccak函数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910890807.XA CN110535629B (zh) | 2019-09-20 | 2019-09-20 | 一种异步网络条件下的出块共识方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910890807.XA CN110535629B (zh) | 2019-09-20 | 2019-09-20 | 一种异步网络条件下的出块共识方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110535629A true CN110535629A (zh) | 2019-12-03 |
CN110535629B CN110535629B (zh) | 2022-06-10 |
Family
ID=68669250
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910890807.XA Active CN110535629B (zh) | 2019-09-20 | 2019-09-20 | 一种异步网络条件下的出块共识方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110535629B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112862490A (zh) * | 2021-04-26 | 2021-05-28 | 北京连琪科技有限公司 | 一种异步网络下的输出共识方法 |
CN112883338A (zh) * | 2021-03-01 | 2021-06-01 | 北京欧凯联创网络科技有限公司 | 一种基于带权重的随机洗牌算法的抽签方法及应用 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109447795A (zh) * | 2018-09-11 | 2019-03-08 | 中国人民解放军国防科技大学 | 一种支持快速达成最终确认性的拜占庭共识方法 |
CN109525398A (zh) * | 2018-10-18 | 2019-03-26 | 尚维斯 | 一种实现去中心化权力证明共识的方法 |
WO2019067863A1 (en) * | 2017-09-28 | 2019-04-04 | Silvio Micali | BLOCK CHAINS ACCREDITED BY MESSAGE |
CN109949034A (zh) * | 2019-03-06 | 2019-06-28 | 北京工业大学 | 基于可信性评估的区块链共识方法 |
CN109964446A (zh) * | 2018-06-08 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
-
2019
- 2019-09-20 CN CN201910890807.XA patent/CN110535629B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2019067863A1 (en) * | 2017-09-28 | 2019-04-04 | Silvio Micali | BLOCK CHAINS ACCREDITED BY MESSAGE |
CN109964446A (zh) * | 2018-06-08 | 2019-07-02 | 北京大学深圳研究生院 | 一种基于投票的共识方法 |
CN109447795A (zh) * | 2018-09-11 | 2019-03-08 | 中国人民解放军国防科技大学 | 一种支持快速达成最终确认性的拜占庭共识方法 |
CN109525398A (zh) * | 2018-10-18 | 2019-03-26 | 尚维斯 | 一种实现去中心化权力证明共识的方法 |
CN109949034A (zh) * | 2019-03-06 | 2019-06-28 | 北京工业大学 | 基于可信性评估的区块链共识方法 |
Non-Patent Citations (2)
Title |
---|
YOSSI GILAD等: "Algorand: Scaling Byzantine Agreements for Cryptocurrencies", 《SOSP "17: PROCEEDINGS OF THE 26TH SYMPOSIUM ON OPERATING SYSTEMS PRINCIPLES》 * |
刘懿中等: "《区块链共识机制研究综述》", 《密码学报》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112883338A (zh) * | 2021-03-01 | 2021-06-01 | 北京欧凯联创网络科技有限公司 | 一种基于带权重的随机洗牌算法的抽签方法及应用 |
CN112883338B (zh) * | 2021-03-01 | 2024-03-22 | 奥科塞尔控股公司 | 一种基于带权重的随机洗牌算法的抽签方法 |
CN112862490A (zh) * | 2021-04-26 | 2021-05-28 | 北京连琪科技有限公司 | 一种异步网络下的输出共识方法 |
CN112862490B (zh) * | 2021-04-26 | 2022-05-24 | 北京连琪科技有限公司 | 一种异步网络下的输出共识方法 |
Also Published As
Publication number | Publication date |
---|---|
CN110535629B (zh) | 2022-06-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11838407B2 (en) | Computer-implemented systems and methods for using a blockchain to perform an atomic swap | |
CN110061850B (zh) | 变色龙哈希函数的碰撞计算方法及可编辑区块链构造方法 | |
CN107579819B (zh) | 一种sm9数字签名生成方法及系统 | |
CN107612973B (zh) | 用于智能移动端的区块链结构、生成方法及交易验证方法 | |
Lin et al. | A unified framework for concurrent security: universal composability from stand-alone non-malleability | |
CN112257095B (zh) | 一种联盟链共识节点的选择方法 | |
CN109257182A (zh) | 一种基于同态的密码学承诺与零知识范围证明的区块链隐私保护方法 | |
CN108985100A (zh) | 基于区块链的元素安全性证明方法、装置、设备和介质 | |
KR102230471B1 (ko) | 블록체인 네트워크 상에서 효율적인 트랜젝션을 수행하기 위한 그룹 증명 생성 방법 | |
KR20190093012A (ko) | 블록 체인 시스템에서의 블록 생성 및 검증 방법 | |
CN112001502A (zh) | 高延时网络环境鲁棒的联邦学习训练方法及装置 | |
CN107240056A (zh) | 一种基于区块链技术的婚恋登记方法 | |
Azouvi et al. | Winning the caucus race: Continuous leader election via public randomness | |
CN109194472A (zh) | 基于双线性映射和集合签名算法的游戏区块链共识方法 | |
CN109379343A (zh) | 一种区块链的异构共识方法及终端 | |
CN110535629A (zh) | 一种异步网络条件下的出块共识方法 | |
CN110224984A (zh) | 一种基于区块链技术的多方授权方法及装置 | |
CN109547199A (zh) | 一种多方联合生成sm2数字签名的方法 | |
CN111416708A (zh) | 一种区块链拜占庭容错共识方法及系统 | |
Li et al. | Metaopera: A cross-metaverse interoperability protocol | |
Alwen et al. | Collusion-free multiparty computation in the mediated model | |
KR102182142B1 (ko) | 신뢰성 향상을 위한 가중치 기반의 블록체인 네트워크 구성 방법 및 장치 | |
CN114362962B (zh) | 区块链工作量证明生成方法 | |
CN116488823A (zh) | 一种基于sm2和sm3的非交互式零知识证明方法 | |
Chandran et al. | Covert multi-party computation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20220217 Address after: P.O. Box 31119, grant house, Furong Road, 802 Xiwan Road, Grand Cayman, Cayman Islands Applicant after: Okoser Holdings Address before: 100089 4th floor, building 3, Qunying Science Park, No. 8, Chuangye Road, Haidian District, Beijing Applicant before: Beijing Oukai Lianchuang Network Technology Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |