Luyao Zhang


2024-02-27

Worse is Better

又读了一遍 Worse is Better,一篇 1989 年的老文章,讲为什么一些看起来“很垃圾”的软件会占领市场。我读了很多遍,还是能学到新东西。

我从中学到的东西就是,简单比正确更重要。不必追求“正确”,你需要 50% 正确,当它像病毒一样传播以后,人们会花时间将它改进到 90% 正确。但它首先要是一个病毒,而不是一个“正确”的东西。而复杂的东西显然不会成为病毒。(作者把 C 语言和 Unix 称做最大的计算机病毒。)

我觉得这个事情在 crypto 中是类似的,而且发生了很多次。这些年我总听到各方吐槽以太坊多么垃圾——但它也是一个病毒,而且感染了足够多的开发者和用户,有足够多的人想要使它变好。我觉得要从这个角度去看它。

另外,许多东西一流行,就会有人不屑一顾,觉得“啥jb玩意儿,噱头”,然后指出很多它的瑕疵。但瑕疵从来都不是问题。看到瑕疵比看到本质容易很多。我应该保持虚心,避免成为这样的人。


2024-02-18

关于 ERC20 的一些考古

我常常感慨 ERC20 标准是如此简洁优雅,作为一个八九年前的标准,它很好地支撑了一整个生态。

摸鱼时对 ERC20 的产生做了一些考古,我没有时间来专门为它写一篇文章了,但我觉得很有趣。

现在的人可能无法想像,就连 “是否该有一个代币标准”,当初都是经过激烈争论的。还有,哪些功能属于代币标准,哪些功能属于钱包和合约,叫 coin 还是 token,批准部分要如何设计,要不要 decimals,要不要一个专门合约用来注册 token,代币名称和符号放在 EIP20 还是 EIP22 (代币注册表)里,到底是先制定标准还是日后从实际市场中提炼标准…… 这些也都是经过了许多争论的。

人们看到一个简单的东西时,常常看到它 “有” 的东西,但通常“没有”的部分才是设计的重点。我有学到一些东西。


2024-02-18

Crypto 的地图打开了 10%,剩下的还在迷雾里。

人们都挤在那 10% 的地方,掘地三尺也要挖出些东西来。而我不小心掉进了那 90% 尚在迷雾的地图里,每天都遇到奇妙的东西,但周围却只有我一个人。

后来我想了一想,这里不可能只有我一个人,一定还有其他人。只是地图还没打开,所以我们彼此都不知道对方的存在。

就好像,地图打开的部分是非洲,所有人都挤在那里。而我不小心来了亚洲,周围一个人都没有。还有些人不知怎的去了北美,南美,大洋洲……我猜他们也是孤独的,因为他们周围也没有人。


2024-02-17

赵本山:

“我最怕的就是深刻。我自己的作品我试了几回,凡是我要深刻的,要品位的,都是不爱看的,收视率极低。千万不能把自己变成一个深刻的人。如果自己深刻了,你的作品就没法深刻了。”


2024-02-06

关于抽象的随感

Uncle Bob 说:

函数的参数越少越好,最好的函数是那些没有参数的函数。

我自己也常有类似的感觉,只是一直没去想为什么。直到最近,我偶然翻到了 Uncle Bob 的书,一句话让我豁然开朗:

函数和参数处在不同的抽象层级上。

我觉得这很好地阐述了函数的精髓,即一种抽象。想像一下,购买一个产品,不是开箱即用,而是要阅读大量说明书,理解其原理,对它进行繁琐的配置,这显然是不人性的。好的产品和好的函数一样,它们是完整的抽象,并不迫使用户去理解内部细节。


上周,和朋友聊起我的一堆新协议。其中有两个协议,功能不同,面向的用户也不同,但代码非常相似,有超过 90% 的代码是重复的。

我们讨论是否应该将这两个协议合并。起初,他第一反应是当然要合并。但深入讨论后我们都意识到,合并实际上会引入更多问题。

从用户的角度来看,是应该要分开的,否则会产生认知上的负担。跟使用者的认知负担相比,代码层面的重复是完全可以接受的

这和函数参数是同一个道理。


同样,协议与应用的关系也是如此。

有些协议因为抽象层次低,所以非常灵活。对于了解它的人来说,它可太牛逼了,能干 A,能干 B,能干 C…… 啥都能干。但对于普通旁观者而言,因为它抽象层次低,很灵活,所以反而很难理解它究竟是什么

这个时候,上层的应用就变得非常重要。因为应用提供了更高层次的抽象,是更好理解的——它就是用来干某件事的,其他的干不了。

如果到了应用这一层,还是很灵活,很多功能,不无脑,那就有问题了。


写这篇文章的过程中,我逐渐意识到,这个抽象问题实际上是更为广泛的存在,比如在信息的传播中。

对于信息或知识的传递,基础而本质的内容往往较难传达。它们似乎无处不在,却又难以捉摸。因此,人们通过一层又一层的抽象来解释这些概念,最终产生了我们熟知的畅销书、短视频、标语和小白科普文章。

“懂的人” 觉得,这些东西太肤浅太不严谨了,让人们越来越傻;但对于大众来说,这就跟好用的产品一样,是更友好更易于理解的。细节的损失,甚至部分曲解,并不是一种缺陷,而是必要的,因为这就是抽象的意义


2024-02-01

有时候写代码会经历这样一种感觉:刚开始觉得一个库怎么这么垃圾,然后用着用着,逐渐发现它的许多做法是有原因的,那是它细心、周到、关怀的地方。

我觉得人生也是这样,一开始你觉得一些人很糟糕,但当有一天你成为他的时候,你意识到他的行为都是有原因的,而且是好的原因。

那些“傻逼”和“坏蛋”,要么是过去的我们,要么是未来的我们。如果有一天我们很幸运地有机会“成为每一个人”,很可能会发现既不存在傻逼,也不存在坏人,存在的只有不理解。

以前我常常很冲动地想要摧毁一些不好的东西,但这些年不知是不是年纪变大了,开始越来越理解别人。1

世界就像一场 show,上面有三个演员:昨天的你,今天的你,和明天的你。只是他们互相认不出来。你一边看着“昨天的你”,说傻逼。一边又看着“明天的你”,说坏蛋。可是他们都是你。

你们都在台上,是这场 show 的精髓。2


  1. 尽管如此,我还是非常享受和朋友一起吐槽傻逼的事物,那很爽。我甚至怀疑这就是朋友的意义。 ↩︎

  2. 这个问题或许是没完没了的。不理解是因为缺少信息,而缺少信息,正是这场 show 精彩的关键。如果你去看一部电影,但你完全清楚所有的剧情,那就没啥意思了。如果人人都理解彼此,那就不存在正义和邪恶,那世界会变得很无聊。佛教说“不二”,是说去除二元对立,也是这个意思。但如果人人都这么整,那就太没意思了。有的人忙着做“坏人”,有的人忙着消灭“坏人”,有的人倡导大家理解彼此,我觉得这种平衡蛮好的,很自然,很精彩。 ↩︎


2024-01-30

每天最大的烦恼变成了无人分享我的激动。


2024-01-28

时间本身就是最好的相册,不需要记忆。


2024-01-27

所有以邀请制启动的 crypto 协议,都是业余选手。能够使用邀请制,说明这个协议的设计有缺陷,或者它在解决一个不属于它要解决的问题。


2024-01-26

移除“不装逼”过滤器

有时候我和女朋友说一些我在工作上的真实想法,她会说:

“你说的是对的,但如果别人听到,可能只会觉得你是个自大的笨蛋”

所以我一般不说那些话。而且加密圈子对于装逼的人似乎有某种诅咒,谁装逼谁破产。

但我后来发现,即使我很低调地说话,别人也会说我装逼。有次我说 bodhi 上那些“垃圾内容”并不垃圾,判断它垃不垃圾不是 bodhi 的工作,就这都有人说我装逼。

要考虑这些是很累的。我决定永远移除这个过滤器,学习赤裸地、真实地表达我所有的想法,并接受任何人说我装逼或傻逼。

以下是我在工作上的一些真实、朴素的想法:

  1. Bodhi 是以太坊诞生以来到目前为止,最难设计且最重要的协议,没有之一。如果你不理解这一点,说明你要学习的还有很多。

  2. 大部分协议都非常垃圾,不管它有多有名。如果一个程序员花了一个礼拜学习 Solidity,却还看不懂你的协议,那你已经 fucked up 了。

  3. 发布 Bodhi 前我觉得它能真正解决公共物品募资问题的机率大约是 30%,但之后我的许多疑问被验证了,现在我觉得是这个机率是 60%。

  4. Bodhi 有一定机率(比如 1%)会成为人类历史上最快达到万亿规模的经济体。

  5. 虽然 ERC1155 设计得很烂,但它可能会取代 ERC20 成为最主要的资产标准。或许 Bodhi 会成为最大的交易所,但这和它要解决的问题相比,根本不重要。

  6. 人们尚未理解公共物品募资问题的重要性,以及它对社会的影响,我也懒得谈它,不仅人们听不懂,还会给我惹来麻烦。

  7. 有瑕疵的理论下的实干,比完美的理论更重要(这恰是列宁和托洛茨基的区别),这同样适用于 crypto,我们今天所有的方案都是有瑕疵的,但不影响我们前进。

  8. Bodhi 的死掉是可以接受的(当然)。

  9. 我最喜欢的链是 Gnosis Chain,比任何一家 L2 都要优秀(得多)。Bodhi 没有部署在上面,只是因为它的原生代币是 xDAI,很麻烦。

  10. 简单比正确重要。为了正确而牺牲简单是很愚蠢(和很菜)的。

这些可能都是错的,但表达出来让我快乐。


P.S. 朋友读完后建议我把最后一句改成:老子说啥都对。


2024-01-22

关于文档

文档的重点可能不是帮开发者解决问题,而是让开发者有机会玩一下。

很多文档都特别复杂,他们似乎都假定开发者的状态是:

“我已经下定决心要在你这里创业做我的下一个十亿美金项目了,我需要了解你的一切。”

但事实上他们的状态可能更像是:

“我不知道你是啥,但我愿意花上我宝贵的一分钟,看看你有什么好玩的。”

如果他玩了觉得有点意思,那他或许某天想起你时,会再多玩一下下。

开发者和普通用户很可能没有本质区别,他们都要玩点什么,唯一的差别是他们可以通过代码来玩。

我认为有 20 个不同的独立开发者愿意在他们宝贵的周末分别在你上面瞎搞点什么,很可能比一家有 VC 投资的 20 人团队决定在你这里认真做点什么,更有价值。


2024-01-20

为什么如今大家写文章都要放头图呢,绞尽脑汁找一个跟文章没啥关系的风景图片,那不是给写文章增添门槛吗?


2024-01-20

万物都有它自己的道路。

女友编了一个故事,我觉得很有禅意:

大师会从广州去北京。

但今天我们人在上海想去北京,于是大师说,我们得先去广州才能去北京。

因为他只认得从广州去北京的路,在上海他就不会去了。


2024-01-18

我觉得对于任何一个问题,通常有两种解决方法,一种是解决它,另一个是不解决它(即意识到它可以被忽略)

这两种解决方法是同等困难的。甚至后者要更难一点,因为除非对问题有深刻的理解, 否则人们意识不到这个选项存在。


2024-01-12

我今年的课题是,修习宇宙中最强大的能力:compassion。


2024-01-12

前一阵听到一首歌 Om Gam Ganapataye Namaha,是关于印度神话中的象头神 Ganesha 的。

我不确定是不是我听错了,朋友告诉我说,Ganesha 帮助别人的方式是:compassion(共情)

这让我大为震撼。

因为我意识到,这很可能是一个人帮助另一个人的唯一方式,其他所有的方式都会创造更多的问题。


2024-01-07

看到,摸到,用到,和赚到

偶然看到别人发了的一张他们协议的原理示意图,然后我点进他们官方账号去看,发现也都是这类资料,并没有我实际可以用的地方。

那一瞬间,我忽然意识到,即便是作为开发者的我,也需要看到、摸到、用到这个东西,才能感受到它到底是个什么,否则我会直接关掉,心里的潜台词似乎是:“好吧,好像是个很厉害的东西,但跟我没啥关系,再说吧“。

我的意思是,在早期,一个简单的、用户可以直接上手的东西,对于认识这个东西很重要。

Uniswap 早期 有考虑过是只做一个纯协议,还是带一个网页 UI。最后选择做了网页 UI,就是我们现在看到的那个。

我也考虑过这个问题。我觉得后来 Bodhi 发布后能有很多人用,一部分要归功于它的交互很好上手,无论是交易,还是发布内容,操作都比较简单。用户不需要理解金融知识,也能明白发生了什么。

至于前一阵,很多开发者都不理解为什么 Bodhi 上还能做其他应用,也是类似的原因,他们没有直观地看到,所以不会感受到。我得做出来些什么东西,他们能直观地看到、摸到、用到,甚至赚到,才能更深地体会到。


2024-01-05

穷举是最好的算法。


2024-01-05

流量有可能被 tokenize 吗?(可是流量到底是什么东西呢?)


2024-01-04

为什么以太坊会有 Consensys?

为什么以太坊会有 Remix IDE?

为什么以太坊会有 Solidity?

这些事物都很特别,只是大家对它们已经习以为常,忽略了它们的出现有多么特别这件事。