深入理解区块链

Sue ·
更新时间:2024-11-13
· 506 次阅读

深入理解区块链区块链的定义区块链技术的六大核心算法拜占庭协定非对称加密技术容错问题Paxos 算法(一致性算法)共识机制分布式存储区块链的七大特性去中心化不可篡改分布式账本共识信任机制开放性匿名性跨平台区块链的分类公有链联盟链私有链无需许可型限定许可型许可型 区块链的定义

根据工信部2016年《区块链发展白皮书》定义:区块链为一种分布式数据存储、点对点传输、共识机制、加密算法等计算机技术在互联网时代的创新应用模式。

区块链最伟大的应用之一(也可能是最成功的应用没有之一)是比特币。比特币是“一个不依靠信任的电子交易系统”(A system for electronic transactions without relying on trust)。

从技术角度来看,区块链仍然属于典型的分布式系统(distributed system)。相同点都是数据共享,区块链的所有节点都共享全量数据。

不同点是区块链是多方维护,传统数据库仍然存在一个管理员的概念,无论是分布式架构还是集中式架构。而区块链中对数据的操作则不由单一主体控制,理论上来说区块链就是一个任何节点都能写入的数据库(这里我们先忽略联盟链中的CA等元素),至于写入能否成功当然也受共识机制的影响(不管能不能成功,至少它有写入的权限了)。

从每个节点的写入操作来看,不同于传统数据库具有增加、删除、更改和查找四个操作,区块链放弃了“删改”,仅保留了“增查”两个操作(实际上删和改是通过增来实现的),这样的好处是除了查找之外的所有操作都能留下记录,并且通过哈希函数保证了所有历史数据严格按照时间顺序记录(多节点数据写入的时序由共识机制保证),这就是我们经常提到的可溯源特性。

由于多智能体系统存在合作或者竞争,区块链通过激励机制实现良性合作或竞争,例如比特币中的挖矿,所有人参与到记账的过程中,竞争获取出块奖励(同时也共同维护了系统的安全和稳定性),类似地还有PoS机制下的质押金没收惩罚机制(slashing),这些都是激励机制。

区块链技术的六大核心算法

区块链技术的六大核心算法分别是:拜占庭协定、非对称加密技术、容错问题、Paxos 算法(一致性算法)、共识机制、分布式存储。

拜占庭协定

拜占庭的故事大概是这么说的:拜占庭帝国拥有巨大的财富,周围10个邻邦垂诞已久,但拜占庭高墙耸立,固若金汤,没有一个单独的邻邦能够成功入侵。任何单个邻邦入侵的都会失败,同时也有可能自身被其他9个邻邦入侵。拜占庭帝国防御能力如此之强,至少要有十个邻邦中的一半以上同时进攻,才有可能攻破。然而,如果其中的一个或者几个邻邦本身答应好一起进攻,但实际过程出现背叛,那么入侵者可能都会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。这就是拜占庭将军问题。

在这个分布式网络里:每个将军都有一份实时与其他将军同步的消息账本。账本里有每个将军的签名都是可以验证身份的。如果有哪些消息不一致,可以知道消息不一致的是哪些将军。尽管有消息不一致的,只要超过半数同意进攻,少数服从多数,共识达成。

由此,在一个分布式的系统中,尽管有坏人,坏人可以做任意事情(不受protocol限制),比如不响应、发送错误信息、对不同节点发送不同决定、不同错误节点联合起来干坏事等等。但是,只要大多数人是好人,就完全有可能去中心化地实现共识。

非对称加密技术

在上述拜占庭协定中,如果10个将军中的几个同时发起消息,势必会造成系统的混乱,造成各说各的攻击时间方案,行动难以一致。谁都可以发起进攻的信息,但由谁来发出呢?其实这只要加入一个成本就可以了,即:一段时间内只有一个节点可以传播信息。当某个节点发出统一进攻的消息后,各个节点收到发起者的消息必须签名盖章,确认各自的身份。

在如今看来,非对称加密技术完全可以解决这个签名问题。非对称加密算法的加密和解密使用不同的两个密钥.这两个密钥就是我们经常听到的”公钥”和”私钥”。公钥和私钥一般成对出现, 如果消息使用公钥加密,那么需要该公钥对应的私钥才能解密; 同样,如果消息使用私钥加密,那么需要该私钥对应的公钥才能解密。

容错问题

我们假设在此网络中,消息可能会丢失、损坏、延迟、重复发送,并且接受的顺序与发送的顺序不一致。此外,节点的行为可以是任意的:可以随时加入、退出网络,可以丢弃消息、伪造消息、停止工作等,还可能发生各种人为或非人为的故障。我们的算法对由共识节点组成的共识系统,提供的容错能力,这种容错能力同时包含安全性和可用性,并适用于任何网络环境。

Paxos 算法(一致性算法)

