比特币诞生虽然已经十几年了,仍然有一种来自于技术流的声音,说比特币没有任何创新。
如果把比特币看作一个软件产品,那么对于软件开发和编码技术越是精通的一部分人,往往反而越难以接受比特币是一个划时代的创新。
在这些技术大牛看来,中本聪的代码写的很一般,比特币的技术平平无奇,可以有这个技术能力开发出一个比特币的大有人在。
所以他们会自然而然地得出一个结论,那就是比特币只是一个粗糙的一代试验品,一定会有技术比中本聪更厉害的大牛能够开发出比比特币更好的替代品,取代比特币。
然后这些人当中,有的自己觉得自己就是那个技术大牛,于是开发了 EOS (改了超级节点架构,牺牲去中心化以提升性能);有的觉得自己有能力改进中本聪的设计,于是分叉了BCH(直接修改区块大小参数以进行所谓扩容);有的觉得采用新签名算法等新技术的项目更好,于是投了 IOTA (采用了新哈希函数Curl-P-27,后被破解);有的觉的追随光环四射的技术大咖,比如什么图灵奖获得者之类的,一定没错,于是入了algorand(创始人为图灵奖得主 Silvio Micali )、polkadot(创始人为以太坊核心技术大神 Gavin Wood );等等。
就像练武的人喜欢舞刀弄枪一样,技术人的一个毛病就是喜欢追逐和钻研所谓的新技术,非要搞一些别人看不懂的黑科技,俗称“炫技”。
按这个标准,用 Haskell 语言编写的 Cardano 、用O'Caml语言编写的 Tezos ,那才叫一个cool。当然,目前这两个家伙的市值排名也不低,前一个是第3名,后一个目前是33名。
倚天剑屠龙刀再好,放在内功一般的手上也不过是花拳绣腿,卖弄罢了。最上乘的功夫,其实是以道御术。不执着于手上的兵器,而更关注这些要素是否有利于战略目的的达成。
教员早就告诉过我们,武器是战争的重要因素,但不是决定因素,决定的因素是人,不是物。凡做过技术研发的老手,大都会懂得一个道理,要用无聊的技术构建创新的产品。
所以我们会看到,在2018年被微软以75亿美元收购的全球最大代码托管网站github,彼时采用的数据库架构还是采用非常朴素的“一主多备”(一个主节点、多个备用节点)这样的一个单体MySQL数据库在支撑这个全球流量最大的网站之一。直到2019年,github才决定进行分库[1]。在拆库之前,他们的MySQL单体集群的性能已经足够支撑每秒钟95万次查询,其中备用节点(replica)每秒90万次,主节点(primary)每秒5万次。
另外一个最近刚刚以100亿美元估值融资的、非常流行的协同工作网站notion,也宣称他们是直到今年年初才对它们的PostgreSQL数据库进行了分片[2]。
所以我们会看到,中本聪在比特币里所采用的各项技术,其实都是前人的发明。数字签名算法是ECDSA secp256k1,这是2010年的SEC 2标准。哈希算法是SHA-256,2001年FIPS PUB 180-2标准(草案)。工作量证明(PoW)的构造方法,来自于2002年 Adam Back 改进的hashcash。默克尔树(merkle tree)的结构,来自于1980年Ralph Merkle的工作。区块链的结构,或者说时间戳服务的设计方法,则是采用了 Stuart Haber 在1991至1997年的一系列工作,以及H. Massias在1999年的工作成果。
盖一座巍峨雄壮的礼堂需要用到最不起眼的水泥、砖头、钢筋。我们要选用最成熟、最可靠、最好用、最适合的技术制备的水泥、砖头和钢筋,用它们构建出最壮丽的建筑。技术只是手段,建筑才是目的。
IT技术从业者容易颠倒过来,把建筑礼堂当作是尝试新技术的水泥、砖头和钢筋的一个机会,用创新的技术构建无聊的产品。为什么会是这样?可能是因为大部分技术人员所被要求开发的,都是无聊的产品吧。试着回想一下,我们身边有多少各色老板或老板的代言人,常常会问这样一个问题:哎,小王呀,你说开发一个像淘宝/微信/美团这样的App,需要多长时间呀?或者常常是这样下达开发任务:小李呀,就照着美团/支付宝/XX这样,给我抄一个一摸一样的出来,越快越好!
小王小李呵呵哒。
参考资料:
- [1] Partitioning GitHub’s relational databases to handle scale: https://github.blog/2021-09-27-partitioning-githubs-relational-databases-scale/
- [2] Herding elephants: Lessons learned from sharding Postgres at Notion - https://www.notion.so/blog/sharding-postgres-at-notion