一文看懂区块链技术安全,在安全行业区块链又有什么用
注:本文作者,360CERT 。原文出处: Seebug Paper 。 区块链技术是金融科技(Fintech)领域的一项重要技术创新。 作为分布式记账(Distributed Ledger Technology,DLT)平台的核心技术,区块链被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。区块链技术自身尚处于快速发展的初级阶段,现有区块链系统在设计和实现中利用了分布式系统、密码学、博弈论、网络协议等诸多学科的知识,为学习原理和实践应用都带来了不小的挑战。 区块链属于一种去中心化的记录技术。参与到系统上的节点,可能不属于同一组织、彼此无需信任;区块链数据由所有节点共同维护,每个参与维护节点都能复制获得一份完整记录的拷贝,由此可以看出区块链技术的特点:
虽然单纯从区块链理解,仅仅是一种数据记录技术,或者是一种去中心化的分布式数据库存储技术,但如果和智能合约结合扩展,就能让其提供更多复杂的操作,现在活跃的各个数字货币就是其中一种表现形式。 区块链安全性思考由于区块链技术的特性,在设计之处就想要从不同维度解决一部分安全问题: 01 Hash唯一性 在blockchain中,每一个区块和Hash都是以一一对应的,每个Hash都是由区块头通过sha256 计算得到的。因为区块头中包含了当前区块体的Hash和上一个区块的Hash,所以如果当前区块内容改变或者上一个区块Hash改变,就一定会引起当前区块Hash改变。如果有人修改了一个区块,该区块的 Hash 就变了。为了让后面的区块还能连到它,该人必须同时修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于区块计算的算力需求强度很大,同时修改多个区块几乎是不可能的。 由于这样的联动机制,块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变,确保了数据的唯一性。 02 密码学安全性 以比特币为例,数字货币采用了非对称加密,所有的数据存储和记录都有数字签名作为凭据,非对称加密保证了支付的可靠性。 03 身份验证 在数字货币交易过程中,由一个地址到另一个地址的数据转移都会对其进行验证:
验证交易是否成功属实会经过如下几步:
04 去中心化的分布式设计 针对区块链来说,账本数据全部公开或者部分公开,强调的是账本数据多副本存在,不能存在数据丢失的风险,区块链当前采用的解决方案就是全分布式存储,网络中有许多个全节点,同步所有账本数据(有些同步部分,当然每个数据存储的副本足够多),这样网络中的副本足够多,就可以满足高可用的要求,丢失数据的风险就会低很多。所以建议部署区块链网络时,全节点尽量分散,分散在不同地理位置、不同的基础服务提供商、不同的利益体等。 05 传输安全性 在传输过程中,数据还未持久化,这部分空中数据会采用HTTP+SSL(也有采用websocket+websocketS)进行处理,从而保证数据在网络传输中防篡改且加密处理。 数字货币安全性思考01 BTC 比特币(Bitcoin,代号BTC)是一种用去中心化、全球通用、不需第三方机构或个人,基于区块链作为支付技术的电子加密货币。比特币由中本聪于 2009 年 1 月 3 日,基于无国界的对等网络,用共识主动性开源软件发明创立。比特币也是目前知名度与市场总值最高的加密货币。 比特币区块结构 钱包和交易 比特币钱包的地址就是公钥通过 Base58 算法编码后的一段字符串,使用该算法可以将公钥中的一些不可见字符编码成平时常见的字符。Base58 相对于 Base64 来说消除了非字母或数字的字符,如:“+”和“/”,同时还消除了那些容易产生混淆的字符,如数字 0 和大写字母 O,大写字母 I 和小写字母 l。这一段用作比特币钱包地址的字符串就相当于一个比特币账户。 交易属于比特币中的核心部分,区块链应用到数字货币上也是为提供更安全可靠的交易。交易之前会先确认每一笔笔交易的真实性,如果是真实的,交易记录便会写入到新的区块中去,而一旦加入到区块链中了也就意味着再也不能被撤回和修改。 交易验证流程大概为:
一旦这些信息都能得到确认便可以将交易信息写入到新的区块中去,完成交易。受比特币区块大小的限制(目前的为 1MB,一笔交易信息大概需要 500 多字节),一个区块最多只能包含 2000 多笔的交易。因为区块链中记录了所有的交易信息,所以每个比特币钱包的交易记录和币的数量都是可以被查到的,但是只要没有对外公开承认钱包地址是属于你的,也不会有人知道一个钱包地址的真实拥有者。 还有一种交易叫做 coinbase 交易,当矿工挖到一个新的区块时,他会获得挖矿奖励。挖矿奖励就是通过 coinbase 交易拿到手的,也一样是需要把交易信息添加到新的区块中去,但是 coinbase 交易不需要引用之前的交易输出。 (编辑:ASP站长网) |