再说挖矿之前,先简单阐述以下这几个概念,方便大家快速理解
1、哈希(HASH)–可以看成数字指纹:根据一段文本或数据(T1),可以生成唯一的一个值(H1),即使这段文本修改了一个标点符号(T2),生成新的值(H2)与原来的值会风马牛不相干,这样,可以用这个值(H1)来指代(T1),但又不需要知道T1到底是什么
2、容错:网络上的各个计算机之间通信可能有延时,有些计算机上的软件可能是恶意的,如何在这个环境下获得大部分都能够认可的结果
3、出块:由于计算机之间通信是有时延的,所以大家约定一段时间看看是不是可以获得一致的结果,称为一段时间出一个块(这个也是区块链的区块一词的来源)
比特币的基本原理:
比特币是一个记录交易的工具或是系统,他所做的事,在中心化的系统中都可以做到,他的天才之处在于不需要任何一台中心服务器就能做到,而且从理论上证明了目前是不可攻破的。
交易记录
比特币系统中的任何一台矿机,都在监听网络中的交易信息,每收到一条交易信息,就记在自己的块里
出块要求
比特币系统中的任何一台矿机,都把自己当前所有接收到的交易记录放到块里,然后对块里的所有数据进行哈希计算,生成一个哈希值,或者说是数字指纹。
上面这两个一点都不牛叉,很多系统就这样干的,牛叉的在后面:
任何一台矿机都在出块,谁说了算?
想象下中本聪大神和另外一个小神(假设他叫中本明)在讨论:
中本聪:这个很简单啊,大家约定好,符合某个条件的哈希值才算,比如,哈希值的第一位必须是0; 这样算出来是0的就是有效,其它的都无效;这样,平均10个人中有一个人是有效的。大家都认这个人。
中本明:我反对,既然是数字指纹,我收到的信息一致,不会算出第二个指纹来啊,难道我故意扔掉一些交易?
中本聪:那这样吧,在块里面我们留出一小块区域来,让大家随便填什么,只要填上后算出来的哈希值符合要求,就认,这样可以了吧。
中本明:嗯,这样,任何机器任何时候,都有机会算出满足要求的哈希值。谁先算出来的就有效,但这样有个问题啊,计算机的能力越来越强,算到合适的哈希值越来越快,**快到交易还没有来,哈希就算出来啊
中本聪:嗯,这样吧,根据我们的网络延时,我感觉15分钟出一个块是比较合理的,我们在代码里做动态难度调整,如果有谁算出哈希值的时间短了,下一次的难度值就要调整,前面1个0不够,就扩展成2个0,再不够就扩展成10个0,20个0,50个0;这样大家平均10次才能得到一个,100次才能得到1个,10^10次才能得到一个……..
文章标题:三分钟了解比特币挖矿
文章链接:https://www.btchangqing.cn/226612.html
更新时间:2021年04月06日
本站大部分内容均收集于网络,若内容若侵犯到您的权益,请联系我们,我们将第一时间处理。