相信大家或多或少都听过区块链,比特币这些新颖的词,听得多了,那么他到底是什么呢?
什么是区块链
区块链本质上是一个分布式的账本。区块链=区块+链,什么是区块?区块就是一笔笔交易,实际上就是账本,链就是各区块连接起来的链。每个区块包含两部分,区块头和区块体。区块体包含了本区块的交易列表,而区块头包含了本区块的hash值,还有默克尔树根节点的hash值,以及nonce还有target值。target值是系统动态调整的,目的就是为了维持挖矿的难度平衡。那么到底什么是挖矿?
基本运作过程
以比特币为例,在比特币系统中,每10min由矿工产生一个区块,矿工可以获得对应的出币奖励(最开始是50个比特币,每隔21万个区块就会减半,目前已经来到了6.25个比特币)。那么问题就来了,如何当上矿工?答案就是算力。我们产生区块要满足一个条件就是区块头+nonce的hash值要小于等于target值,nonce是不确定的,需要我们不断调整的,这个调整的过程就是在挖矿,需要消耗大量算力和电力。(是不是和淘金有点像,淘金淘的是金,这里矿工淘的是nonce)
密码学原理
公私钥
了解公私钥之前首先了解一下对称加密和非对称加密两个概念。
对称加密是用同一个秘钥来加解密。非对称加密是用公钥来加密,用私钥来解密,两个秘钥不一致。
在区块链中应用的是非对称加密,用接收方的公钥来加密,接收方自己收到信息的时候用自己的私钥解密。
这个有什么用呢?答案是解决了账户问题。
在比特币系统中每次的交易都需要交易发起人用私钥签名,大家用交易发起人的公钥来验证签名的正确性。
每个人在本地产生公私钥,公钥相当于一个人的账号,私钥相当于密码。