2

为何有人提议给中本聪颁发诺奖?李永乐老师讲比特币、区块链、挖矿原理,以及如何解决...

 1 year ago
source link: https://www.tianfucaijing.com/blockchain/177124.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

为何有人提议给中本聪颁发诺奖?李永乐老师讲比特币、区块链、挖矿原理,以及如何解决双花、如何防伪?

2023-05-03 13:25 • 区块链

比特币实际上是一种电子货币或者叫数字货币,它是基于密码学的货币。这种货币跟我们以前用银行卡里面那个货币不太一样,它的出现是一种传奇。

2008年,全球处于金融危机,当年11月1日,有一个网络极客,他化名叫中本聪(到目前为止也不知道他到底是谁),他在网络上发表的一篇文章,这篇文章我们现在管它叫比特币白皮书,全名叫《比特币——一种点对点的电子现金系统》。他在这个白皮书里面提出了这样一种构想,就是说我们可以设计一种去中心化的电子记账系统。

去中心化电子记账系统

我们在进行交易的时候,最重要的一件事就是记账。比如说我付给你多少多少钱,我要检查我自己的银行卡里还有没有这么多钱,我付给你之后还剩多少钱,这就叫记账。

我们现在的记账是谁来记呢?是银行。我们不管是用信用卡还是用支付宝或者微信,都是银行来记账。我们信任银行,因为银行的背后是国家的信用。

而这个中本聪就说,其实我们并不需要一种中心化的记账系统,我们可以去中心化,每一个人的账本都是让别人去看,都是公开的,这就叫去中心化电子记账系统。

举个例子,比如说有这么几个小朋友,分别叫A、B、C、D,他们进行交易,买东西卖东西之类的,所以相互之间就要进行支付。支付的时候,比如说有一次A先支付了10个比特币给B,这件事情要记账,记账了之后你不能自己留着,你自己留着别人不信,所以你要把这个账单广播出去要告诉所有人,所以说A把这账单告诉B、告诉C、又告诉D,广播到网络上所有人。

过了一会,B也要进行支付,比如说B支付了5个比特币给C,同时B把这个账单告诉D、告诉A,再告诉C。然后这个C又支付,比如支付了2个比特币给D,同时C也要把这个账单告诉其余的所有的人。

那么这个账单我们会把它进行打包,打包成一个块,这个块我们就叫它区块。一个区块的大小大概是一兆,我们可以存4000条左右的交易记录,有时候多一点,有时候少一点,是取决于每一条记录的大小。这个块打包完了之后,我们再把这个块链接到以前的交易记录上,形成了一条链,就把这个块接到以前的块上,然后过一会再把新的块接到它后面,就叫区块链。

我们有了这么一个系统之后就要解决几个问题:

第一个问题,账单以谁为准?因为每个人的账单可能是不一样的。比如说A他可能会先记录A把10个比特币给B这件事,后记录B把5个比特币给C这件事,但是因为网络的延迟效应,D这边可能不是这样,D的顺序可能是先记录B付5个比特币给C,然后A又付了10个比特币给B,每个人的账单可能不太一样,你到底是以谁为准?

第二个就是,我们为何要记账。凭什么你广播给我,我就要收着呢?凭什么我要去花我自己的电脑资源记录一个跟我无关的账目呢?

第三个问题就是如何防伪。比如说B广播的一条消息说A支付了10个比特币给他,但实际上A并没有支付给他,那这就是一个伪造的记录。我们怎么去防伪,怎么去防止篡改,之前的记录被人改掉了怎么办?

还有很多很多其他的问题,比如说如何防止双重支付,一个人同时发给两个人10个比特币,但它实际上一共就只有10个比特币。还有就是如何进行保密,这个信息都是公开的,那别人不就知道你有多少钱了嘛。

我们首先来说一下为什么要记账,是因为记账有奖励。

记账的奖励——挖矿

每一个比特币系统中的用户都可以去记账,如果他记了账,第一,他有手续费收益。手续费什么意思?就是A付10个比特币给B的话,A必须要多付出那么一点点,这一点点就是给这个打包的人,作为给记账的人的一个手续费。你用银行卡的话其实也有手续费,而且还挺高的,如果你用比特币,手续费就低了,这就是记账的第一个收益。

第二个收益就是打包的那个人,他有一个打包奖励。打包的奖励只给其中一个打包的人,奖励是多少?中本聪在2008年提出这个系统的时候,他设计了这样一个方案,就是每十分钟打一个包,最开始这一个包会奖励打包者50个比特币;过了4年之后每打一个包会奖励25个比特币;再过4年就奖励12.5个,也就是每过4年之后它会减半。

咱们来算一算比特币一共有多少个。首先每过十分钟会打一个包,这一个包有50个比特币的奖励。一个小时6个10分钟,可以打包6次。每天有24个小时,每年有365天,前4年的时候都是这样,我再乘个4年。但第二个4年就不是了,第二个4年会减半。因此,我们需要乘以第一个4年,第二个4年乘以1/2,第三个4年乘以1/2的平方,第四个4年乘以(1/2)^3……依此类推。如果将它们全部计算出来,最后大约只有2100万个比特币,通过打包奖励的方式将它们发出去。

这里涉及到一个问题:由于手续费和打包奖励的存在,每个人都想去打包。但是,如果每个人都去打包,以谁为准呢?奖励只给一个人。于是中本聪想出了一种方法,叫做工作量证明。

工作量证明的意思是,每个参与的用户都要做一个非常困难的数学题。只有当你做出了这个题,你才有权利去打包。如果你进行打包,你就会获得手续费和打包奖励。这个问题非常难,无法通过脑力计算,只能一个一个地尝试,直到找到正确答案,这个过程也被称为挖矿。

如果你成功地解决了这个数学问题,你就获得了打包奖励,其中包括几十个比特币。而这个数学问题的难度很高,只能通过计算机进行尝试。因此,挖矿的原理就是基于SHA256算法的哈希运算,尝试不同的随机数,直到找到符合条件的哈希值。谁的计算能力更强,谁就更有可能去挖到这个矿。

你没有办法让自己运气变得更好,你能够做得就是买更多的矿机,然后拼命的去挖矿,这样你就有可能得到这个比特币奖励。

如何防止伪造记录

我们首先来说一下如何保证比特币的交易记录是真实的,也就是如何进行身份认证。

我们必须保证每一条记录都是由比特币持有者所发出的,而不是由其他人伪造的,那么传统的记录认证方式有哪些?比如说可以刷脸,人脸识别,第二个就是签名,我们可以在某个文件上签字,表示认可这份文件,或者再狠一点,我们搞指纹,每个人的指纹不一样,你按了手印就表示你认可。

但是这些方式在电子支付系统上都不能实现,因为无论是人脸、签名,还是指纹,利用计算机系统都可以拷贝,所以我们必须对这种传统的身份认证方式进行更改。

怎么改呢,就是电子签名。首先一个比特币用户他在注册的时候,系统会生成一个随机数,然后通过这个随机数会产生一个叫做私钥的字符串,这个私钥又可以产生一个叫做公钥的字符串。私钥和公钥是对应的,同时又可以产生一个地址,这些东西的重要性是不一样的。

首先私钥你必须保存好了,他是你私有的、保密的,如果你的私钥丢了,那你的所有比特币就都不见了。所以有些人把私钥放在一个不联网的电脑里,也有人把它背下来记到脑子里。

而公钥和地址都是公开的,如果你想让别人给你钱的话,你把你的地址告诉他就可以了。如果你想给别人钱,你要把你的公钥和地址一起发送过去,但这两个都是公开的,没有关系,通过公钥反算不出来私钥,因为SHA256算法只能正着算,反着算不出来,私钥可以推导出公钥,公钥无法推导出私钥,这就是一种加密手段。

那私钥和公钥有什么作用呢?私钥可以对一串字符进行加密,而公钥可以把这个私钥加密之后的数据进行解密,加密和解密它对应的钥匙不一样,这种加密方法我们称之为非对称加密,最典型的非对称加密就是RSA加密。

比特币使用了非对称加密,它加密的时候使用私钥,解密的时候使用公钥,只有你能够加密,而任何人都可以解密你加密之后的信息。

假如有一个人A,他想付给B 10个比特币,他该怎么办?首先他写一条记录,就是A付给B 10个比特币这么一条记录,写完记录之后,他把这条记录进行数字摘要,也就是哈希运算,通过SHA256算法算出来一个摘要,然后再通过自己的私钥进行加密,加密完了之后就会产生一个密码,然后他把A给B 10个比特币这件事儿对全网进行广播,同时还要把自己的公钥广播出去,同时他还要把刚才经过加密之后的这个密码也广播出去。

别人拿到他的广播之后就去要验证是不是真的,怎么验证?首先其他接收到这条消息的人会对这条信息做哈希运算,得出一个摘要来,如果这个摘要和A自己算出来摘要完全一样,就认为这个确实是A的广播,如果不一样,那就说明这条消息是伪造的,所有用户都会拒绝这条消息。

这样一来就保证了所有A发给B的消息都是由A签发的,这种方式我们就称之为电子签名,是利用了哈希运算的办法来进行签名。其实我们的银行卡很多的时候也是用这种方法进行签名的,原理差不多。

如何解决双重支付问题?

我们首先先来说一下如何进行余额检查。什么叫余额检查?就是说你本来只有10个比特币,你非要付给别人20个,那我就要拒绝。我怎么去拒绝这件事?

我们知道区块链是把很多交易信息一个一块打包,再把它穿一个串链起来的,而且每一个人在使用这个区块链的时候,他都会下载所有信息,就是从第一个创世区块开始,一直到后面所有的信息他都知道。

如果有一天A说我要付给B十个比特币,并且把这件事给广播出去,别人接触到这个信息之后就去检查,去找A的比特币从哪来的,比如是通过挖矿获得了50个比特币,然后他已经支付了20个,这样一来人们一算他现在还剩30个,所以他付给B 20个这没问题,于是这条消息就会被网络所接受。

