火币自 2013 年创立以来,一直秉承“让金融更高效,让财富更自由”的使命,并始终将“用户至上”作为公司发展的核心理念。经过五年与用户的风雨同舟,火币已经发展为全球领先的数字资产金融服务商,形成了以数字资产交易平台火币 Global 为核心,以各国交易所与火币生态、火币区块链应用研究院、火币资本、火币 Labs、火币矿池、火币资讯、火币钱包等为集团内生态节点,并且以火币生态火伴为集团外生态节点的全产业生态布局。
随着区块链技术的不断发展,火币未来的形态更可能进化为一种全新的分布式体系,所有资产与权证的生成、流转、公证与确权都在公链上进行。火币正在进行逐步将业务开放到社区进行自治的生态化尝试。但当前区块链底层基础设施尚未成熟,全产业依旧处在受制于区块链技术性能与可拓展性缺陷的阶段。因此,火币在经过深入论证后,决定致力于开发出一条代表全球行业最高水准的数字经济时代公有链——Huobi Chain,以支持未来世界的底层运转。
在即将到来的数字经济时代,Huobi Chain 以“赋能实体经济,推动数字经济发展”为目标,定位于数字经济时代基础设施公链,追求更高的性能、稳定与安全,为交易清算、支付、资产管理、证券等各种复杂场景提供计算与存储等基础设施,旨在成为数字经济时代公有链的标杆。
技术介绍
1. 设计理念
作为面向数字经济时代的基础设施公链,Huobi Chain 旨在利用区块链技术优化火币在不同时间段、不同领域的战略布局,为火币在数字时代中的产业发展助力。
首先,Huobi Chain 通过交易上链,实现在透明和可监管前提下的数字资产交易和清结算。具体而言,在透明度设计方面,通过技术手段,实现交易委托账本(order book)、限价单、结算的上链,使 Huobi Chain 可以自证无权使用交易资产;在监管方面,Huobi Chain 增加了监管节点,在保护用户隐私的前提下保证监管节点可追踪交易,查看资产溯源;在交易和清结算方面,为实现链上高效交易,交易链上将增加做市机器人撮合交易,以提高流动性。
其次,随着公链在交易方面的设计完成,为适应数字经济在未来的发展,Huobi Chain 将支持复杂业务流程的链上处理及更丰富的资产类型登记上链。现阶段,数字资产市场仍处于早期阶段。截至 2018 年 11 月,数字资产市场的总市值约为 1300 亿美元,而同期苹果公司的市值就达到了 8000 亿美元;同时,相比于股票市场,数字资产的设计也较为单一,可以说数字资产市场无论从规模还是从产品来讲仍有较大的发展空间。随着社会经济的进一步发展,更多资本市场的成熟模式也会逐渐与通证经济相结合。在不久的将来,从货币到商品,从房产契约到各类金融资产,将会有更多资产可以进行通证化(Tokenization)。现实世界中的资产以通证的形式映射到数字世界,可在区块链系统中进行交易和管理,数字资产的市场规模也将迅速扩大。为此,Huobi Chain 将开发新型通证合约,满足增发、并购等复杂业务场景的需要。
最后,Huobi Chain 也将会成为火币全产业生态的底层支持。火币诸多业务例如超级节点投票、火币矿池、火币钱包、火币生态基金等均可进行上链处理;而火币在人才、法律方面的业务布局,也可基于 Huobi Chain 开发相应的 DApp。在 Huobi Chain 的社区生态和技术基础发展成熟后,将面向全球拓展更为广泛的业务场景。
2. 技术架构
Huobi Chain 首创双链架构,构建交易链和合约链双链并行的模式,并通过跨链技术实现双主链间的信息交互。双链架构确保 Huobi Chain 系统能够兼具高扩展性、高安全性和高效率。Huobi Chain 系统架构如图 1 所示。
交易链不需要支持智能合约,对于金融领域的具体需求可以通过增加金融相关的特殊交易来实现,从而可以在一定程度上提高 TPS,以满足交易上链中高速、高频、低手续费的需求;合约链主要支持智能合约,对 TPS 的需求较低,以实现在合约上链时的复杂交易、业务合约、金融合约、逻辑和验证内容。
无论是面对高并发、高 TPS 的业务,还是面对高扩展性、强智能的业务,HuobiChain 都能游刃有余,从而真正落实区块链赋能实体经济的理念,使 Huobi Chain 成为构建数字经济的基石。
2.1. 区块链系统
(1)区块链基本概念
◼ 哈希函数
密码学哈希函数是区块链的基础,保证了系统中的信息不能被篡改。简要而言,哈希函数能在合理的时间内,把任意长度的输入通过散列算法,变换成固定长度的输出。要使哈希函数达到密码层面的应用,必须满足以下特性:定义一个哈希函数 Y=H(X),①对于任何输入 X,H(X)长度永远一致;②根据输入值 X 能算出输出值 Y,但根据输出值 Y 无法算出输入值 X;③无法找出两个输入值 X 和 X’,使输出值 H(X)和 H(X’)相等;④谜题友好性。
其中,性质②保证了信息的隐密性。性质③保证了哈希函数值具有不可篡改的特性。信息如果被篡改,那么整个哈希值会完全不同。在性质②③的前提下可以引申出性质④谜题友好性。我们设输出值为 Y,已知的输入值 M,要找到谜题的未知输入值 X,使Y=H(M || X)成立,唯一的方法是尝试所有的可能输入值 X。例如 Y 是一个 200 位的二进制数,如果使用暴力破解,Y 所有的情况共包括 2^200 中,对 X 进行随机选取,在最差的情况下,要经过 2^200 次哈希运算,才能得到一个满足要求的哈希值。X 的随机性特征保证了求解过程除上述方法外,没有更好的办法。
◼ 区块链
区块链是使用哈希指针形成的一种链式数据结构,区块之间互相链接一直延续到创世区块,一个区块包含一段时间内的交易信息,因此区块链包含了所有的历史交易信息,如果黑客想篡改区块链中的数据,那么前一区块的哈希值将不会与该区块的哈希指针匹配;当然,黑客也可以通过篡改前一个区块的哈希指针来进行掩盖,但他会发现修改到区块链的头部——创世块时会遇到麻烦,因为创世块一般存储在黑客无法改动的地方。
◼ 账户设计
不同于比特币区块链,Huobi Chain 引入了多重签名账户模型的设计。比特币没有账户概念,每个用户的余额都是从区块链上的 UTXO(未花费的交易输出)计算出来的,所有合法的比特币交易都可以追溯到前一个或多个交易的输出,这些链条的源头都是挖矿奖励,末尾则是当前未花费的交易输出。所有的未花费输出即为整个比特币网络的 UTXO。在 Huobi Chain 上,每一个地址对应一个账户,而全局状态就是由账户地址和账户状态的一个映射组成,该映射被保存在 Merkle 树的数据结构中。由于 Huobi Chain 拥有账户的概念,使得它在交易的可视化和查询账户状态方面具备实时性,可根据一个地址情况实时查看当前账户情况以及交易状态。
(2)数字签名技术
数字签名是区块链的重要组成部分,保证了区块链系统的安全性。数字签名有两个重要特性,第一,只有所有者可以制作自己的签名,但任何看到它的人都可以验证其是否有效;第二,该签名只与某一特定的文件发生联系,该签名不能用于表明所有者支持另一份不同的文件。
数字签名方案由以下三个算法构成:
✓ (sk,pk):=generateKeys(keysie);generateKeys 方法把 keysize 作为输入,来产生一对公钥和私钥。私钥 sk 被安全保存,并用来签名一段消息;公钥 pk是任何人都可以找到的,可以用来验证签名。
✓ sig:=sig(sk,message);签名过程是把一段消息和私钥作为一个输入,对应的消息输出是签名。
✓ isValid:=verify(sk,message,sig);验证过程是通过把一段消息和签名消息与公钥作为输入,如果返回的结果是真,证明签名属实;如果返回的结果为假,证明签名消息为假。
同时,要求有以下两个性质,
✓ 有效签名可以通过验证,即: Verify(pk,message,sign(sk,message))==true
✓ 签名不可伪造。
(3)共识机制的选择
公链共识机制的选择会考虑多方面的因素。首先,共识机制一般遵循 CAP 原则,即一致性(Consistency)、可用性(Availability)和分区容错性(Partition tolerance)三者难以同时达到最优。其次,在选择和设计共识时,也需要考虑共识的基础性质:(a)可认同(agreement),所有诚实节点都认同一个结果;(b)值合法 (validity),认同的结果必须是一个合法的;(c)可结束 (termination),在一定时间内一定达成共识,而不会无休止地进行下去。
从理论与实践相结合的角度出发,Huobi Chain 的合约链和交易链均选择 BFTDPoS(Byzantine Fault Tolerance – Delegated Proof of Stake,拜占庭容错式的委托权益证明机制)作为共识机制。
(4)合约层设计
Huobi Chain 的合约层由多个为交易而定制的内置合约、智能合约构成,并在此基础上实现跨链中继,从而使得 Huobi Chain 双链之间实现可信的跨链交互。
Huobi Chain-VM 使用 WebAssembly(WASM)执行智能合约。WASM 可支持多种编程语言,采用二进制编码,占用存储空间更小,且在程序执行过程中的性能优越。
WASM 会生成中间语言——字节码,可以使用 Huobi Chain 提供的编译工具进行编译。调用合约时,部署接口将字节码部署在链上。成功部署后,区块链上会创建一个智能合约账户,账户中存储了合约的字节码和对应的 ABI(Application Binary Interface)。用户通过指定的合约账户名以及合约方法,利用 ABI 和智能合约交互,实现对智能合约的调用。
最后,为了防止合约逻辑执行失败产生的问题,Huobi Chain 将参考以太坊的流程,使用 require 和 assert 解决。
2.2. 双链架构
双链结构主要是根据现有工程实践案例的相关设计,例如 thunder network 的快慢链解决方案,该方案可以追溯到 BTC 时期。BTC 的主要功能为支付结算,但受限于10 分钟的出块时间,在实际应用中用户体验较差,因此需要一层 hub-based network来做相对更快的结算。lightning network 作为第二层解决方案在保障 BTC 主链结算功能的同时,也增加了可扩展性。可以看到 lighting network 通过 4000 多节点以及12000 多个通道维护了 450 个 BTC 的网络交易。基于这个技术解决案例,我们可以在公链的初始设计中,通过双链结构保障结算功能的同时增添可扩展性,而在其中,就需要设计相关的结算公链以及扩展公链的功能,并在连接通道上使用到 SPV(Simplified Payment Verification)和 CLTV(Check Lock Time Verify)作为主要跨链方式。
由于 Huobi Chain 的首要目标是保证高速交易,但智能合约对系统内有效资源的消耗较大。为了在快速结算的同时保证合约的广度,Huobi Chain 在设计中将采用双链架构,分成交易链和合约链两部分:
交易链:提供支付结算功能,如挂单、撮合、深度等功能都由其负责;
合约链:支持智能合约,满足复杂场景的应用,提高公链的扩展性。
其中,合约链上的交易需要登记到交易链上,Huobi Chain 会提供跨链中继来实现,而合约链上会提供一个统一记账的内置合约来负责接收。
具体而言,在区块链中,要保证高速特性就需要对交易 KV 对(Key Value Pair)进行精简,同时对相关节点的机器进行优化,否则区块链网络的交易处理能力(TPS)就会因为在传输、打包时间上的损耗而降低。由于 Huobi Chain 在设计上要求引入多种功能特性,需要基于非图灵 script 或者更高级的虚拟机部分的支持,以及将一些可内置化的特殊交易以较低的成本在终端实现。如果采用 gas limit 或者控制节点机器的方式,当任何 DApp 受市场追捧而大热时,势必将会影响到整个公有链的运行,因此 Huobi Chain 将采用双链架构设计。此外,为了保证双链数据的可用性(尤其是合约链上数据的可用性),Huobi Chain 将使用 SPV 验证+类 HTLC(Hashed Timelock Contracts)主链锁定的跨链技术方式,在合约上将使用主链的 Token,交易链主要保障 KV 对,合约链上的 balance 只有交易链通过 SPV 后才会产生,但合约链只有返回的交易,交易链只有进入合约链的交易。综上,Huobi Chain 将通过双链的架构设计和上述跨链技术,保证合约链的使用对交易链的 TPS 不会产生影响。
Huobi Chain 的双链架构优势显著:首先,基于链中的所有交易,都可以看作全局变量的更改,此时可采用静态的方式来保证一定作用域,在未来有更多的作用域时就可以用同样的跨链协议进行联系;其次,在合约链拥有SPV 之后,支付在合约链和主链进行验证的步骤可异步,大幅加强了使用性以及延展性。例如,当一个合约链被几个应用占满时,可通过同样的结构开启另一条合约链。
3. 技术实现
3.1. KYC&AML
(1) 数字身份
在 Huobi Chain 的交易链上实现 KYC 和 AML 管理,首先必须在链上建立一个可信的数字身份标准 H-UID(Huobi Chain – User Identity)。H-UID 具有唯一性,各国公民经过 KYC 身份验证后将个人信息登记上链,用户可基于 H-UID 对自己的个人信息和数字资产进行管理。
H-UID 由以下几个部分组成:
A. 基础信息,如姓名、性别、国籍、证件类型、证件号码、联系方式等;
B. 高级信息,如信用、教育、工作、社交等相关数据;
C. 数字资产信息,个人持有的数字资产情况;
D. 账户公私钥,用于对 H-UID 的数据进行签名、加密和授权。
注:机构账户须与法人身份相关联,一个法人可以注册多个机构账户。
(2)H-UID 的创建和验证
用户自行提交信息创建 H-UID,由监管节点对信息真实性进行验证,验证通过后对验证内容进行签名,个人信息经过加密后登记上链。在 H-UID 的验证周期上,在需要用到的 H-UID 的时候触发验证判断,重新验证周期为 6 个月,一般情况下则不需要验证。
(3)数据授权
为了更好的保护个人隐私,除监管节点有权查看 H-UID 的个人数据外,其它任何人或机构只有在获得本人授权的前提下方可查看他人 H-UID 的数据。用户在授权他人查看数据时,可以将授权用户、授权时间、具体用途等要素在智能合约中进行设置,并且要求被授权人只能在可信执行环境中使用相关数据。所有查询记录都会在链上登记,以便追责。
(4)安全保护
为了保护用户的身份信息安全,在 Huobi Chain 上,用户丢失了数据私钥不会丢失身份,可以通过监管节点验证身份后并重置数据私钥;为了防止私钥被盗取后在全网公开,用户本人也可以对私钥进行修改。
3.2. 跨链技术
Huobi Chain 采用的是双链结构,因此涉及跨链技术。Huobi Chain 将开发 HProtocol,即使用 SPV 验证+类 HTLC 主链锁定的跨链技术方式,传统的 SPV 验证模式往往存在确认时间太长而造成效率低下的现象,但 Huobi Chain 采用了 DPoS 机制,巧妙地改善了这一问题,可完成对跨链交易的极速验证。
以交易链上的两个用户 UserA 和 UserB 为例,其中 UserA 和 UserB 拥有一定数量的 Token。UserA 和 UserB 达成了某个协议(如跨链数据转移),随后 UserA 需要抵押一定数量的 Token,并利用一个侧链完成此协议。协议中约定, UserB 在完成某项任务之后(如完成跨链数据转移)可以在侧链上获得 UserA 所抵押的 Token。在
该过程中,UserA 可随时查看所抵押 Token 的剩余数量, UserB 也可随时可以查看自己可改范围内的剩余数量。且 UserA 可随时决定终止整个协议,在 UserA 终止协议后,抵押剩余将返回到 UserA 的主链账户中,UserB 也将获得在这个协议过程中所扣除的 UserA 的 Token。
例如,初始情况下, UserA 和 UserB 拥有的通证数量为{UserA:1000, UserB:0}。首先, UserA 启动该协议并生成一个侧链;然后,UserA 和 UserB 达成一个跨链数据转移协议, UserA 抵押 100 枚通证到侧链中。UserB 完成了部分跨链数据转移之后扣除了侧链上的 10 枚通证。完成了上述过程之后, UserA 发现不需要继续转移了,选择终止这一次协议,侧链上通证的转移将会同步到主链上。最后,UserA 撤销了整个侧链。整个过程中 UserA 和 UserB 的资产变化如图 6 所示:
上述示例是简单的 UserA、UserB 之间的合约。我们可依照相同的方法将该协议应用到多方角色中(UserB 可以是多个用户)。下面以一个具体的示例来描述整个协议工作的过程:
A. 初始化:假设有四个用户 A,B,C,D,用户 A 发送特殊交易 Tx.init ,初始化一个数据,包括权限表 {用户 B: modify, 用户 C: modify, 用户 D: readonly} 和抵押列表 {用户 B: 100,用户 C: 50 }(即面向用户 B 抵押 100Token,面向用户C 抵押 50Token)。特殊交易过程中 用户 A 的150枚 Token 被锁定(扣除),其值即为抵押列表的和;
B. KDC(Key Distribution Center,密钥分发中心)取这条 Tx.init, 保存好文件 ID, 包括权限表{用户 B: modify, 用户 C: modify, 用户 D: readonly}和抵押列表{用户 B: 100, 用户 C: 50};
C. 用户 B 向 KDC 发送修改 HTTP 请求 req-write,KDC 根据权限表判断拥有权限,将 用户 B 的修改记录,返回成功;
D. 用户 C 向 KDC 发送读取 HTTP 请求 req-read,KDC 根据初始值和所有的修改,计算出最终的值,返回给 用户 C;
E. 用户 A 向 KDC 发送终结 HTTP 请求 req-terminate,KDC 停止为请求的fileid 服务,然后,KDC 发特殊交易 Tx.terminate,将 用户 A 剩余的抵押金额返还,将抵押列表的用户金额增加。
3.3. 分布式存储
目前,分布式存储是新公链的必备模块。由于 EVM 的 4700000 的 gas limit per block 只能容纳 62kb 的存储空间,远不能满足用户建立静态链接或存储文档原件上链的使用需求,而分布式存储可为不同场景下的需求提供适当的选择,通过把数据在链外进行分布式存储的方式,既能做到主链存储资源的合理利用,也能让数据在隐私存储和公开访问上有所选择。
为此,Huobi Chain 使用第三方开发的去中心化存储来加快开发。为了保障用户的安全与隐私,Huobi Chain 要求第三方提供的去中心化存储使用无服务器交互系统的存储架构方案。
选择上述方案主要基于以下几点:(1)若只涉及用链,则需要提供能被验证的明文,即公开整份文件给全体用户;(2)若仅用 A 的密钥对进行加密,则只能每次对 A 进行询问后才能查阅合同,会存在合同不被承认的单点故障风险;(3)若只用分布式存储,则文件(作为分布式网络资源)还是以明文的形式存储在各个节点中,这种场景一般发生在网页资源分布式存储当中,针对直接访问资源的场景,通过明文访问可以保证无服务器的资源服务系统,但在交互上依旧存在全部明文可见或是只对 A 可见的问题,A 的文件还是存在出现单点故障的风险。
在第三方提供的分布式存储实现路径上,Huobi Chain 要求使用 DHT(分布式哈希表)作为 P2P 通信结构,这也是分布式存储非常成熟的技术解决方案。具体而言,Huobi Chain 要求使用 PoR(Proofs of Retrievability)中的 sentinel(SPoR)来提供定时存储心跳,保证文件可以在上传之后被取回;通过对 sentinel 进行区块链版本的工程优化生成指纹组,并通过相关的心跳产生时间属性提供给链端以保证区块演进。DHT 作为解决 trackerless 运用的最广的方案,已经成熟使用在 BitTorrent、电驴(kad network)、以太坊(只包含通信寻找邻居部分)中。
Huobi Chain 将沿用第三代 DHT—Kadmilia 作为 P2P 覆盖网络的结构,全网采用分布式存储 Key Value 的方式进行设计,通过 Key 进行精确查找,通过多次异或距离跳转寻址最终进行下载,能保证具有 2 的 n 次方个节点的 Kad 网络在最坏的情况下最多通过 n 步就可以找到被搜索的节点或值。而在保证下载方面,PoR 也是云存储中保证数据完整性的方法。相较于 PDP,PoR 除了确保数据的完整性之外,还能确保数据的可恢复性。
3.4. 监管节点
监管节点主要存在于交易链中,合约链中不引入监管节点。区块链的节点可以简单分为两大种类:全节点(非挖矿)以及出块节点。全节点主要功能是为签名方交易和下载区块以保证区块链系统的可用性。出块节点的主要功能是验证、打包区块,并允许其他全节点下载区块。
基于技术特点,在设计时监管节点只能放在出块节点中。因为全节点已经下载了区块,即便是对区块的读取做一些特殊操作,对于不希望被监管的交易也可以通过技术方法回避。针对写入节点的监管相对容易,只要区块在打包之前将相关需要监管的模块用监管密钥进行加密即可:通过对 memory pool 的设置,普通出块节点和监管节点在打包的过程中都能看到源交易,而上链后,普通出块节点只能看到监管节点区块内容的子集合。这样既满足监管节点能查看所有信息,且仅有监管节点能查看这些信息(非监管节点不能查看),也保证了相关信息的每一次记录都在链上,以方便不同监管机构进行监管。
在 Huobi Chain 的交易链上,出块节点主要由火币和监管部门的节点构成,而一般出块节点为火币控制的节点。在具体实现上,监管节点主要有以下三个功能:
✓ 监管节点可查看 KYC 信息与区块链地址的对应关系,通过 KYC 信息本身(例如姓名、照片、身份证号等)去中心化存储以及 KYC 生成相应的一系列区块链地址,实现对应关系上链;
✓ 监管节点可对交易委托账本(order book)进行验证,主要通过涂污上链的方式实现,即将数据先加密再上链,监管节点有相关密钥可以随时查看,而没有密钥的节点无法查看相关信息;
✓ 监管可查看资产溯源,其余节点无权限,主要通过结算涂污上链的方式实现,由监管节点验证。
为保障监管节点的接入、证实、证伪及安全性,监管节点在设计上秉持独立原则,并计划使用两套网关。在信息数据的查询和追踪上,监管节点将设计一套安全合理的管理分发机制。具体而言,Huobi Chain 会设置一个特殊的监管节点来负责其他监管节点的公钥认证授权,同时每个监管节点有自己的一套公私钥。KYC 由监管节点完成验证、签名,不需要本人授权就可以在监管节点本地的离链数据库查看用户的基础信息,但更多的链上数据如高级信息、资产数据等都需要获得用户本人的授权才可以查看。
在 Huobi Chain 上,监管方想要获取监管节点的权限和执行能力,必须对监管节点进行维护。因为监管节点需要用自己的监管公私钥对涂污源数据进行可控的监管。若监管方不维护节点,则安全性和可控性均难以保证。
出于现实情况的考虑,初始阶段监管节点的维护由火币来代为执行。火币将会主动向监管机构提供数据,以便其进行监督。
4. 安全性
在数字经济时代,基础设施公链的安全性尤为重要。Huobi Chain 在安全性的设计上,主要围绕安全架构、安全审计、智能合约安全性和安全赏金计划四个方面展开。
4.1. 安全架构设计
在架构设计上,Huobi Chain 的核心目标是保护出块服务器的正常通信与运行,增强初始主网整体抗攻击能力与保护节点安全。为此,Huobi Chain 在架构设计上采用超级节点服务器隔离、多跳转节点和多链路通信的布局,防止 DDoS 攻击,确保超级节点不间断通信,具体架构设计如图 7 所示。
正常情况下,外围节点通过对外公布的公开节点进行通信;当攻击者通过公开的节点列表攻击公开节点造成公开节点不可用时,则可通过私密节点进行通信;当公网节点均被发现,并且攻击者进行攻击导致对公网 full node 服务器全部阻塞,最后则由私有VPN 网络在隔离的虚拟内网进行通信,保证最基础的出块正常;查询用 RPC 所在全节点与超级节点完全隔离并架设防御,保证外网对 RPC 的攻击不能影响到超级节点。
4.2. 安全审计
(1)审计的核心目标
在安全审计上,Huobi Chain 的审计核心目标如下:
A. 审计超级节点在公网暴露服务的安全状况,查找传统安全中的常见安全问题;
B. 审计超级节点架构的抗 DDoS 能力;
C. 针对本条公链的特性,进行定制化载荷攻击测试,检测整体框架稳健性。
(2)审计的核心方向
Huobi Chain 的核心审计方向主要包括以下四点:
A. 查找可造成整个节点停止出块的漏洞问题;
B. 架构缺陷造成的单点阻塞攻击就能导致节点瘫痪的问题;
C. 服务错误配置导致服务器可被远程攻击及控制的问题;
D. 节点敏感信息泄露(特别是服务器 SSH 连接私钥在 GitHub 上泄漏)等问题。
(3)审计内容
Huobi Chain 将以节点的自我审计为主(许多敏感的服务器与操作不应该直接暴露给第三方,需要依赖节点自我审计),安全团队提供专业的指导与协作配合,以达到最全面且高效的审计效果。
◼ 节点自我审计
A. 架构审计
✓ 超级节点服务器是否达到与外网的充分隔离,保证若有外网恶意攻击不会直接影响超级节点服务器出块;
✓ 超级节点是否多链路设计,防止出现单点故障(或针对单点的 DDoS )导致超级节点无法与其他节点同步;
✓ 节点是否有必要的安全加固(如是否在核心通信节点外围正确的部署高防抵御 DDoS 攻击,以及适当的部署 HIDS)。
B. RPC 安全审计
✓ 是否有对非必要的节点 RPC 服务进行限制;
✓ 若开启 RPC 服 务 , 是 否 有 禁 用 不 必 要 的 wallet_plugin 、wallet_api_plugin 及 producer_api_plugin;
✓ RPC 是否启用 SSL。
C. 安全配置审计
✓ Active 多签密钥是否配置正确;
✓ 是否开启日志记录,有条件下是否开启更多安全日志记录插件等;
✓ max-clients 参数配置是否合理,是否易遭受 P2P 连接打满连接数,导致无法同步;
✓ 是否使用非 root 权限启动节点程序;
✓ 是否更改 SSH 服务默认端口,服务器 SSH 是否配置白名单,并且设置只允许 key(并对 key 加密)登录,禁止密码登录。
◼ 安全团队审计
A. 基础设施审计
✓ 服务器提供商是否是优质的安全供应商,;
✓ 节点公网 IP 真实开放端口服务审计,防止运维人员未正确配置服务与安全规则导致脆弱点暴露。
B. 节点脆弱性审计
✓ 审计节点对抗全网扫描,隐藏真实公网 IP 的能力;
✓ 审计节点敏感信息是否在公网上泄漏,如在 GitHub 上暴露等;
✓ 审计 RPC 端口是否可进行恶意调用;
✓ 若节点部署除区块链网络主程序外的其他程序,则针对第三方程序进行脆弱性攻防审计;
✓ 审计节点是否有定制合适的应急响应方案。
C. 抗 DDoS 能力审计
✓ 针对 P2P 端口的抗 UDP Flood 、TCP Flood 等(含各种主流反射型攻击)进行实战型测试,利用真实的攻击流量,来检验节点的的稳定性;
✓ 针对 RPC 端口的抗 CC 攻击进行实战型测试,利用大量攻击节点高并发请求消耗服务器性能来检测节点稳定性。
4.3. 智能合约安全性
为提供智能合约的安全性,Huobi Chain 将结合业务需要,开发相关合约模板,开发者可以按照合约的接口参数进行调用,对于不符合接口要求的请求会直接拒绝调用,在舍弃一定程度灵活性的基础上极大提高合约的安全性。
此外,在智能合约安全测试方面,Huobi Chain 将开发专门针对 Huobi Chain 的智能合约验证平台,做到常规漏洞自动检测,快速、准确地查找智能合约常规安全问题。
在实施层面,智能合约的安全测试包括两部分:
A. 事前、事中:Huobi Chain 鼓励社区开发一个标准化 IDE,该 IDE 会进行代码自动补全和语法提示,并且能够自动整合已发现的安全漏洞并及时检查代码并指出可能存在的安全风险;
B. 事后:通过自动化扫描 Huobi Chain 的所有 DApps 的合约代码,利用自动化测试将漏洞库规则和 DApps 的合约代码进行匹配检测,并及时公布 DApps 合约代码漏洞。
4.4. 威胁情报赏金计划
Huobi Chain 将考虑与专业的区块链安全团队合作,实行安全赏金计划,为提供威胁情报报告的团队或个人给予一定数量的通证奖励。
◼ 处理流程
A. 报告阶段:
✓ 报告者访问安全网站,进入“赏金漏洞提交”页面,提交威胁情报;
B. 处理阶段:
✓ 一个工作日内,安全团队就收到的威胁情报进行确认并持续跟进评估;
✓ 三到十个工作日内,技术团队处理问题、给出结论并计分,必要时会与报告者沟通确认,请报告者予以协助;
C. 修复阶段:
✓ 业务部门修复威胁情报中反馈的安全问题并安排更新上线,修复时间根据问题的严重程度及修复难度而定,一般来说,严重和高危问题 24 小时内,中危问题三个工作日内,低危问题七个工作日内。客户端安全问题受版本发布限制,修复时间根据实际情况确定;
✓ 报告者复查安全问题是否修复;
✓ 报告者确认安全问题已修复后,技术团队告知安全团队处理结论和漏洞得分,并发放奖励。
◼ 严重漏洞
严重漏洞是指,发生在核心系统与业务系统(核心控制系统、域控、业务分发系统、等可管理大量系统的管控系统),可造成大面积影响的,获取大量(依据实际情况酌情限定)业务系统控制权限或核心系统管理人员权限并且可控制核心系统。包括但不限于:
A. 区块重放校验,区块不因为任何因素导致重放失败;
B. 系统智能合约溢出、条件竞争漏洞、权限控制缺陷、双花、共识层漏洞;
C. 沙箱逃逸造成节点命令执行或系统文件读取;
D. 沙箱超时检测机制绕过,造成 DDoS 本地节点;
E. 内网多台机器控制;
F. 核心后台超级管理员权限获取且造成大范围企业核心数据泄露,可造成巨大影响;
G. 通信层以较小的代价大面积 DDoS 其他全节点。
◼ 高危漏洞
A. 系统的权限获得(getshell、命令执行等);
B. 系统的 SQL 注入(后台漏洞降级,打包提交酌情提升);
C. 敏感信息越权访问,包括但不仅限于绕过认证直接访问管理后台、重要后台弱密码、获取大量内网敏感信息的 SSRF 等);
D. 任意文件读取;
E. 涉及金钱的越权操作、支付逻辑绕过(需最终利用成功);
F. 严重的逻辑设计缺陷和流程缺陷。包括但不仅限于任意用户登录漏洞、批量修改任意账号密码漏洞、涉及企业核心业务的逻辑漏洞等,验证码爆破除外;
G. 大量源代码泄露;
H. 智能合约权限控制缺陷;
I. 异常智能合约攻击,避免耗尽节点资源;
J. 通过全节点程序入侵服务器获取控制权限。
◼ 中危漏洞
A. 需交互方可影响用户的漏洞,包括但不仅限于涉及核心业务的 CSRF 等;
B. 普通越权操作,包括但不限于绕过限制修改用户资料、执行用户操作等;
C. 拒绝服务漏洞,包括但不限于导致网站应用拒绝服务等造成影响的远程拒绝服务漏洞等;
D. 由验证码逻辑导致任意账户登陆、任意密码找回等系统敏感操作可被爆破成功造成的漏洞;
E. 本地保存的敏感认证密钥信息泄露,需能做出有效利用。
◼ 低危漏洞
A. 本地拒绝服务漏洞,包括但不仅限于客户端本地拒绝服务(解析文件格式、网络协议产生的崩溃),由 Android 组件权限暴露、普通应用权限引起的问题等;
B. 普通信息泄露,包括但不限于 Web 路径遍历、系统路径遍历、目录浏览等;
C. 普通 CSRF;
D. 反射型 XSS(包括 DOM XSS / Flash XSS);
E. URL 跳转漏洞;
F. 短信炸弹、邮件炸弹(每个系统只收一个此类型漏洞);
G. 其他危害较低、不能证明危害的漏洞(如无法获取到敏感信息的 CORS 漏洞);
H. 无回显的且没有深入利用成功的 SSRF。
5. 技术优势
在技术优势上,Huobi Chain 将做到“易用性+支持活跃度+可监管+安全”,在可监管和安全的基础上,保持高性能以及增加易用性。
(1)易用性
✓ 对于用户:目前主流公链 keystore 生成本地私钥的方式会给用户使用带来一定难度,Huobi Chain 在做区块链 account 前端的时候,将采用类似于双登陆机制——keystore 针对开发人员与专业从业者,中心化的邮箱/电话账户对应 keystore 生成对应从互联网转过来的用户;
✓ 对于开发人员:为使技术人员在开发智能合约时能使用更简单的组件,即通过简单地拼接 template 就能写出常用的智能合约,Huobi Chain 将在设计上把常用智能合约进行分类,通过模块化的方式提供在 template 中。
(2)支持活跃度
✓ 开发环境和工具:基于 WASM,用户可使用 C、C++、Rust 等多种语言编写智能合约,并且存储成本低,性能高效;
✓ 高 TPS:Huobi Chain 通过 BFT-DPoS 机制,有望实现万级 TPS,实现低延迟的实时区块写入和查询,出块速度可达秒级;
✓ 资产上链:实现各种资产的上链。
(3)可监管性
✓ KYC&AML:监管节点可以查看 KYC 信息;
✓ 资产溯源:监管节点可以知道每个交易的溯源细节,其余节点只进行交易信息的溯源。
(4)安全性
✓ 采用安全架构设计,保证网络正常通信与运行;
✓ 与专业的区块链安全团队合作进行安全审计;
✓ 开发智能合约自动化验证平台,保证智能合约的安全。
社区生态及应用
1. 社区生态
历史经验表明,每一次经济形态的重大变革,必然催生并依赖于新的生产要素。如同农业经济时代以劳动力和土地为新的生产要素、工业经济时代以资本和技术为新的生产要素一样,数字经济时代,数据将成为新的关键生产要素,有价值的数据将成为一种稀缺资源。用户主体掌握大量的数据资源,但由于缺乏数据共享交换协同机制,容易形成“孤岛”。数字经济要达到一定的规模效应,必须要突破自身的个体界限,打通内部与外部的数据信息。而内外部数据信息的打通需要两个条件:一是数据的真实性、有效性能得到广泛认同;二是数据的内涵能得到一致的认同理解。而区块链技术恰好能解决这两个问题,借助区块链对信用体系的重塑,实现高度的信息对称和真实有效的共识。
Huobi Chain 将打造一个数字经济生态社区。在数字经济时代,用户的经济活动范围是基于信息与数据的优势。用户对自身数据和信息的掌握具有优势,但对外界的信息和数据的掌握处于空白状态,用户与外界主体之间缺乏信任与了解,无法对数据和信息的真实性和有效性达成共识,因此生态化的数字经济要求能够形成一个面向所有用户的社会信用体系。而 Huobi Chain 将利用区块链技术不可篡改和公开透明的优势重塑信用体系,提高数字经济活动的效率。具体而言,Huobi Chain 作为未来数字经济的基础设施平台,在社区生态上将提供以下三个功能:一是利用平台连接所有服务对象,收集和处理所有经营交易、场景活动的数据,并提供支付结算功能;二是根据服务对象的需求提供服务匹配,包括资金与资产的匹配、增值服务的匹配;三是连接外部服务机构,为用户的经济活动提供法律、会计、咨询、增信等服务。
因此 Huobi Chain 的社区生态将呈现以下三大特征:一是参与主体众多,各用户均可在社区内自主完成数字资产和上链资产的投资、融资和支付结算等经济活动,实现规模效应;二是交易上链实现了一定程度的信息对称,可在保证隐私和监管的前提下,让所有社区用户最大限度地发挥其在生态中的职能和价值;三是服务成本的降低,在规模效应和信息对称的基础上,通过区块链技术实现去中介化,可以大幅降低用户获取服务的成本。
在 Huobi Chain 上,数字资产和上链资产将在所有用户个体形成的生态网络体系中流转,任何一个融资需求都会与生态网络中具有相同风险收益偏好的资金进行自动匹配;资金也是如此,一个投资需求在生态网络中总能找到与之匹配的资产。当网络足够大、参与者足够多、需求足够多元化时,资金和资产将在用户之间打通,交易的清结算将在生态中普及,Huobi Chain 的数字经济生态也将形成良好的循环。
在 Huobi Chain 数字经济生态社区中,参与者包括三大类型:用户、基础设施服务方、外部服务方。各类型参与者在数字经济生态体系中的角色、职能、权责、价值各有差异。
2. 应用场景
随着社会经济的发展,在未来将会有更多的企业或个体参与数字经济活动,Huobi Chain 将提供一个标准化、规模化的平台,帮助用户在去中介的条件下低成本地获取各类数字经济信息服务。
2.1. 数字货币交易结算
Huobi Chain 最重要的功能即为交易结算。目前的数字资产交易所存在许多问题,首先是透明度问题,交易所无法自证交易数据的可信度,资产的持有情况并不公开,用户在交易所的资产安全得不到保障;其次是合规问题,要实现交易的合规,需要保证交易的可监管性。
为此,Huobi Chain 在技术上通过交易上链的方式,大大增加交易的透明度,降低用户的信任成本;引入监管节点,进行交易追踪和资产溯源,防止非法交易;同时,为了保证交易速度,Huobi Chain 还设计独特的双链结构,由 TPS 性能高的交易链来专门处理交易。
2.2. 新型合规通证
在未来,Huobi Chain 将着重打造新型合规通证一站式服务平台:从咨询到担保,从法律到会计,从发行到 KYC 审查,Huobi Chain 都将接入相关专业机构,使项目方能够在合规的前提下便捷地发行通证,允许个人和机构投资者完成合格投资者认证,合格投资人在符合政府规定的前提下参与。
2.3. 实物资产上链
在数字经济时代,通过区块链进行交易和管理的实物资产将超过万亿美元。资产上链是将现实世界中的实物资产映射到区块链网络上,并在链上实现登记、交易、结算等环节,链下将由合规机构依照链上要求进行交割。
2.4. 资产抵押贷款
Huobi Chain 将提供资产抵押借贷业务。即借方使用手中的数字货币作为抵押向贷方借款,在借贷双方确定借贷金额、质押率、利率等合同细节后,借方可以将数字资产质押在智能合约内并获取贷款,待借贷结束时,智能合约根据不同的条件触发完成合同。
2.5. 数字资产衍生品交易
衍生品作为金融市场中一种重要的金融工具,其价格主要由基础产品决定,其具备高收益、高风险的特性。同时,衍生品也是专业金融投资者进行风险控制的一项重要工具。在实际应用中,衍生品具备对冲和投机套利两项重要功能。
现阶段,数字资产的衍生品主要集中在数字通证的期货,但交易品种相对较为单一。伴随着更多的资产上链、通证产品的创新,数字资产衍生品将会更加丰富。Huobi Chain在早期将开发数字资产期货、期权,在数字资产债券、票据等多项产品发行后,将会开发更多的数字资产衍生品。
数字资产衍生品的开发需要确立合约标的、合约期限、交易保证金以及交割方式。具体介绍如下:
合约标的:指数字资产衍生品双方的权利和义务的对象。
合约期限:指数字资产衍生品可交易的时间段,衍生品合约期限的最后一天结束即开始进行资产交割。
交易保证金:即在投资数字资产衍生品时,投资者需要存入交易所结算账户以保证合约可以履行的资金。
交割方式:即投资双方在结算日进行交割时采用的方式。在数字资产交易中,一般交割方式有两种:数字资产交割和法币交割。
2.6. 智能风控系统
在数字经济时代,数据是金融应用的核心,大部分的金融产品都是围绕数据进行的。风险是金融的核心要素,而风险的控制依赖于海量的数据。风险管理主要指在项目中如何将潜在的风险减少至最低的过程。随着金融产品体量和复杂性的增加,对于风险控制的要求也逐步提高,其管理的范围也涵盖了金融产品的发行、流通等各个环节。巴塞尔协议将风险主要分为市场风险、信用风险和操作风险三类。
区块链金融作为现代金融的一个创新的产品,其高风险高收益的特点也意味着对于风险管理有着更严谨的要求。Huobi Chain 也将引入 AI 和大数据技术,为整个社区生态提供最后的风险控制支撑和资产投后监管服务。链上数据的不可篡改与公开透明更好的保证了金融风控模型中输入数据的真实性与一致性。
具体而言,Huobi Chain 将项目风控方面开发智能评级系统,对项目的风险进行评测,产品的设计也会基于智能评测的数据进行调整;对于数字资产衍生品的设计也会充分考虑风险的因素,最大程度上保证投资者的权益;Huobi Chain 的架构设计也会运用风控系统进行评测,对于系统的安全以及操作风险进行合理评估。
关于更多火币公链信息:https://www.huobichain.com/