溪谷过客

从一个过客的角度来理解和诠释世界。
正文

比特币及区块链浅说(二)

(2016-06-24 15:44:31) 下一个

四、区块链

前面说过,区块链是用来记录比特币的交易的,而且,它的记账是由网上的普通路人来实现的,因而甩掉了诸如政府或银行这些限制人们自由并从中获得暴利的中间机构。

区块链不是别的,就是一笔笔的交易记录。自比特币诞生之日起,所有的交易都必须记录在区块链上,一笔也不能多,一笔也不能少。不仅如此,所有记录还必须严格地按照交易的先后顺序来存档,先交易的记录在前面,后交易的记录在后面。这些记录存在哪里呢?对,就存在互联网上,任何一个普通人都可以查阅。

谁来买设备存放这些记录呢?没有人,区块链的实现完全依赖于互联网上的草民以及他们手中那些也许是半新不旧,也许是老得掉牙的个人电脑。

这么土吗?是的,这是没有办法的办法,既然你不想受政府和大金融机构的限制,那么期望他们为你兴建大型数据中心或投资崭新的高端服务器简直就是白日做梦。所以,能依靠的就只有千万网民手中的普通电脑。这些电脑也许会很新,但也许会太显过时,没准儿连键盘上的键都要即将脱落了呢。

不过没关系,你也许没有意识到,你正在使用的这台破旧机器,单独拿出来可能一点儿也不起眼:没有多核CPU,内存不够用,硬盘已趋饱和,程序跑在上面如同夕阳下的漫步,能把人急得跺脚捏拳外加咬牙切齿。可是假如把上百台、上千台、上万台甚至几十万台这样的机器连在一起,其所产生的功效可就大不一样了。

我们就少说点儿,算他只有一万台电脑,那么,我们的记账就可以轻而易举地获得一万个备份。立刻,我们就体会到了自建金融网络的效益:其一,再也不用担心所记账目会因黑客攻击之类的原因被损坏了。黑客再强悍,也不可能找全挂在互联网上、隐藏于世界各地的属于普通草民的电脑。其二,我们也不用担心有人成心篡改交易记录。因为,你即使篡改了一台电脑上的记录,那还有存储在其他电脑上的九千九百九十九份真实记录呢。当你拿出一份和其他九千九百九十九份都不一样的记录,你说,天底下的人会相信谁?

从前面的论述中我们知道,区块链所记录的是一笔笔的交易,它被存储于挂在互联网上属于和你我一样的草民的电脑当中,所有电脑存储的记录是一模一样的,一万台电脑就相当于一万个备份。

当老张用比特币向老王买烧饼时,老王接受了老张的比特币,他现在唯一要做的事情就是把这个交易记录写进区块链之中去。然而,他并不是简单地把这笔交易汇报给一万台电脑中的某一个,而是要汇报给所有的电脑。当然,不能保证这一万台电脑都同时在线,但只要有很多电脑同时在线,打个比方说,五千台,就已经绰绰有余。

五千台电脑收到了从老王那里送来的交易记录,立即忙活起来,把它写进区块链之中去。这些电脑有的做得快,有的做得慢。做得快的电脑抢先一步把新的区块链记录发给其他电脑,其他电脑收到新记录后发现自己正在进行的工作已被人抢先完成,就半途而废,改而坐享别人发来的现成结果。最终,这笔交易会被复制到连接在比特币网络上的所有电脑中去。

我们可以把整个区块链理解成一个大账本,里面记载着自比特币诞生后每一笔交易的来龙去脉。而区块链里的每一个区块,就像是账本里的一页纸,里面记载着若干笔交易,一页记满了,再翻开新的一页。

账本为防止有人作假,每一页都会编上页码,我们在查账时一定要确定不多一页,不少一页。即使是某一页完全被废弃也不能少,而必须被标以void字样留在那里。

区块链也有编号,不过这编号并非是用阿拉伯数字0,1,2,3……按顺序编成,而是由一套复杂的数学算法产生而成。这些编号让区块像真正的账本那样彼此相连,因而被称作区块链。

一旦一笔交易被写进区块链,就将成为板上钉钉的事情了。假如老张觉得老王的烧饼分量不够,想要反悔,比特币世界里可没有“消费者协会”之类的组织为他撑腰,帮他把原来的记录抹掉。他唯一讨回公道的办法就是去找老王抱怨,假如老王是个有良心的商人,他会把比特币用刚才的方法发还给老张,当然,这也要记录到区块链里面去。

