主页 > imtoken 下载 > 区块链的基本特征和核心技术

区块链的基本特征和核心技术

imtoken 下载 2024-01-22 05:07:32

巧用造化,一心战胜天工。

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

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

定义与原理

1、定义

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

此外,在维基百科给出的定义中,区块链类似于分布式数据库技术。通过维护数据块的链式结构,可以保持不断增长和防篡改的数据记录。 .

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

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

2、基本原则

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

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

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

这里写图片描述

图 2-1 区块链结构示例

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

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

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

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

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

一个是完成一批交易的共识(创建区块结构);另一种是在区块链结构中增加一个新的区块,让大家认可,保证未来不可篡改。

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

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

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

实际上,比特币网络中有大量的维护节点(估计有上千个),而且大部分都正常工作,只承认默认看到的最长链结构。只要网络中超过一半的节点不预先串通采取恶意行为,最长的链就会大概率成为最终的合法链。而且随着时间的推移,这个概率会越来越大。比如生成6个区块后,即使有一半的节点联手颠覆确认结果,概率也只有(1/2)6≈1.6%,低于1 /60 的可能性。

当然,如果整个网络中的大多数节点一起作恶,就会导致整个系统无法正常工作。这样做往往意味着要付出很多代价,与作恶所得到的好处相比,是得不偿失的。

技术演进与分类

区块链技术在比特币网络的设计中已经被大家探索和关注,从最初的服务数字货币系统在分布式账本场景中发挥着越来越大的技术潜力。

1、区块链的演进

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

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

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

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

行业数字货币

会计功能

没有或较弱

工作量证明

没有

公链

降低

简单脚本

比特币网络

公信的交易处理

智能合约

图灵完备

PoW、PoS

公链

有限

特定语言

以太坊网络

许可的分布式账本处理

业务处理

多种语言,图灵完备

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

支持

联盟链

可扩展

高级语言

超级账本

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

< @2、区块链和分布式记账

现代复式记账系统(double entry boo kkeeping)最早由意大利数学家卢卡·帕乔利(Luca Pacioli)于1494年在《算术、几何、比例和比例的总和》一书中提出。复式记账法同时记录每个账户的来源和去向。记账过程中首次引入对账验证功能,提高了记账过程的可靠性。

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

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

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

3、分类

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

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

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

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

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

关键问题和挑战

从技术上看区块链的四大核心技术是什么,区块链涉及的领域很复杂,包括分布式系统、存储、密码学、心理学、经济学、博弈论、控制论、网络协议等,这意味着工程上的技术挑战很多练习。

以下是目前业界比较关注的一些技术话题列表。

1、不可否认性和隐私保护

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

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

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

2、分布式共识

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

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

在公开匿名的场景和有权限管理的场景,这个问题的要求有很大的不同,导致了基于概率的算法和确定性算法两种思路。

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

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

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

3、交易表现

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

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

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

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

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

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

4、可扩展性

常见的分布式系统可以通过添加节点来横向扩展整个系统的处理能力。对于区块链网络系统,依赖于共识机制,这个问题往往没那么简单。

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

要解决这个问题,从根本上放宽每个节点必须参与完整处理的限制(当然,网络中的节点必须能够合作完成完整的处理),这个想法得到了在超级账本中。应用;同时最大限度地减少核心层的处理工作。

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

5、安全保护

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

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

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

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

第二个是软件实现的潜在漏洞。考虑到已有数十年历史的 OpenSSL 仍然存在如此低级的漏洞(心脏出血),而且源代码完全开放,对于大量在线运行的系统,不禁要谨慎。对于金融系统而言,无论是客户还是平台,哪怕是一个小小的漏洞,都可能造成不可估量的损失。

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

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

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

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

6、数据库和存储系统

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

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

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

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

7、集成与运营

尽管大量企业系统准备迁移到区块链平台,但长期以来,基于区块链的新业务系统势必与现有的中心化系统共存。

两种制度如何共存,如何分工,如何合理转移彼此的业务交易?如何排查和隔离故障?如何在不同系统之间迁移现有数据并做好灾难准备?区块链系统本身应该如何运作(如网络设计选择、状态监控、容灾等)?

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

趋势与前景

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

这里写图片描述

图 2-3 计算的历史

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

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

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

其次,最早的不一定是先驱者。创新固然好,但过早播种的种子在没有合适土壤的情况下往往难以生长。技术创新与科研创新的区别在于,技术创新必须以需求为基础,过早错过机会。科研创新越早越好。比如20世纪出现的伟大物理大师,其先进的研究成果为随后100多年的科技革命奠定了基础。

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

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

误解

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

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

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

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

总结

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

除了数字货币应用,现在业界越来越关注区块链技术可能给商业应用场景带来的算力。 “以太坊”和“超级账本”等开源社区发起的项目允许用户快速设计复杂的分布式账本应用程序。

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