一、区块链的概念:
侠义来讲,区块链是一种按照时间顺序将数据区块一顺序相连的方式组合成的一种链式数据结构,并以密码学方式保证的不可篡改和不可伪造的分布式账本。
广义来讲,区块链技术利用链式数据结构来验证和存储数据、利用分布式节点共识算法来生成和更新数据、利用密码学的方式保证数据传输和访问的安全性、利用由自动化脚本代码组成的智能合约来编程和操作数据的一种全新的分布式基础架构与计算范式。
二、区块链基础技术
区块链用到的基础技术全是当前非常成熟的技术:如哈希运算、数字签名、P2P网络、共识算法以及智能合约等。
1、哈希算法:简单讲就是把任意长度的输入,通过计算生成一个固定长度的字符串,输出的该字符串称为该输入的哈希值。
优秀的哈希算法具备正向快速(计算输出速度快)、输入敏感、逆向困难、强抗碰撞等特征。
①通过哈希构建区块链的链式结构,实现防篡改。
②通过哈希构建默克尔树,实现内容改变的快速检测。哈希值并不是直接讲所有交易内容计算得到哈希,而是一个哈希树。首先对每笔交易计算哈希值;然后两两分组,对这两个哈希值再计算得到一个新的哈希值,两个旧的哈希值作为新哈希值的叶子节点,如果哈希值为单数,则对最后一哈希值再次计算哈希值即可;然后重复上述计算,直至最后只剩一个哈希值,作为默克尔树的根。如需验证交易,只需要验证默克尔树即可。
2、数字签名