我们前面说区块链里记录的是“第一笔:老张从老钱那里得到十元钱”,其实并不确切。事实上,区块链里不会记录老张、老马、老王的姓名。每一笔交易里面,记录的只有比特币账号和账号之间的金钱交易。

让我们假定煤老板老钱和草民老张、老马、老王的比特币帐号分别是Q、Z、M、W。那么区块链在记录这几笔交易的时候应该是记录如下信息(依然很不确切,但离真相又近了一步):

……

区块100

交易1:承接区块99之交易2,自账号Q转10元钱进账号Z。

交易2:承接区块99之交易3,自账号Q转10元钱金账号M。

交易3:承接区块99之交易3,自账号Q转10元钱金账号W。

……

区块101

交易1:承接区块100之交易1,自账号Z转6元钱进账号W。

交易2:承接区块100之交易1,自账号Z转4元钱进账号Z。

……

在上面的两个记录中,区块100记录着老钱将自己所得的一些比特币(交易记录在区块99当中)赠送给老张、老马和老王的过程。区块101则记录着老张和老王之间的烧饼交易。

在一个人要用比特币付款的时候,他/她需要向比特币网络提供以下信息:1)自己的比特币账号2)对方的比特币账号3)所付比特币金额4)这些比特币来自哪些交易。

前三项都好理解,它和我们现实生活中写支票或发电汇所需提供的信息差不多,然而,第四项就有点儿令人费解了,我买东西,还必须告诉别人这钱是从哪里来的,这是不是多管闲事吗?假如一个人去餐馆吃饭,在付费时商家非要问你这钱是上班打工赚来的,还是买彩票中头奖幸运得来的,亦或是卖股票赚的,这人多半会回答:干你一毛钱的事吗?

其实我们在前面已经讲过,比特币的账号里不会记录你的当前结余。比如说,你从A那里得到了10元钱,从B那里得到了20元钱,从C那里得到了5元钱,比特币账号不会帮你做加法,得出你现在总资产是35元的结论。相反,当你用比特币去买东西时,你必须说清楚是用从A那里得到的10元钱,还是C那里得到的5元钱。因为,当A给了你10元钱之后,比特币的区块链里就会留下一个记录,说有人转给你了10元钱。如果你不把它再转给下家,这钱就一直是在你名下的。当你用它购买了东西之后,它就不能再被使用了。

用一句简单的话来总结,那就是:钱不会无缘无故地多出来,也不会无缘无故地少掉,只能从一个账号转入另一个账号。

在上面的例子中,老钱把别人转给自己的两笔钱(交易记录在区块99)分别转给了老张、老马和老王(交易记录在区块100)。

假如此时老张想用六元钱从老王那里买一个烧饼,他需要得到老王的账号W,然后送给老王一个交易文件:

吾,公钥Z持有者,特授权将区块100第一笔交易所得金额之陆元整转入账号W,余下四元整转入账号Z (签名)

需要说明的是,老张可以使用任何一种方式,包括电子邮件、微信、USB拷贝等等不安全的方法将上述交易文件送给老王。

在这个交易文件中,老张说明了自己的钱是从那里来的,那就是区块100之第一笔交易。通过这个信息我们可以去区块链上核对这笔钱是否真的存在,是否已经被使用过。老张的文件经过核实之后,区块链里便多了两笔记录:一笔是老张把10元钱中的6元转给老王,另一笔是他把余下的4元钱作为找钱转回给自己。至此之后,老张就不能够再使用区块100第一笔交易之余额去购买东西了,但他可以使用区块101第二笔交易之余额。也就是说,老张的10元钱就只剩下了4元,而老王则多了6元钱。

相信大家仍有很多疑问,这么简简单单就把老张辛辛苦苦从煤老板那里得来的钱通过网络给送走了?现在网络诈骗如此盛行,稍不留神自己账号里的余额就会不翼而飞,假如比特币的操作如此容易,那么肯定会给犯罪分子可乘之机的。在一万个备份产生后,老张付给老王的钱算是安全转到老王名下了,可是在这之前呢?会不会有人抢先在记录形成之前做手脚?老张能不能不负责任地传送虚假信息骗取老王的烧饼却不付钱?记账人的人格可靠吗?我们能相信他们吗?

(待续)

[ 打印 ]
阅读 ()评论 (0)
评论
目前还没有任何评论
登录后才可评论.