2020-10-13 1630
区块链早已火爆全球,但依然有不少“保守派”不知所云。这种技术被称为区块链,它可能正在引领新一轮的革命——会产生类似于工业革命、电、互联网一样的影响。
抛开围绕着区块链所有的炒作和谜团,它本质是一种保存记录的方式,几乎能保存任何一种记录:比特币及其他的金融交易记录、合同记录、医疗领域敏感的患者信息等等。
区块链基本上是保护任何需要防范篡改的资产和交易的好办法,覆盖的领域有运输、投票、医疗记录、名誉、身份、物联网等。事实上,整个互联网的档案都能保存在区块链上
使用区块链保存的记录的开创性在于:
1.很难——几乎不可能被篡改;
2.基本上能永久保存,无法删除;
3.不被任何一个中央机关(个人,机构或服务器)所拥有或控制,价值是否能产生与交换取决于诚实的大多数。
区块链工作原理
在继续之前,让我们深呼吸一会:回顾一下你之前阅读的每一句。好,继续:
这是啥?!
你看到的是专属于这篇文章的一段数字指纹,它是唯一的。
这是个随机产生的过程——包含任意字母与数字的数据被截断、打碎和混合,直到成为一个无法识别的字符串被称为散列。
散列是区块链的核心概念之一。另外三个核心概念是公共/私人密钥加密、通过P2P(点对点)网络分散化,然后就是区块链数据结构本身。
现在,关于散列我们需要记住两点。
首先,对于任何给定的输入,生成的散列总是相同的。你可以将本文的内容放入剪贴板,并通过散列算法(如SHA-256)传递,你将获得与我们在上面粘贴的一模一样的字符串(注:需输入英文原文)。
其次,在输入数据时,即使是有最微小的不同,也会产生一个完全不一样的散列。
公钥加密
在区块链研究范围内,所谓公钥与私钥的加密,其实就是允许我们去追踪虚拟身份与签名的技术。这项技术虽然复杂但它的预期结果很简单:
私钥允许所有者加密数据;
公钥允许其他的所有人解密数据。
因此,一个私钥函数能作为一个数字签名,是因为除了所有者没有人能编辑加密数据。
链接在一起的区块
在区块链的术语中,区块是一个有永久记录的数据集,比如记录了多笔金融交易、真实的房产证明,或医疗记录——当记录它们时都会产生一个时间戳。
在区块中所有的数据都会被弄散,转变为一个唯一的字符串,正如前文所说的。
好看,这些是区块。现在,让我们把区块连接成区块链。
由于这些区块包含永久记录的数据,为了跟踪新数据,需要创建新的区块(以便记录新的交易、房地产所有权的变化、最近的体检等等)。
这些区块被血肉相连:
除了存储新的交易数据,每一个新产生的区块同时还会储存上一个区块的散列值。
这意味着最近的交易记录包含其中的整个交易记录。
如此紧密缠绕的区块链很难被篡改——任何地方如果有任何一点点数据被改变,那么该笔交易的涉及的整个区块链便会崩溃,变得无效,此时作弊者的攻击也变得毫无意义。记住:
数据中最微小的差异会产生完全不同的散列。
由于每个区块都包含前边区块的散列,所以任何篡改都会破坏链条,因此被破坏的数据会变得明显被发现,作弊者无处可逃。
挖矿
最后一个核心概念就是挖矿。如果比特币并不以物质实体(比如贵金属)存在,矿工们如何开采?
这实际上只是另一个极具独创性的解决方案,能增加一层安全性。
假设一个拥有军事级计算能力的神一样的黑客想要篡改一个区块,那么他需要去控制住相对区块链P2P网络范围内所有节点的一个临界值(超过全网50%),才能去使一个被篡改的交易生效(比如,支付了100美元之后,又将这100美元重新支付给别人。)
区块链中的区块是通过协议验证的,协议需要非常大的计算机算力,以至于执行它的成本远远超过了从篡改中获得的任何可能的利益。
这就是用于验证区块链中区块的方法——所谓的“挖矿”。它的工作原理如下:
首先,为一个区块链设置一个有效的标准。每个散列值必须以4个0开头。
然后,区块链P2P网络(某人的电脑)中的某个节点要采用一个未经验证的区块时——包括该区块携带的所有记录-——并尝试去添加正确的字节组合——一个随机数,以便生成以4个0开头的散列值。
这相当于要进行数不胜数的试验和产生错误值。CPU要筛选大量的组合,直到找到那个正确的数值来添加到区块,以确保它以4个0开头。
这个系统的好处是,矿工非常难以生成一个有效的区块链随机数,但一旦发现,很容易去验证这是正确的散列值(只要通过散列算法计算,看看它是不是以4个0开头)
因此,一旦区块链P2P网络中的某个节点“接到重活”,整个网络就能够验证它要确认的那个区块的有效性。网络各节点共同保证信任,使通过掌控网络中大部分节点来控制整个系统之事不可能发生。
区块链因比特币开始闻名于世,实际上还有许多其他的应用场景能够通过区块链技术受益。
Linux基金会开源软件学园 Copyright © 2019-2024 linuxfoundation.cn, ICP license, no. 京ICP备17074266号-2