如果A说要付给B 60个比特币,那么别人一算发现你只剩30个,别人会拒绝这条消息,所以它不会被确认,A把它发出去也没有用,因为不能被确认。什么时候被确认?直到这条消息被别人接受了,并且打包到一个新的区块里边才确认。

这样就可以解决余额的问题,方法就是通过追溯以前的区块信息。

那么第二个问题,如果A进行了双重支付怎么办?

什么叫双重支付?比如生活中有这样一种人,他卖房子的时候同时跟两个买家签约,他把一个房子卖了两次,这就叫双重支付。

同样在比特币上也存在这样一个问题,假如有一个人A他本来只有10个比特币,但他几乎同时发了两条消息,第一条消息是A付了10个比特币给B,第二条消息是A付了10个比特币给C,那么这会有什么结果呢?

每一个在这个网络上的接收者接收到A的消息之后,都会去算A的余额还够不够,如果有人接触到第一条消息,他再接受第二条消息就会拒绝。当然也有一些人可能先接触到第二条消息,这样一来他自然会拒绝第一条消息,但此时无论第一条消息还是第二条消息都还没有被确认。

什么时候确认呢?直到有一个幸运儿找到了那道数学题的解,打包了一个新的块,这个区块里边就包含“A付了10个比特币给B”这个消息,这时候第一条消息被确认了,第二条消息就被抛弃了。

同样道理,如果第二条消息优选被打包确认了,那么第一条消息就会被放弃。所以当我们接收到别人给我们付款的时候,我们不能当时就认为钱已经到账了,我们必须等一下,等到这个块已经形成了,这条消息已经被记录到主链上了,才能认为这个钱真正打给我们了。

如何防止篡改?

比如说有一个人想篡改记录,他不可能伪造别人的签名,但他可以删掉某一条记录,比如说他本来付给了别人10个比特币,现在他想把这个记录删掉,篡改一下这个纪录。那我怎么防止这件事?

比特币有个原则,叫最长链原则。就是说这是一个区块链,很多矿工在那拼命地找方法去打包一个新块,结果很有意思的是,几乎同时有两个矿工分别找到了一个新的块,然后把新的信息向周围人广播,广播了之后有些人一看,上面这个已经有人找到新块了,底下人一看也有一个人找到块了,那么现在有这两拨人,每一拨人都以自己接收到的第一个新块为准,当然他也知道好像还有个分支,那怎么办?

他们先不管,先按照自己的接受到的块继续往下算,直到某个时候有个幸运儿算出来了下一个块,于是就在自己战队的排列上又加了一个块,此时大家一看其中一条链比另一条链长了,当他把这条消息广播出去之后,全网都知道了更长的这条链,这样一来这些人就会重新站队跑到更长的那条链下面去,然后大家再继续往下去算。那刚才找出短链的这个矿工就失败了,他算出的结果被废弃了。

有人说我就在我这条链继续往下走,那也可以,但问题是全网的基本原则都是找最长链,如果你认为你自己一个人可以对抗其余所有的人,你到最后造的这个链比刚才那个链还要长很多,那也行,你就继续挖你的。什么时候你算的比全世界算的还要长了,那么全世界的人都会来跟随你,你就伪造就成功了。

也就是说,理论上讲是可以篡改记录的,但改动之后别人不承认,除非你的计算能力超过了世界上其余所有的人。那有人说万一就有这样一个坏人,他控制了全世界50%以上的电脑,然后就为了改掉一个区块链的记录。

如果一个人他有很多钱的话,他就不会甘当一个小偷。同样道理,如果有一个人能够控制全世界50%以上电脑的话,那么他不会去通过这种办法就为了抹掉自己的一条记录,他还不如努力挖矿赚更多的奖励,让自己变得更有钱。

所以,比特币就是通过这样的方法来防止篡改的,就是你一旦想篡改,你是跟全世界的人对抗,你需要链接很长的链,还要战胜全世界其他所有的人,这件事的可能性是非常非常低的。而且随着后续链的增加,改动的难度就越来越大。

所以一般大额的交易都要多等几个块,比如等6个块之后,我们就认为基本上没有可能再去进行篡改了。

结语

比特币作为一种技术手段是非常新颖而且漂亮的,它没有一个中心发行机构,不用担心主权危机,总量固定不会存在滥发的风险,天生具有防伪属性,而且可以追溯,交易手续费也很低。由于有这么多优点,有人甚至提名中本聪应该获得诺贝尔经济学奖。

但是又因为比特币是一种匿名货币,它在交易的时候只需要一个公钥和一个地址,你不知道这公钥和地址背后到底是谁,所以就给很多犯罪分子提供了可乘之机,比如有人利用比特币进行敲诈、贩毒、洗钱等,因此受到了一些政府部门的打击。

还有一些人把比特币当作一种投机手段,比特币暴涨暴跌造成了许多人一夜暴富,也有许多人倾家荡产。大家应该把比特币看作是一种技术手段,如果要购买比特币,也应该从投资而不是投机的角度,因为从长期来看,任何投机行为都会使你输得倾家荡产,而只有投资才能使你稳定获益。

文章内容仅供参考,不构成投资建议,投资者据此操作风险自负。转载请注明出处:天府财经网


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK