一、比特币是什么?
答:
1.百度解释:比特币(Bitcoin)的概念最初由中本聪在2008年11月1日提出,并于2009年1月3日正式诞生 。根据中本聪的思路设计发布的开源软件以及建构其上的P2P网络。比特币是一种P2P形式的虚拟的加密数字货币。点对点的传输意味着一个去中心化的支付系统。
与所有的货币不同,比特币不依靠特定货币机构发行,它依据特定算法,通过大量的计算产生,比特币经济使用整个P2P网络中众多节点构成的分布式数据库来确认并记录所有的交易行为,并使用密码学的设计来确保货币流通各个环节安全性。P2P的去中心化特性与算法本身可以确保无法通过大量制造比特币来人为操控币值。基于密码学的设计可以使比特币只能被真实的拥有者转移或支付。这同样确保了货币所有权与流通交易的匿名性。比特币与其他虚拟货币最大的不同,是其总数量非常有限,具有极强的稀缺性。
2.本质:比特币实际是一种电子货币或是数字货币,基于密码学的一种货币,化名为中本聪在2008年11月1日提出,《白皮书》,全名叫比特币的一种现金点对点的交易系统。他在白皮书中提出一种构想:我们可以设计一种去中心的电子记账系统,交易的时候最重要就是记账。
二、比特币记账的问题
1.账单以谁为准?
A会先记录A把10BTC给B,后记录B把5BTC给C,因为网络延迟,D这边可能显示的是:B把5BTC给C,然后记录A把10BTC给B,每个人的账单都不一样,该以谁为准?
2.我们为何要记账?
3.如何防伪?
什么叫防伪,B广播一条消息,A支付10比特币给他,但实际A并没有支付,那这就一个伪造记录,我们如何防止篡改,之前的记录我把它改掉怎么办,还有很多的问题,比如说:如何防止双重支付,一个人同时发给两个人10个比特币,但它实际上一共就有10个比特币怎么办,还有就是如何保密,你这个信息公开,别人不就知道你有多少钱了吗等一系列的问题。
4.主要研究前两个,账单以谁为准和我们为何要记账。
答:我们首先来说一下为什么要记账,记账是因为记账有奖励,记账的奖励。每一个比特币系统中的用户都可以去记账。如果他记了账,第一个:他有手续费的收益。手续费是什么意思呢?就是说,A付10BTC给B,A必须多付出一点点,那一点点就是给打包的人,他记账的这个人的一个手续费。其实如果你用银行卡的话,也有手续费,而且手续费还挺高。如果你用比特币的话,手续费就低了,这就是他的收益。第二个:他的收益就是打包的那个人,他有一个打包奖励,只能是一个人打包,这个人他会获得奖励,奖励是多少中本聪在2008提出这个系统的时候,他设计了一个方案,每十分钟打一个包,最开始会奖励这个打包的50比特币,四年后,每打一个包会奖励25比特币,再过四年就是12.5,意思就是每过四年就是会减少一半。先算一下比特币一个有多少个,首先你每十分钟会打一个包,一个包有50比特币的奖励,一个小时60分钟,6次打包的机会,一天有24小时,一年365天,前四年都是这样:506243654=?
第二个四年会减半。所以是:5062436540.5=?
第三个四年还会减半,所以从第一年开始,你的收益是:506243654(1+0.5+0.5的平方+…)=2100万个比特币
比特币一个就有2100万个比特币,他通过打包奖励的方式扩散出去,正因为有手续费和打包费这两条,所以大家都抢着去打包,那么就是下一个问题,以谁为准呢?只能是一个人打包,这个权利给谁呢?中本聪想了一个办法叫工作量证明。
工作量证明是什么意思呢?每一个参加的用户都要去做一个很难的数学题,把题做出来,那就有权利打包,即可获得手续费和打包奖励。这个很难的数学题有多难,难道任何一个人没有办法直接通过脑子把它计算出来,我们必须一个数一个数去尝试,直到尝试出来,就可以获得这个奖励。所以这个过程我们就称之为挖矿。
二、挖矿的具体原理:
答:
1.哈希函数
做一个很很难的数学题,这个数学题不是看你脑子好不好使,而是看你CPU速度如何,因为没有人可以通过脑子把它算出来,大家只能一个接一个的去试,具体方法是什么呢。首先,让我们先回忆一下一种叫做哈希函数的东西。哈希函数也可以叫数字摘要或者散列函数,意思是可以把一个字符串通过一定的运算转化成一个摘要的形式,正着算简单,反过来算就很难*。比如说哈希算法里的一个很有名的哈希算法叫SHA256,这是美国安全局的一种算法,如果一串字符串输入到SHA256中,比如字符串叫apple,输出的是一个二进制数,这个二进制数有256位,没有什么规律,所以叫SHA256嘛。而且这个算法不管里面输入的是什么,后面的结果都是一个256位的二进制数。把一个10G的电影放进去,还是一个256位的二进制数。
2.挖矿的具体原理:
答:区块链其实就是一大堆的交易信息,比如说区块链已经连接到某一个位置了,这个块儿里不止有交易信息,有一个块儿的头部,头部还有一些内容,这个内容就是信息,就是账单记录。现在很多人都想进行打包,为什么呢,以为打包有奖励还有手续费吧。每一个人都有一个自己的账单,这张单是他收集了周围一大堆人的账单,每个人都拿着账单准备去网上接块儿,但是在接块儿的时候必须计算一个数学题。什么数学题呢?
2.1首先他会有一个字符串,字符串里的内容主要包括:前块的头部+账单的信息+时间+随机数
2.2现在对这个字符串进行两次的哈希运算(SHA256)他的哈希值等于(Hash=SHA256(SHA256(字符串))),这是一个256位的数,这个数要求我们的前n位是0,如果你计算的结果是前n位为0,那么你就算对了,那你就有资格打包。你要把你算出来的这个哈希值作为一个新块儿的头部,打一个包,打完这个包接到后面去,于是就有一个新块。接出这个新块你会获得什么呢?那就是奖励。
那么我们怎么才能计算出前n位是0呢?就要改变一个内容,随机数。从0开始试,0不合适,换1…直到你试出来为止。每个人在计算时候难度都是不一样的,因为,虽然前块的头部大家都一样,但是打包的账单可能不一样,开始时间可能也不一样。造成随机数大小不一样,有人运气好一次性就试出来了,直接就可以打包。有人虽然计算能力强,随机数没弄对,算了很长时间也算不出来。平均来讲,谁的计算能力强,谁就更有希望打包这个块, 谁就更有可能去挖到这个矿。
3.难度的设置
n是怎么确定的?0的位数越多这个问题就越难
二进制数,出现0和1的概率都是二分之一,得出以上公式,所以n越小越简单。然后打包几千条信息,调整n的难度。
第一个能算出来前66都是0的人就可以打包,成功的挖到了矿,你没有让自己运气变得更好,那你需要做的就是你买更多的矿机,拼命的去挖矿,然后你就有机会获得比特币。