随意刀 发表于 2019-9-24 09:39:22

区块链核心关键技术

  从技术角度来讲,区块链并不是一个全新的技术,而是集成了多种现有技术进行的组合式创新,涉及到以下几个方面:


  一、共识机制:常用的共识机制主要有 PoW、PoS、DPoS、PBFT、PAXOS等(如图)。由于区块链系统中没有一个中心,因此需要有一个预设的规则来指导各方节点在数据处理上达成一致,所有的数据交互都要按照严格的规则和共识进行;


  



  二、密码学技术:密码学技术是区块链的核心技术之一,目前的区块链应用中采用了很多现代密码学的经典算法,主要包括:哈希算法、对称加密、非对称加密、数字签名等。


  HASH 摘要算法:HASH 算法的目的是针对不同输入,产生一个唯一的固定长度的输出。HASH 算法有 3 个特点:一是不同的输入数据产生的输出数据必定不同;二是输入数据的微小变动会导致输出的较大不同;三是给定已知输出数据,无法还原出原始的输入数据。常用的 SHA-256 算法就是针对任意长的数据数列输出 256 位数据,实际使用中 SHA256 用于对区块链的每个区块数据进行 HASH 摘要后防止篡改, 同时结合 Merkle Tree 数据结构实现部分区块数据的 HASH 值验证。


  对称加密算法:对称加密算法利用加密密钥对原始数据进行加密处理,然后将加密后的密文发送给接收者,接收者利用同一密钥及相同算法的逆算法对密文进行解密,才能使其恢复成原始数据。在对称加密算法中,使用的密钥只有一个,发收信双方都使用这个密钥对数据进行加密和解密,这就要求解密方事先必须知道加密密钥。区块链技术中常用的对称加密算法有 AES。


  非对称加密算法:非对称加密算法需要两个密钥:公开密钥(Public Key)和私有密钥(Private Key)。公开密钥与私有密钥是一对,如果用公开密钥对数据进行加密,只有用对应的私有密钥才能解密;如果用私有密钥对数据进行加密,那么只有用对应的公开密钥才能解密。其实现机密信息交换的基本过程是:甲方生成一对密钥并将其中的一把作为公用密钥向其它方公开;得到该公用密钥的乙方使用该密钥对机密信息进行加密后再发送给甲方;甲方再用自己保存的另一把专用密钥对加密后的信息进行解密。


  数字签名算法: 区块链技术中使用到的数字签名技术用于验证信息的完整性和真实性,基本流程如下:发送者将需要签名的原始数据进行 HASH 摘要,然后对摘要信息用私钥加密后与原始数据一起传送给接收者。接收者只有用发送者的公钥才能解密被加密的摘要信息,然后用同样 HASH 函数对收到的原文产生一个摘要信息,如果与解密的摘要信息对比相同则说明收到的信息是完整的,在传输过程中没有被修改,否则说明信息被修改过,因此数字签名能够验证信息的完整性。此外,信息发送者拥有私钥且不公开,因此只有发送者本人才能构造基于其私钥的签名信息,可以确保签名真实性。ECDSA 是区块链技术中常用的数字签名技术。


  三、分布式存储:区块链是一种点对点网络上的分布账本,每个参与的节点都将独立完整地存储写入区块数据信息。分布式存储区别于传统中心化存储的优势主要体现在两个方面:


  1.每个节点上备份数据信息,避免了由于单点故障导致的数据丢失。


  2.每个节点上的数据都独立存储,有效规避了恶意篡改历史数据。


  四、 智能合约:智能合约允许在没有第三方的情况下进行可信交易,只要一方达成了协议预先设定的目标,合约将会自动执行交易,这些交易可追踪且不可逆转。具有透明可信、自动执行、强制履约的优点。

xgstu9zV 发表于 2019-9-24 09:39:34

滴滴

jEf0502w 发表于 2019-9-24 09:40:31

滴滴
页: [1]
查看完整版本: 区块链核心关键技术