区块链工作基本原理学习

区块链是一种去中心化,分布式、不能被篡改的账本。去中心化的特点是,所有的节点都是一个账本,每个账本记录和同步更新所有的交易信息。

区块链由比特币发展而来,要了解区块链,首先要对比特币的交易流程有一个了解。假如说我要给小强转50比特币,原始信息,“周杰给小强转了50比特币”,首先,比特币客户端会对原始信息做一个SHA-256运算,得到一个原始哈希值,然后,用私钥对原始哈希值做一个数字签名的加密运算,得到一个加密过的哈希值,这个哈希值叫密哈希,最后,将原始信息密哈希、公钥发布到网络中,网络中的节点收到这条交易信息,就会对这条交易信息进行一个校验。对交易信息进行校验的节点,就称为矿工。矿工不会免费的做这件事情,他们对每一条交易信息进行一个校验,如果连续校验的交易信息达到了一千条,且这一千条交易信息都校验成功,就将这一千条信息进行打包,这个包就成为一个区块。如果这个区块成功挂到系统公认的主链上,矿工就会获得系统的奖励。

比特币客户端为什么要对原始的交易信息做一个SHA-256运算呢?私钥和公钥是什么?矿工怎样才能得到奖励?

对任何数据进行SHA-256运算,都会得到唯一一个256位的二进制数,这个256位的二进制数,就是一个哈希值。进行SHA-256运算的目的,是为了验证原始信息在传输过程中是否被篡改。比如说,原始信息“周杰给小强转了50比特币”是否被篡改成了“周杰给小强转了500比特币”。矿工是如何验证原始信息是否被篡改了呢?首先,矿工对原始信息做一个SHA-256运算,得到一个哈希值,然后将计算出来的哈希值和我发送的哈希值做一个对比,如果这两个哈希值一致,那么原始信息就是真实有效的。

公钥和私钥是一种非对称的加密技术。非对称加密技术是针对对称加密技术而言的。发送者使用对称加密技术,对11.11进行加密,密文是对每位数加1,就得到了22.22,接收者再对接受到的信息进行反向运算,每一位减1,就得到了原始信息11.11。这种对称的加密技术非常不安全,因为密文要进行一次单独的传送。密文一旦被截获,信息就遭到了泄露。而非对称加密技术,就非常安全。私钥和私钥是一对,他们使用了非常巧妙的数学运算,可以相互的加密和解密。假如我有一对公钥和私钥,那么,私钥在我手里,只有我一个人知道,而公钥,我会发布到网络中。如果有人要给我发信息,他就通过搜索黄历的方式找到我的公钥,对信息进行加密,然后发送给我,我收到信息后,就能用私钥进行解密,恢复出原始信息。同样,我要给他人发送信息,首先,我要用私钥对原始进行一个加密,别人收到信息后,就用公钥进行解密。用私钥进行加密,用公钥进行解密,这种方法称为数字签名。数字签名有什么作用呢?它的作用,就是说,这条信息是经过我授权认证的。因为在互联网世界,谁都能敲出“周杰给小强转了50比特币”,而使用数字签名,就能解决这条信息是不是我发送的问题。如果你能用公钥解开这条信息,而在世界上,只有我知道私钥,所以这条信息就是我发送的。

SHA-256函数,保证了原始信息没有被篡改,数字签名保证信息是经过授权认证。矿工收到我的交易信息后,首先对我原始信息做SHA-256运算,得到一个哈希值,然后用公钥对密哈希进行解密,得到一个哈希值,再比较两个哈希值,如果哈希值一致,那么这条交易信息就是经过我认证,并且没有被篡改过的。

每个矿工都想得到奖励,那系统会将奖励分配给谁呢?交易信息打包成一个区块之后,要挂到主链之上才能生效。而主链就是由这一个一个区块链接而成。在区块挂到主链上之前,需要在区块后面加一个随机数,然后对区块和这个随机数这个整体做一个SHA-256运算,得到一个哈希值,这个哈希值是由0和1组成的256位二进制数,如果哈希值的前72位是0,那么这个区块就能挂到主链上,矿工就能得到奖励。通过数学概率运算,256位哈希值,前72位是0的概率非常小。在概率一样的情况下,谁的算力强,谁就有更大的机会将区块挂到主链上,从而获得系统奖励。全世界的比特币节点算力加起来,大约每10分钟,就会产生一个区块,奖励是50比特币。如果计算机算力提高了,可以将获得奖励的条件更改一下,把哈希值的前72个0改成哈希值前73个0就可以了,保证大约每十分产生一个区块。奖励也不是一成不变,每产生21万个区块,奖励就减半。利用等差数列可以算出来,比特币网络一种有2100万个币

以上就是我对区块链的一点学习,更多的内容还在扩充中。

你可能感兴趣的:(区块链工作基本原理学习)