区块链学习笔记:重新捋一捋区块链
区块链(blockchain),正如名字所言,区块链是包含信息的区块链。
通过查阅资料得知,在1980年代末期研究团队首次提出了区块链这一概念。其主要目的是为了在数字文档中添加时间戳以防止备份或篡改。从而引出了时间戳这一概念。作为一种确保事件唯一性的机制,在区块链系统中被比喻为公正见证者。
直到2009年时中本聪才对这一技术较为充分地应用,并未曾建立比特币。随着时间推移,在经历了超过十年的发展后,在这一领域的时间戳技术逐步发展和拓展到了区块链技术本身,并形成了一个完全开放的分布式账本(distributed ledger)。当数据被记录于区块链时变得难以更改。
为什么其背后的工作原理能够保证区块链中数据存储的高度安全性?
首先,在区块链体系中存在一个个独立的区块(block),在分析时我们通常会从局部逐步延伸至整体进行研究
散列值
散列值
散列值
散列值
散列值

Data:然后将这些Data存储于区块中则由其特定类型的特性所决定。具体而言,在采用比特币区块链的情况下,则将这些Data即为交易记录的主要细节——涵盖付款方、收款方以及交易金额等关键信息。
哈希(hash):在密码学领域中,“哈希函数”类似于独一无二的生物特征标识符。“生物特征识别系统”通过计算特定输入数据的唯一数字指紋来进行身份验证。“当某个区块被创建时”,系统会自动计算出该特定区块的哈希值。“就像每个人出生时都有独特的身份标记一样”。一旦修改该区块的内容,“其对应的哈希值也会随之发生变化”。这就如同通过比对指纹来判断是否为同一人;一旦发现新的指纹与之前的记录不符,“就能确定这个人已发生了变化”。这种机制保证了数据完整性和安全性。
前一个哈希值(hash of previous block):正是因为有了这个前一个哈希值,才使得各个区块能够依次相连。这正是构建了可靠的区块链网络的基础所在。那么为何将这些区块串联起来就能实现如此高的安全性?绘制三个这样的区块时,则必须至少包含几个关键点?绘制三个这样的区块时,则必须至少包含几个关键点?绘制三个这样的区块时,则必须至少包含几个关键点?

根据图形可知,
前一哈希值与前一区块的哈希值相互对应。
依次连接形成链表结构。
特殊的第一块链则因为不具备前面的可连接块链而没有previous hash。
我们称此特殊块链为空洞块链(Genesis block)。
假设我们对某个区块的内容进行了更改,则该区块的哈希值随之变化。(如图所示)通过图表展示(如图所示),我们可以清晰地观察到各个区块的哈希值发生了变化。

当2号区块的哈希值发生更改时(即它的哈希值发生变化),该变化将导致与3号区块上一个节点的哈希值不同(即两者不一致)。此时(即因此),3号新区块及其后续所有新区块都会失效(因为这些新区块不再存储直接父节点的有效哈希值)。因此(由此可见),只要修改任意新区块的内容,则整个后续的新区块链节点都会失效。
实际上,在试图防止信息篡改时,仅仅依靠单一的哈希值和前一个哈希值是不够安全的。这是因为目前计算机运算速度极为快捷,在短短数十秒内便能处理数以十万计的哈希计算。这样一来,在短时间内仅需一台计算机便能实现对整个区块链的有效篡改,并重新生成符合逻辑的新区块链。
在区块链领域中也采用了...即工作量证明(Proof-of-Work, PoW),这一机制旨在减缓新区块的生成速度并加强现有区块的安全性。
在比特币区块链系统中验证一个新区块所需的时间约为10分钟。这一过程即为验证一个区块所需的时间。而基于工作量证明(PoW)机制的设计使得篡改交易变得极其困难。具体而言若想篡改任意一个新区块则必须重新验证该新区块之后所有后续新区块的工作量证明由于需要处理成千上万的新区块因此这一过程耗时漫长直至全部完成才能确保交易安全。这种安全性主要源于所使用的哈希算法以及工作量证明机制的有效结合。
区块链提供自我保护的一种替代手段是采用P2P网络(peer to peer)架构。在这样的架构下,每个节点都可以自由加入网络。一旦一个节点加入该网络,在线的参与者将自动获得完整的区块链副本,并能够通过这个副本进行验证操作以确保所有数据都是有序且可信赖的。
当一个新用户创建一个新的交易记录时(tx record),系统会自动地将其发布到整个分布式账本中
区块链从2009年开始持续发展,在这一过程中产生了智能合约这一重要组成部分。此前的内容已经介绍过智能合约的概念:它是一种存储于区块链上的大量程序代码,在满足特定条件时能够根据预设规则自动执行特定操作。
由中本聪所著的《比特币:一种点对点电子现金系统》一书中首次提出了比特币这一数字货币体系。其中的技术基础是区块链技术。然而,在书中涉及的技术细节有些难以理解(笑)。不过读起来非常有趣且具有启发性。
