浅谈为什么说模块化是必然的?以及它对我们的启示( 二 )


模块化背后的——递归思维
考虑到这个话题对大多数人是无意义的 , 就像我们吃鸡蛋 , 却不必知道没心情下蛋的母鸡该怎么哄 。 所以我希望能和大家讲讲模块化背后的抽象思维 , 也许再听完后 , 你会发现这种思维其实无处不在 , 并且在理解后 , 能帮我们解决不那么抽象的问题 , 就像乐事薯片的“双曲抛物面”如此坚固 , 背后的道理却和蛋壳结构相同 。
浅谈为什么说模块化是必然的?以及它对我们的启示
文章图片
“模块化”的概念在web2.0已经被实践了很多年了 , 甚至可以说 , 从打有计算机开始 , 我们就在想办法把一类问题 , 做成一个模块 。 坦白讲计算机的本质是机械运动 , 就像算盘 , 我要去拨动算珠 , 算盘才能执行运算 , 我每拨动一下 , 算盘运算一次 , 所以这个时候真正在执行计算的是我 , 不是算盘 。 我今天遇到了一个算数问题 , 我拨了100次才把这个问题解决 , 但我没有把这个问题的答案记下来 。 如果第二天 , 我遇到了同样问题 , 我还是需要拨100下算盘 。 相信各位读者都有投资的经验 , 不难看出 , 我这两天一共拨了200次算盘 , 解决了两次问题 , 这是我用时间换来的基础收益 。 可如果我在第一次计算这个问题的时候把答案记下来了 , 那无论我遇到这个问题几次 , 我都只需要拨最开始那100次算珠 。 资源的复用 , 才能带来超额收益 。 在这个例子里 , 被复用的是“时间” 。 “把答案记下来”就是我得到的最基础的模块 。 在此之后 , 我还可以把更多计算公式也做成一个个模块 , 这样当计算机收到我的提问后 , 会找到对应的模块执行 , 最终把执行的结果反馈给我 。 此时在执行计算的是计算机 , 不是我 。 这个过程 , 就叫递归 , 所有的Rollup本质也是一种递归 , 它们通过不断的调用自身 , 来满足数据可用层的验证要求 , 这种资源的复用 , 是我们在大多数时候觉得计算机比人类效率更高的主要原因 。
人类对这个世界的认识是由近及远、从少到多 , 一点点扩展来的 , 这就是人类固有的认识和思维方式 , 根植于我们的基因中 。 这样的认识和思维方式让我们很容易理解具体的事务 , 但是限制了我们的想象力和大局观 。 当需要思维触达那些远离我们生活经验的地方时 , 我们就会出现理解障碍 。
和人不同 , 计算机在一开始就被设计用来处理规模大得多的问题 , 因此计算机有条件采用与常人完全不同的方式来解决问题 。 如果一个人能够站在计算机的角度想问题 , 就可以被算作拥有“计算思维” , 这就如同我们说某个人具有科学思维或者工程思维一样 。 如果一个人在做事情的时候 , 采用的是计算机解决问题的方法 , 这个人就具有计算机的方法论 。 在计算机的思维中 , 最重要的是一种自顶向下 , 先全局后局部的逆向思维 , 它被称为递归(Recursive) 。 与之相对的 , 是人类采用的自底向上 , 从小到大的正向思维 , 它被称为递推(Iterative) 。
在扩容的问题上 , 假如我们用现在的常规思维去想 , 交易变多了 , 那我需要给矿工更多的费用 , 而且我收到的交易费一定要高于我给矿工的费用 , 否则就会亏损 , 但我现在没这么多钱 , 所以我只能提高交易费 , 可这样一来交易量会缩小 , 于是我只好增加吞吐量 , 同时让节点数量减少 , 在安全性上做妥协 。 这种情况下 , 如果不减少节点数量 , 又不提高交易费 , 就只好发行更多的代币 , 用来支付矿工 , 这样做的结果就是这条公链的通胀越来越严重 。 比如Solana , 至今为止 , 它一共执行了562亿次交易 , 按照其官网公布的 , 每笔交易手续费为0.00025美金 , 其收取的手续费总额为1400万美金左右 。 如果我们去Stakingrewards上看一下 , 可以查到它目前的StakedValue在455亿美金左右 , 按照较低一档的APY5.88%计算 , Solana最近三十天内要分给质押者约2.2亿美金 。 也就是说自其主网上线至今收到的所有交易费 , 仅相当于最近一个月支出的6.2% 。 以至于Solana需要15.4万TPS的吞吐量才有可能做到收支平衡 , 尽管我们知道它赌的就是摩尔定律能把带宽和算力成本拉下来 , 但这种规模的亏损 , 怕是禁不起一场熊市 。 这就是递推的思维 , 我遇山开山 , 遇水架桥 , 直到走进一个“死胡同”里 。