Photo by Martin Shreder on Unsplash
通讯公链,就是这条公链是为通讯专门设计,而不是一条通用的可以做任何事情的公链。
一般来讲,在技术领域,通用性意味着更高级的抽象,也往往会带来性能或效率的下降。我们仔细分析平台级的通讯系统需求,可以发现主要有可操作性、业务适用性、通讯安全三个方面的原因。
可操作性
通讯服务与账本服务,在互联网场景下的请求量级是完全不同的,通常情况下前者要高几个数量级。相比记账这件事,一个互联网服务要做的事情有很多,一个用户访问后看起来什么事情都不做,可能已经在后台有了很多次API请求。将通讯服务直接跑在区块链上,意味着所有请求都会上链,这对公链提出了比记账更高的要求。
虽然现在很多公链都在致力于解决这个问题,也都出现了像分片Sharding技术和DAG这样相对成熟的方案,然而离满足记账需求仍有相当的距离,也就更别提满足大规模的通讯需求了。
业务适用性
显而易见的是,不是所有请求都需要上链,因为上链要有成本。区块链操作系统虽然带来了实现的灵活性,然而也把所有的操作变成了收费模式。这对高收益业务场景尚可接受,然而对于基础应用,这从根本上动摇了其依靠规模效应来降低边际成本的模式。
就像云服务之于传统服务器托管,SaaS服务之于传统应用,大型应用依靠规模效应获取额外的经济收益,是其维持竞争优势的基础。
通讯安全
从安全角度看,通讯行为和流转的信息,都不应该走链。区块链为了免信任而公开透明,但这跟通讯需求有相悖的地方,没有人希望自己跟谁聊过聊过什么内容都被公开在区块链上,即使他们是加密的。
有些人会觉得端到端加密足够了,其实未必,通讯行为涉及的好友关系,网络接入路径,都是通讯安全的重要组成部分。
此外,从技术应用的过往来看,实验室研究会探索速度和性能的极限,但大规模的应用往往不会直接采用最快的技术,而是倾向于最经济的技术。
牛刀杀鸡,开飞机送快递的情况都不是好的选择。