比特币是什么?
各位同学大家好,我是李永乐老师,经常有小朋友问我啊,比特币到底是什么,我们准备通过两期节目给大家介绍一下比特币的基本原理,那今天呢,我们首先来介绍一下挖矿到底是怎么回事,比特币是什么呢?比特币呢,实际上是一种电子货币,或者叫数字货币,它是基于密码学的一种货币,这种货币呢,跟我们以前呢用银行卡里面那个货币它不太一样啊,它的出现呢是一种传奇,在2008年的时候,金融危机2008年11月1日的时候,有一个网络极客,他呢呃化名叫中本聪啊,这个中本聪呢,我们到目前为止也不知道她到底是谁,他在网络上发表的一篇文章啊,这些文章我们现在管他叫白皮书,白皮书啊全名叫比特币,一种点对点的电子现金系统啊,他在这个白皮书里面呢提出了这样一种构想,就是说呢,我们可以设计一种去中心化的电子记账系统,去中心化的电子记账系统,我们在进行交易的时候,最重要的两个一件事啊就是记账啊,就是记账啊,比如说吧,我付给你多少多少钱,我要检查我自己的银行卡里还有没有这么多钱,对吧,我付给你之后还剩多少钱,这就要记账,那么那现在的记账是谁来记得是银行寄我们不管是用信用卡,还是用这个支付宝,或者微信,都是银行来记账,我们信任银行,因为银行的背后是国家的信用,对不对啊,那么他这个这个不是中本聪就说呢,其实我们并不需要一种中心化的这个记账系统,我们可以去中心化,每一个人的账本呢,都是让别人去看,都是公开的啊,这就叫去中心化电子记账系统,举个例子来说啊,比如说有这么几个小朋友,这几个小朋友啊,分别叫ab,cd吧,Ab,cd,他们呢进行交易啊,买东西,卖东西之类的,那所以相互之间就就要进行支付,对吧,支付的时候,比如说有一次a呢先支付了十个比特币,十个比特币给b,这件事情呢,诶要记帐,记帐了之后你不能自己留着,因为你自己留着别人不信,对吧,所以你要把这个账单呢要广播出去,要告诉所有人,所以说a,把这个账单告诉b,告诉c又告诉d了,广播到网络上,所有人过了一会儿呢,必要进行支付,比如说b支付了五个比特币啊给c,同时呢,并把这个账单呢告诉地告诉a在告诉c对吧?
然后呢这个c呢又支付,比如支付了两个比特币给记,那么同时呢死也要把这个账单呢告诉其余的所有的人好这样,那么这个账单呢,我们会把它进行打包,啊,打包成一个块儿,这个块儿我们就叫他区块啊区块,这一个区块里面呢,它大小大概是一兆啊,我们可以存4000条左右的交易记录,有时候多一点,有时候少一点就取决于每一条记录的大小啊。好了,这个快打包完了之后我们再把这个快链接到以前的交易记录上,形成了一条链,啊,就把这个块儿接到以前的块儿上,然后过一会儿再把新的快捷到他后面就叫区块链,是这么回事儿是吧?那好,我们啊有的这么一个系统之后就要解决几个问题,什么问题呢?比如说啊这个账单呢,以谁为准,这就是一个问题,以谁为准啊,因为每个人的账单可能是不一样的,比如说a呢,它可能会先记录a把十个比特币给b,这件事儿后记录必把五个比特币给c这件事儿,但是因为网络的延迟效应地这边可能不是这样的,低的顺序可能是先记录的必付五个比特币给c,然后哎呦付了十个比特币给b,对吧,每个人的账单可能不太一样,你到底是以谁为准,第二个呢,就是我们为何要记账啊,凭什么你广播给我,我就要收着呢,凭什么我要去花我自己的电脑资源,记录一个跟我无关的这个账户呢,对不对,为什么要记账,第二,第二个问题。
第三个问题呢,就是如何防伪啊,如何防伪,什么叫防伪呢?比如说吧,这个Be呀广播了一条消息说诶致富了十个比特币给他,但实际上呢,诶并没有支付给他,那这就是一个伪造的记录,我们怎么去防伪,对吧,怎么去防止篡改之前的记录,我把它改掉啊,这个怎么办啊,如何防止篡改啊,还有很多很多其他的问题,比如说如何防止双重支付啊,一个人同时发给两个人十个比特币,但它实际上一共就只有十个比特币啊,还有呢就是如何进行保密,你这个信息都是公开的,那别人不就知道你有多少钱了吗,怎么去保密等等一系列的问题,我们今天呢主要研究前两个以谁的账单为这,还有我为什么要去炸,我们首先呢来说一下为什么要记账,记账是因为啊记账有奖励,记账的奖励啊,记账的奖励,那么每一个比特币系统中的这个用户呢,他都可以去记账,如果他记得账,第一个他有手续费的收益,手续费啊,手续费什么意思呢?就是a负十个比特币给b的话,a必须要多付出那么一点点,这一点点就是给这个打包的这个人他记账了,这个人他的一个手续费,这个如果你要是用银行卡的话,其实也有手续费,而且还其实挺高的,那如果你用比特币的手续费就低了,对吧,啊,这就是第一个它的收益,第二个它的收益就是打包的那个人,他有一个打包奖励啊,打包的奖励只能是一个人打包,这一个人他会获得奖励,奖励是多少呢?中本聪在2008年提出这个系统的时候呢,它设计了这样的一个方案,就是每十分钟打一个包,每十分钟打一个包,最开始这一个包呢,会奖励打包者,50个比特币啊,过了四年之后呢,每打一个包会奖励你25个比特币啊,如果你要是再过四年就奖励12.5,也就是每过四年之后他会减半,咱们来算一算,比特币一共有多少个啊。
首先呢,每过十分钟你会打一个包,这一个包呢有50个比特币的奖励,对吧,一个小时呢有六个十分钟可以打爆六次啊,然后呢每天有24个小时,每年都有365天,前四年的时候都是这样,我再成了四年,但是第二个四年就不是这样,第二个四年会减半,对吧,所以我再成个第一个四年,第二个四年会乘个1/2,第三个四年会唱1/2的平方,第四个四年就1/2的三次方,这样一直讲下去,如果我把它都算出来,最后结果大概是2100万个,也就是说呢,这个比特币一共就只有2100万个,他是通过打包奖励这种方式把它扩散出去的,对吧?啊,就是这样的一个问题,那正因为有的这个手续费,这也和打包奖励这两条,所以大家都抢着去打包,你抢着去打包,那谁以谁为准呢啊,下一个问题以谁为准,对吧,以谁为准,只能是一个人打包,对吧,这个权利给谁呢?啊,这中本聪想了一个办法,叫工作量证明,工作量证明这个工作量证明是什么意思呢?就是说呀,每一个参与的用户他都要去做一个很难的数学题,这个很难的数学题你把它做出来了,那你就可以有权利进行打爆,你如果要进行打包了,你就会获得手续费以及打包奖励,对吧,这个很难的数学题难到什么程度呢?难道没有任何一个人能够直接通过脑子把它做出来,我们必须一个一个数去尝试,直到你把它尝试出来了,那么你就获得这个奖励,所以这个过程就称之为挖矿啊称之为挖矿,如果你把这个数学题做出来了,你就获得了这个打包的奖励,而这个打包的奖励就是几十个比特币,对吧,你就称之为挖矿成功了啊,这就是挖矿的含义。那么具体呢,这个数学题到底是怎么回事呢?咱们再往下继续说,我们下面来讲一下挖矿的具体原理是什么啊,挖矿的原理,挖矿啊,我们刚才说过,他是做一个很难的数学题,但是这个数学题并不是看你脑子聪明不聪明,而是看你CPU的速度如何啊,因为没有人能够通过脑子把它转出来,大家放款只能是一个一个是具体的原理是什么呢?首先我们回忆一下,以前我们曾经讲过一种叫做哈希哈希函数的东西啊,这个哈希函数啊,他的意思呢,也可以叫数字摘要或者散列函数啊,他的意思是说,我们可以把一个字符串通过一定的运算转化成一个摘要的形式,而且呢你挣得算比较容易,反正算很难,比如说吧,啊哈希算法里面有一个很著名的哈希算法叫上256厦256,啊,这是美国国家安全局发明的一种算法,如果我把一个字符串输入到这个巷256函数里边儿,比如这个字符串叫apple,Apple啊输出了多少呢?
输出的是一个呃那个二进制数,这个二斤数有256位,比如说10101,10110啊,没有什么规律,是吧,一共有多少位呢?一共有256位,256位啊,所以就叫鲨二五六嘛,而且他这个算法吧,就是不管你前面输入的是什么,那后面他结果都是256位的一个二进制数,你把一个十个g的电影放进去,它最后输出的还是256位的数啊,而且呢,如果你改一点点,她就说的都不一样,比如说我,唉彭这我加一个点儿,多了一个点,最后的这每一位的数字都有可能会发生变化,这就是它的一个特点,而且呢哈希算法的难度啊就在于它正像有趣之处啊,他正向算比较容易,正向算比较容易,但是它反向算非常的困难,这就是他算法的一个特点啊,我们举个例子啊,比如说吧,呃有这么一个函数,就是x的三次方加log2x加三等于x等于y啊,不是举个例子,你给我一个ex让我算出外来,其实这个并不难,但是你给我一个外问,我ex这几只就很困难,哈希函数比这个还要复杂的多,所以他反算基本上是不可能的,我们只能怎么办,我们只能一个一个去试,啊,假如你告诉我一个一个结果,你问我什么结果是这个,那我就只能一个一个试一直把它射出来为止,啊,这个呢就是哈希算法的一个基本的问题,啊,那么呃这个挖矿呢其实就是基于这个沙尔五六的这个一个运算,我们来说一下挖矿的具体的原理是什么,刚才我们说到啊,这个区块链呢,其实是一大堆得交易信息,对吧,一大堆得交易信息啊,比如说呢,这个区块链已经链接到了某一个位置,从最一开始第一个块儿开始练,一直练练到了某一个位置,这是目前的情况,这个块儿里并不只有交易信息,它实际上是有一个块儿的头部有一个块儿的头部,还有呢,它里面有一些内容啊,这个内容呢,其实就是信息,就是我们交易的这个记录账单啊,现在呢,有很多的人说,我现在啊都想进行打包,为什么呢?因为打包有奖励,还有手续费,对吧,每一个人呢都有自己的一个账单啊,这个账单是他收集了周围一大堆人啊造成了账单,每一个人都拿个账单准备去网上结块,但是在结块的时候他必须要算一个数学题,什么数学题呢,首先他会有一个字符串啊,它会有一个字符串,这个字符串里边的内容非常多啊,但是我们说一些主要的这个字符串包含哪些内容呢?
首先包含目前的这个块儿,目前已有的这个快,也就是前块儿这个钱块儿的头部,这个钱块儿的头部啊,这是第一个部分,第二个部分呢就是呃他现在已经有了这个账账单啊,账单的信息,你已经有打包好的这个账单的信息啊,还有呢,比如说像时间呐之类的时间戳之类的啊,还有一大堆乱七八糟的啊,然后还有一个很重要的就是有一个随机数,随机数,好,这是你的一个字符串,现在呢,你对这个字符串做两次哈希运算,那做两次,这个上256运算,它的哈希值等于什么呢?等于下二五六,然后是二五六,然后字符串你把这个字符串啊做两次,这个哈希运算啊,这个速度其实非常快,你一下就能算出来这个数世纪,但是你做出来之后,会发现他是一个256位的数,对不对,这个256位的数,我们要求什么呢,要求他的前单位必须是零前安慰,必须是定,比如说你算出来的这么个数,这个数结果是00000啊,00,比如说有这个九个零啊,这有九个零,然后后面是什么,1011呃,一直到最后一共有256位,你做出这么一个数了,假如我的要求就是前九个位数是零,那你就算对了,那你就算对了,你算对了,你就有资格去打包,你就有资格打包的意思是说你要把你算出来的这个哈希值作为一个新块的头部,然后呢你测出来这么一个一个数,对吧,一个数,然后呢,作为一个新矿的头部打一个包,打完了这个包之后再把你这个包干嘛呀?接到后面去啊,于是呢,你就接触一个新块儿来接触个新矿来,你就获得了什么呀,获得了你想要的奖励,就这样,那么我们怎么能算出来前面这几位都是零呢,就要改变一个内容,就是改变这个随机数,其他的内容你是改不了的,对吧,所以你就改变这个随机数,随机数最开始从零开始啊,从零开始,零算一次,看看是不是满足条件不满足,好算一一不行算二二不行三三他都是二进制的,你就不能这么是,直到你把它试出来为止,而且呢要注意,每个人在计算的时候,他的这个题目难度是不一样的,为什么呢?因为每一个人呢,虽然钱块儿的头部大家都一样啊,但是你所打包的这个账单可能是不一样的,对吧,你的时间开始时间可能是不一样的,还有你的个人信息也是不一样的,所以呢,造成这个随机数大小不同,有人运气好,他第一个数就算出来了,那直接就打包起来了,对吧,有人运气不好,它虽然计算能力强,算了好长时间,最后也算不出来,不过平均来讲是这样的,谁的计算能力更强,谁就更有希望打包这个快,谁就更有可能去挖到这个矿啊,就是这样的人,你说大家为什么拼命的去买这个矿机呢,对不对,好,那我们继续往下说啊,说这个我们啊有一个难度的设置,这个难度的设置也就是这个嗯喂啊,这个n是怎么确定的,难度n的确定显然易见啊,前面的这个零,他个数越多,这个问题就越难啊,为什么个数多就难呢?
咱们想象说在这个问题中啊,你不可能反算,只能是一个一个随机趋势,每一个每一位上出现零的概率和出现一的概率各是50%,所以第一个是零的话,你概率是多少,概率是1/2,对吧,概率是1/2,第二位是零行的话,概率多少,概率也是1/2,第三位是零,概率也是1/2,一直到最后一位是零概率也是1/2,这样乘起来结果得多少,得1/2的恩赐命,显而易见这个嗯越大,这个难度就越高,嗯,越小难度就越低,对吧?那中本聪当时在设计的时候就是保证每十分钟每十分钟他需要出一个块儿,需要出一个块,然后打包几千条信息啊,那怎么去保证呢?就是调整这个按照难度啊调整这个嗯的数字,我们举个例子啊,比如说比如说世界上有1万台矿机,1万台矿机,这个1万台矿机啊,每一台的计算能力是14个t每秒,也就是每秒钟可以计算14t次哈希运算,14t是多少遗涕是十的12次方,所以这个数是1.4×10的13次方每秒啊,没有好那么十分钟你到底能算多少次,咱们算一下这个十分钟啊,应该是600秒,对吧,1.4×10的13次方,啊,这是每一个框,即一秒钟算的再乘以十的四次,方柘表示有1万台矿机,然后呢,你还得乘以十分钟,大概是600秒,对吧,这个数字大概是8×10的19次方,也就是说呢,十分钟大家可以进行这么多次运算啊,这么多次运算,那我们再想一下,你如果啊概率是1/2的n次幂,你想出在这个块儿的话,你需要计算的次数就是二的n次幂400,你概率60,1/4的话,你出的这个块儿平均你要算64次,同样道理啊,你算了这么多次对不对,那么他大概相当于是二的多少次幂呢?我们可以通过计算发现,如果这个n等于66的话,啊,这个时候啊,你的出现概率能够算出的概率是1/2的66次幂,然后呢,你平均需要算的次数平均的次数就12的66次方,大概也是8×10的19次方,所以呢,这种情况下呢,矿机就会把难度设置成n,等于66,第一个能够算出来,前66位全都是零的人,就成功打包这个块儿,就成功的挖到的矿,你没有办法让自己运气变得更好,你能够做的就是买更多的矿机,然后拼命的去挖矿,这样呢,你就有可能会得到这个比特币,大概就是这样一个原理,是吧,好,我们这一次呢解释的到底区块链这个块儿到底是怎么形成的,但是实际上还有很多问题没有解决啊,比如说我们如何去防止这个双重支付的问题就没有解决,我们还没有解决说我们怎么防止伪造的问题啊,那这些问题呢,我们会在下一回再给大家做介绍。
转载请注明:比特币区块链时代 » 比特币是什么?李永乐老师讲解比特币