Odaily星球日报|答应我,以后别再分叉了


编者按:本文来自 PolkaWorld(ID:gh_6c4c2038ddba) , Odaily星球日报经授权转载 。
Odaily星球日报|答应我,以后别再分叉了
本文插图
在区块链世界中 , 大家都知道升级现有的区块链很烦 , 比区块链中任何东西都难搞 。 区块链本质上是一写即用:没有办法真正 “升级” 传统意义上的区块链 , 只能创建一个保留旧区块的新区块链 。
就好像把你已经死去的狗换成了同一品种的另一只狗 , 然后为了安抚孩子们 , 你开始叫它同一个名字 。
只是在分叉时 , 原来的狗并没有死 , 而且我猜新的狗植入了原来狗所有的记忆 。 这只是个不恰当的比喻 , 不用太认真 。 无论如何 , 我觉得你应该明白了 。 没有升级 , 只有分叉 。
从区块链诞生起 , 这种模式就一直存在 。 可能现在还有人的柜子里有一台旧电脑 , 从 2009 年开始就在运行比特币挖矿程序 , 所以传统意义上 , 比特币并没有升级 。 假设你能找到那个柜子和一个适配的老客户端 , 你仍然可以连接到 2009 年的比特币(估计大部分交易来自倒卖盗版《X战警起源:金刚狼》的人) 。
没有升级 , 只有分叉 。 从区块链诞生起 , 这种模式就一直存在 。
升级区块链很难 一般来说 , 这是分布式系统的问题 , 但像比特币这样的去中心化系统的问题是 , 没有一个实体控制网络上的所有计算机 。 你不能给每一个比特币矿工打电话 , 告诉他们必须升级 。 你可以给一些真正重要的比特币矿工打电话 , 但这是一个 bug , 不是比特币网络的一个特性 。
现在许多区块链处理这个问题的方法是提前升级客户端 , 升级后的客户端同时支持网络的两个版本和一个 if 语句 , 该语句在某个区块数切换到新的代码 。 以太坊就是使用这个方法在定期更新 。 现在这个方法还不错 , 但它并不能真正解决每次你想改变时都要分叉的问题 , 它只是给你时间 。 再说 , 这是不文明的 。
当伦敦投票选举市长时 , 并不是按照政治路线分成伦敦和伦敦经典 , 而是选择让大多数人高兴(或者更准确地说 , 让大多数人较少反感)的市长 。 这种形式化的治理体系是减少区块链生态系统不确定性所需要的 。
现在 , 如果不信任第三方为你提供定期、可信的更新 , 就不可能拥有像在物联网设备中找到的那样运行时间长的轻客户端 。 不过老实说 , 在现实世界里的大多数物联网制造商 , 都是能不更新就不更新 。
安全更新物联网设备是一个难题 , 但大多数制造商根本不在乎 。 如果物联网制造商在更新其软件的时候 , 能达到运行区块链节点所需的靠谱程度 , 那么 Mirai 就不会发生 。
当然 , 解决这个问题的另一个办法是 , 永远不要尝试更新区块链 。 这在很大程度上就是比特币的解决方案 , 虽然可以说比起长期运行的轻客户和治理 , 社区更关注的是让 10 家赚了点钱的矿工的 ASIC 投资作废 。 不过 , 为了达成这篇文章的标题里的主张 , 我们也将让 “用不更新” 这种方法作废 , 因为我觉得大多数人都会同意更新软件是一件好事 , 而且通常是一个很好的启发 , 让你去思考一个主题 , 这与喜欢比特币的人秉持的信念截然相反 。
链上升级和其他难题 【Odaily星球日报|答应我,以后别再分叉了】让客户端更新的一种方法是在链上部署整个客户端 。 你可以使用某种链上治理方法来选择是否接受该客户端 , 然后如果接受 , 那么世界上所有的客户端都可以安装新版本和通过 Linux 分叉 , 而不是区块链分叉 。 当然 , 你不能仅仅在区块链上部署二进制文件 , 首先 , 这基本上赋予了 government 在任何人的计算机上运行任意代码的能力 。
这不仅仅意味着他们可以在区块链上做任何他们喜欢做的事情 , 而且他们可以把你的电脑变成僵尸网络节点 , 他们可以在你的图片文件夹里放满 Danny DeVito 油画(说真的 , 这是一个库存惊人的艺术流派) , 甚至是挖比特币(但愿不会如此) 。 即使你完全信任链上治理 , 为每一个操作系统和每一个可用的架构部署二进制文件也是一个很大的组织管理问题 。


推荐阅读