大概看了看,对于我这个区块链小白而言,区块链原理学习起来有点头大,所以关于区块链的运作原理,分成两个部分来学习。今天学习区块链的几个核心概念。
1.区块:区块链的基本单位,包括区块头和区块主体。
区块链大概十分钟会创建一个区块,其中包含了这段时间内全网范围发生的所有交易。每个区块中都包含了前一个区块的ID(识别码),这使得每个区块都能找到其前一个节点,这样一直倒退就可以形成一条完整的交易链条。那么我有一个疑问,是不是每次创建的这个区块的内容会越来越多,花费时间会越来越长呢?
清晰认知:从诞生之初,到运行至今,全网随之形成了一条唯一的主区块链。
2.哈希算法:是区块链中保证交易信息不被篡改的单向密码机制。
哈希算法接受一段明文,然后以一种不可逆的方式将其转化为一段长度较短,位数固定的某种数据。两个特点:1.不可逆,只能将明文转化为数据,不能把数据回溯为最初的明文;2.输入的明文和转化的数据是一一对应的,改变前者,后者必将相应改变。
3.公钥和私钥
先简单举个例子:比如单位有个文件发到某个公用电子邮箱里,让大家去下载,那就会公布一个密码,这就类似公钥。个人邮箱的密码只有自己知道,这就类似私钥。
为什么都是类似呢,因为二者有一个本质的区别——电子邮箱的钥匙还是属于对称加密,一个用户名对应一个密码,并且是可逆的,公安局网络刑警可据此破案。而区块链中的公钥和私钥是不对称加密方式,不可逆的。公钥和地址的生成都依赖私钥,有了私钥就能生成公钥和地址,并随时花费地址上的比特币,所以私钥用来解密/签章,公钥是让别人验证/签章的。下面的图可以加深这个理解。
小白:用私钥对信息进行签名,使用小黑的公钥对信息加密。
小黑:用小白的公钥验证小白的身份,使用私钥对加密信息解密。
在区块链信息传递中,信息传递双方的公钥和私钥的加密和解密往往是不成对出现的。
4.时间戳:这个特别好理解,区块链中时间对应的是每一次交易记录的认证,证明交易记录的真实性。独一无二,且不可篡改。
5.Merkle树结构(默克尔树结构)
这本书关于默克尔树结构讲解的过于简单,所以 我百度区块链兄弟找到了关于默克尔树的更详细的理解:默克尔树结构是为了更好地验证比对。因为越来越多的人使用比特币,所以整个区块链内容越来越多,不可能每个节点都去下载运行完整的副本,
“但是由于节点是网络中的完全参与者,它们负有相关责任:节点必须验证交易和区块。在中本聪的比特币原始论文中,也写了一个解决方案,即简易支付验证(Simplified Payment Verification, SPV)。
SPV 是一个比特币轻节点,它不需要下载整个区块链,相反,它会在区块链查找交易(为了验证支付),为了实现 SPV,需要有一个方式来检查是否一个区块包含了某笔交易,而无须下载整个区块。这就是 Merkle 树所要完成的事情。”
区块链利用默克尔树的数据结构存放所有叶子节点的值,并以此为基础生成一个统一的嘻哈值。叶子节点存储的是数据信息的哈希值,非叶子节点存储的是对下面所有叶子节点的组合进行哈希计算后得出的哈希值。
从下往上进行交易信息比对,利用默克尔树结构可以大大减少数据的计算,毕竟,我们只需要验证默克尔树生成的统一哈希值就可以了。
本来计划多学习更多的东西,发现这几个概念就够喝一壶的,很难消化。下次学习比特币病毒事件。