导航:首页 > 观区块链 > 区块链中常用的算法

区块链中常用的算法

发布时间:2025-05-23 11:13:04

区块链算法有哪些

区块链的核心算法主要包括以下几种:

1. 拜占庭协定

2. 非对称加密技术

3. 容错算法

4. Paxos算法(一致性算法)

5. 共识机制

6. 分布式存储

Ⅱ 区块链中哈希算法的特点是什么

哈希算法在区块链技术中扮演着重要角色,它是一种能将任意大小和类型的输入数据转换成固定长度输出值的函数。哈希算法接收单一数据作为输入,然后生成唯一的哈希值,无论输入数据的大小如何。

在区块链系统中,常用的哈希算法是加密哈希算法。这类算法具备以下特点:首先,它们能够高效地为不同类型的数据生成哈希值;其次,哈希算法具有确定性,即相同的输入总是生成相同的哈希值;再次,哈希算法表现出伪随机特性,使得哈希值看似随机,难以预测;此外,哈希算法还具有单向性,即从哈希值无法反推出原始数据;最后,防碰撞特性使得哈希算法能在一定程度上保证数据的唯一性和完整性。

哈希算法的确定性意味着,对于同样的输入,哈希函数总是产生相同的输出。这一特性确保了区块链中的数据一致性,因为每个区块的哈希值取决于其前一个区块的哈希值,从而形成了一条不可篡改的链。

哈希算法的伪随机特性使得攻击者难以预测下一个哈希值,增加了数据安全性和不可预测性。单向函数特性保证了数据的不可逆性,即从哈希值无法推断出原始数据,这在保护隐私和安全方面尤为重要。

防碰撞特性是加密哈希算法的重要属性之一,它确保了即使输入数据略有不同,生成的哈希值也会有很大差异。这种特性有助于防止恶意修改数据的行为,从而维护了区块链系统的安全和稳定性。

Ⅲ 鍦ㄥ尯鍧楅摼涓涓鑸浣跨敤浠涔堝姞瀵嗙畻娉

鍦ㄥ尯鍧楅摼涓锛屼竴鑸浣跨敤涓ょ嶄富瑕佺殑鍔犲瘑绠楁硶锛



  1. 鍏閽/绉侀挜鍔犲瘑绠楁硶锛氳繖绉嶅姞瀵嗙畻娉曚娇鐢ㄤ竴瀵瑰叕閽ュ拰绉侀挜銆傚叕閽ュ彲浠ュ叕寮鍒嗗彂锛岃岀侀挜闇瑕佷繚瀵嗐傚彧鏈夋嫢鏈夌侀挜鐨勪汉鎵嶈兘瑙e瘑浣跨敤鍏閽ュ姞瀵嗙殑鏁版嵁銆傝繖绉嶅姞瀵嗘柟娉曡骞挎硾鐢ㄤ簬鏁板瓧绛惧悕鍜岃韩浠介獙璇侊紝鍥犱负瀹冨彲浠ョ‘璁ゆ暟鎹鐨勬潵婧愬拰瀹屾暣鎬с傚湪鍖哄潡閾句腑锛岀侀挜鐢ㄤ簬纭璁や氦鏄撹呯殑韬浠斤紝鑰屽叕閽ュ垯琚骞挎挱缁欑綉缁滀腑鐨勫叾浠栬妭鐐逛互楠岃瘉浜ゆ槗鐨勬湁鏁堟с

  2. RSA绠楁硶锛氳繖鏄涓绉嶅父鐢ㄧ殑鍏閽/绉侀挜鍔犲瘑绠楁硶锛岀敱Ron Rivest銆丄di Shamir 鍜 Leonard Adleman浜1978骞村彂鏄庛傚畠鏄涓绉嶉潪瀵圭О鍔犲瘑绠楁硶锛屼篃灏辨槸璇达紝鐢ㄤ簬鍔犲瘑鐨勫瘑閽ュ拰鐢ㄤ簬瑙e瘑鐨勫瘑閽ユ槸涓嶅悓鐨勩

  3. ECDSA锛堟き鍦嗘洸绾挎暟瀛楃惧悕绠楁硶锛夛細杩欐槸涓绉嶅熀浜嶳SA绠楁硶鐨勬敼杩涚増锛屼娇鐢ㄦき鍦嗘洸绾垮瘑鐮佸︼紝浣垮緱绛惧悕杩囩▼鏇村揩閫熶笖鏇村畨鍏ㄣ傚湪鍖哄潡閾句腑锛孍CDSA琚鐢ㄤ簬楠岃瘉浜ゆ槗鐨勬暟瀛楃惧悕銆


