区块链是基于密码学原理而不是基于信用,使得互联网上任何达成一致的交易双方直接支付,从而不需要第三方信用中介机构的参与。本质上,区块链是一个分布式账本,一种通过去中心化、去信任的方式集体维护一个可靠数据库的技术方案,是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。
(一)区块链的基础架构和模式。区块链系统由数据层、网络层、共识层、激励层、合约层和应用层组成,包含了从底层数据结构到共识机制到顶层应用协议的众多内容。其中,数据层封装了底层数据区块以及相关的数据加密和时间戳等技术;网络层则包括分布式组网机制、数据传播机制和数据验证机制等;共识层主要封装网络节点的各类共识算法;激励层将经济因素集成到
区块链技术体系中来,主要包括经济激励的发行机制和分配机制等;合约层主要封装各类脚本、算法和智能合约,是区块链可编程特性的基础;应用层则封装了区块链的各种应用场景和案例。区块链系统每层分别完成一项核心功能,各层之间互相配合,实现一个去中心化的信任机制。可以说,区块链技术最具代表性的创新点即为基于时间戳的链式区块结构、分布式节点的共识机制、基于共识算力的经济激励和灵活可编程的智能合约。
按参与对象范围的不同,区块链可粗略区分为公有链、
联盟链和私有链。划分的标准不是参与节点的多少,而是整个系统中记账节点的门槛和记账权的分散度。
(二)区块链的核心和关键技术。1.共识机制。机器共识机制即区块链节点就区块信息达成全网一致共识的机制,是区块链的核心理论和技术。FLP不可能定理已经证明,在存在故障进程的异步系统中不存在有限时间内达成“共识”理论解。这也意味着,理论上,在存在“女巫”节点的异步网络环境中,不可能在有限时间内有达成一致共识的精确算法,因而必须寻找其可行的“工程解”,而目前出现的在特定环境中的各类共识机制就是求解“工程解”具体算法。区块链常用的共识机制主要包括:PoW(Proof of Work,工作量证明)、PoS(Proof of Stake,权益证明)、DPoS(Delegate Proof of Stake,股份授权证明)等。
通常,
区块链应用需要根据不同场景而选择不同共识机制,如合规监管方面是否支持超级权限节点对全网节点及数据进行监管、交易达成共识被确认的性能效率、共识过程中耗费的CPU及网络输入输出和存储等计算机资源、防攻击防欺诈的容错能力等。事实上,只要合适的机制能保证记录的可靠可追溯、不同节点具有相对平等的权利,则机制的不同并不改变区块链的本质。可以说,共识算法的创新将是推动区块链产业化的重要力量。
2.数据存储。在区块链技术中,数据以区块的方式永久储存。区块按时间顺序逐个先后生成并连接成链,每一个区块记录了创建期间发生的所有交易信息。区块的数据结构一般分为区块头(header)和区块体(body)。其中,区块头用于链接到前一个区块并且通过时间戳特性保证历史数据的完整性;区块体则包含了经过验证的、区块创建过程中产生的所有交易信息。
3.网络协议。区块链网络协议一般采用P2P协议,确保同一网络中的每台计算机彼此对等,各个节点共同提供网络服务,不存在任何“特殊”节点。不同的区块链系统会根据需要制定独自的P2P网络协议,比如
比特币有比特币网络协议,
以太坊也有自己的网络协议。
4.加密算法。散列算法也叫数据摘要或者哈希算法,其原理是将一段信息转换成一个固定长度并具备以下特点的字符串:如果某两段信息是相同的,那么字符也是相同的;即使两段信息十分相似,但只要是不同的,那么字符串将会十分杂乱随机并且两个字符串之间完全没有关联。本质上,散列算法的目的不是为了“加密”而是为了抽取“数据特征”,当然也可以把给定数据的散列值理解为该数据的“指纹信息”。典型的散列算法包括MD5、SHA1/SHA256和SM3,其中SHA2和SM3这两种算法效率和安全性大致相当且应用较为广泛。
非对称加密算法由对应的一对唯一性密钥(即公开密钥和私有密钥)组成的加密方法。任何获悉用户公钥的人都可用用户的公钥对信息进行加密与用户实现安全信息交互。由于公钥与私钥之间存在的依存关系,只有用户本身才能解密该信息,任何未受授权用户甚至信息的发送者都无法将此信息解密。
5.隐私保护。目前区块链上传输和存储的数据都是公开可见的,仅通过“伪匿名”的方式对交易双方进行一定的隐私保护。对于某些涉及大量的商业机密和利益的业务场景来说,数据的暴露不符合业务规则和监管要求。目前,业界普遍认为零知识证明、环签名和同态加密等技术比较有希望解决区块链的隐私问题。
6.智能合约。智能合约可视作一段部署在区块链上可自动运行的程序,其涵盖的范围包括编程语言、编译器、虚拟机、事件、状态机、容错机制等。虚拟机是区块链中智能合约的运行环境。虚拟机不仅被沙箱封装起来,事实上它被完全隔离。也就是说运行在虚拟机内部的代码不能接触到网络、文件系统或者其他进程。甚至智能合约之间也只能进行有限的调用。本质上,智能合约是一段程序,存在出错的可能性,甚至会引发严重问题或连锁反应,因此需要做好充分的容错机制,通过系统化的手段,结合运行环境隔离,确保合约在有限时间内按预期执行。
版权申明:本内容来自于互联网,属第三方汇集推荐平台。本文的版权归原作者所有,文章言论不代表链门户的观点,链门户不承担任何法律责任。如有侵权请联系QQ:3341927519进行反馈。