区块链及其安全机制
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)防篡改性。