区块链

什么是区块链,区块里装着什么,网络如何就同一份历史达成共识,以及为什么过去的记录很难被篡改。

3 分钟 · 1270 字更新于: #基础知识#区块链#技术

区块链是一种维护共享数据库的方式:这个数据库由许多独立参与者同时保存和验证。记录被分组打包成一个个区块,区块之间首尾相连,形成一条链,“区块链”的名字就是这么来的。它的核心思想是:你不需要依靠一个中心化的管理员来相信这些记录,因为所有人都遵循同一套验证规则,而这些规则已经写进了软件里。

一个简单的比喻

想象有一本记账簿,小组里每个成员手里都有一份副本。有人新增一条记录时,其他人会按照共同的规则核对,然后也把它抄进自己的账本。如果有人偷偷改动了自己副本里的一行旧记录,马上就会露馅,因为他的账本和其他人的对不上了。

区块链的工作方式与此类似。这些“账本”就是被称为节点的计算机,只不过核对工作不是靠人工完成,而是依靠密码学和数学。

区块里有什么

每个区块通常包含:

  • 一组交易,例如地址之间的转账。
  • 时间戳,大致标明区块的生成时间。
  • 上一个区块的哈希值,相当于前一个区块的“指纹”。
  • 技术数据,供共识机制使用。

哈希值是一种特殊数学函数的输出结果,这种函数能把任意输入转换成固定长度的字符串。哪怕输入只改动一个字符,得到的哈希值也会完全不同。想提前预测一个哈希值,在实践中是不可能的。

为什么历史很难被改写

由于每个区块都保存着前一个区块的哈希值,所有区块便环环相扣。如果有人修改了某个旧区块中的一笔交易,这个区块的哈希值就会改变;下一个区块指向的哈希值随之对不上,链条也就断了。攻击者要想让伪造的记录看起来合法,就必须重做之后的每一个区块,而且速度还要比全网其他参与者添加新区块更快。

在大型网络上,这需要投入极其庞大的资源。正因如此,埋在链条深处的记录被认为实际上是永久性的。

网络如何达成一致

成千上万的独立参与者需要最终拥有同一个版本的历史。他们用来达成一致的规则叫作共识机制,其中最有名的有两种:

  • 工作量证明(Proof of Work)。被称为矿工(miner)的参与者进行大量计算,谁先找到有效解,谁就获得添加下一个区块的权利。比特币采用的就是这种方式。
  • 权益证明(Proof of Stake)。区块由验证者提议和确认,他们需要锁定自己的币作为抵押。如果作恶,他们可能失去部分抵押。以太坊已经转向了这种模式。

两种方式的目标相同:让作弊的代价高于遵守规则。

公有链与私有链

  • 公有链,比如比特币和以太坊,对所有人开放。任何人都可以运行节点、发送交易或浏览完整的历史记录。
  • 私有链或许可链只对某个机构批准的参与者开放。它们更接近传统数据库,只是在记录保存方面多了一些保障。

人们谈论加密货币时,通常指的是公有链。

区块链上还能运行什么

数字货币是区块链最早的应用。后来出现了能够运行智能合约的网络。智能合约是按照预设规则自动执行的程序,去中心化金融(DeFi)、NFT、稳定币以及许多其他服务都建立在它之上。

局限性

区块链也有自己的取舍:

  • 速度与容量。 公有链能处理的交易数量少于中心化支付系统。Layer 2 方案是行业解决这一问题的途径之一。
  • 手续费。 网络繁忙时,交易成本可能明显上升。
  • 不可撤销。 一笔转错的交易通常无法撤回。
  • 透明性。 所有内容对所有人可见,这对隐私来说未必是好事。
  • 垃圾进,垃圾出。 区块链能保证记录未被篡改,却无法保证原始信息本身是真实的。

要点回顾

  • 区块链是一个由众多独立参与者共同维护和验证的共享数据库。
  • 区块通过哈希值相互链接,这使得修改旧记录变得极其困难。
  • 网络通过共识机制(例如工作量证明或权益证明)就历史达成一致。
  • 区块链不仅支撑加密货币,还支撑智能合约以及建立在其上的各种应用。