区块链算法

区块链算法

  • 共识(共识机制)

  • 加密(加密算法)

  • 传输(点对点传输)

  • 数据(分布式数据存储)

共识

比特币区块链采用了 (Proof of Work,PoW)机制来实现共识,该机制最早于 1998 年在 B-money 设计中提出。

权益证明(Proof of Stake,PoS)最早在 2013 年被提出,最早在 Peercoin 系统中被实现,类似于现实生活中的股东机制,拥有股份越多的人越容易获取记账权(同时越倾向于维护网络的正常工作)。

目前,Proof of X 系列中比较出名的一致性协议包括 PoW、PoS 等,都是通过经济惩罚来限制恶意参与。

公链常用算法

PoW:Proof of Work,用于比特币BTC,狗狗币DOGE

PoS:Proof of Stake,用于以太坊ETH

其他垃圾联盟链和私有链算法

Proof of X 系列:

  • DPoS:Delegated Proof of Stake,委任权益证明,常用于联盟链,曾用于EOS柚子币,目前已被证伪。

  • PoA:Proof of Activity,活跃证明,常用于私有链,一种基于声誉reputation 的共识算法_,_一种 PoW 与PoS 混合的共识算法,目前已被证伪。

  • PoSA:顾名思义,PoS+PoA,双链,更垃圾,常用于私有链,目前已被证伪。

  • PoI:Proof of Importantce,重要性证明,一种评分系统,常用于私有链,曾用于 NEM 新经币,目前已被证伪。

  • PoP:Proof of Peers 或 Proof of Participation,号称将 PoI 和 DPoS 的思想结合,既能确保对设备的公平性,又拥有社区的共识,参考了 PBFT 和 RPCA,常用于私有链,目前已被证伪。

BFT : Byzantine Fault Tolerance,拜占庭容错,常用于联盟链,目前已被证伪。

  • PBFT:Practical Byzantine Fault Tolerance,实⽤拜占庭容错,常用于联盟链,目前已被证伪。

    • RBFT:Redundant Byzantine fault tolerance,冗余拜占庭容错,常用于联盟链,目前已被证伪。

  • DBFT:Delegated Byzantine Fault Tolerance,委托或授权拜占庭容错,常用于联盟链,曾用于NEO小蚁币,目前已被证伪。

  • HBFT:Hierarchical Byzantine Fault Tolerance,分层拜占庭容错,常用于联盟链,性能优于POA,所以更垃圾,常用于私有链,目前已被证伪。

  • RAFT:Replicated And Fault Tolerant,常用于联盟链,目前已被证伪。

  • Zyzzyva:包括HBFT,EZBFT,FAB,常用于联盟链,目前已被证伪。

  • PEABFT:综合了现有三种算法的优点:PnyxDB、EZBFT 和Abstract,常用于联盟链,能源互联网,目前已被证伪。

其他

  • RPCA:瑞波共识,常用于联盟链,目前已被证伪。

  • Paxos:早期被淘汰算法,目前已被证伪

  • DAG:Direct Acyclic Graph,有向无环图,谣言传播算法,其核心机制在于异步通讯。常用于联盟链和IOT链,曾用于IOTA,AVAX,CFX,目前已被证伪。

加密

加密算法安全性:DES<DES3=AES<RSA<ECC,

至于MD5、SHA、HMAC不好说了(不好说了,是啥意思?是太垃圾吗?)

RSA是非对称密码算法。非对称密码算法很少用于加密,一般用于对身份进行识别和认证,即使用于加密,也是用于对会话密钥进行加密而很少对文件或信息直接加密。

MD5和SHA1可以说是目前应用最广泛的Hash算法,而它们都是以MD4为基础设计的。 Md5和SHA系列是哈希函数。哈希函数不用于对文件或信息加密的,而是用于对传输信息进行完整性校验。

对称加密(加密解密密钥相同):DES、DES3、AES

非对称加密(分公钥私钥):RSA 信息摘要算法/签名算法:MD5、HMAC、SHA

前端实际使用中MD5、AES、RSA使用频率是最高的

几种加密方式配合次序:采用非对称加密算法管理对称算法的密钥,然后用对称加密算法加密数据,用签名算法生成非对称加密的摘要

DES、DES3、AES、RSA、MD5、SHA、HMAC传入的消息或者密钥都是bytes数据类型,不是bytes数据类型的需要先转换;密钥一般是8的倍数

Python实现RSA中,在rsa库中带有生成签名和校对签名的方法

\

Last updated