ArbTide

区块链是什么?区块、哈希与共识机制如何运作

区块链是一本共享的交易账本,交易被打包成区块,通过哈希值相连,并由许多计算机共同维护。了解共识机制和区块确认如何运作。

更新于

区块链(Blockchain)是一种共享的数字账本:交易被打包成一个个区块,每个区块都通过密码学哈希值(Hash)与前一个区块相连,并由许多独立的计算机各自保存相同的副本。由于没有任何单一的一方控制这份记录,参与者无需信任任何银行或公司,就能就“谁拥有什么”达成一致。区块链正是 Bitcoin、Ethereum 等各种加密货币背后所依赖的底层技术。

核心要点

  • 区块链是一本只能追加的账本(Append-Only Ledger):新数据只会不断被添加进来,而旧数据不会被修改。
  • 区块与区块之间通过哈希值串联在一起,哈希值就相当于区块内容的数字指纹(Digital Fingerprint)。
  • 共识机制(Consensus Mechanism)决定由谁添加下一个区块,最常见的是工作量证明或权益证明。
  • 确认数(Confirmations)衡量的是一笔交易在链上被埋得有多深;确认数越多,这笔交易就越难被撤销。
  • 公有区块链(Public)对任何人开放;许可制区块链(Permissioned)则会限制谁可以参与。
  • 出块时间(Block Time)和确认规则会直接影响你在交易所之间转移资金的速度。

区块与哈希

区块(Block)由一批交易和一个区块头(Block Header)组成。区块头包含时间戳(Timestamp)、该区块内所有交易的摘要,以及其中最重要的前一个区块的哈希值。

哈希值是哈希函数(Hash Function)的输出结果,这个函数可以把任意长度的数据转换成一串固定长度的字符。它有两个非常重要的特性:

  1. 相同的输入,永远会得到相同的输出。
  2. 输入哪怕只改动了一个字符,输出也会变得完全不同。

由于每个区块都存储着前一个区块的哈希值,这些区块就一环扣一环地构成了一条链。如果有人修改了某个旧区块中的一笔交易,该区块的哈希值就会改变,下一个区块中存储的链接就不再匹配。其后的每一个区块也都会随之失效。网络中诚实的节点会拒绝接受这个被篡改过的版本。

节点与共识

节点(Node)是一台保存着区块链完整副本、并按照网络规则逐一检查新交易的计算机。由于有成千上万个节点各自保存着副本,它们需要一种方式,来就下一个区块应该是哪一个达成一致。这正是共识机制所承担的职责。

工作量证明(PoW) 权益证明(PoS)
由谁添加区块 矿工(Miner) 验证者(Validator)
投入的是什么 算力和电力 作为抵押品锁定的币
作恶的惩罚 白白浪费掉的能源成本 质押的币可能被销毁(“罚没”,Slashing)
知名的实例 Bitcoin Ethereum

无论在哪种机制下,要想改写历史,攻击者都必须控制网络中大部分的算力或质押的币,而这在大型网络上代价非常高昂。相比之下,算力或质押量较少的小型网络,被攻击的成本则要低得多。

确认与最终确定性

当你的交易被打包进一个区块时,它就获得了一次确认(1 Confirmation)。此后在这个区块之上每增加一个新区块,就再多一次确认。确认次数越多,交易被撤销的可能性就越小,因为攻击者必须重新构建更多的区块才能改写它。

此外,一些权益证明链还具有最终确定性(Finality):在经过某个检查点(Checkpoint)之后,协议本身就会把之前的区块视为不可逆转。

各家交易所会为每个网络分别设定各自的确认数要求,只有达到要求后才会为你的充值入账。计算实例:假设两家交易所在为充值入账之前提出以下要求。

网络 大致出块时间 所需确认数(假设值) 大致等待时间
Bitcoin 10 分钟 3 3 × 10 = 约 30 分钟
出块时间 12 秒的链 12 秒 64 64 × 12 = 768 秒 ≈ 13 分钟
出块时间 2 秒的链 2 秒 30 30 × 2 = 60 秒

出块时间只是一个平均值,当网络拥堵或交易所暂停充值时,实际的等待时间可能会更长。对于任何需要通过转移币来捕获价格差的人来说,这段延迟都是一项实实在在的成本:在资金到账之前,价格可能就已经变了。

