我这方面已经干了整整八年的企业级系统底层架构设计工作, 关于那种把不同的链条连起来一起干活的事情, 我遇到过的困难和麻烦真的非常多。
总结起来就一句话呢, 让没有互相认识的链条之间产生信任感, 这个难度比起在一条链条内部让大家达成一致意见来说要艰难得多, 如果想要在不同机构那里实际应用这种方案的话, 到处都是容易出问题的地方, 所以千万不要认为写一套软件代码就可以适应所有不同的状况而天下通行无阻。
私有链交互怎么打通
实际上, 由我来经手和处理的方案里面数量最多的一种, 就是采用那种叫做跨链锚点的方法, 再加上一种被称为轻客户端验证的技术手段。可是, 真正使得项目进展陷入停滞并且被卡住的原因, 从来都不在于技术层面有什么问题。相反, 根本原因在于那些机构之间想要签订的信任协议, 始终是无法签署成功。
在去年那个时间段里,我协助某一家汽车零配件供应商去实施零部件追溯的工作。在这个项目操作过程中涉及到了三条链条都已经顺利运行并通过了测试这一情况。然而, 问题却偏偏在数据格式对齐这一块耗费了大量的时间。大家就这样为了完成对齐这个环节, 整整拖了四个月的时长之后, 才最终得以推进下去。

在动手实践的时候, 最让人省力的一种办法, 是使用标准化的接口, 去把底层的差异全都封装起来, 接着再把共识验证这件事, 单独抽取成一个中间层, 这样一来, 上层的业务系统也就不需要去感知底层链与链之间的区别了。
只要这个接口层面的抽象工作做得足够好, 那么后续再接入新的区块链时, 基本就只需要修改相关的配置信息就可以了。
私有链交互难在哪
权限模型不统一是头号杀手, 甲方A用的是RBAC模式, 乙方采用的是ABAC模式, 而丙方则是直接写死了白名单, 一旦三条链进行连接就会产生非常糟糕的后果, 我在项目当中花费了三周的时间去迫使各方先把权限策略拉齐一致, 这个过程竟然比调通跨链协议本身还要费劲得多。
审计本身也是一个充满风险的区域, 每一条在不同链之间进行的交互行为都必须全部留下痕迹并且能够被追溯清楚, 关于合规审查所需要花费的时间周期和经济成本, 通常要比进行软件开发本身的成本还要高。
如果这部分预期不能在项目开始的阶段就提前确定下来并锁定好, 那么项目进行到一半的时候就必须停下来等着进行审批流程。
所以大家就不要一开始就闷着头去写代码, 得先把那些业务方人员还有合规团队的同志们在思想认识上对齐的事情搞定, 之后才轮到那个技术方面的活儿是最后来进行收尾处理的这么一个过程。