鎷撳睍鐭ヨ瘑锛



鍝堝笇鍑芥暟鏄涓绉嶅皢浠绘剰闀垮害鐨勬暟鎹锛堝傛枃鏈銆佹暟瀛楃瓑锛夎浆鎹涓哄浐瀹氶暱搴︼紙閫氬父涓256浣嶆垨512浣嶏級鐨勬憳瑕佺殑鏂规硶銆傚畠浠闈炲父蹇涓旈潪甯稿畨鍏锛屽洜涓烘敼鍙樻暟鎹涓鐨勪竴灏忛儴鍒嗭紙鍗充娇鏄寰灏忕殑鏀瑰彉锛変細瀵艰嚧鍝堝笇缁撴灉鐨勫彉鍖栭潪甯稿ぇ锛岀敋鑷充笉鍙閫嗐傝繖绉嶇壒鎬т娇寰楀搱甯屽嚱鏁板湪鍖哄潡閾句腑琚骞挎硾浣跨敤锛屽傚尯鍧楃殑merkle鏍戠粨鏋勩佷氦鏄撶殑鏁板瓧绛惧悕浠ュ強瀵嗙爜瀛﹂挶鍖呯殑瀛樺偍绛夈


姣旂壒甯佸尯鍧楅摼涓昏佷娇鐢⊿HA-256浣滀负鍏跺搱甯屽嚱鏁帮紝杩欐槸鐢盌avid Chaum鍜孧ayra P. Chilomchik鍦1997骞村紩鍏ョ殑涓绉嶇畻娉曘係HA-256鎻愪緵浜嗕竴绉嶉潪甯稿畨鍏ㄧ殑鏂瑰紡鏉ュ垱寤哄尯鍧楅摼骞剁‘淇濅氦鏄撶殑瀹夊叏鎬с傛ゅ栵紝鍖哄潡閾句腑鐨凪erkle鏍戠粨鏋勪篃鏄鍩轰簬SHA-256鐨勫搱甯屽嚱鏁版潵鍒涘缓鐨勩


浠ヤ笂涓ょ嶅姞瀵嗙畻娉曞拰鍝堝笇鍑芥暟鍦ㄥ尯鍧楅摼涓閮芥壆婕旂潃闈炲父閲嶈佺殑瑙掕壊锛屽畠浠淇濊瘉浜嗕氦鏄撶殑瀹夊叏鎬с佸畬鏁存у拰鍖垮悕鎬э紝鍚屾椂涔熺‘淇濅簡鍖哄潡閾剧綉缁滅殑鍘讳腑蹇冨寲鍜屼笉鍙绡℃敼鎬с


鍚屾椂锛岀敱浜庡尯鍧楅摼涓鐨勬暟鎹鏄浠ュ尯鍧楃殑褰㈠紡涓嶆柇澧為暱鐨勶紝杩欎簺鍔犲瘑绠楁硶杩樿鐢ㄤ簬鍒涘缓鍖哄潡澶村拰鍖哄潡闂寸殑閾炬帴锛岃繘涓姝ユ彁楂樹簡鍖哄潡閾剧殑鎬ц兘鍜屽畨鍏ㄦс

Ⅳ POA(Proof of Activity)区块链共识算法

POA(Proof of Activity)算法是一个区块链的共识算法,基本原理是结合POW(Proof of work)和POS(Proof of stake)算法的特点进行工作,POW算法和POS算法的具体内容可以参考:

POW算法 : https://www.jianshu.com/p/b23cbafbbad2
POS算法 : https://blog.csdn.net/wgwgnihao/article/details/80635162

POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。
POA算法需求的网络中同样包含两类节点,矿工和普通参与者,其中普通参与者不一定一直保持在线。POA算法首先由矿工构造区块头,由块头选出N个币,这N个币的所有者参与后续的校验和生成块的过程。
从这里可以看到POA算法不仅与算力有关,后续的N个参与者的选举则完全由参与者在网络中所拥有的币的总数量决定。拥有越多币的参与者越有机会被选为N个后续的参与者。而后续N个参与者参与的必要条件是这N个参与者必须在线,这也是POA命名的由来,POA算法的维护取决于网络中的活跃节点(Active)。

