2026-02-12 22:16:07
2月10日,LayerZero 公布了 Layer 1 网络 Zero 的技术方案。有意思的指标有两个:
没错,号称每秒钟处理高达 200 万笔交易,是并行 EVM 链 Monad 的 200 倍,是 Solana 的 30 倍,是以太坊主网的 10 万倍,是比特币的 20 万倍。
LayerZero 的魔法在于优化了 Jolt,一个基于 RISC-V 指令集的 zkEVM,而且运行在 GPU 集群上,生成 ZK 证明的速度非常快。也就是说,当用户把大量交易提交给 Zero 网络的 Block Producers 之后,基于 GPU 集群的算力, Zero 网络可以非常快生成区块数据的证明。
Zero 网络出块的硬件要求大概是 96 核 GPU,768 GB RAM,这显然是算力中心级别的要求。那么整个网络岂不是非常中心化、被控制在少数华尔街头部公司的手里了?
由于 ZK 技术的特性,Zero 网络提供了另一个特性:验证 ZK 证明只需要非常轻量级的设备,家用电脑就可以完成对区块数据的验证。
这是一个有意思的点,为了提高 TPS,Zero 网络把出块的权力中心化,同时把验证区块的权力极度去中心化。那么 Zero 网络到底是中心化的,还是去中心化的?
去中心化网络唯一的标杆是比特币网络。虽然比特币在协议上是去中心化的,所有节点都是全节点,但事实上出块的算力基本被几大矿池垄断,比特币网络还算是去中心化的吗?
如果单从这个出块权力的集中程度分析,还真是有点难分伯仲,这也是 Zero 网络的诞生让人迷惑的点。
我们信任比特币的去中心化,是因为每一个节点都有全量账本数据,由于区块链逐个区块哈希的设计,我们可以重放所有交易历史,以此判断新产生的区块数据是否合法。PoW 共识则是所谓一 CPU 一票,哈希碰撞难但是验算简单,以此来验证出块权。所以总体来说,对于比特币,我们相信的是加密算法。
而对于 Zero 网络,其实我们相信的也是 ZK 加密算法。我们应该相信 Block Producers 会按照电路来生成证明,然后所有的成千上万的 Verifer 都可以去验证区块数据是否合法,这整个过程也完全是加密算法来保障的。
如果说 Zero 的源代码分发也许会有风险,比如生成 ZK 证明的电路逻辑出现 bug,或者验证 ZK 证明的逻辑有漏洞,给攻击者可乘之机。那么所有的区块链都面临源代码不安全的风险,包括比特币,你并不能保障比特币的源码就是绝对安全的。所以从这个角度无法区分 Zero 网络的优劣。
回到去中心化的角度,比特币网络交易重放可以保障区块数据可靠,而 Zero 网络虽然出块权被少数节点掌握,但是验证区块的权力借助 ZK 技术,能够轻易下放到任何轻量级设备上,这是比特币都无法比拟的 “去中心化”。假如 Zero 网络的 Block Producers 作恶,所有用户都可以知道,并且反馈给结算层,如果众多 Verifier 不同意,Block Producers 的出块权会被取消……
从这几个角度去对比,是不是恍惚间发现 Zero 网络竟然可以和比特币同台竞技,甚至 ZK 技术的出现给了 Zero 超越比特币的可能性?
当然,刚才刻意弱化了核心问题所在。面对这种区块链架构上的疑惑,如果一时间没有思路,可以回到区块链技术的圣经 —— 比特币白皮书 找灵感。
比特币白皮书在摘要里就提到了比特币要解决的核心问题:双花(double-spending)。
Zero 网络引入 ZK 技术确实解决了区块链数据不可篡改这个问题,但是如何解决双花问题?答案是 Zero 网络用了 PoS 共识,引入了 Validator 的概念。别管他到底是哪种 PoS,反正都是 PoS。
参考以太坊的架构去理解,以太坊有两层,执行层和共识层,执行层负责执行交易,共识层负责验证节点出块的权力。
Zero 网络的架构和以太坊有点类似,分为出块层和结算层,出块层就是用大规模 GPU 执行区块和产生 ZK 证明的那一层,而结算层,则是 PoS 质押、验证节点是否有出块权力的一层。
你也许没跟上,不是说解决双花问题吗,怎么又在讨论节点出块权力的问题了。因为假如节点出块的权力被控制,或者可以做恶,那么恶意节点就可以允许区块数据,也就是交易历史被改写,上一秒看到交易成功了,下一秒发现交易回滚了。所以节点出块的权力得到保障,双花问题也可以得到解决。
那么这下就清晰了,Zero 引入了 ZK 技术把 TPS 提高了两个数量级,确实有很大的进步。但是在共识方面,依然用了 PoS。对于一些比特币的原宗旨教徒来说,PoS 共识甚至都是不入流、不能抗审查的。那么 ZK 再牛自然也就没有意义了。
所以,Zero 网络从一开始的竞争对手就不是比特币,根本不会动摇比特币的地位。回到 Zero 网络的 Manifesto。从标题 “Multi-Core World Computer” 就能看出是奔着以太坊去的,在 Manifesto 中也直接对比了以太坊、Solana 的性能问题。当然是不可能出现比特币的。
而实际上,Zero 网络连以太坊主网的地位都不会动摇,以太坊的去中心化程度是仅次于比特币的,全节点运行在民用级设备一直是 Vitalik 的愿景 —— “如果基金会不在了,以太坊还会存在吗?”
更进一步,Zero 网络连 Solana 的地位也不会动摇,因为 Solana 独特的生态,和一些名人以及政治叙事,轻易不会被取代。
总的来说,Zero 网络仅仅只能在 EVM 的生态里做竞争,可能会直接动摇发布不久的并行 EVM 网络 Monad 的前景。其他的更大的野心,明显还做不到。
2026-02-03 15:19:01
大概是两年前的事情了。在工作中,我们用以太坊节点搭建了一条网络,上线后发现网络中不能新增 Validator,也就是质押者的 32 ETH 没有生效。
原因是我们用了多种共识层客户端,包括 Prysm 和 Lighthouse 等。为什么会突然出问题呢?因为 Prysm 有一个叫 --contract-deployment-block 的命令行参数,其他客户端比如 Lighthouse 和 Teku,这个参数的默认值都是 0(参数名字在不同客户端可能不同,但是含义类似),而 Prysm 的这个参数默认值是 11184524,这个数字是以太坊从 PoW 转向 PoS 后质押机制开始生效的区块高度。
这个参数在干什么呢?它会从这个参数配置的区块高度开始,去扫描 Deposit Contract(主网是 0x00000000219ab540356cbb839cbe05303d7705fa )上质押者的存款记录。我们平时说的质押 32 ETH,就是质押到这个合约里了,或者说就是把 32 ETH 转账给这个合约。这个合约在收到你的 ETH 之后,Consensus Client 比如 Prysm,就能根据合约的记录知道某一个地址确实给合约转了 32 ETH,因此认可这个人成为出块节点。
以太坊整个网络可能有几千个节点,每一个节点都在执行同样的操作,就是从 Deposit Contract 上扫描质押者列表、然后维护到自己本地的数据库状态中。直到轮到自己出块的时候,就把这个一直在维护的质押者列表的数据,计算一个总数 Deposit Count 和哈希根 Deposit Root,作为 eth1_data 字段的值,提交到区块数据中:

