「币姐解读区块链04」上帝视角看区块链系统是如何运转的

上期回顾: 币姐解读区块链03:区块链的发展历史

 

币姐开场

关于区块链,局部的东西大家听很多了:分布式、非对称加密、UTXO、挖矿之类的名词。这些名词是如何结合在一起的呢?

币姐将从上帝视角(宏观)来看看区块链到底是如何运转起来的。

本文以比特币的技术为案例,请注意:比特币 ≠ 区块链

 

用群众的力量解决基础建设问题

不用服务器,而用广大群众的电脑

对于电子支付来说,总是需要完成“计算、存储、传输”这3大任务。

以前是银行、支付宝、微信提供的服务器来处理的,这也是中本聪最希望改变的地方:去掉第三方机构,降低交易成本,提高交易效率。( 币姐解读区块链02:中本聪为什么要做比特币(最早的区块链)?

所以中本聪采用了分布式(什么是分布式)的结构,让用户的电脑来代替中心服务器的作用,解决计算,存储,网络传输这3大任务。

 

那么问题来了:用户凭什么把自己的电脑资源贡献出来?

 

用比特币做激励

电脑不能白用,贡献电脑资源(现在都是矿机)的人是有机会获得比特币的奖励!

这个过程也就是大家常说的“挖矿”。

想要挖矿需要满足2个条件:

  1. 同步所有数据——解决了数据存储的问题
  2. 保持联网,成为网络中的一个节点——解决了数据传输的问题

满足上面2个条件后,就可以开始挖矿了。

挖矿过程就好像一个拼图比赛,系统给出一个拼图,大家开始拼,第一个拼好的展示出来,由于拼图验证起来很简单,所以大家一看就知道有没有拼对。

一旦有人完成了大家就开始竞争下一个拼图。

这个拼图比赛就是大家常说的——pow工作量证明(什么是pow?

第一个拼好的人就要记录一个区块里的所有交易,并打包同步给其他人。

这么做可以获得2部分的奖励:新产出的比特币、这个区块所有的交易手续费(矿工费)。

大家通过“拼图比赛”,贡献了计算资源。

 

就是在比特币的激励下,用户将自己的电脑(现在都是矿机)贡献出来,为整个系统提供计算,存储,数据传输3大基础建设。

在不依赖任何第三方机构的情况下,解决了基础设施。

 

没有了第三方,谁来判断交易是有效的?

假如币姐想通过银行给老王转账,银行处理这笔交易的同时也证明了这笔交易的有效性。

比特币没有类似银行的第三方机构,他是如何证明一笔交易的真实性呢?

下面举个例子说明一下比特币的交易是如何判断的 :

币姐举栗

币姐给老王转了10个BTC,然后扯着嗓门给网络中的其他人喊:我给老王转了10个BTC啊,大家都记一下。

大家听到之后会验证币姐的身份是否真实,如果有人想冒充币姐把币转走肯定是不行。

然后再看看币姐是否拥有10个BTC,不够10个BTC也是不能交易的。

如果币姐的身份没问题,余额也足够,大家就拿出小本本,记上“币姐给老王转了10个BTC”,同时通知给其他人。

虽然记到了小本本上,但是并不意味这个交易已经确认了。这个小本本上都是待确认的交易。只有打包进入区块才算确认。(打包区块会在下文中说)

到了这里,已经完成了几步重要工作:

  1. 交易发起方发起了一笔交易,并通知给其他用户
  2. 收到通知的用户对交易进行了初步验证(身份是否正确,余额是否足够)
  3. 验证没问题的交易会继续广播,直到传遍整个网络(整个过程只需要几秒时间)
  4. 这些经过了初步验证的交易记录会进入一个“待确认的交易池”中

 

这个过程中,大家可能会有2个疑问:

  1. 大家是如何验证币姐的身份呢?
  2. 大家是如何验证币姐拥有超过10个BTC呢?

 

大家是如何验证币姐的身份呢?

好比有3个人说自己是老干妈,自己有绝密的配方。

但是配方太宝贵,不能告诉任何人。如何判断哪个是真正的老干妈呢?

让3个人都做出来尝尝,味道最正宗的那个就是真正的老干妈了!

这就是非对称加密,不需要把密码(配方)告诉别人,别人也能很快知道你拥有这个密码(配方)。

(关注币姐,未来会详细讲解其原理)

 

大家是如何验证币姐拥有超过10个BTC呢?

传统的银行,如果你想交易,是银行来验证你的余额是否足够,其他人是不知道你有多少余额的。

而比特币的系统中,余额是公开的,不过不用担心隐私问题。因为大家只能看到地址(什么是地址),而并不知道这个地址是谁的。

就好像大家知道卡号为888888888的卡里有1个亿存款,但大家并不知道这个卡是谁的。

 

真实有效的交易记录又是如何做到不可篡改的呢?

牵一发而动全身

接着上面的继续说:

当币姐通知大家“我给老王转了10个BTC”之后,大家已经将这些等待处理的交易都记下来了。

这个时候,总有一个矿工第一个完成了拼图(上面提到的拼图竞赛),他就拥有了这个区块的记账权。矿工会优先记录手续费高的交易,因为这样矿工就能赚的更多。

当他打包好(也就是记账)这个区块后,他会接上之前的区块。这样就形成了一个跟时间轴一样的区块链了。

这个链条随着时间不短延长,一直延续下去。

在这个链条中想要修改一笔交易,是十分困难的,因为修改后,他会跟其他区块产生冲突。

除非你拼图6到飞起,每次拼图都你赢!

 

如果钱能追溯到“印钞机”

还有一个精妙的设计也防止了数据被篡改,那就是:UTXO 未花费余额(什么是UTXO?)。

大致逻辑是说你手上的所有比特币,都可以不停追溯直到源头(挖矿产出)。

 

举个栗子

比如币姐现在有5元现金,这5元现金是昨天买可乐给了10元,找我的5元。而我买可乐的10元是帮老王画画赚来的,老王的10元是用100元买菜找回来的…以此类推,就可以追溯到是哪一台印钞机印出来的。

基于UTXO,每一笔比特币都有完整的流通记录,如果你随便改一下数字,凭空冒出来新的比特币,其他人是不认的。

 

总结

比特币(最早的区块链)是一套很精妙的设计!

  1. 他借助每一个用户的资源搭建起来了一套去中心化(什么是去中心化?)的基础设施。矿工们在比特币的激励下愿意主动的贡献自己的计算资源。
  2. 利用密码学和计算机学等技术方案,每一笔交易都能快速被大家验证和处理,不再需要银行这种第三方机构来处理。
  3. 时间轴一样的区块链结合UTXO(什么是UTXO?)阻止了黑客的恶意修改。

 

以比特币为例,你会发现整个系统环环相扣,了解越多你会越觉得中本聪实在太聪明了,能做出这么巧妙的东西。

比特币系统从2009年正常运转至今,不断发展壮大,已经充分证明了这个系统是经得起时间的考验的。

后续还会有更多更细致的讲解,持续关注币姐,了解最前沿的区块链技术。

 

下期预告: 密钥,私钥,公钥,地址傻傻分不清楚?

私钥很重要!这个大家都知道,但是公钥什么?有啥用?密钥又是什么?有啥用?

下一期将给大家讲解一下私钥,公钥,密钥,地址之间的关系。

 

文章目录: