1. 首页
  2. 区块链资讯

关于比特币、区块链和挖矿,我的学习笔记

2008年金融危机的时候,11月1日,网络极客中本聪(化名) ,他在网络上发表了一篇文章《白皮书》,全名叫《比特币点对点的点电子交易系统》,他在书里里边提到了这样一种构想,去中心化的电子记账系统。这到底是一个什么样的记账系统?这个系统干吗用?比特币什么?区块链又是什么?挖矿又是挖什么以及背后的原理又是啥?

这篇文章的整理完全是出于兴趣,想将这一块的知识稍微按自己的思路整理出来,分享给跟我一样是区块链小白的小伙伴们,空投糖果希望今天的内容对大家有所帮助。

01 比特币是什么?

电子货币,也是数字货币,基于密码学的一种货币。总数量将被永久限制在约2100万个。现在是1BTC == 9287.01USD

关于比特币、区块链和挖矿,我的学习笔记

02 什么是区块链?

A blockchain, originally block chain, is a growing list of records, called blocks, that are linked using cryptography. Each block contains a cryptographic hash of the previous block, a timestamp, and transaction data. By design, a blockchain is resistant to modification of the data. from 维基百科

关于比特币、区块链和挖矿,我的学习笔记

区块链是一些交易记录数据,并且是增长的,以及利用密码学原理将区块链接在一起。每一个区块(除了创世区块)主要包含了:

  • 前一个区块加密的哈希值
  • 哈希值
  • 时间戳
  • 交易数据(两类:奖励交易和转账交易)

这样的设计主要是为了防伪和篡改。

03 区块链的形成?

区块链由多个相连的区块构成,每个区块记录了一段时间内网络中比特币的交易情况,可以将区块视为账簿中的帐页。第一个被最早构建的区块称为创世块,拥有一个唯一的ID标识号。除创世块外,每个后续建立的区块均包含两个ID号,一个是该区块自身的ID号,另一个是前序区块的ID号。通过ID号间的前后指向关系,所有区块按序相连就构成了区块链。

关于比特币、区块链和挖矿,我的学习笔记

主链(黑色)由从创世区块(绿色)到当前块的最长系列块组成,孤儿块(紫色)存在于主链外,紫色块相当于是记账没有成功。

04 比特币系统中的交易是怎么产生的?

首先交易肯定是人发起的,人在比特币系统(去中心化的电子记账系统)中是怎么体现的呢?

在注册新用户的时候,BTC系统会给用户生成一个随机数,然后根据随机数生成一个叫私钥的字符串,有了私钥后,再使用椭圆曲线乘法产生一个对应的公钥(这个过程不可逆),有了公钥,我们就可以使用哈希函数生成比特币地址。这个地址就相当于是比特币的钱包,比特币就是钱包里的钱。交易过程就是从一个钱包转到另一个钱包,一个地址转到另一个地址。

拥有BTC私钥,就拥有对钱包中资金的所有权和控制权。私钥必须要进行备份,以防意外丢失,因为私钥一旦丢失就难以复原(公钥不能反向生成私钥),其所保护的比特币也将永远消失。私钥可以对一个字符串进行加密,而公钥可以对加密过的字符串进行解密,这种加密方式称为非对称加密。只有你自己可以对交易信息进行加密,其他任何人可以用公钥来解密你加密过的信息。

关于比特币、区块链和挖矿,我的学习笔记

05 怎么判断这笔交易是否安全呢?

假如现在A想转5个比特币给B,怎么判断这笔交易是真的由A发起的,而不是其他伪造的?上面那些私钥和公钥就是为了防伪设计的。

A首先将这条交易信息进行哈希运算,计算出数字摘要(其实就是一个字符串),再利用自己的私钥来加密生成一个密码(加密过的字符串)。

关于比特币、区块链和挖矿,我的学习笔记

A再将这条交易记录、公钥和密码广播出去,所有记账的人(矿工)都会收到这笔交易,他们就会验证这笔交易的真实性,这个过程就包括将交易信息进行哈希运算,计算出数字摘要(摘要1),再利用公钥和密码进行解密出数字摘要(摘要2),验证摘要1和2是否相同,这样就保证了交易的安全性。

