主页 > 下载imtoken官方网站 > 区块链(Blockchain)——核心技术概述

区块链(Blockchain)——核心技术概述

下载imtoken官方网站 2023-05-04 05:52:38

用之妙得吉祥,一心之存得天成。

有人可能会遇到这样的问题:

这些看似棘手的问题,在区块链世界已经有了初步的答案。 本文将带领大家探索区块链的核心技术,包括其定义与原理、关键问题等,还将探讨区块链技术的演进历程,展望未来的发展趋势。 最后,澄清一些常见的误解。

定义与原理

一、定义

最早公认的关于区块链的描述性文献是中本聪写的《比特币:一种点对点的电子缓存系统》一文,但这篇文献着重讨论比特币系统,并没有真正提出区块链的定义和概念链,其中指出区块链是一种用于记录比特币交易账户历史的数据结构。

另外,在维基百科给出的定义中,区块链被比作一种分布式数据库技术。 通过维护数据块的链式结构,可以维护持续增长和不可篡改的数据记录。

区块链技术最早的应用出现在比特币项目中。 作为比特币背后的分布式记账平台,在没有中心化管理的情况下,比特币网络稳定运行八年,支持海量交易记录,从未出现过严重漏洞,这一切都与巧妙的区块链结构密不可分。

区块链技术本身还在快速发展,相关规范和标准还在不断成熟。

二、基本原则

区块链的基本原理理解起来并不复杂。 首先,区块链包括三个基本概念:

如果将区块链作为状态机,每笔交易都是一次改变状态的尝试,而每一次共识产生的区块都是参与者对区块中交易引起的状态改变的确认结果。

在实现上,首先假设有一个分布式的数据记录账本,只允许添加不能删除。 账本的底层结构是一个线性链表,这就是“区块链”名称的由来。 链表由“块”串联组成(如图2-1所示),后续块记录领先块的哈希值(pre hash)。 要添加新数据,它必须放在一个新块中。 而这个区块(以及区块中的交易)是否合法,可以通过计算哈希值来快速判断。 任何维护节点都可以提出新的合法区块,但必须经过一定的共识机制才能对最终选定的区块达成一致。

这里写图片描述

图 2-1 区块链结构示例

3、以比特币为例,了解区块链工作流程

以比特币网络为例,我们可以看到区块链技术在其中是如何运用的。

首先,比特币客户端发起一笔交易,将其广播到比特币网络并等待确认。 网络中的节点会将收到的一些等待确认的交易记录(另外还有前一个区块头的哈希值等信息)打包,形成一个候选区块。 然后,尝试寻找一个nonce串(随机串)放入区块中,使得候选区块的哈希结果满足一定的条件(比如小于某个值)。 查找此 nonce 字符串需要一定的时间来执行计算尝试。

一旦节点计算出满足条件的 nonce 字符串,该块在格式上就被认为是“合法的”,它可以尝试在网络中广播它。 当其他节点收到候选区块,对其进行验证,发现其满足约定的条件时,便将该区块识别为合法的新区块,并将其添加到自己维护的区块链中。 当大多数节点将区块添加到自己维护的区块链结构中时,该区块被网络接受,区块中包含的交易得到确认。

当然,在实现中会有很多额外的细节。 这里有两个关键步骤:

一是对一批交易完成共识(创建区块结构); 另一种是在区块链结构中加入一个新的区块,得到大家的认可,保证以后不可篡改。

比特币基于计算能力寻找随机数字符串的共识机制称为工作量证明(PoW)。 目前还没有已知的快速启发式算法使哈希结果满足一定的条件,只能进行试探性的暴力计算。 尝试的次数越多(工作量越大)比特币的核心技术是什么,计算出的概率就越大。

通过调整对哈希结果的限制,比特币网络控制了平均 10 分钟左右的时间来生成一个合法的区块。 计算区块的节点将获得区块内所有交易的管理费和协议发放的固定奖励费(目前为12.5个比特币,每四年减半)。 这个计算新区块的过程通常被称为挖矿。

