区块链(blockchain)技术及其安全机制

区块链(blockchain)技术迄今为止主要用于虚拟货币,主要的例子是“比特币”系统。区块链是一个分布式的数据库,由连续的块(block)组成,包含多条信息。(多节点备份相同的数据,维护连续不断的交易文档)。区块链没有管理员,它是彻底无中心的。如果去掉中心进行交易,最大的担心就是交易的安全性。今天小编来介绍区块链及其安全机制。

集中式与分布式交易的特点

image.png

区块链是一个分布式的数据库,因此有去中心化的特点。下面的例子是金融系统中集中式模型和分布式模型的对比。对于小红、小黄、小蓝,按传统的金融机制,都必须通过银行进行交易;而采用分布式的区块链模型后,可以不用通过银行自主交易。

(1)集中式模型:

1)通过银行等金融机构进行交易

2)银行统一管理余额和账户号码等信息

3)需要事先开户,获得ID卡。

4)安全依赖于银行,需要通过各种法规和制度来检查欺诈行为。

(2)分布式模型:

1)在P2P网络上在用户之间进行交易

2)地址由参与者本人管理,余额由全局共享的分布式账本进行管理

3)需要安装软件并连接到P2P网络

4)安全依赖于所有参加者,由大家共同判断某个成员是否值得信任。

安全机制的保证

image.png

(1)公钥与私钥的产生

1)小红首先要通过SHA256(SecurityHash)算法,将密文生成256bit的私钥(黄色钥匙)。HASH函数使用时,Data长度改变,hash值长度不变;每个Data字符对应于唯一一个hash值,它可以作为数据指纹来使用。

2)将此私钥用椭圆加密算法,生成公钥(浅紫色钥匙),这个公钥可以让大家都知道。每个人都可以通过这个公钥,通过HASH函数得到小红的地址。

3)由于HASH函数的单向性,即:Hash(x)=y,通过y很难找到x。如果想通过地址破解公钥,或者通过公钥破解小红的私钥,几乎不可能。

区块链的安全原理

(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)区块链

image.png

多个区块可以生成区块链。每个区块有一个区块头(Hash),每一个区块与上一个区块通过Hash进行连接,形成链(chain)。

由于一个交易记录对应于一个区块,交易记录改变,则Hash也会改变,上一个区块的Hash变了,一定会引起当前区块的Hash改变。因此,数据一旦写入,就无法被篡改。除非将所有区域的Hash值改变。这样就保证了不被篡改的安全性。


(编辑:柠檬味)