不知道从何时起,时不时就会冒出一篇吹嘘 web3 的文章。大致内容几乎一致web3 解决一切不公、web3 解决挑战大厂霸权、web3 让用户拥有数据...
,然鹅,每次当我看得热血沸腾,准备看看 web3 是如何实现这一切的时候,所有文章都奇幻般的结束了。WTF ?吹了这么多,show me code !到底咋回事啊
为此,最近专门抽了几天时间细细研究一下所谓的 web3 、区块链,究竟是个神马东西。
首先是区块链,说下我自己对区块链的理解。区块链相当于 Web3 世界里面的数据库,数据内容被加密后分布于世界各地各种各样的计算机中。其中,每一条数据都经过精密的加密,任何人都可以得到加密后的内容,但是任何一个人都无法完全解密其中的内容,每一个工作节点(俗称矿工)都维护着一份数据,同时负责对新数据进行加密写入。整个加密过程极其复杂,所需要的算力极其庞大。
接着是智能合约,我对智能合约的理解即为“云函数”,开发者无需关系自己的程序部署在哪里,以何种方式运行,运行在哪里,反正当你提交到链上以后,你就无需关心了。
智能合约与区块链,这两部分以及其他一些列相关的技术,加在一起,合称为 web3 。
So! Web3 真的有用吗?不见得,作为一个资深 Web2 的从业者,每一个技术架构设计,我首先思考的都是,这个架构,能够撑起多大的并发,服务吞吐量如何,程序性能如何,是否有单点问题等等。那么,当把这些问题放到 Web3 上面看呢,WTF ,Web3 完全背道而驰,计算速度?不存在的,区块链中费尽心机,使用 hash 算法降低数据提交速度。吞吐量?不存在的,你得等矿工一点一点的搬运。最后,web3 引以为傲的去中心,你特么还没写代码前,你不就得选择使用什么链吗?你这个链难道不就是一个中心节点吗?假设某一天,以太坊服务器停了,你这玩意还真能运行?对于 web3 的人,可能反驳我说全世界都运行着 xxx 节点,即使 xxx 倒了,其他节点依旧能够提供 xxx 服务。
But ,你们这些节点,难道不仅仅是作为备份存在的么,根本就没有互相发现的能力啊。假设 xx 停机了,你怎么知道这个世界上,在哪里还运行着 xx 节点啊。你还不是的有个中心节点进行交互,这不就是最大的中心么。
最后,回到“拥有”这个词上。我作为一个普通用户,我使用 Web3 应用,我拥有我的数据了吗?我的数据都在区块链上面,我就算拥有整个区块的所有数据,我特么根本解密不了啊,还不是得依赖某些中心服务,通过一系列操作才能拿到我的数据啊。
最后,我也研究了大名鼎鼎的比特币,我完整的看了比特币的每一个算法细节。最后,我惊讶的发现,比特币交易竟然是受限于区块生成速度的,区块生成速度是一个固定值,也就是意味着每秒能完成多少笔交易是固定的!!而如果你想要你的交易被优先处理,那么你就得给矿工多加手续费,让矿工优先处理你的交易。WTF?这合理吗?银行跟你说我们每秒只接收 10 笔交易,你的交易要排队,你特么能接收吗?
当然,你会说比特币都是多老的协议了,现在 xxx 早就不是这样了,但是我问你,现在虚拟货币谁最值钱,谁是老大?
最后的最后,真想吐槽几句,想找几篇正经的 Web3 的开发文档可真难,基本上每篇文字都在说 web3 有多牛逼,前途多么光明,但是到了 Show me code 环节,大家都是放上几个链接,请到 xx 看。当我跳到其他链接的时候,又特么吹了一大堆,最后又是请到其他地方查看。
最终参考资料:
https://web3js.readthedocs.io/en/v1.7.4/callbacks-promises-events.html
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.