读者可能会担心任何人都可以加入比特币网络。 如果网络中存在恶意节点列表,是否可以进行恶意操作,篡改区块链中的记录,从而破坏整个比特币网络系统。 例如,最简单的一种是故意拒绝承认接收到的其他节点生成的合法候选块,或者干脆拒绝来自其他节点的交易。

狗狗币是下一个比特币_比特币的核心技术是什么_比特币核心概念股

事实上,比特币网络中有大量(估计有数千个)维护节点,大部分节点都在正常工作,默认只识别看到的最长链结构。 只要网络中一半以上的节点不提前串通作恶,最长的那条链就有很大概率成为最终的合法链。 而且随着时间的推移,这个概率会越来越大。 例如,6个区块生成后,即使有一半的节点联合起来推翻确认结果,概率也只有(1/2)6≈1.6%,不到1/60的可能性。

当然,如果整个网络中的大部分节点联合起来作恶,也会导致整个系统无法正常工作。 实现这一目标往往意味着付出高昂的代价,而这些代价被作恶所获得的利益所抵消。

技术的演变和分类

自比特币网络设计以来,区块链技术就被大家发现并关注。 从最初服务于数字货币系统,到如今在分布式账本场景下发挥越来越大的技术潜力。

一、区块链的演进

比特币区块链已经支持简单的脚本计算,但仅限于数字货币相关的处理。 除了支持数字货币,还可以进一步泛化在区块链上进行的处理,即提供智能合约。 智能合约除了提供货币交易功能外,还可以提供更灵活的合约功能,进行更复杂的操作。

这样,扩展后的区块链已经超越了简单数据记录的功能,实际上有点“智能计算”的意思; 更进一步,它还可以为区块链添加权限管理和高级编程语言支持,以实现更强大的分布式账本,支持更多的业务场景。

从计算特性来看,我们可以看到现有区块链技术的三种典型演进场景,如表2-1所示。

场景功能智能合约一致性权限类型性能编程语言代表

公信数字货币

会计功能

没有或弱

工作量证明

没有任何

公链

降低

简单的脚本

比特币网络

公信的交易处理

智能合约

图灵完备

工作量证明、权益证明

狗狗币是下一个比特币_比特币的核心技术是什么_比特币核心概念股

没有任何

公链

受限制的

特定语言

以太网络

具有权限的分布式账本处理

商业加工

多语言,图灵完备

CFT、BFT等多种机制,可插拔

支持

联盟链

可扩展的

高级语言

超级账本

表2-1 区块链技术三种典型演进场景

2. 区块链与分布式记账

现代复式记账法(double entry bookkeeping)最早是由意大利数学家卢卡·帕乔利(Luca Pacioli)于1494年在《Summa de arithmetics, geometric, proportioni et proportionità》一书中制定的。 复式记账法同时记录每一笔账目的来源和去向。 首次在记账过程中引入对账核对功能,提高了记账过程的可靠性。

从这个角度来看,区块链是第一个自带对账功能的数字会计技术实现。

更广泛地说,区块链是一种去中心化的记录技术。 参与系统的节点可以不属于同一个组织,不需要相互信任; 区块链数据由所有节点共同维护,每个维护节点可以获得一份完整或部分记录的副本。

与传统记账技术相比,基于区块链的分布式账本应具备以下特点:

三、分类

根据参与者的不同,可分为公有(public)链、联盟(consortium)链和私有(private)链。

比特币核心概念股_狗狗币是下一个比特币_比特币的核心技术是什么

如果进一步引入权限机制,可以实现私有链和联盟链两种类型:

目前,公链更容易受到市场和媒体的关注,但更多的商业价值将落在联盟链和私有链上。

根据不同的使用目的和场景,可以分为以数字货币为目的的币链、以记录产权为目的的产权链、以众筹为目的的众筹链等。不局限于特定的应用场景。

现有的区块链实现大多至少包括网络层、共识层、智能合约和应用层结构,而联盟链的实现往往会引入一定的权限管理机制。

关键问题和挑战

从技术角度来看,区块链涉及的领域比较复杂,包括分布式系统、存储、密码学、心理学、经济学、博弈论、控制论、网络协议等,这意味着大量的工程实践技术挑战。