关于比特币、区块链和挖矿,我的学习笔记

06 交易产生后,怎么记账?谁来记账?

我们进行交易的时候,最重要的一件事就是记账,我付给你多少钱,付完钱之后卡里还剩多少钱,这个交易记录目前是银行在记账,不管用信用卡、支付宝,还是微信等等,都是银行来记。我们信任银行,因为银行的背后是国家的信用。但现在区块链系统中,系统中的每个人都可以有机会参与记账。为什么要去记账呢?因为记账是有奖励的。

假设有四个人甲乙丙丁,相互之间进行交易,甲支付给乙5个比特币,乙支付给丙3个比特币,丙支付给丁2个比特币。

关于比特币、区块链和挖矿,我的学习笔记

这些交易将会都被广播出去给所有想参与记账的人(矿工),既然很多人都可以记账,但是以谁为准呢?

比特币系统每10分钟必须要产生一个区块,在这个10分钟时间之内,谁算的最好最快,那Ta将会拥有记账权,也因此将获得一定的比特币奖励手续费,2100w个比特币就是通过着花样的分时在分发着。记账的人将在这个时间段发生的交易进行打包成一个块,这个块就叫区块,大小是1M左右,大概可以存4000条左右的交易记录,然后再将这个块链接到其他块上,形成成了一条链,所以叫区块链。

⭐️以谁为准?

中本聪想了一个方法,叫工作量证明。意思就是每一个参与记账的用户都需要去做一道很难的数学题,做出来了,你就有去权力进行记账并打包成块。这个题难到什么程度呢?难到没有任何一个人能够直接通过脑子算出来。必须要要一个数一个数去尝试,直到和结果匹配了,就算是计算出来了,谁先算出将会拥有记账权。

⭐️奖励怎么算?

奖励包括系统发的比特币还会包括每笔交易的手续费,A转账给B,A将多付一点点手续费。记账人的奖励也不是固定不变的,每10分钟会产生一个新的区块,最开始第一个区块的产生的奖励是50个BTC,过了四年之后每产生的区块只有25个BTC的奖励,再过4年,就是12.5个,就是每四年,奖励就会减半,最后算下来总共有2100个BTC。

07 挖矿到底是什么?

了解挖矿之前,首先了解一下什么是哈希函数

可以把一个字符串通过一定的运算,转化成一个摘要的形式,正算比较容易,反算难

哈希算法里边有个很重要的算法是SHA256,这是美国国家安全局发明的一种算法

给这个算法输入一个字符串,将会输出一个二进制数,256位的二进制数。

输入稍微有丁点不同,输出可能完全不一样,虽然都是一串由1和0组成的256位的数字,但结果可能完全不一样。难点在正向算容易,通过输出倒推输入很难。

挖矿就是基于SHA256算法的一个计算过程。

关于比特币、区块链和挖矿,我的学习笔记

在这个计算过程,SHA256算法输入字符串包括什么呢?主要包括前一个区块的头部信息(header hash from block N-1)、待打包成区块的交易记录账单(Transactions)、时间戳等等,最重要还有一个随机数。将这个合并的字符串做两次SHA256运算,将会得到一个256位的二进制数。

这个值必须要满足前 N 位必须是0,怎么算才能算出前N位是0呢?就只能改变随机数一个一个去试,只有满足了要求才有资格去记账打包。这个新计算出来的值作为新块的头部,然后打包成新区块,再链接到后边去,链接成功后将会获得奖励和手续费,这就是挖矿的过程和背后的原理。一般来说,计算机(矿机)的计算能力越强,就越有希望计算成功。

前N位必须是0,这个N是怎么设置呢?每个块的N值不一样。很显然,前面的0越多,题目的难度就越大。0出现的概率是1/2, 如果需要前面N为0,那么概率就是(1/2)的N次幂。如果需要保证每10分钟必须要出一个新块,就需要调整N来实现。

本文来自投稿,不代表空投糖果立场,如若转载,请注明出处:http://www.ktcandy.com/qukuailian/105/

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

在线咨询微信

在线咨询:点击这里给我发消息

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息