POA算法的一个理想的基本流程是,类似于POW协议,矿工构造出一个符合难度要求的块头,通过矿工得到的块头计算衍生出N个币的编号,从区块链中追溯可以得到这几个币目前所述的参与者。矿工将这个块头发送给这N个参与者,其中前N-1个参与者对这个块进行校验和签名,最后第N个参与者校验并将交易加入到该块中,将这个区块发布出去,即完成一个区块的出块。
一个理想过程如下图所示:

在实际运行中,无法保证网络上所有参与者都在线,而不在线的参与者则无法进行校验和签名,这个无法被校验和签名的块头则会被废弃。
即在实际运行中,应该是一个矿工构造出块头后广播给各个参与者签名,同时继续重新构造新的块头,以免上一个块头衍生的N个参与者存在有某一个没有在线,而导致块头被废弃。
因此,在这种情况下,一个块是否被确认不仅与矿工的计算能力有关同时也与网络上的在线比例有关。
与纯POW相比,在与比特币(POW)同样10分钟出一个块的情况下,POA由于会有参与者不在线而产生的损耗,因此,10分钟内矿工可以构造的块的数量会更多,即块头的难度限制会降低,那么矿工在挖矿过程中会造成的能量损耗也会降低。
与纯POS相比,可以看到POA的出块流程并不会将构造区块过程中的相关信息上链,可以明显减少区块链上用于维护协议产生的冗余信息的量。

本节对上诉协议中一些参数设置进行分析

在矿工构造出块头后对块头进行校验和区块构造的N个参与者的数量选定比较类似于比特币中每一个块的出块时间的选取。比特币中选择了10分钟作为每一个块的期望出块时间并通过动态调节难度来适应。
这里N的取值同样可以选择选定值或者动态调节。动态调节需要更加复杂的协议内容,同时可能会带来区块链的数据膨胀,而复杂的协议也增加了攻击者攻击的可能性。另外暂时没有办法证明动态调节可以带来什么好处。静态调节在后续的分析(4 安全分析)中可以得到N=3的取值是比较合适的。

从上面的描述可以看到,构造新的区块的除了矿工还有从块头中衍生出来的N个币所有者。在构造出一个新的区块后,这些参与者同样应该收到一定的激励,以维持参与者保持在线状态。
矿工与参与者之间的非配比例与参与者的在线状态相关。给予参与者的激励与参与者保持在线状态的热情密切相关,越多参与者保持在线状态,能更好地维持网络的稳定。因此,可以在网络上在线参与者不够多的时候,提高参与者得到的激励分成比例,从而激发更多的参与者上线。
如何确定当前参与者的在线情况呢?可以最后第N个参与者构造区块时,将构造出来但是被废弃的块头加入到区块中,如果被丢弃的块头数量过多,说明在线人数过低,应当调节分成比例。
同时最后第N个参与者与其他参与者的分成同样需要考虑,第N个参与者需要将交易加入区块中,即需要维护UTXO池,同时第N个参与者还需要将被丢弃的块头加入新构建的区块中。
为了激励其将废弃区块头加入新构建的区块中,可以按照加入的区块头,适当增加一点小的激励。虽然加入更多的区块头,可以在下一轮的时候增加分成的比例,应当足够激励参与者往区块中加入未使用的块头了(这里参与者不可能为了增加分成而更多地加入区块头,每一个区块头都意味着一位矿工的工作量)。
一个参与者如果没有维护UTXO池则无法构造区块,但是可以参与前N-1个的签名,因此为了激励参与者维护UTXO池,作为最后一个构造区块的参与者,必须给予更多的激励,比如是其他参与者的两倍。

从3.2的描述中可以知道一个用户必须在线且维护UTXO池才可能尽可能地获得利益。这种机制势必会导致一些用户将自己的账户托管给一个中心化的机构。这个机构一直保持在线,并为用户维护其账户,在被选为构造区块的参与者时参与区块的构建并获取利益。最后该机构将收益按照某种形式进行分成。
上面说到参与者必须用自己的密钥进行签名,而托管给某个机构后,这个机构在可以用这个密钥签名构造区块的同时,也有可能使用这个密钥消费用户的财产。这里可以采用一种有限花销的密钥,这个密钥有两个功能,一个是将账户中的部分财产消费出去,另一个是将所有财产转移到一个指定账户。在托管的时候可以使用这个密钥,在被通知部分财产被花费后可以立即将所有财产转移到自己的另一个账户下,以保证财产的安全。

