区块链的四大核心技术是密码学、分布式账本、共识机制和智能合约。密码学作为其中最重要的部分,可以说是区块链的基石,其他技术都是基于密码学构建区块链的高层建筑。区块链中主要使用的密码算法有两部分:
一是哈希算法,
二是非对称加密。
首先,它是去中心化的。原来由一方维护的数据库,变成了多方共同维护的数据库。每个人都通过共识一起写数据,没有人可以单独控制数据。
其次,它允许每个人从单独的账户变为联合记账,这带来了数据的一致性和公开透明。
另外,区块链只允许写入数据,不允许删除和修改,可以防止数据被秘密篡改。简单来说,哈希算法是一个特殊的函数。无论输入多长的字符串,都可以通过这个函数得到一个定长的输出值。就像身份证号码一样,永远是十八号,也是全国唯一的一个。哈希算法的输出值称为哈希值。哈希算法具有三个特点。
哈希算法的第一个特点是抗碰撞能力。所谓碰撞,就是输入两个不同的数据,最后得到相同的输入。就像我们购物的时候撞衫,坑的碰撞就是大部分的输入都能得到唯一的输出。在区块链的世界里,任何交易或账户的地址都是完全由哈希算法生成的。这也保证了区块链网络中交易或账户地址的唯一性。第二个特点是它是单向的。例如,如果输入一串数据,可以通过哈希算法得到一个哈希值,但是没有办法将这个哈希值反演得到输入的数据串。这是单向的,正是基于此,区块链有效地保护了我们信息的安全。哈希算法的第三个特点是抗篡改能力。对于任何输入,即使是很小的变化,散列值的变化也会非常大。它的这个特征在块和块之间的连接中起着关键作用。区块链的每个区块都由前一个区块的哈希值标记。除非有人能破解整条链上所有的哈希值,否则一旦数据记录在链上,就不可能篡改。 哈希性质:
(1)单向性。Thatis,givenaninputnumber,itiseasytocalculateitshashvalue,butgivenahashvalue,theoriginalinputnumbercannotbeobtainedaccordingtothesamealgorithm.
(2)弱抗碰撞性。Thatis,givenaninputnumber,itiscomputationallyinfeasibletofindanotherhashvaluetogetagivennumberwhenusingthesamemethod.
(3)强抗碰撞性。Thatis,foranytwodifferentinputnumbers,itisnotfeasibletocalculatethesamehashvalueaccordingtothesamealgorithm.
简单解释:哈希(Hash)算法,即散列函数。它是种单向密码体制,即它是一个从明文到密文的不可逆的映射,只有加密过程,没有解密过程。同时,哈希函数可以将任意长度的输入经过变化以后得到固定长度的输出。哈希函数的这种单向特征和输出数据长度固定的特征使得它可以生成消息或者数据。