下面列出了目前业界比较关注的一些技术话题。

1.不可抵赖性和隐私保护

密码学的发展为解决这些问题提供了很多手段。 传统的解决方案包括Hash算法、加解密算法、数字证书和签名(盲签名、环签名)等。

随着区块链技术的应用,新出现的需求将刺激密码学的进一步发展,包括更高效的随机数生成、更高强度的加密、更快的加解密处理等。 同时,量子计算等新技术的出现也将带来更多挑战。 例如,目前商业化的加密算法如RSA算法在未来可能无法提供足够的安全性。

能否满足这些新要求,将取决于数学科学的进一步发展和新一代计算技术的突破。

2. 分布式共识

这是一个经典的技术问题,学术界和工业界都有大量的研究成果(包括Paxos、拜占庭系列算法等)。

问题的核心是如何在分布式网络中解决一个变化以获得一致的执行结果,这个结果是多方认可的,同时这个信息是确定的、不可逆的。

这个问题的需求在公开匿名的场景和有权限管理的场景有很大的不同,由此衍生出基于概率算法和确定性算法的两类思路。

最初,比特币区块链考虑了公共匿名场景下的最坏情况保证。 通过引入“工作量证明”策略避免少数人的恶意行为,并使用概率模型保证最后参与方的共识是最长链。 算法的核心思想是基于经济利益的博弈,让恶意参与者失去经济利益,从而保证大多数人的合作。 同时,必须在多个区块生成后才能实现确认,这是概率上的保证。 这种算法的主要问题是效率低下。 类似的算法还有 PoS、DPoS、以股权为抵押的 Casper。

后来更多的区块链技术(比如hyperbooks)开始考虑在有权限管理的场景下支持更多确定性的共识机制,包括经典的拜占庭算法,可以解决快速确认的问题。

共识问题将在很长一段时间内成为极具学术价值的研究热点。 核心指标将包括容错节点的比例、决策收敛速度、错误后的恢复和动态特性。 基于概率的算法如 PoW 理论上允许少于一半的不合作节点,而确定性算法如 PBFT 理论上允许不超过 1/3 的不合作节点。

三、交易表现

虽然总体来说,区块链并不适合高频交易场景,但出于金融系统的需求,业界目前非常关注如何在提高区块链系统交易吞吐量的同时,降低交易确认延迟。

目前,公共比特币区块链只能支持每秒约 7 笔交易的平均吞吐量。 一般认为,对于大额交易,安全的交易确认时间在一小时左右。 以太坊区块链的吞吐量略高,但交易性能也被认为是较大的瓶颈。

与传统的分布式系统不同,区块链系统难以通过简单地增加节点数量来横向扩展其处理性能。 事实上,传统区块链系统的性能很大程度上取决于单个节点的处理能力。 高性能、安全性、稳定性和硬件辅助加解密能力都将是考察节点性能的核心要素。

比特币的核心技术是什么_狗狗币是下一个比特币_比特币核心概念股

在这种场景下,为了提高处理性能,一方面可以提高单节点的性能(比如使用高配置的硬件),同时设计优化的策略和算法; 另一方面,它试图将大量高频交易放在链外,只用区块链记录最终的交易信息,比如比特币社区提出的“闪电网络”。 同样,侧链、影子链等思想在现阶段也具有一定的借鉴意义。 类似的设计可以将事务性能提高1到2个数量级。

此外,在联盟链的场景下,参与方之间存在一定的信任前提和利益约束,可以通过更优化的设计来换取性能的提升。 以Hyperledger Fabric项目为例,在普通虚拟机的配置下,单个客户端的交易吞吐量可达每秒数百笔交易(transactions per second,tps); 通过一定的工程优化或硬件加速,可以达到tps上千倍的吞吐量。

客观来说,目前开源的区块链系统已经可以满足很多应用场景的性能需求,但是与每秒数万笔交易的峰值时的大规模交易系统的吞吐性能还有很大差距。

4.扩展性

一个普通的分布式系统可以通过增加节点来水平扩展整个系统的处理能力。 对于区块链网络系统,取决于共识机制,这个问题往往没有那么简单。

