2014 年,我曾在一篇文章和一场演讲中列出了一系列我认为对密码学货币领域的成熟有重大意义的数学、计算机科学和经济学难题。五年过去,沧海桑田,但在这些我们认定重要的事项上,到底取得了多少进展?在哪些挑战上我们成功了,哪些事情上我们失败了、又或者我们转变了看法?本文中我会历数 2014 年列举出的 16 大问题,并检视我们的进展。最后,我会给出 2019 年版的新难题。
我把难题分成了三类:
1.密码学难题,如果可解,应有纯数学形式的解决办法;
2.共识理论,基本上就是要求对工作量证明和权益证明做改进;
3.经济学问题,要求创造一种为不同参与方赋予经济激励的结构,并且一般都在协议层以外包含了应用层。虽然进度不一,但我们在所有类别中都看到了重大进展。
密码学问题
1. 区块链可扩展性
当前密码学货币领域面临的最大挑战之一就是可扩展性问题……对 “区块链数据量过大” 的担心是有道理的:如果只有小一部分人才有能力运行全节点,那么这些实体就可以秘密勾结并给自己分配额外的比特币,而其它用户则无力为自己伸张正义,因为只有自己验证区块才能发现非法区块。
问题定义:创造一种区块链结构,既能拥有比特币级别的安全保障,同时用于保证网络功能存续的最强大节点的规模上限会随着交易数量的增加而呈次线性增长。
现状:有大量的理论进步,但有待生产环境检验。
在可扩展性问题上,我们已经在理论上取得了大量进展。五年前,几乎还没有人思考过分片的可能性;现在,分片设计是大家司空见惯的东西了。除了以太坊 2.0,还有 OmniLedger、LazyLedger、Zilliqa,而且新论文几乎每个月都会冒出几篇来。我个人的观点是,在这个点上出现的进展会越来越多。最基本来说,我们已经有多项技术可以让验证者群体对超过单个验证者所能处理的数据安全地达成共识,同时技术还让客户端能够间接地验证区块的完全有效性和可得性,即便是在 51% 攻击的条件下。
下面列举出的可能是这些技术中最重要的一部分:
随机采样:可以随机选出一些验证者组成委员会,使其在统计意义上代表整个验证者群体:https://github.com/ethereum/wiki/wiki/Sharding-FAQ#how-can-we-solve-the-single-shard-takeover-attack-in-an-uncoordinated-majority-model
错误性证明:让监测到错误的节点向其它节点广播自己发现的错误:https://bitcoin.stackexchange.com/questions/49647/what-is-a-fraud-proof
数据托管证明:让验证者可以概率性地证明自己下载并验证了一些数据:https://ethresear.ch/t/1-bit-aggregation-friendly-custody-bonds/2236
数据可用性证明:当客户端具备区块头的区块体不可用时,让客户端可以探测到错误:https://arxiv.org/abs/1809.09044。也可以看看更新的编码化默克尔树提案。
还有一些更小的进展,比如用收据实现跨分片通信,还有 “常量因子” 强化技术如 BLS 签名聚合技术。虽说如此,完全分片的区块还是没能在现实中出现(尽管部分分片的区块链 Zilliqa 已经开始运行了)。理论上来说,剩下的争议都是细节上的,围绕着与分片组网稳定性、开发者体验和缓解中心化风险的各项挑战;基本的技术可行性看起来不再有疑问。但剩下的挑战都是不可能仅靠理论来解决的问题;只有开发出这样的系统、看到以太坊 2.0 或类似的链实际运行才能解决这些问题。
2. 时间戳
问题:创建一种分布式的激励兼容系统,无论它是区块链上的覆盖层还是区块链本身,能够以高准确度维护一个实时的时钟。所有合法用户的时钟围绕某个 “真实时间” 以 20 秒的标准差呈正态分布……没有任何两个节点的时间差会超过 20 秒。解决方案可以依赖现有的 “N 个节点” 概念;可以通过权益证明或者 non-sybil token 来组织节点(可联系下文的 9 号难题)。这个系统应能不断地提供时间,并且时间在超过 99% 的诚实参与者节点内部时间的 120 秒范围内。外部系统可能最终会依赖这个系统;因此,它应该能在攻击者无视激励措施且控制 25% 的节点条件下保持安全性。
现状:有一些进展。
以太坊在 13 秒的出块时间、无特殊高级时间戳技术的条件下运作得非常好;这个网络只是要求客户端不要接受所引时间戳比本地时间更新的区块。也就是说,这一技术还没有在高强度攻击下接受过检验。最新的网络调整时间戳提案尝试改变现状,它让客户端本地可以在并不知道高精确度的当前时间时对时间达成共识;不过这也还没有被检验过。总的来说,时间戳技术已从研究挑战的前沿退了下来;也许这一点会在众多权益证明区块链(包括以太坊 2.0 等)上线之后改变,到时候我们就能更具体地定位问题了。
点击关注币海启行微信公众号,了解更多