之前有一篇简单介绍了区块链是什么,但并没有详细介绍它的原理。这篇文章会用浅白的文字,来讲解区块链原理,还有实际操作的网站,让你更加清楚区块链是什么!!!
区块链是什么?
想像成一本记帐本,里面有你交易的纪录,我们把这个记帐本叫做区块(Block),里面包含各种资讯,例如交易纪录、工作量证明(稍后说明)
区块链(Blockchain)就是由很多个区块(Block)连结在一起,形成一个超大型的记帐本,每一笔交易都会被记录
区块链原理
前面有说到,一个区块里面有工作量证明,那要讲工作量证明之前,要先介绍哈希函数
哈希函数(Hash function)
哈希函数的输入可以用任何资讯,然后输出一串固定长度的数字,这个值叫做哈希值(Hash),因为这个值无法被伪造,所以又称为”指纹”
每次给相同的输入值就会给出相同的哈希值;但只要输入值稍微变动,出来的哈希值就会完全不同。下图是举例:
输入了你好,会出现一串字母和数字
输入了你好啊,多了一个啊,出来的哈希值完全不同
哈希函数有个特性:不可逆,不能逆向回推出原本的资讯,不像一般函数,它是没有逻辑的计算出哈希值,所以不能回推
例如我现在知道了一个哈希值叫作670d9743542cae3ea7ebe36af56bd53648b0a1126162e78d81a32934a711302e(上面的那串),我能知道我原本要输入什么才会出现这个哈希值吗?
答案是不能,我没办法知道要输入"你好",才会出现这个哈希值,所以哈希函数是不可回推的
用常使用的哈希函数SHA-256来举例,它输出的哈希值有256位数
EX:有一个哈希值是1001010101001….(256位数),请问什么输入的资料经过SHA-256函数计算会得到此哈希值?
基本上是算不出来的,因为这个函数不能回推,一个一个去试可能性太多了,有2的256次方种可能
(你可能会想问为什么上面图中的Hash有其他英文字母而且只有64位数,因为它是用16进位来表示,如果用2进位表示,它就会有256位数字了)
可以用下面网站去玩玩看,让你更加体会哈希函数和区块链
工作量证明
那工作量证明是区块链相当常听到的一个名词,因为比特币区块链就是用工作量证明来验证谁是某个区块的验证者
用一句话来解释的话: 工作量证明指的是「找出一个特定哈希值的过程」或是「解题目的过程」
以SHA-256举例,我们现在要找到一个特定哈希值,它的前40位数都是0,就必须得一个一个慢慢试出,输入什么值,才能找到一个前40位数都是0的哈希值
那有人找到了那个输入值,可以让输出的哈希值前40位数都是0,这时你拿他找到的输入值去验证,发现确实输出的哈希值前40位数都是0,验证了这个人的确经过大量的运算,最后找到这个值,这就叫"工作量证明"
结论:简单来说,工作量证明就是解题目(找到随机值Nonce)
(下图是找前4位数都是0的哈希值(Hash)示范)
前面有说到区块里面包含工作量证明,它和每一个区块(记帐本)都密不可分,因为工作量证明(上图的Nonce)是和区块里的资料(Data)一起经由函数计算,才找到刚刚那个前40位数都是0的哈希值
所以只要你随意变更其中的交易资讯(例如伪造交易金额),那刚刚计算出的那个特定哈希值又会变的完全不一样
(上面有说到只要输入值稍微变动,出来的哈希值就会完全不同)
挖矿
大家最常听到的挖矿(Mining)又是什么呢?
那刚刚说的找出上面说的特定哈希值来建立区块这个解题目动作就叫作挖矿
透过消耗CPU的电力或时间来找出上面说的特定哈希值(解题目)来建立区块,也就是建立新的帐本,建立新区块可以获得新的货币(EX:比特币)当作奖励给予建立区块的人
(备注:目前比特币区块链每十分钟产生一个新的区块)
就像是大家一起比赛,来计算数学题目,最先算出来的可以获得奖励
因为要随机解题目,还有透过建立区块获得的比特币越来越少,很像是在随机挖黄金,越挖越少,所以被称作挖矿,这些工作者也被称作矿工
本文链接地址:https://www.wwsww.cn/qkl/13283.html
郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。