例如,对于比特币和以太坊区块链,网络中每个参与维护的核心节点都必须维护完整的存储并进行智能合约处理。 此时,整个网络的总存储和计算能力取决于各个节点的能力。 即使网络中的节点过多,整个网络的性能也可能因达成共识的延迟而下降。 尤其是在公共网络中,由于大量低性能处理节点的存在,这个问题会更加明显。

要解决这个问题,从根本上就是要放宽每个节点必须参与完整处理的限制(当然网络中的节点必须能够协同完成完整处理)。 这个想法已经应用在超级账本中; 处理工作。

在联盟链模式下,高性能节点也可以专门作为核心节点,相对较弱的节点只能作为代理接入节点。

5、安全防护

目前,区块链最热门的应用场景是金融相关服务,而安全自然是讨论最多、最具挑战性的话题。 区块链在设计上采用了大量现代成熟的密码学算法。 但这能保证它的绝对安全吗?

世界上没有绝对安全的系统。

系统是人设计的,系统也是人操作的。 只要有人参与系统,就不可避免地会出现漏洞。 以下几个方面是难以避免的。

首先是立法。 如何规范区块链系统? 攻击区块链系统是否构成犯罪? 攻击银行系统会产生后果。 但目前还没有针对区块链(尤其是公有链)和基于它的实现的法律保护。

其次是软件实施的潜在漏洞。 考虑到已经使用了几十年的OpenSSL,居然还存在如此低级的漏洞(心血来潮),而且源代码完全公开,不禁让人对大量在线运行的系统保持谨慎。 对于金融系统而言,无论是客户端还是平台,哪怕是一个小小的漏洞,都可能造成难以估量的损失。

此外,公链的所有交易记录都是公开可见的,这意味着即使所有的交易都被匿名加密,也总有一天会被破解。 安全界普遍认为,只要物理上可以访问,就不是完全安全的。 事实上,文献已经证明,比特币区块链的交易记录很可能可以追溯到真实用户。

公链作为一个完全分布式的系统,缺乏有效的调节机制。 一旦启动并运行,问题就很难解决。 只要既得利益者联合起来反对,即使是修改得更高效、更完善也无法实施。 比特币社区已经有很多类似的争论。

最后,运行在区块链上的智能合约应用可能多种多样,可能存在潜在的漏洞。 必须有办法进行安全控制,在注册和运行前需要有合理的检测机制,避免恶意代码破坏。

2016年6月17日,“DAO系统漏洞被利用”事件直接导致利用者获取价值6000万美元的数字货币。 虽然对此事的反思仍在进行中,但事实再次证明,当前基于区块链技术的生产和应用必须经过精心设计和验证。 必要时,甚至应该引入“形式验证”和人工审核机制。

6. 数据库和存储系统

区块链网络中的大量信息需要写入文件和数据库进行存储。

观察区块链的应用,大量的读写操作,Hash计算和验证操作与传统数据库的行为有很大不同。 当时人们观察到互联网应用了大量的非事务性查询操作,设计了非关系型(NoSQL)数据库。 那么,针对区块链应用的这些特点,是否可以设计一些有针对性的特殊数据库呢?

LevelDB、RocksDB等Key-value数据库具有较高的随机写入和顺序读写性能,随机读取性能相对较差,广泛应用于区块链信息存储。 但目前面向区块链的数据库技术仍然是需要攻克的技术难点之一,尤其是如何支持语义更丰富的操作。

比特币的核心技术是什么_比特币核心概念股_狗狗币是下一个比特币

大胆预测,未来可能会出现一个更有针对性的“区块数据库”(BlockDB),致力于服务于区块链这样的新型数据服务,每条记录都会包含一个完整的区块信息,自然而然的会跟随着历史的信息是关联,一经写入确认,不可修改。 所有操作的最小单位将是一个块。 为了实现这种结构,需要原生支持高效的签名和加解密处理。

七、整合运营

即使大量企业系统准备迁移到区块链平台,在很长一段时间内,基于区块链的新业务系统仍将与现有的中心化系统融合共存。

