区块链核心技术概述区块链的定义和原理,区块链上的第一个描述性文件是由Nakamoto Satoshi编写的文章《Bitcoin:对等电子高速缓存系统》,但本文的重点是讨论比特币系统没有明确说明区块链的定义和概念。需要指出的是,区块链是一种用于记录比特币交易账户历史的数据结构。
此外,在Wikipedia上给出的定义中,区块链类似于分布式数据库技术,并且通过维护数据块的链结构,可以维持不断增长的、不可篡改的数据记录。
区块链技术的最早应用出现在比特币项目中。作为比特币背后的分布式会计平台,比特币网络已经稳定运行了八年而没有集中管理,支持大量的交易记录,并且从未有过严重的漏洞。区块链结构是不可分割的。
区块链技术本身仍在迅速发展,相关的规范和标准仍在不断成熟。
2.基本原则
区块链的基本原则并不复杂。首先,区块链包含三个基本概念:
交易: - 二次对账的操作,导致分类账状态发生变化,例如添加转账记录;
阻止:记录一段时间内发生的所有交易和状态结果,这是对分类账当前状态的共识;
链:由块发生的顺序组成的块。它是整本书状态变化的日志记录。
如果区块链用作状态机,则每个事务都试图改变状态一次,并且每次共识产生的块是参与者确认由块中的事务引起的状态改变的结果。在实现方面,首先假设有一个分布式数据记录簿,这个帐号只允许添加、不允许删除。基础书的基本结构是线性链表,也是其名称“区块链”的来源。链表由一系列“块”组成(如图2-1所示),后继块记录前导块的哈希值。要添加的新数据必须放在新块中。可以通过计算散列值来快速检查此块(以及块中的事务)是否合法。任何维护节点都可以提出新的法律框架,但必须采用某种共识机制来就最终选定的块达成一致。
3.以比特币为例,了解区块链的工作过程
以比特币网络为例,您可以看到区块链技术的使用方式。
首先,比特币客户端启动一个事务,将其广播到比特币网络并等待确认。网络中的节点将打包一些等待确认的事务记录(除了前一个块头的哈希值之外)以形成候选块。然后,尝试在块中找到随机数字符串(随机字符串),使得候选块的散列结果满足某些条件(例如小于某个值)。搜索此nonce字符串需要一些时间来执行计算尝试。
一旦节点计算满足条件的nonce字符串,该块在格式上被认为是“合法的”,并且可以尝试通过网络广播它。其他节点接收候选块,验证它,并发现它符合约定的条件。它识别该块是合法的新块并将其添加到由其自身维护的区块链中。当大多数节点将块添加到它们自己维护的区块链结构时,网络接受该块并确认块中包含的事务。
当然,实现中会有很多额外的细节。这有两个关键步骤:一个是完成一批交易的共识(创建块结构);另一种是向区块链结构中添加新区块,这是每个人都认可的,并确保未来不会被篡改。
这种基于计算能力来发现随机数字串的比特币共识机制称为工作证明(P〇W)。目前,没有已知的用于哈希结果的快速启发式算法来满足某些条件,并且仅可以执行试验暴力计算。您尝试的次数越多(工作量越大),计算的概率就越大。通过调整哈希结果的限制,比特币网络控制平均生成一个合法的块大约10分钟。计算块的节点将收到块中所有交易的管理费和协议固定分配的激励费(目前12.5比特币,每四年减半)。这个计算新块的过程通常称为挖掘。
读者可能会担心任何人都可以加入比特币网络。如果网络中存在恶意节点,它可以执行恶意操作以篡改区块链中的记录,从而破坏整个比特币网络系统。例如,最简单的,故意不识别他人生成的合法候选块,或者简单地拒绝来自其他节点的事务。
实际上,比特币网络中存在大量(预测的数千个)维护节点,并且大多数节点正常工作。默认情况下,只识别看到的最长链结构。只要网络中不超过一半的节点提前串通采取恶意行为,最长的链条将成为极有可能性的最终法律链。随着时间的推移,这种可能性将越来越大。例如,在生成六个块之后,即使一半节点连接在一起以破坏确认结果,概率仅为(1/2)6? 1.6%,小于1/60。
当然,如果将整个网络中的大多数节点组合起来做恶,整个系统将无法正常工作。要做到这一点通常意味着要付出很多钱,与做恶行为所获得的收益相比,这是值得的。
由Git版本管理的区块链结构和有向无环图数据结构具有相同的设计。
网友评论