从上面的分析可以看到,POA的安全性与攻击者所拥有的算力和攻击者所拥有的股权有关。假设攻击者拥有的在线股权占比为 ,则攻击者的算力需要达到其他所有算力的 倍才能达成分叉。假设攻击者股权总占比为 ,网络中诚实用户的在线比例为 ,则攻击者的算力需要达到其他所有算力的 倍才能达成攻击。
攻击的分析表格如下:

从上文的分析可以看到,POA算法相比于其他算法可以改进网络拓扑,维持在线节点比例,需求更少的交易费同时减少共识算法过程中的能量损耗。同时,PoA协议的攻击成本要高于比特币的纯PoW协议。

参考文献:Proof of Activity: Extending Bitcoin’s Proof of Work via Proof of Stake

Ⅳ 区块链哈希算法是什么

哈希算法也被称为“散列”,是区块链的四大核心技术之一。是能计算出一个数字消息所对应的、长度固定的字符串(又称消息摘要)的算法。由于一段数据只有一个哈希值,所以哈希算法可以用于检验数据的完整性。在快速查找和加密算法的应用方面,哈希算法的使用非常普遍。

在互联网时代,尽管人与人之间的距离更近了,但是信任问题却更严重了。 现存的第三方中介组织的技术架构都是私密而且中心化的,这种模式永远都无法从根本上解决互信以及价值转移的问题。因此,区块链技术将会利用去中心化的数据库架构完成数据交互信任背书,实现全球互信的一大跨步。在这一过 程中,哈希算法发挥了重要作用。

散列算法是区块链中保证交易信息不被篡改的单向密码机制。区块链通过散列算法对一个交易区块中的交易进行加密,并把信息压缩成由一串数字和字母组成的散列字符串。区块链的散列值能够唯一而准确地标识一个区块。在验证区块的真实性时,只需要简单计算出这个区块的散列值,如果没有变化就 意味着这个区块上的信息是没有被篡改过的。

链乔教育在线旗下学硕创新区块链技术工作站是中国教育部学校规划建设发展中心开展的“智慧学习工场2020-学硕创新工作站 ”唯一获准的“区块链技术专业”试点工作站。专业站立足为学生提供多样化成长路径,推进专业学位研究生产学研结合培养模式改革,构建应用型、复合型人才培养体系。

Ⅵ 区块链几种共识算法

区块链中主要的共识算法有以下几种:

  1. 工作量证明

    • 核心机制:要求网络中的节点通过计算复杂的问题来获取记账权。
    • 优点:保证了系统的安全性和去中心化。
    • 缺点:能源消耗巨大,且随着矿机技术的发展,存在算力集中化的问题。
  2. 权益证明

    • 核心机制:基于持有加密货币的权益来分配记账权。
    • 优点:减少了对能源的需求。
    • 缺点:存在中心化风险,且代币经济复杂性较高。
  3. 委任权益证明

    • 核心机制:通过引入代理人角色,将记账权分配给经过投票选举的代理人。
    • 优点:提高了系统的效率,同时减少了中心化的影响。
    • 注意:该机制仍然需要在实践中不断验证和完善,以确保其长期稳定性和安全性。

这些共识算法各有优劣,但共同的目标是为区块链应用提供一个公平、安全、高效的共识机制,以支持去中心化的数字资产交易和数据共享。

阅读全文

与区块链中常用的算法相关的资料

热点内容
1060显卡可以挖以太坊吗 浏览:422
增值税20区块链 浏览:563
以太坊分叉钱包 浏览:953
区块链矿工作用 浏览:151
区块链金融应用监管政策 浏览:431
bmb虚拟货币 浏览:24
以太坊轻钱包怎么弄 浏览:804
MLD数字货币 浏览:287
ccf区块链技术大会2019 浏览:90
实行数字货币有哪些好处 浏览:468
什么叫数字货币化 浏览:123
以太坊难度和时间 浏览:126
以太坊手机怎么下 浏览:612
虚拟货币平台有哪些圈钱套路 浏览:955
bz交易虚拟货币 浏览:722
区块链每日必读 浏览:777
矿池连接不上 浏览:478
创建以太坊合约需要多少以太币 浏览:152
区块链与电子证据保全 浏览:431
以太坊的巴比特论坛 浏览:620