公有链、私有链与 Layer 2

  • 公有区块链(Public Blockchain),例如 Bitcoin 和 Ethereum,允许任何人运行节点、发送交易并读取完整的历史记录。
  • 许可制区块链(Permissioned Blockchain)只允许经过批准的成员参与。一些企业会使用它们,但它们并不具备公有链那样开放、抗审查(Censorship-Resistant)的特性。
  • Layer 2 网络(二层网络)在主链(Layer 1)之外处理交易,再把压缩后的结果提交回主链,以增加一些复杂度为代价换取更低的手续费。

许多区块链还可以运行智能合约(Smart Contract),也就是直接在链上执行的程序。正是它们让代币、去中心化交易所以及 DeFi 生态中的其他应用成为可能。

区块链无法保证的事

区块链能够保证的是记录遵循它自身的规则,而不是数据一定真实,也不是某个应用一定安全。常见的误解有以下几种:

  • “上链就等于安全”。智能合约本身可能存在漏洞(Bug);一个代币即使它的每一笔交易都被完美地记录下来,也可能一文不值。
  • “交易是匿名的”。在公有链上,每一笔转账都是公开可见的。地址只是假名(Pseudonymous),而不是真正私密的。
  • “错误可以被纠正”。把资金发送到错误的地址或错误的网络,通常是永久性的,无法撤回。
  • “所有区块链都同样安全”。一条链的安全性取决于保护它的算力或质押量有多少,以及它的验证者分布的去中心化程度有多高。
  • “区块链数据是实时的”。每条链从发送交易到交易最终确定(Final)之间,都存在一定的延迟。

为什么区块链对交易者很重要

对交易者来说,区块链就是在各个交易平台之间转移资金的“轨道”(Rail)。你选择哪个网络,决定了提现手续费的高低、确认时间的长短,以及两家交易所是否都支持这个网络。一个五分钟之内就会消失的套利机会,不可能靠一笔需要三十分钟才能到账的转账来捕获。这就是为什么许多套利交易者会提前在两边的账户中都存入资金(预先入金),而不是在交易进行的过程中再去转账。

同一种代币也可能存在于多条区块链上。例如,一种稳定币可能支持在多个不同的网络上提现,而每个网络都有各自的手续费和转账速度。提现之前,请检查三件事:接收方交易所是否支持你所选的那个确切的网络;这个网络的充值和提现目前在两边是否都处于开放状态;以及提现手续费与交易规模相比有多高。

ArbTide 能帮你做什么

ArbTide 的实时套利扫描器展示了扣除吃单手续费后各交易所之间的价格差。提现手续费、网络手续费(Network Fee)和转账延迟目前尚未被扣除,所以在转移币之前请务必自行核实;方法论页面准确列出了净价差包含哪些项目。

常见问题

用最简单的话说,区块链是什么?
区块链是一份由许多计算机各自保存相同副本的共享交易记录。新记录以被称为区块的批次形式添加,每个区块都与前一个区块相连,所以过去的记录很难被修改。
为什么区块链很难被篡改?
每个区块都包含前一个区块的哈希值,也就是一种数字指纹。修改一笔旧交易会改变该区块的哈希值,并破坏之后的每一个链接;除非攻击者控制了网络大部分的算力或质押量,否则网络会拒绝这条被篡改的链。
什么是区块确认?
在包含你交易的区块之后,每新增一个区块就算一次确认。确认次数越多,交易就越难被撤销,这就是为什么交易所要等待一定次数的确认之后才会为充值入账。
工作量证明和权益证明有什么区别?
在工作量证明中,矿工消耗算力来换取添加区块的权利,例如 Bitcoin。在权益证明中,验证者锁定币作为抵押品,并被选中来添加区块,例如 Ethereum。两者都能让网络在没有中心化机构的情况下就同一份历史达成一致。
区块链和加密货币是一回事吗?
不是。区块链是一种记账技术,而加密货币是在区块链上被追踪的一种资产。大多数加密货币都运行在区块链上,但区块链也可以记录代币、智能合约数据和其他信息。

相关指南