撰文:jolestar
这是我上周在开源年会上的分享的题目,巧的是第一个讲的 Vitalik 也是从 Web3 和开源的继承关系角度来讲,后面还有一个项目正好要做一个去中心化的 Git 网络,都是从这个角度的思考和实践。如果从 Free Software(自由软件)角度来理解,行业从 Bitcoin 开始的探索都可以纳入到 Free Service 这个概念中。
从软件分发角度来看,专有软件(Proprietary Software)经历了 Software 到 Service(IaaS,PaaS,SaaS)的切换。虽然 SaaS 常用在 to B 的场景,但当前的 Web2 互联网应用,都可以看作是 SaaS 的一种。SaaS 在 Cloud 端建立商业模式,客户端免费分发或者没有客户端。而 Free Software 则错失了整个 SaaS 时代,并且一直在被专有软件「吸血」。那如何将 Free Software 的变为 Free Service?
当然这里有必要明确一下 Free Service 的定义。 Free Service 并不是用 Free Software 搭建一个 Service 就叫 Free Service, 而是要能延续 Free Software 的特性。
Free Software,有一些关键特性,保证用户使用软件的自由主要包括:
- 源代码可访问(Source Code Access),这是 Open Source 部分,也是保证后面两项权利的基础。
- 允许修改以及衍生作品(Derived Works)
- 自由再分发权(Free Redistribution)
- 无歧视(No Discrimination Against),不能附加任何的使用条件约束。灵魂拷问:如果犯罪分子使用 Free Software 进行犯罪,开发者是否需要承担责任?是否需要有手段阻止这种使用?
所以推理一下,Free Service,它应该有两个关键特性:
- 节点运营无需许可
- 服务使用无需许可
这其实就是 Crypto/Web3 领域里常提的 Permissionless,所以我们可以说 Free == Permissionless。
这里需要说明的是,很多时候 Open Source Software 和 Free Software 的概念有重叠,但我们借用 Richard Stallman 的话:
「Free software is a political movement; open source is a development model. 」
Free software 是一个争取权利的政治运动,Open source 是一种开发模式。所以我们在这里延续 Free Software 的理念,使用 Free Service 这个词汇。
如何让一个服务做到任何人都可以运营一个节点?并且它们需要构成同一个服务,同时对用户的使用无准入许可?如果运营节点的人作恶了怎么办?如果运营节点的人审查用户怎么办?如果用户恶意使用系统资源怎么办?这些难题听起来就似乎是不可能有技术方案,但直到 Bitcoin 给出了一个解。
Bitcoin 给出的解
上面的问题是没有一个纯技术解的,直到中本聪把经济博弈和技术结合在一起,构建了 Bitcoin。Bitcoin 的解关键有两点:
- 基于工作量证明(PoW)和最长链选择,让节点运营者(矿工)基于经济利益的考虑而遵循代码定义的协议。
- 精细化的按量计费让使用者基于经济利益考虑而不滥用系统资源。
通过以上两点,将 Bitcoin 这个 Free Software 变成了 Free Service。
之后的十多年,整个行业一直在尝试的就是把这个解用到更多的场景中,运行 Service。有把 Software 直接区块链化的尝试,有在链上提供通用计算的尝试(以 Ethereum 为代表的智能合约链),也有在链上提供存储的尝试。我们抽象一下,一个 Service 运行需要的基础设施包括三个:
- 金融
- 计算
- 存储
为什么把金融放在第一位?因为从 Free Software 运动以来,可以发现如果没有 Free Finance,Free Software 也会受挫,这个从前些天的 Linux 基金会事件可以看出来。金融是组织以及软件系统运行的基础。这也是为什么这个行业以 Cryptocurrency 启动,然后先孵化了 DeFi。
说到这里,可能会有人争论,那很多犯罪通过 Cryptocurrency 进行,那 Cryptocurrency 是否支持犯罪?这个要从最底层的价值观角度讲,金融,以及软件未来会成为人类生存以及社会运作的最基础的基础设施,像空气一样。即便是你反对犯罪,也不希望政府掌握一个权力,决定是否给犯罪提供空气。打击犯罪不应该以破坏金融基础协议为成本,金融协议具有更基础的生态位置。
在这个方向上,整个行业的进展最为显著。但计算和存储则明显遇到了瓶颈,行业被困在三难问题上了,能运行的应用主要还是 DeFi 这种用户愿意支付较高交易成本的应用。
基于区块链的基础服务
如果区块链受限于三难问题,很难把复杂的 Software 直接链化,那换个思路,我们只是依赖区块链来实现 Permissionless 是否可以?现在的 Layer2,模块化,链下计算等方案都属于这个方向探索。这个方向上有几种模式:
1. 将区块链作为全局 Event Bus
这个我在前面一篇 <Based Booster Rollup 的背景,实践和展望> 的文章中详述过这个思路。Rooch 也是这个方向上的实践,将 Bitcoin 作为全局的 Event Bus,然后提供可编程的智能合约环境,开发者可以基于 Bitcoin 上的用户,数据和资产启动应用。
2. 将区块链作为全局注册表
比如前面提到的去中心化 Git Service,它可以把链作为一个注册表,登记仓库的所有权以及提供仓库名字服务,但其他的都可以完全通过 P2P 网络来实现。
还有 Mastodon,Nostr 等协议,也都可以通过把链作为注册表,来实现用户账户和数据的迁移。
3. 应用后端智能合约化
市面上已经有了很多种智能合约编程语言以及虚拟机方案,Solidity,Move,WASM 等,已经有点像 Web2 开始的时候各种动态页面编程技术(PHP,JSP,ASP)涌现的时候了。如果提供一种 Crypto 支付的,高性能的智能合约平台,Free Software 直接将自己智能合约化,即可实现 Free Service。
4. 和链结合的 P2P 网络
链的提供的金融基础设施可以让 P2P 网络上的应用构建商业模式。如果未来我们的应用都需要配合一个 AI agent,大多数应用应该会是这种模式。
价值捕获与商业模式
Free Software 几乎没有办法构建付费和商业模式,所以主要依赖捐助,也导致用户以为 Free Service 就是免费软件。而 Crypto/ 区块链先解决了支付和金融的问题,也同时摸索出了交易费(Gas 费)模式,它是一种新型的彻底的按需付费的商业模式。
这种模式下是用户按需付费,开发者只有开发和部署成本,没有服务器运维成本。而对用户来说,如果 Gas 费足够低,他使用软件的成本要远低于当前的按月付费订阅模式。
当然这里也有个问题,用户的 Gas 是支付给链的,并没有支付给应用,应用需要再设计额外的计费模式来获取收益,但如果链提供 Gas 分成模式,用户支付的一部分 Gas 分给应用,应用就自然实现了完全的按需付费。这也是为什么当前的应用多以 DeFi 为主的原因,因为 DeFi 很容易在应用中设置付费点,但其他应用就比较困难。Rooch 会在这个方向上进行尝试,分 30% 的 Gas 费给合约开发者。
互联网中的广告模式也可以在链上重现,可以叫做引用(Reference)分成模式。互联网广告的目标是引流,将用户从一个应用引导到另外一个应用。而链上可以更近一步,让用户直接在另外一个入口应用中使用目标应用,这得益于链上应用天然提供的可组合性。而这一点当前还没发挥出来,是因为缺少一套引用激励,所以很多项目宁愿复制一个项目,也不愿直接组合。比如 Uniswap 可以直接在入口方法中提供一个 Reference 地址,应用开发者可以在自己的应用中嵌入 Uniswap 组件,Reference 地址填写自己的地址,就可以获取到交易费分成。也希望有更多的协议来一起探索这种模式。
总结
Bitcoin 从诞生以来,从电子现金到数字黄金,不同的阶段,大家对它有不同的期待。但它的终点绝对不是作为 ETF 或者央行储备被豢养起来,也不是实现一币一别墅让持有者发财,而是要开启一片新大陆,无论是叫 Cryptocurrency,区块链还是 Web3,它的目标都是「自由」。
开始写这篇文章的时候,Bitcoin 还在冲 80000$,然后还没写完就破 90000$ 了。大家沉浸在上涨的愉悦中,但我想说的是只有 Bitcoin 涨,还远不是牛市,真正的牛市会有大量新的项目涌现出来,而 Finance 已经一定程度实现了 Free,之后会有哪些新的应用形态会率先 Free?可以一起探索,拭目以待。
借用 RMS 的那句话,我们的目标是 Free Service,而自由没有一个纯粹的数学或者技术解,只是引入经济博弈可能还不够,我们需要更多「人」的参与