Paxos算法解决的问题是一个分布式系统如何就某个值(决议)达成一致。一个典型的场景是,在一个分布式数据库系统中,如果各节点的初始状态一致,每个节点都执行相同的操作序列,那么他们最后能得到一个一致的状态。为保证每个节点执行相同的命令序列,需要在每一条指令上执行一个“一致性算法”以保证每个节点看到的指令一致。一个通用的一致性算法可以应用在许多场景中,是分布式计算中的重要问题。 节点通信存在两种模型:共享内存和消息传递。Paxos算法就是一种基于消息传递模型的一致性算法。

共识机制

区块链共识算法主要是工作量证明和权益证明。拿比特币来说,其实从技术角度来看可以把PoW看做重复使用的Hashcash,生成工作量证明在概率上来说是一个随机的过程。开采新的机密货币,生成区块时,必须得到所有参与者的同意,那矿工必须得到区块中所有数据的PoW工作证明。与此同时矿工还要时时观察调整这项工作的难度,因为对网络要求是平均每10分钟生成一个区块。

分布式存储

分布式存储是一种数据存储技术,通过网络使用每台机器上的磁盘空间,并将这些分散的存储资源构成一个虚拟的存储设备,数据分散的存储在网络中的各个角落。所以,分布式存储技术并不是每台电脑都存放完整的数据,而是把数据切割后存放在不同的电脑里。就像存放100个鸡蛋,不是放在同一个篮子里,而是分开放在不同的地方,加起来的总和是100个。

区块链的七大特性

区块链可以大致分为七大特点:去中心化,不可篡改,分布式账本,共识信任机制,开放性,匿名信,跨平台。

去中心化

区块链上所产生的数据,都是通过密码学和数学算法进行建立信任关系,而不需要中心化机构来构建。分布式点对点的交易系统,交易双方可直接交易,不需要第三方的信任背书。

不可篡改

当一组数据从节点产生并通过大部分节点验证认可,之后数据写入区块链,每一个节点都会复制数据并保存,因此区块链数据是很难改动的,条件非常苛刻,几乎是不可能实现的,保证了数据的真实性。

分布式账本

因为属于点对点的交易,每个节点都有等于一本账本,并记录的数据相同,节点分布在任何地方。

共识信任机制

因为区块链过密码学和数学算法,建立起代码即法律的智能合约执行系统,通过这种技术手段实现,不需要第三方中心化机构来进行背书,以及证明。

开放性

在区块链上免除了交易主体身份信息被加密之外,其他的信息都是开放的,任何一个参与者都可以通过公开的端口进行查询相关记录。

匿名性

因为是点对点的交易节点之间并不需要相互信任的关系,因此节点之间也不需要公开身份信息。

跨平台

互联网实现了万物互联,区块链在将来,他也必须承担起基础的通信协议功能。真正实现价值互联网。

区块链的分类

从传统的公开,范围分类,分为公有链、联盟链和私有链。

公有链

为什么叫公有链?因为任何个人和组织都可以传输交易。并且这个交易能够获得区块的确认,任何人和组织都可以参与它的共识。

公有链也是最早的区块链,也是目前为止最火的区块链,eos就是建立于公有链上。我们知道的比特币,它就是公有链的始祖。

公有链有什么特点呢?

它被广泛的认为是完全去中心化的。

它的底层架构,其他程序员开发产品时,无法干预用户。

基本没有什么门槛,有联网的电脑就能够进入。

在这个链上面,所有的用户身份都是隐藏的,却不影响数据的公开。

联盟链

全称为联合区块链或者行业区块链,它是由某个组织指定多个预选的节点作为记账人。每一个板块的生存哲学,需要通过这些预选节点共同来进行决策,决定。

联盟链的特点

前面讲了,公有链是完全去中心化的那个联盟链,它是由多节点进行决策。所以它是属于多中心化进行。

联盟链支撑的交易规模比公有链更为强大。

由于是多中心化的,对于国家行业或者产业来说,多中心化更容易接受,因为它能够限定中心化的权限。

私有链

顾名思义私有。那他正好和公有链相反,也就是说他不是去中心化的?或者只能说少部分去中心化。在这个链上面,他可以是一个人、一个组织或一个公司。

私有链的特点是什么?

交易速度非常快。

隐私保护得更加好。

交易的成本,基本上为零。

区块链一路走来,经过了三个时代:1.0时代,用于数字货币领域;2.0时代,智能合约为主;3.0时代,各种项目的落地应用。

从权限控制角度分类,分为无需许可型、限定许可型和许可型

无需许可型

指没有管理权限的区块链,所有节点的权限都是一样的时候。

限定许可型

指不同的节点,他们的权限也是不同的,程序员在写区块链技术代码的时候,可以限定有些人可以参与节点活动,有些人只能记账,限定了参与的人。

许可型

不仅仅是作为普通的参与数据存储,有些有能力的节点,也可以授予更高级的权限。

还可以从应用角度分类,区块链在应用到商业领域时,具体选择什么类型,这个还需根据项目的要求和目的进行。


作者:Zhang Jun



区块链

需要 登录 后方可回复, 如果你还没有账号请 注册新账号
相关文章