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