联盟链在技术上和理念上都有别于公链。公链通常只有一个主链,比如我们只要说起以太坊,大家都知道是指的那一条链。但是联盟链是作为一个软件产品,初衷就是为了尽量多的卖拷贝,希望让大家多部署一些链的实例。
出现多链的场景之后,下一步自然就是怎么把这些链连接起来?
联盟链的节点通常对应一个企业,所以在链内部,我们更多的是讨论作为节点的企业之间的关系,即链上治理部分。
但是当我们把视角拉高,将一个一个的联盟链视作一个一个的个体,我们会发现,跨链其实跟传统的IT系统互联并没有什么差异。
比如,我们使用A公司的系统的时候,是完全不用关心A公司内部的情况的。A公司是老板一言堂,还是夫妻店,或者是先进的股份制?这对我们都没影响。我们只需要关注A公司一些很宏观的性质就可以了,比如有没有相关的资质?营业情况是否平稳?公司通过法律等非常强有力的束缚,将一群本来不相干的人捆绑在一起,形成一个集体形象。
A公司与B公司之间的业务往来,前提是相互信任的,如果没有这个前提,那也无法达成合作。但是A公司不会轻易相信公司B的某一个人的承诺,得写成合同,然后盖上B公司的公章。这样这个承诺就是B公司承担的,而不是其中的个人承担的。同样的,A公司也不会只有一个人去检查合同,万一看走眼碰到萝卜章呢?所以A公司内部也会有一个流程,一般要经过多个人的确认。
联盟链的跨链其实跟前述流程是一模一样的。
首先两条链之间要相互信任。建立信任的方式就不限了,有很多,比如:传统一点的签合同;或者上面再有一层联盟链来做注册中心的套娃模式;去中心化一点的到一个公链上去抵押token做仲裁。
A链给B链传递信息要附带密码学证据,以证明这些信息经过A链共识节点的共识,代表的是整个A链,而不是其中的一个节点。B链接收之后要验证这个密码学证据,同样的,也不能只让其中一个节点验证,而是要所有共识节点都验证才行。
这其实是一种非常有共性的模式,所有群体对群体的场景都会有这个模式。两个帮派打架,大家得先问问对方,你是冲某个人来的,还是冲着帮派来的?两家的子女要结婚,商量事情也得先问问,这是你个人的意思,还是你们家的意思?