这个截图来自以太坊主网的区块 24374562,意味着当前以太坊一共有 204 万个质押者。要注意质押者不等于物理服务器上运行的节点数量,一个节点可以运行几千个质押者(Staker / Validator),所以推测以太坊实际上的物理节点数量大概在几千个左右。
回到 Prysm 配置的问题,如果不配置 --contract-deployment-block 参数,默认值是 11184524,那么对于一条新启动的链来说(Chain ID 不是 1 那种),Prysm 就不去扫描 Deposit Contract 合约在块高度 11184524 之前的质押记录了,本地数据库里没有质押者的数据,在出块的时候自然也不会带上 eth1_data 的字段数据。
以太坊的 协议设计 中要求,eth1_data 的数据必须要超过半数节点一致才可以生效。(注意这里的比例是 1/2,和其他地方用到的魔法比例 2/3 不一样)。

所以如果你新启动的网络中有超过一半的节点用了 Prysm,同时这些 Prysm 节点没有可以设置 --contract-deployment-block 参数,网络就会异常、不能正确处理新加入的质押节点。
我们一般认为软件的默认参数是相对安全可靠的,如果刻意设置才表示我们有特殊需求。而在以太坊 Prysm 客户端的这种语境下,不刻意设置默认值反而是危险的。
2026-01-25 16:04:40
加密货币的资金管理,从最安全到最不安全的方式排名是:
如果你不在乔布斯排行榜上,家族信托就跟你没关系。对于个人而言,硬件钱包是目前最安全的方案。
这里没有提多签钱包、助记词+Passphrase 之类的方案,因为那些方案在技术手段上复杂到你都用不明白,复杂的方案是无法长期留存的,反而会增加遗忘的风险,更不可靠。
那么有几个需要更正的对于硬件钱包的认识:
而助记词安全也有几个有意思边界:
所以去中心化资产在给你带来控制权的同时,也要求你自己承担资产安全的风险。
2026-01-15 08:43:43
2026-01-13 12:05:36
准确来说,是 Trustless 的跨链桥不可能实现。因为一般认为去中心化就意味着 Trustless,虽然实际上去中心化是在信任一个 Permissonless 的群体。
不纠结这些具体的名词。现在的各种跨链桥方案,以及未来的跨链桥方案,一定都做不到纯粹的、工具性质的、数学证明的、轻量级运营的、去中心化的形式,能够满足物理隔离的、异步的、异构链之间的跨链。
先列举一下现在的跨链桥方案,以 BTC 到 ETH 的跨链为例:
公证人模式,也就是中心化的模式,把 BTC 打给一个中心化机构,机构再把 ETH 打给你指定的地址。安全性依赖中心化机构,没什么可说的。现在大多数跨链桥都是这种传统的模式,最多就是机构内部多签。
TSS 密钥分片、多签,相对去中心化。把 BTC 转给一个第三方的链比如 Thorchain,在 Thorchain 中,有多个节点分别持有 ETH 链上资产的密钥分片,每个节点分别扫描和验证 BTC 的交易信息,达到一定阈值则多签的签名生效、在 ETH 链上放行资产。
这种模式把公证人给去中心化了,有多个节点在共同验证来源交易是否正确。这是目前相对来说比较靠谱的、依赖社区博弈的方案。因为 Thorchain 本身就是一条链,想成为持有密钥分片的节点就需要质押 Token 等。TSS 的签名算法比较消耗计算资源,做不到同时分发太多的密钥分片,所以持有分片的节点数量在一定范围内。像所有的 PoS 链一样,表面上是去中心化的,实际上是 Permissioned 的,只不过是权限的门槛高低不同。
TSS 确实把跨链桥去中心化了,但是引入了 BTC 和 ETH 之外的第三条链,而第三条链的安全性又依赖于它自己的经济学博弈,本身就是风险。所以这种模式可靠但不够纯粹。
合并挖矿,特指资产的来源方是 PoW 链,让 BTC 的矿工在挖矿的时候,把跨链桥的某种证明信息给带上,一起挖到 BTC 的区块信息里。那么 BTC 的区块信息本身就包含了跨链信息。这种方式非常可靠但是不可行,因为矿工不可能配合跨链桥干这种事情。
HTLC,本质上是资金的对敲,对实时性要求比较高,必须双方同时在 BTC 和 ETH 在线交换密钥,而且 HTLC 只能做到资金的交换而不是跨链,涉及到汇率的问题。
全验证轻客户端,也就是在 ETH 上运行 BTC 的轻客户端,比如让每个 Geth 节点都可以同步和验证 BTC 的全部区块信息,那么 Geth 本身就是一个轻量级的 BTC 客户端,自然也能够实时地、无需第三方信任地把 BTC 交易信息同步到 ETH 的智能合约上。但是这样显然成本太高了,相当于一个客户端同时兼容了两条链。
ZK 跨链桥,运行一个 BTC 的轻客户端,把所有区块信息生成电路证明,然后在 ETH 上部署一个 Verifier,只需要验证很小的证明就可以相信来源信息是正确的。那么这种 ZK 模式的问题在哪里?ZK 并没有黑魔法,它的问题在于,需要在 ETH 上部署一个 Verifier。也就是说,你不需要关心是谁、是怎么生成证明的,但是你必须相信在 ETH 上的 Verifier。那么 Verifier 的代码本身、背后的开发者、来源是否可信任又是一个问题。
TEE 硬件设备签名。比如在一个 Intel 的服务器上,同步 BTC 的区块信息,然后用 TEE 内置的私钥签名,证明这个信息一定来源于这台设备。然后在 ETH 上,只需要判断来源签名是否来自于那台硬件设备,就可以证明信息是否安全。TEE 方案最大的问题自然是单点风险。
各种方案对比下来,似乎根本找不到一种让人满意的方式。为什么会是这样?
分布式系统中的两军问题(Two Generals’ Problem),这是计算机科学史上第一个被证明无解的问题。这个问题具体的定义不重要,重要的是它早已被科学界证实无解。
计算理论中的预言机问题(The Oracle Problem),每一条区块链本身都是一个确定性的状态机,它是封闭的、可被验证的、可被重复计算的。如果要和外部通信,就必然需要引入信任模型、经济学博弈、密码学证明等,这些内容会让跨链方案不再纯粹。
所以去中心化的跨链桥这个问题,已经触及到了计算机科学的理论边界,不是工业界无能,而是这个问题本身无解。
这种跨链桥方面的技术边界可以带给我们启发: