二狗聊科技|Vitalik:区块链“验证”的哲学( 二 )


本质上 , 加密货币和区块链是社会结构 , 如果没有人相信它们 , 那它们就毫无意义 。
二狗聊科技|Vitalik:区块链“验证”的哲学
文章图片
那么 , 另一种观点是什么呢?其核心思想是通过协调问题将区块链视为工程安全 。
通常情况下 , 我们遇到的协调问题不会是什么好事:对于大多数人来说 , 如果英语能摆脱其高度复杂和不规则的拼写系统 , 或者如果美国改用公制 , 或者如果经济衰退时我们可以立即把所有的物价和工资降低10% , 那么在实践中 , 这需要所有人同时就转换达成一致意见 , 而这通常是非常困难的 。
然而 , 在区块链应用中 , 我们可利用协调问题来发挥自己的优势 。 我们正在利用协调问题造成的摩擦 , 以作为防止中央集权行为者渎职的一道屏障 。 我们可以构建具有属性X的系统 , 并且我们可以保证它们将保留属性X , 因为将规则从X更改为非X , 需要一大堆人同意同时更新他们的软件 。 即使有一个参与者可以强制改变 , 这样做也很困难 。
注意 , 这个观点会带来一个特别的结果:全节点的目的并不是为了保护你 , 在有争议硬分叉的情况下 , 拥有全节点的人是安全的 , 而没有全节点的人是容易遭受攻击的 。 相反 , 这里的观点更多的是群体免疫:验证的人越多 , 每个人就越安全 , 即使只有一部分人在验证 , 每个人都会因此得到高水平的保护 。
2深入研究验证
现在我们进入下一个主题 , 这个主题与轻客户端、分片等主题非常相关:通过验证 , 我们实际上实现了什么?为了理解这一点 , 让我们回到前面的一点 , 如果攻击发生了 , 我认为攻击的发生方式具有以下优先顺序:
默认为失败&gt默认为混乱&gt默认为胜利
这里的“&gt”当然是“优于” 。 最好的情况是攻击完全失败 , 其次是攻击导致混乱 , 每个人都不同意正确的链是什么 , 而最糟糕的则是攻击成功 。 为什么混乱要比胜利好得多?这是一个动机问题:混乱增加了攻击者的成本 , 并降低他们肯定会获胜的确定性 , 因此从一开始就阻止了攻击的企图 。 默认为混乱环境 , 意味着攻击者除了要赢得51%算力竞争 , 还需要说服社区跟随 , 这要比简单发起51%攻击要困难地多 , 也没有那么吸引人 。
验证的目标是从默认胜利改为默认失败 , 或者默认混乱 。 如果你们都有一个全验证节点 , 并且攻击者试图推行一条具有不同规则的链 , 则攻击就会失败 。 如果有一些人有一个全验证节点 , 而其他人没有 , 那么攻击会导致混乱 。 但现在我们可以思考:有没有其他方法可以达到同样的效果?
3轻客户端和欺诈证明
在这方面 , 一个自然的发展是带有欺诈证明的轻客户端 。 目前存在的大多数区块链轻客户端的工作原理 , 是验证大多数矿工支持的特定区块 , 而不必费心检查其他协议规则是否正在实施 。 客户端基于大多数矿工是诚实的信任假设运行 。 如果发生了一次争议分叉 , 则默认情况下 , 客户端会遵循多数链 , 如果用户希望遵循旧规则 , 则由用户采取积极的措施 。 因此 , 今天受到攻击的轻客户端会默认承认攻击是成功的 。 但有了欺诈证明技术 , 情况就开始不太一样了 。
欺诈证明最简单的形式如下 。 通常 , 区块链中的单个区块只触及区块链“状态”的一小部分 。 如果一个全验证节点处理一个区块 , 并发现它是无效的 , 则它们可生成一个package包 。 它们把这个package包广播给轻客户端 。 然后 , 轻客户端可以获取package包并使用该数据来验证区块本身 , 即使它们没有来自区块链的其他数据 。
二狗聊科技|Vitalik:区块链“验证”的哲学
文章图片
这种技术有时也被称为无状态验证:客户端可以只保留区块头 , 而不是保留完整的区块链状态数据库 , 它们可通过向其他节点请求区块验证正在访问的任何所需状态项的Merkle证明来实时验证任何区块 。