# 链安全

# 概述

在设计区块链时,系统的安全性至关重要。因此,TOP Network采用了丰富的减灾技术来确保系统的安全性。

# 交易Flooding和DDoS攻击

在DdoS攻击中,攻击者通过由他们控制的账户发送大量的交易让系统繁忙而无法处理正常、合法的交易。这样的攻击似乎是可行的,因为正常情况下TOP Network链不收取交易费,这使得攻击者提交大量交易的成本几乎为零。

TOP Network链目前实施了以下防御策略,目标是让发送大量交易的攻击成本变得非常高昂。

# 最低余额要求

账户在发起交易之前必须有0.1 TOP token的最低余额。此外,为了获得每日免费gas资源,账户须保持有100 TOP token的余额。如果用户超过了这些限额,则必须在发起交易之前储存额外的TOP token。这些要求大大增加了攻击者生成大量账户并发送大量交易以中断系统的成本。

# 资产锁定

每个转入交易的资产会首先进入锁定状态,在此期间资产不能被转移。锁定期是系统设置的一个参数,它取决于资产的价值。金额越高的资产锁定期越长,阻止了循环转移攻击,同时让大宗交易更加安全。

# Sybil攻击

攻击者试图创建数百或数千节点来影响共识网络的安全性。TOP Network使用一类特殊的PoS*共识机制(参见共识协议)来阻止Sybil攻击的发生。

# 节点最低保证金要求

节点要加入共识网络,其账户(每个节点必须是一个独立账户)下必须要有最低保证金。不同角色节点:边缘节点(edge node)、验证节点(validator node)、存储节点(archive node)和审计节点(auditor node),对最低保证金的要求不同。越重要的节点,最低保证金越高。因此,攻击者为了发起攻击而创建和拥有许多节点的代价是高昂的。

# 节点入网准入门槛及分片随机性

节点满足入网门槛后,其最后能否参与共识的几率取决于其综合资产权益。综合资产权益是一种信誉与保证金相结合的形式,这让攻击者在发起攻击前要积累大量资产、时间、信誉(在网内表现良好),大大增加了攻击成本。此外,TOP Network Chain使用VRF-FTS算法从候选池中随机选择节点组成分片和集群。降低了恶意攻击者让其所有节点进入特定分片或集群的可能性。

# 小额交易攻击

攻击者向大量账号发送极小额度的交易,试图阻止系统处理正常交易、浪费共识节点存储空间。前面提到的最低保证金要求能够阻止高频的小额交易攻击。此外,分配的Disk空间用尽后,必须通过质押TOP token来获得额外的Disk空间,用以发起和永久存储新交易。

TOP Network的账户交易是以单元点阵(Unit Lattice)存储的,账户的历史交易数据会被新交易数据实时覆盖,从而根本性的降低节点存储空间的占用。因此通过小额交易攻击不会耗尽节点的存储空间。

# 对特定分片的攻击

攻击者试图定位到某条交易所在的分片,然后对这个分片发起DdoS攻击或者合谋篡改交易。TOP Network从以下几个方面来防御攻击。

# 边缘网络保护核心网络

用户和客户端被边缘网络隔离在核心网络之外,即无法直接连接到共识节点,也无法和共识节点进行交互。

# 随机、动态的分片机制

VRF-FTS算法根据节点的综合资产权益随机选择节点分片。除此之外,节点在不同的分片和集群中轮值,为不同的账户空间服务。验证交易时,每个分片内部为账户随机选择不同的首席pBFT节点。这样的3层动态随机性,让攻击者非常难预先知道某个交易具体在哪个分片和被哪个节点处理。基本杜绝了节点预先合谋的机会,也避免节点被定位后遭受DDoS攻击。

# 二次审计

为了确认交易,交易首先会在分片内被共识验证,然后由审计网络中的一组审计节点进行进一步审计。共识验证节点和审计节点组在交易级别是被随机选择的,因此攻击者无法预知负责交易共识验证和审计分别是哪些节点。如此,即使在分片内有作恶节点,也无法对交易作假。

# 分片接管机制

如果一个分片遭遇DDoS攻击而导致有效节点变少,以至于分片不能安全地工作。这种情况下,被攻击的分片会自动地被合并到另外一个分片里,组成一个更大、更安全的分片。

# 双花攻击

在TOP Network链上,账户以单元点阵(Unit Lattice)来存储交易。单元点阵的本质是账户下的交易组成的一条微小线性链。账户的每个有交易都包含一个唯一的、递增的nonce,以及系统已确认的前一个交易的哈希值。另外,当一个交易被确认后,该账户余额会被实时更新,让每一个共识验证节点能及时发现和阻止双花攻击。

# 智能合约安全

TOP Network Chain提供了两种类型的智能合约,即系统智能合约和用户智能合约,它们在独立和隔离的虚拟机上执行。系统智能合约,用非图灵完整的脚本语言编写,用于管理主链上的账户资产。用户智能合约用图灵完备语言编写,所以很灵活。然而,用户智能合约被限制运行在独立的业务链上,这就能保护主链免受用户智能合约漏洞攻击而造成的资产损失。

# 个别节点作恶

个别节点试图恶意篡改交易或者故意不处理交易。但即使分片里有1/3的节点作恶,pBFT机制仍然能保证剩下的诚实节点能够正确地执行交易共识验证。没有及时处理交易的节点会被候选节点替换。

交易必须被验证节点检验,还需被审计节点审计签名后才能被最终确认,这样审计节点会发现分片里的恶意节点。系统在交易级别随机选择审计节点,使得验证节点无法预先识别审计节点,这样审计节点与验证节点就无法合谋作恶。

# 交易重播攻击

攻击者试图在操作系统传输协议层拦截交易数据包并录制下来,然后发送重复的交易包。这种攻击本质上是DDoS攻击和双花攻击。

TOP Network链采用如下策略来综合防御此类攻击:

  • 每个账户使用递增的nonce来标记每一笔交易,节点会拒绝nonce雷同的交易。

  • 每个提交的交易必须包含账户下最新被验证过的交易的哈希值。同时同一个账户下的所有交易按照被创建的先后顺序连接成单元点阵(Unit Lattice),因此验证节点可以简单判断出到达的交易是否重复。