区块链 | 核心关键技术

2020-04-22  本文已影响0人  貳條

共识机制

常用的共识机制主要有PoW、PoS、DPoS、Paxos、PBFT等。

数据存储

数据结构

在区块链技术中,数据以区块的方式永久储存。区块按时间顺序逐个 先后生成并连接成链,每一个区块记录了创建期间发生的所有交易信息。 区块的数据结构一般分为区块头(header)和区块体(body),如图所示。其中,区块头用于链接到前一个区块并且通过时间戳特性保证历史 数据的完整性;区块体则包含了经过验证的、区块创建过程中产生的所有 交易信息。

区块链数据结构

数据库

按照数据库的数据结构组织形式来看,一般分为Key-Value型和关系 型两种。

按照数据库的部署形式来看,一般分为单机型和分布式两种。

网络协议

区块链网络协议一般采用P2P协议,确保同一网络中的每台计算机彼此对等,各个节点共同提供网络服务,不存在任何“特殊”节点。不同的区块链系统会根据需要制定独自的P2P网络协议,比如比特币有比特币网络协议,以太坊也有自己的网络协议。

加密算法

散列(哈希)算法

散列算法也叫数据摘要或者哈希算法,其原理是将一段信息转换成一个固定长度并具备以下特点的字符串:

本质上,散列算法的目的不是为了“加密”而是为了抽取“数据特征”,也可以把给定数据的散列值理解为该数据的“指纹信息”。典型的 散列算法有MD5、SHA1/SHA2和SM3,下表对比了这些算法的特点。

典型散列算法的特点

总体上看,SHA256和SM3这两种算法效率和安全性大致相当,目前区块链主要使用SHA256,国内某些特定业务场景使用国密SM3,亦是比 较符合国家安全和监管的选择。但由于不同业务场景的安全性标准有别, 未来不排除还需要探索更优算法的可能性。

非对称加密算法

非对称加密算法由对应的一对唯一性密钥(即公开密钥和私有密钥) 组成的加密方法。任何获悉用户公钥的人都可用用户的公钥对信息进行加 密与用户实现安全信息交互。由于公钥与私钥之间存在的依存关系,只有 用户本身才能解密该信息,任何未受授权用户甚至信息的发送者都无法将此信息解密。
在近代公钥密码系统的研究中, 其安全性都是基于难解的可计算问题 的,常用的非对称加密算法特点及其比较如表所示。

非对称加密算法的特点 RSA、ECC/SM2总体比较

有非对称加密算法,自然就存在对称加密算法,两者区别见:对称加密算法 VS 非对称加密算法

隐私保护

目前区块链上传输和存储的数据都是公开可见的,仅通过“伪匿名” 的方式对交易双方进行一定的隐私保护。对于某些涉及大量的商业机密和 利益的业务场景来说,数据的暴露不符合业务规则和监管要求。目前,业 界普遍认为零知识证明、环签名和同态加密等技术比较有希望解决区块链 的隐私问题。

智能合约

智能合约可视作一段部署在区块链上可自动运行的程序,其涵盖的范 围包括编程语言、编译器、虚拟机、事件、状态机、容错机制等。
虚拟机是区块链中智能合约的运行环境。虚拟机不仅被沙箱封装起来, 事实上它被完全隔离。也就是说运行在虚拟机内部的代码不能接触到网络、 文件系统或者其他进程。甚至智能合约之间也只能进行有限的调用。
智能合约本质上是一段程序,存在出错的可能性,甚至会引发严重问 题或连锁反应。需要做好充分的容错机制,通过系统化的手段,结合运行 环境隔离,确保合约在有限时间内按预期执行。

上一篇 下一篇

猜你喜欢

热点阅读