如果你关注银行、投资或数字货币新闻有一段时间了,大概已经见过“区块链”这个词,它是为 Bitcoin 存储记录的技术。值得花点时间把它真正弄懂。每当你开始了解区块链,往往会碰到类似“区块链是分布式、去中心化且公开的”这样的定义,第一次读的时候并没有太大帮助。
好消息是,无论标准定义听起来多让人困惑,区块链其实真的很好懂。
区块链是什么?
既然这项技术这么复杂,为什么商业界会认为任何人都能掌握区块链的基本概念?因为区块链从字面上看,就是一条把一个个区块连起来的链。这是直译,但在这里并不是这个意思。在这个语境下说“区块”和“链”,指的是数字信息:区块就是数据,链就是存放数据的数据库。
区块链中的“区块”由数字信息组成,里面存放着三样东西:
- 区块存储交易的详细信息:你在 Amazon 等网站上购物的日期、时间和金额。(注意:这里的 Amazon 购物只是举例说明,Amazon 并不是在区块链上运行的。)
- 区块存储交易参与者的信息。记录你这笔 Amazon 购物的区块,会记下你和 Amazon.com, Inc. 双方的参与,但记录的不是你的真实姓名,而是“数字签名”,它更像是用户名,而不是身份证件。你的购买记录会被记下,但不会暴露你的个人身份。
- 区块还存储着让它与其他所有区块区分开来的信息。就像你我都有名字来区分彼此,每个区块都存储着一个独一无二的代码,叫作哈希(hash),用来把它和其他区块区分开。所以当你在 Amazon 付款、这笔交易完成后,下一笔交易就可以接着进行;即使你这笔交易的细节和上一笔几乎一模一样,哈希也能保证每个区块仍作为独立的记录被存储。
上面的例子把一个区块当作只存储一笔 Amazon 购物,但实际情况并不完全如此。区块链上的每个区块最多可以存放大约 1 MB 的数据,具体取决于每笔交易的大小,这意味着一个区块可以同时存放数千笔交易。
区块链如何运作
当一个区块存储了新数据,它就会被添加到区块链上,这正是这个名字所描述的:一连串连在一起的区块。一个区块要被添加到链上,必须经过四个步骤。
- 必须发生一笔交易。你用自己的账户在 Amazon 上买东西。点击确认订单后,这笔交易就产生了,下一笔交易也可以接着进行。
- 这笔交易必须经过验证。购买完成后,必须对它进行核查。其他公共记录,例如证券交易所、维基百科、你家附近的图书馆,都有专人负责核实新的条目。而在区块链上,这项工作交给了分布在世界各地的计算机网络,通常有数千台。(在 Bitcoin 网络上,参与的机器数量达到数百万台。)你下单时,这个网络会检查这笔交易是否确实如你所说那样发生,并确认时间、金额和参与者等细节。
- 这笔交易必须存入一个区块。你的交易经过核查和确认后,金额、你的数字签名和 Amazon 的数字签名等细节,会和可能多达数百或数千笔其他交易一起存入一个区块。
- 这个区块必须被赋予一个哈希。一个区块中的所有交易都通过验证后,必须给这个区块一个独一无二的识别代码,也就是哈希。只有生成哈希之后,这个区块才能被添加到区块链上。
新区块被添加到区块链后就会公开,任何人都能查看它的内容,包括你。如果你打开 Bitcoin 区块链浏览器,就会发现你能看到交易数据,包括区块被添加的时间(“Time”)、它在链上的位置(“Height”)以及由谁添加(“Relayed By”)。
区块链是私密的吗?
任何人都可以查看区块链的内容,只要把你的电脑连接到区块链网络即可。连接之后,你的电脑会收到一份区块链副本,每当有新区块加入,它就会自动更新,就像有人发了新帖子时社交动态会自动刷新一样。
网络上的每台电脑都保存着自己的一份区块链副本,这意味着同一条链有数千份副本,Bitcoin 的情况则是数百万份。因为每份副本都完全相同,数据又分散在整个网络中,所以极难被操纵。不存在一本放在某个地方、说了算的账本让攻击者去篡改。想要改动任何内容,攻击者就必须同时改掉网络上的每一份副本。
如果你打开 Bitcoin 区块链浏览器,会发现查看交易并不需要登录或表明身份。区块链交易数据并非完全匿名,但其中不包含个人身份信息,显示的是数字签名或用户名,而不是某个具体的人。
这就引出了一个显而易见的问题:如果你不知道是谁把区块加到链上的,为什么要信任这条链,或者信任维护它的计算机网络?
区块链安全吗?
区块链通过多种方式同时保证安全和可信。首先,新区块总是按时间顺序排成一列添加,新区块一定接在链的“末端”。如果你打开 Bitcoin 区块链浏览器,就能看到每个区块在链上的位置,标注为“Height”。例如在 2019 年 2 月,区块高度约为 56.2 万。
区块一旦被添加到链的末端,再回头修改它的内容就变得极其困难。每个区块都包含自己的哈希,以及前一个区块的哈希。哈希由一种数学函数生成,它把数字信息转换成一串数字和字母,只要信息有任何一点改动,哈希也会随之改变。
正是这个特性让区块链安全。假设攻击者想篡改你的 Amazon 交易,让你付两次钱。他一改金额,这个区块的哈希就会改变,但链上下一个区块记录的仍是旧的哈希。为了掩盖痕迹,攻击者就得把下一个区块也改掉,而这又会改变它的哈希,就这样一路改下去。
因此,改动一个区块就意味着要改动它后面的所有区块,而重新计算所有这些哈希需要多到不现实的算力。简单来说:区块一旦被添加到区块链上,就很难修改,实际上也不可能删除。
至于信任问题,区块链会对想加入网络、往链上添加区块的计算机进行考验。这些考验叫作共识机制(consensus model),要求参与者先“证明”自己才能参与。最知名的例子是 Bitcoin 使用的工作量证明(proof of work)。
在工作量证明机制下,计算机必须通过解一道复杂的数学题来证明自己做了“工作”。解出一道题,就能获得向区块链添加一个区块的权利。用这种方式添加区块,在加密货币圈叫作挖矿,这并不容易。据区块链信息网站 BlockExplorer 的数据,截至 2019 年 2 月,在 Bitcoin 网络上解出一道这样的题的概率约为 5.8 万亿分之一,计算机必须运行强大且耗电的程序,才有一点现实的机会。
工作量证明并不能让攻击变得不可能,但能让攻击变得得不偿失。想篡改区块链的攻击者,面对的也是和其他人一样的 5.8 万亿分之一的概率,而所需算力的成本几乎肯定会超过他能得到的任何好处。






แชร์:
LoRaWAN 是什么,和物联网有什么关系?
每位 Trezor 用户都应该看的一则警告