世界超级计算机排名2015 【紫冬声音】区块链技术综述:区块链技术发展现状与展望(5)

电脑杂谈  发布时间:2018-02-22 00:55:11  来源:网络整理

区块链通常并不直接保存原始数据或交易记录,而是保存其哈希函数值,即将原始数据编码为特定长度的由数字和字母组成的字符串后记入区块链。哈希函数(也称散列函数)具有诸多优良特点,因而特别适合用于存储区块链数据。例如,通过哈希输出几乎不能反推输入值(单向性),不同长度输入的哈希过程消耗大约相同的时间(定时性)且产生固定长度的输出(定长性),即使输入仅相差一个字节也会产生显著不同的输出值(随机性)等。

比特币区块链通常采用双 SHA256 哈希函数,即将任意长度的原始数据经过两次 SHA256 哈希运算后转换为长度为 256 位(32字节)的二进制数字来统一存储和识别。除上述特点外,SHA256 算法还具有巨大的散列空间(2256)和抗碰撞(避免不同输入值产生相同哈希值)等特性,可满足比特币的任何相关标记需要而不会出现冲突。

Merkle 树

Merkle 树是区块链的重要数据结构,其作用是快速归纳和校验区块数据的存在性和完整性。如图 3 所示,Merkle 树通常包含区块体的底层(交易),区块头的根哈希值(即Merkle 根)以及所有沿底层区块数据到根哈希的分支。

Merkle 树运算过程一般是将区块体的数据进行分组哈希,并将生成的新哈希值插入到 Merkle 树中,如此递归直到只剩最后一个根哈希值并记为区块头的 Merkle 根。最常见的 Merkle 树是比特币采用的二叉 Merkle 树,其每个哈希节点总是包含两个相邻的数据块或其哈希值 [22],其他变种则包括以太坊的 Merkle Patricia Tree等 [4]。

Merkle 树有诸多优点:

首先是极大地提高了区块链的运行效率和可扩展性,使得区块头只需包含根哈希值而不必封装所有底层数据,这使得哈希运算可以高效地运行在智能手机甚至物联网设备上;

其次是 Merkle 树可支持「简化支付验证」协议,即在不运行完整区块链网络节点的情况下,也能够对(交易)数据进行检验 [3]。例如,为验证图 3 中交易 6,一个没有下载完整区块链数据的客户端可以通过向其他节点索要包括从交易 6 哈希值沿 Merkle 树上溯至区块头根哈希处的哈希序列(即哈希节点6,5,56,78,5678,1234)来快速确认交易的存在性和正确性。

一般说来,在 N 个交易组成的区块体中确认任一交易的算法复杂度仅为 log_2 N 。这将极大地降低区块链运行所需的带宽和验证时间,并使得仅保存部分相关区块链数据的轻量级客户端成为可能。世界超级计算机排名2015

非对称加密

非对称加密是为满足安全性需求和所有权验证需求而集成到区块链中的加密技术,常见算法包括 RSA、Elgamal、Rabin、D-H、ECC(即椭圆曲线加密算法)等。非对称加密通常在加密和解密过程中使用两个非对称的密码,分别称为公钥和私钥。非对称密钥对具有两个特点:

首先是用其中一个密钥(公钥或私钥)加密信息后,只有另一个对应的密钥才能解开;

其次是公钥可向其他人公开、私钥则保密,其他人无法通过该公钥推算出相应的私钥。

非对称加密技术在区块链的应用场景主要包括信息加密、数字签名和登录认证等,其中:

信息加密场景主要是由信息发送者(记为 A)使用接受者(记为 B)的公钥对信息加密后再发送给 B,B 利用自己的私钥对信息解密。比特币交易的加密即属于此场景;

数字签名场景则是由发送者 A 采用自己的私钥加密信息后发送给 B,B 使用 A 的公钥对信息解密、从而可确保信息是由 A 发送的;

登录认证场景则是由客户端使用私钥加密登录信息后发送给服务器,后者接收后采用该客户端的公钥解密并认证登录信息。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-87886-5.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    热点图片
    拼命载入中...