对于大众来说,“Gavin Wood” 这个名字暂时还没有 “中本聪”、“V 神” 那么家喻户晓。但在很多区块链开发者的心中,他却是传奇程序员和技术领袖。他编写了第一版以太坊、撰写了以太坊技术黄皮书、发明了 Solidity 语言,还创立了下一代区块链协议 Polkadot。
随着波卡(Polkadot)一跃成为市值榜上前几名的区块链项目,有越来越多的人想了解这个创造了波卡的人。本文梳理 Gavin Wood 博士创建以太坊和波卡的故事,希望帮助大家更加了解这位低调的区块链先驱。
Gavin Wood 博士,来源:Parity Technologies
Gavin Wood 博士,中文名林嘉文,1980 年出生于英国。如果你看过他的演讲,会发现他的形象和刻板印象中的程序员形象相去甚远:一头灰白的短发,常穿合身的 T 恤配牛仔裤。他还有一个习惯,就是在做公开演讲的时候,不管台下有多少人,手里都常拎一瓶啤酒,时不时来上两口助兴。
编程与博弈论
Gavin Wood 最为人称道的能力之一就是强大的工程能力,也就是通过合理的架构设计和编程,把想法变为代码的能力。毕竟他曾经几乎以一己之力完成了以太坊最初的开发。
Gavin 和计算机的结缘可以追溯到很久以前。从 9 岁时妈妈给了他一台旧电脑开始,Gavin 对计算机的兴趣就开始了。邻居 Sean 教他写了第一个计算机程序,自此他对编程的兴趣便一发不可收拾。选择追寻兴趣的 Gavin,在约克大学修读了计算机科学硕士学位,后来又在母校深造,取得了博士学位,方向是人机交互(HCI)和音乐可视化。
博士毕业后,Gavin 成了一名程序员,继续探索和创造。他做过的东西包括但不限于:为微软研究部提供了针对嵌入式领域特定语言的技术咨询服务,为一家伦敦顶级夜店设计并实现了第一个真正的智能照明控制器,设计并实现了世界上第一个 C++ 语言的工作台。他开发了智能文本合同的编辑系统 OxLegal、可以将音频分析可视化的插件 Noted、CD 音轨抓取软件 RipInPeace 等。
从这些经历中不难看出,Gavin 一直对创造新东西和解决问题很有兴趣。对他来说,代码是一种激情,一种艺术形式,“从某种程度上说,世界属于程序员”。他曾试过一个多月不写代码,就觉得浑身不自在,总觉得需要创造点什么。他形容写代码的感觉是 “我们能够感觉到我们的工作在某种意义上是创新的。我们正在构建新事物,我们正在发现新事物。我们每天在为尚未解决的问题创造一些新的、令人惊叹的、优雅的解决方案。我会说我们在某种意义上是一群非常幸运且技艺高超的工匠。”
除了编程以外,Gavin 很早就对经济学和博弈论感兴趣。他开发过一款叫做 Milton Keynes 的策略类桌游,创造了 Fractal Playground 和 Localized Proportional Representation 投票系统。他还曾经向英国最高法院提议,设计一个新的投票系统,不过最后最高法并不想改变投票制度。
可能正是这两兴趣将他带到了区块链行业 —— 区块链似乎恰好是技术和博弈论的完美结合。事实上,当 Gavin 在 2011 年刚知道比特币时,他对比特币兴趣寥寥。直到 2013 年初再次审视比特币时,他才 “开始意识到把 ITC 和博弈论结合起来,可以开辟出很多新的可能性,甚至可能会带来一系列不可避免的社会变革”。他对治理的思考后来也贯穿在波卡的设计思想中 —— 波卡采用了一套无需分叉的链上民主治理机制。
创立以太坊
2013 年,对区块链产生了一些兴趣的 Gavin 通过一位老友认识了 Vitalik Buterin。听了 Vitalik 关于以太坊的想法后,Gavin 觉得让区块链可以编程这个想法很有趣,决定帮助 Vitalik 将以太坊写成代码。2014 他去了迈阿密和 Vitalik 和另外几个创始人一起创立了以太坊。在这里,Gavin 开发出了第一个可运行的以太坊实现,一般被称为以太坊 PoC 1 或者 Alpha 版本。之后,Gavin 担任了以太坊的首任 CTO,并撰写了 “以太坊黄皮书”,在其中定义了以太坊虚拟机(EVM),是首个区块链状态机的正式规范。
在之后的两年中,Gavin 全身心投入到了以太坊的开发中,包括搭建通用平台架构,完成了以太坊 C++ 客户端的大部分开发工作,还设计了用于编写以太坊智能合约的面向对象的编程语言 Solidity。有了 Gavin 强大的工程实现能力的保驾护航,以太坊如预期中顺利上线了。
2015 年,Gavin 提出了 Web3.0 的概念,即建立一个去中介化的、自由的网络环境,打破当今互联网的垄断,将数据、隐私等还给用户, 成为 “个人反对暴力权威的自由的基础”。
2016 年,Gavin 离开以太坊,创立了 EthCore。在渐渐聚集了来自 15 个国家的 60 多位开发者后,EthCore 发展为 Parity 科技。Parity 用 Rust 语言编写了以太坊 Parity 客户端,性能远超 Geth 和 C++ 客户端。
Gavin 离开以太坊的原因不得而知,一些猜想认为可能 Gavin 和 Vitalik 在以太坊的发展道路上产生了分歧。在后来的一些采访中,Gavin 也确实提到过,他不赞同以太坊通过硬分叉进行治理的方式,而且他认为仅能使用 ETH 支付手续费让以太坊背离了成为 “自由竞争的去中心化平台” 的初衷。似乎在 Gavin 的心中,以太坊无法实现他对 Web3.0 的构想。
创立波卡
2016 年,Gavin Wood 发表了波卡的白皮书,描绘了波卡的 “异构多链” 架构。在此之后,便带领 Parity 着手波卡的开发。
在最近的一个访谈里,当主持人问 Gavin 他创立波卡的愿景时,他回答 “创立波卡的目的是想要「让区块链再次伟大」,想将区块链行业向前推进一步”。
这个说法听起来可能有点不太谦虚,但如果你了解过波卡就会发现这并不是在夸夸其谈。波卡试图解决区块链行业几个根本性的问题:性能上的可扩展性、架构设计上的灵活性、治理上的可升级性。
波卡采用「一条中继链 + 多条分平行链」的 “异构分片多链” 架构。中继链负责共识部分,保证所有平行链的安全,每个平行链都是一个异构分片,可以并行运行,从而提高可扩展性。同时,每条链都可以有自己的业务逻辑,专注于解决特定领域的问题。平行链在开发上有很高的灵活性,甚至可以通过桥来将比特币、以太坊等共识不同的公链接入进来,也就是所谓的 “异构”。
波卡还解决了区块链领域令人头痛的 “分叉” 问题,以往的区块链需要升级时要软分叉,意见不同时甚至要硬分叉。波卡设计了一套治理模式来在让社区在链上达成一致,共同决定网络的未来,然后通过链上 Runtime 更新来进行升级。这保证了网络与时俱进,而社区也不会因为意见分歧而分裂。
如果说开发以太坊证明了 Gavin 有着传奇般的工程实现能力,是一个实干家,那么波卡中这些优雅和具有远见性的设计已经证明了 Gavin 还有着超凡的构想,是一个伟大的思想家。当思想和行动两者在一个人身上完美结合时,我们一般称这种人为 “创造者”,他们可能推动行业的发展,甚至可能开辟出前所未有的行业。
Gavin 毫无疑问是一个创造者。在创造者的眼里,构思出伟大的东西还不够,还要一砖一瓦地将它建成。在发现问题时,他会自己去解决,而不是坐等其成,他享受创造的快乐。在他的眼里,创新不是对原有事物的修补、改进,而是做出完全不一样的东西。这一点在 Substrate 的诞生中再一次被证明。
区块链开发框架 Substrate
在 2018 年的 Web3 大会的台上,Gavin 打开一台全新的苹果笔记本电脑,在半小时内使用从头搭建了一条区块链,所用的就是 Substrate 区块链开发框架。
Gavin Wood 在 2018 年 Web3 大会上
来源:Parity Technologies
Substrate 脱胎于波卡 —— 在开发波卡的过程中,Gavin 和团队发现了一个问题:从头开发一条区块链太复杂了,且工作量巨大,这会把一大堆区块链团队都拦在门外,无疑会阻碍区块链领域中的创新。于是,Gavin 和团队决定将波卡的开发经验抽象和提炼为一套区块链开发框架 —— Substrate。
Substrate 把区块链常用的组件进行模块化,比如共识、账户、代币、治理、链上国库等,开发者只需要选择自己需要的模块进行组装、改动,就能快速搭建一条区块链,使用 Substrate 框架开发的链可以轻松接入波卡成为平行链。
金丝雀 “Kusama”
除了 Substrate,在创造波卡的过程中 Gavin 还在不断迸发新创意。
2019 年 7 月在日本的一场活动上,Gavin 首次公布了 Kusama 网络。Kusama 是波卡的先行网,Gavin 将它叫做 “金丝雀网络”。因为早期的煤矿工人会带一只金丝雀进入矿洞,来帮助探测和排除危险因素,Kusama 对于波卡的意义也是如此。与以往那些区块链测试网不同的是,Kusama 是一个将会长期存在的、具有真正经济价值的网络,有自己的代币 KSM,代码和波卡高度相似,社区也将真正地去使用它,这让波卡能够提前在更加真实的环境中观察各种机制、应用等会带来的改变,并提前做好准备。
这样的模式在区块链世界可以说是史无前例的,随后发生的事情证明了 Gavin 的这个设想确实有用。在完整经历了 Kusama 的上线后,开发团队和社区都做好了充分的准备,这让波卡的上线过程顺利地完成了。先行网这一设计也掀起了一股热潮,波卡生态的一些项目纷纷效仿,在主网之前推出自己的先行网络。
平行线程 Parathread
正当社区还沉浸在 Kusama 带来的冲击,正在热火朝天地讨论这个新生的金丝雀网络时,Gavin 又搞事情了。几天后,在波卡中国行上海站的活动上,Gavin 又给了大家一个惊喜,那就是波卡的 “平行线程(Parathread)” 设计。
令人惊讶的是,在两天前的北京场上,Gavin 的演讲里还全然没有平行线程的影子。不知道是不是受到了中国社区的启发,在上海站的演讲前,Gavin 连夜改了 PPT,增加了平行线程的内容,还在背景中配上了一个大大的汉字 “丝”。最让我震惊的一点是,在当天的演讲中 Gavin 并不只是简单地提出了概念,而是已经对平行线程有了较为完善、成熟的考虑,包括它如何运行,如何对网络中的各角色进行激励,以及如何将它融入原有的产品设计等。也就是说从这个创意从诞生到完善到如此地步,最多只用了一天一夜的时间。
更重要的是,平行线程并不是一个锦上添花的小功能。它同时解决了波卡原有设计中的两个重要潜在问题 —— 平行链的退休问题和成为平行链资金门槛较高的问题。
波卡是异构多链,也就是一条波卡中继链负责网络的安全和共识,多条专注于特定领域的平行链接入到波卡中继链并行运行。平行链想要接入波卡中继链需要使用 DOT 来竞拍插槽(slot),租期从 6 个月到 2 年不等。那么一旦平行链的租期到了且不续租的时候,平行链应该何去何从,谁来负责这些平行链的安全呢?从头去搭建自己的验证人节点似乎不太现实。再者,并不是每个团队都能有财力去竞拍到平行链,这些团队是不是就无法享受到波卡网络的益处了呢?
想必这些问题 Gavin 也想到了,所以才提出了平行线程。它是平行链的 “平价替代品”,不需要竞拍插槽,只在需要使用时才占用波卡网络资源,并按使用量来付费,从而让退休的平行链能够转为平行线程作为过渡,让一些不需要连续运行的项目可以直接使用平行线程加入波卡网络。
结语
在技术之外,Gavin 热爱艺术和哲学,喜欢音乐、外语、滑雪、摄影,是跆拳道黑带。他对世界有天生的好奇和敏感,可能在他眼里区块链是一场大型的社会实验。让我们一起期待他在波卡上的创造吧。
他曾说过如果从区块链行业退休,会去做音乐,虽然这样他也应该会过得很开心。但如果他真的退休,那么对区块链来说是一个莫大的损失,毕竟在这个行业,思想家常有,优秀的程序员也不少,但这样杰出的创造者却着实不多。