区块链技术是金融科技(Fintech)领域的一项重要技术创新。
作为分布式记账(Distributed Ledger Technology,DLT)平台的核心技术,区块链被认为在金融、征信、物联网、经济贸易结算、资产管理等众多领域都拥有广泛的应用前景。区块链技术自身尚处于快速发展的初级阶段,现有区块链系统在设计和实现中利用了分布式系统、密码学、博弈论、网络协议等诸多学科的知识,为学习原理和实践应用都带来了不小的挑战。
区块链属于一种去中心化的记录技术。参与到系统上的节点,可能不属于同一组织、彼此无需信任;区块链数据由所有节点共同维护,每个参与维护节点都能复制获得一份完整记录的拷贝,由此可以看出区块链技术的特点:
维护一条不断增长的链,只可能添加记录,而发生过的记录都不可篡改;
去中心化,或者说多中心化,无需集中的控制而能达成共识,实现上尽量分布式;
通过密码学的机制来确保交易无法抵赖和破坏,并尽量保护用户信息和记录的隐私性。
虽然单纯从区块链理解,仅仅是一种数据记录技术,或者是一种去中心化的分布式数据库存储技术,但如果和智能合约结合扩展,就能让其提供更多复杂的操作,现在活跃的各个数字货币就是其中一种表现形式。
由于区块链技术的特性,在设计之处就想要从不同维度解决一部分安全问题:
在blockchain中,每一个区块和Hash都是以一一对应的,每个Hash都是由区块头通过sha256计算得到的。因为区块头中包含了当前区块体的Hash和上一个区块的Hash,所以如果当前区块内容改变或者上一个区块Hash改变,就一定会引起当前区块Hash改变。如果有人修改了一个区块,该区块的 Hash 就变了。为了让后面的区块还能连到它,该人必须同时修改后面所有的区块,否则被改掉的区块就脱离区块链了。由于区块计算的算力需求强度很大,同时修改多个区块几乎是不可能的。
由于这样的联动机制,块链保证了自身的可靠性,数据一旦写入,就无法被篡改。这就像历史一样,发生了就是发生了,从此再无法改变,确保了数据的唯一性。
以阅批为例,数字货币采用了非对称加密,所有的数据存储和记录都有数字签名作为凭据,非对称加密保证了支付的可靠性。
在数字货币交易过程中,由一个地址到另一个地址的数据转移都会对其进行验证:
- 上一笔交易的Hash(验证货币的由来)
- 本次交易的双方地址
- 支付方的公钥
- 支付方式的私钥生成的数字签名
验证交易是否成功属实会经过如下几步:
- 找到上一笔交易确认货币来源
- 计算对方公钥指纹并与其地址比对,保证公钥的真实性
- 使用公钥解开数字签名,保证私钥真实性
针对区块链来说,账本数据全部公开或者部分公开,强调的是账本数据多副本存在,不能存在数据丢失的风险,区块链当前采用的解决方案就是全分布式存储,网络中有许多个全节点,同步所有账本数据(有些同步部分,当然每个数据存储的副本足够多),这样网络中的副本足够多,就可以满足高可用的要求,丢失数据的风险就会低很多。所以建议部署区块链网络时,全节点尽量分散,分散在不同地理位置、不同的基础服务提供商、不同的利益体等。