区块链及其安全机制
1、集中式与分布式交易的特点
区块链是一个分布式的数据库,因此有去中心化的特点。下面的例子是金融系统中集中式模型和分布式模型的对比。对于小红、小黄、小蓝,按传统的金融机制,都必须通过银行进行交易;而采用分布式的区块链模型后,可以不用通过银行自主交易。
(1)集中式模型:
1)通过银行等金融机构进行交易
2)银行统一管理余额和账户号码等信息
3)需要事先开户,获得ID卡。
4)安全依赖于银行,需要通过各种法规和制度来检查欺诈行为。
(2)分布式模型:
1)在P2P网络上在用户之间进行交易
2)地址由参与者本人管理,余额由全局共享的分布式账本进行管理
3)需要安装软件并连接到P2P网络
4)安全依赖于所有参加者,由大家共同判断某个成员是否值得信任。

2、安全机制的保证
(1)公钥与私钥的产生
1)小红首先要通过SHA256(Security Hash)算法,将密文生成256bit的私钥(黄色钥匙)。HASH函数使用时, Data长度改变,hash值长度不变;每个Data字符对应于唯一一个hash值,它可以作为数据指纹来使用。
2)将此私钥用椭圆加密算法,生成公钥(浅紫色钥匙),这个公钥可以让大家都知道。每个人都可以通过这个公钥,通过HASH函数得到小红的地址。
3)由于HASH函数的单向性,即:Hash(x) =y , 通过y很难找到x 。如果想通过地址破解公钥,或者通过公钥破解小红的私钥,几乎不可能。



3、(2)加密与解密
1)加密:如果某人(如小红)想加密数据,则使用公钥将其加密。
2)解密:解密时需要用私钥,这个只有小红自己知道。

4、(3)签名与验证
目标数据生成哈希值后,小红用自己的私钥对HASH值进行加密,完成签名过程。
其它人用公钥解密小红的签名,如果HASH匹配,则签名验证成功。

5、区块链的安全原理
(1)hash链
hash链(哈希链):假如现在顺序产生数据块 A、B 、C 。可以计算每一个数据块的hash 值如下,
h0=Hash(A);
h1=Hash(B||h0) ;
h2=Hash(C||h1);
由以上产生的hash值,可以看到以下几点:
1) h0、h1、h2形成了彼此依赖的hash链。
2)由于hash有单向性,已知A很难复原h0,已知B和h0很难复原h1,依此类推。
3)不管A、B、C任何一个发生改变h0、h1、h2都会发生改变。
区块链正是利用这一原理,保证A、B、C不被篡改,从而保证安全性。
(2)区块链
多个区块可以生成区块链。每个区块有一个区块头(Hash ),每一个区块与上一个区块通过Hash进行连接,形成链(chain)。
由于一个交易记录对应于一个区块,交易记录改变,则Hash也会改变,上一个区块的 Hash 变了,一定会引起当前区块的 Hash 改变。因此,数据一旦写入,就无法被篡改。除非将所有区域的Hash值改变。这样就保证了不被篡改的安全性。

6、区块链的形式
每一笔资料称为一个区块,每个区块包括一个以上的交易,每一个区块与上一个区块进行连接,形成链(chain),区块链有以下特点:
区块链是由多个区块串联而成,每个区块都有一个哈希值(区块的唯一标识)。每个区块中共存储了两个哈希值:上一个区块的哈希+本区块哈希(表示本块所有交易数据)
1)去中心化:所有交易者共同维护数据库,保证交易系统的安全。
2)溯源性:从历史资料中,验证所有数据的合法数据。
3)防篡改性。

