上一篇讲联盟链中的女巫攻击时,提到了在一个供应链金融的特定应用场景中,可以通过应用层的特定设计,从经济模型角度,解决女巫攻击的风险。
区块链的信息安全与一般的信息系统有两大不同之处。一是传统的信息系统通过各种技术和管理手段,把攻击隔离到系统外,进而保护系统;而区块链作为一个整体系统,其设计思路就是为了抵抗拜占庭节点的背叛,因此,有很大程度上,攻击是来自区块链系统内部的。二是通常情况下我们只能在自己的节点上做各种安全防护,缺乏从上帝视角看的整体区块链系统的运行情况,我们只能从自己能够收到的信息上去推测其他节点的情况。
正是因为这两个重大的区别,区块链系统中的信息安全保护的难度是很高。我们通常认为区块链系统很安全,是因为以PoW机制为共识算法的比特币区块链系统经受住了时间的考验,但不幸的是,对一个已有信息系统进行任何改造,都有可能带来新的安全问题。而我们现在在推广的各种区块链系统,已经和比特币区块链系统有了重大的差异。因此,不能因为比特币的安全,就默认区块链系统都是安全的。
利用经济模型,解决系统可能面临的攻击风险,是区块链系统从诞生之初就一直遵从的一个原则。尽管很多人会质疑,经济模型解决攻击风险,并不是一种可以严格证明其安全性的方法。其实我们现在使用的密码学,也是基于一些基本的数学假设(假设一些基本的运算的破解方法是计算困难的)的。我们本身就生活在一个经济社会中,利用经济学假设(理性人假设),在一定的理论框架内,我们也能推导出一些经济模型的安全性。当然,经济学假设比起密码学的数学假设要弱上太多了,但是考虑到在联盟链中这种具有明确身份验证的区块链中,我们认为经济模型安全够用了。
针对不同区块链应用的情况,我们需要采取不同的策略。在联盟链中利用经济模型来解决攻击风险时,我们主要有两种解决思路:一是攻击者的利益点在哪里;二是在链外是否有修补措施。
针对一,我们可以在设计业务模型时,有针对性的对攻击者的利益点进行重点防护。在一个经济模型中,一般的有攻击得利者,就有对应的受损方。通常攻击者是单点的可能性比较大,而受损方则可能是单点或者多点。在有些业务中,攻击者与受损方的角色可能会交换,在有些业务中则不会。在设计业务模型时,需要对这些问题给予充分的考虑。
针对二,我们可以认为链外的修补措施是一种兜底安全措施。在联盟链中,由于所有节点都有身份认证措施,因此对于绝大多数攻击是有据可查的。在这种情况下,若干家企业在签署法律合同共同组建联盟链时,应对可能产生的攻击进行事先约定,提出一定的链外惩罚措施,确保攻击发生后,即便没有实际损失的情况下,也能对攻击者产生震慑作用。
综上,对于联盟链这种新型企业业务,引入了全新的理念和思维,因此在信息安全方面也需要引入全新的理念和专业的业务设计和防护。选择能够提供全面服务的区块链供应商,对企业业务上链的成败将起到重要的作用。