两个系统如何共存,如何分工,如何合理调动业务往来? 如何排查和隔离故障? 如何在不同系统之间迁移现有数据并进行容灾? 区块链系统本身应该如何运行(如网络设计选择、状态监控、灾难恢复等)?

这些都是亟待解决的现实问题。 如果解决不好,将成为区块链技术落地的一大障碍。

趋势与前景

关于区块链技术发展趋势的讨论和争论从诞生之日起就从未停止过。 或许,读者可以从计算技术的演进史中得到一些启发。 计算技术的历史如图 2-3 所示。

这里写图片描述

图 2-3 计算历史

以云计算为代表的现代计算技术发展史上有几个重要的时间点和事件:

从这段历史中可以得出什么线索?

首先,技术领域存在周期性规律。 这个周期目前大概是7到8年。 或许就像人有“七年之痒”一样,科技也有七年的坎。 到了这个坎,要么自己突破,要么被新技术取代。 如果从比特币网络的推出(2009 年 1 月)算起,今年才刚刚开始。 因此,现在正是突破相关技术的好时机。

第二,最早的不一定是先驱。 创新固然好,但种子播得太早,没有合适的土壤,往往很难长成。 技术创新与科研创新的区别在于,技术创新必须从需求出发,过早或过晚都会错失良机。 尽早开展科研创新。 例如,20世纪出现的物理学巨匠,以其超前的研究成果,为随后一百多年的科技革命奠定了基础。

最后,事物的发展往往是持续的、长期的。 大多数新事物并不是凭空冒出来的。 他们往往会解决前人无法解决的问题,或呈现从未出现过的场景。 而且很多时候,新事物的出现需要长期的孵化; 坚持or放弃,故事不断重复。 笔者认为,只要朝着提高生产力的正确方向努力,迟早会有登上舞台的一天。

目前,区块链在数字货币(以比特币为代表)领域的应用已经比较成熟,而智能合约、分布式账本等方向还处于实践的初级阶段。 但毫无疑问,区块链技术确实为已经落地的领域带来了生产力的提升。 因此可以相信,随着相关技术的进一步发展,区块链技术必然会在更多领域大放异彩,尤其是金融科技相关领域。

误解

目前,由于区块链本身还是一个比较年轻的技术,很多人对区块链还存在一些误解。 以下是一些需要注意的问题:

首先,区块链不等于比特币。 虽然区块链的基本思想诞生于比特币的设计中,但时至今日,比特币和区块链已经成为两种毫无关联的技术。 前者更侧重于从数字货币的角度探索比特币的实验意义; 后者从技术层面探讨和研究可能的商业系统价值,试图在更多场景中释放智能合约和分布式账本带来的技术潜力。

第二,区块链不等于数据库。 虽然区块链也可以用来存储数据,但它需要解决的核心问题是多方互信。 单纯从存储数据的角度来看,其效率可能不高,不建议将大量原始数据放在区块链系统上。 当然,在现有的区块链系统中,数据库相关技术非常关键,直接决定了区块链系统的吞吐性能。

最后,区块链不是万能的颠覆性技术。 作为多种现有技术融合产生的新生事物,区块链与现有技术的关系是一脉相承的。 它在解决多方协作和可信处理方面向前迈进了一步,但并不代表它是万能的,也不会彻底颠覆现有的商业模式。 长期以来,区块链的适用场景仍需不断探索,必须与现有系统具有长期合作共存的关系。

概括

本章对区块链相关核心技术进行分析,包括其定义、工作原理、技术分类、重点问题和理解误区等。通过本章的学习,读者可以对区块链相关核心技术形成一个整体的认识。比特币的核心技术是什么,对区块链在整个信息技术产业中的地位和发展趋势形成更加清晰的认识。

除了数字货币应用,现在业界也越来越关注区块链技术可能为商业应用场景带来的算力。 开源社区发起的“Ethereum”、“Hyperbook”等开放项目让用户可以利用它们快速设计复杂的分布式账本应用。

有理由相信,随着更多商业应用场景的出现,未来区块链技术将在金融和信息技术领域占据越来越重要的地位。