最近看了一个故事,讲的是货币的演变,以及比特币的由来与原理,感觉挺有意思,简单讲给大家听听。




话说有一个叫比特村的小村庄,几乎与世隔绝,村民没有货币,一直过着以物易物的生活。就是老张家拿一袋面粉换老李家一只羊。


有一天,村民觉得以物易物实在太不方便了,于是有人提议,以黄金作为一般等价物,把其它物品和黄金的对应关系编成一张表格,例如一克黄金对应一只羊。这样,老张再也不用扛着一袋面粉去老李家换羊了,他只要从家里摸出一克金子就可以了。


此时比特村进入了实物货币时代。


因为金矿不多,开采费时费力,而且金子总是不断会因为磨损、丢失而损耗。此时有人说,其实大家也不必一定要真的用黄金啊,找张纸写上“一克黄金”,只要全村人都认同这张纸就等于一克黄金,问题不就解决了。


大家一想也是,不过如果大家都随便写怎么办?此时又有人提出了解决方案:让老村长写一些纸,按照各家黄金存量发给大家等量的纸,同时将黄金拿走作为抵押。


就这样,老村长将村里所有黄金收归到自己的家里,并按各家上交的黄金数量发给等值的写有字的纸。此时村民就可以拿着这些纸当黄金进行贸易了,而且大家都认得老村长的字,其他人伪造不出来。


此时,比特村进入了符号货币时代。而老村长就承担了政府和银行的角色。


又过了几年,老村长的儿子接过了父亲的笔,承担起货币发行的责任。这个年轻的村长很聪明,他做了几天,发现好像也不用真的写那么多纸。完全可以这样:村民把纸币都交上来,销毁,但是新村张会记录下每户上交的纸币数量。


以后如果要进行付钱,例如老张要拿一克金子向老李换一只羊,就一起给村长打个电话,村长拿出账本,在老张的名下减掉一克,在老李的名下加上一克,这样就完成了支付。


此时,比特村进入了中央系统虚拟货币时代。每个村民都不需要用实物支付,支付过程变成了账本上数字的变更,就像我们现在的移动支付。


有一天新村长盯着账本,心想全村各户谁有多少钱就是我说的算,于是他头脑一热,私自从别人帐下划了十克金子到自己名下。


结果东窗事发,大家发现账本集中在一个人手里有很大的弊端,如果这个人不守规矩,随意篡改账本,那么整个货币系统就会崩溃。




正当人们不知所措时,村里一个叫中本聪的人告诉大家他已经设计了一套不依赖任何中央处理的虚拟货币系统,叫比特币,可以解决上述问题。然后他缓缓讲述了自己的方案。


(一)对账本进行改造


(1)账本上不再记录每户村民的余额,只记录每一笔交易。记录付款人、收款人和付款金额。


(2)账本由私有改为公开。账本上记录了从创建开始到当前所有的交易,任何村民需要,都可以获得当前完整的账本。


此刻,村民们都无法接受,因为账本可是记录了所有村民的交易,这样大家的隐私不全暴露了吗。


(二)公钥加密系统


这时中本聪又拿出了两样东西。


(1)保密印章可以在纸上盖一个章,每个印章盖出的章都隐含了一个全村唯一的一串字符,但是凭肉眼是看不出来的。也无法通过观察来制造出相应的印章。


(2)印章扫描器可以扫描某个已经盖好的章,读出隐含的信息,并在液晶屏上显示出一串字符。


有了这两个神奇的东西,大家就可以在不暴露真实身份的情况下进行交易了。


(三)招募虚拟矿工


接下来,要招募虚拟矿工。矿工每天要花费一定时间从事比特币“挖矿”活动,但是不同于挖金矿,虚拟矿工不需要拿着工具去野外作业,在家里就可以完成工作。


矿工有一定可能性获得报酬,在挖矿活动中付出的努力越多,获得报酬的可能性越大。


(四)建立初始账本


中本聪拿出新账本,在账簿的第一页上记录了一些交易记录,这些记录的付款人一栏全都是“系统”,而收款人分别是每个印章对应的隐含字符,代表初始时刻,系统为每一户默认分配了一定数量比特币,但是数量非常少。


接着中本聪说,由于我不是村长,我也没有权利强迫大家一定要承认比特币,大家可以自行决定要不要接受比特币。不过随着比特币的流动和矿工的活动,比特币会慢慢多起来。




(五)支付与交易


(1)付款人签署交易单


为了支付10个比特币,老张首先要询问老李的标识字符串,例如是“ABCDEFG”,同时老张也有一个标识字符串例如是“HIJKLMN”。


然后老张写一张单子,内容为“HILKLMN支付10个比特币给ABCDEFG”,用自己的保密印章盖一个章,将这张单子交给老李。


另外为了便于追溯这笔钱的来源,还要在单子里注明这笔钱的来源记在哪一页,例如这个单子里,老张的10个比特币来自建立账本时系统的赠送,记录在账簿第一页。


(2)收款人确认单据签署人


老李拿到这个单子后,需要确认这个单子确实是来自“HIJKLMN”这个人签署的,这个并不困难。因为单子上必须有保密章,老李拿出印章扫描器,扫一下章,如果液晶屏显示出的字符和付款人字符是一致的,就可以确认单子确实是付款人签署的。


(3)收款人确认付款人余额


通过保密印章,收款人虽然可以确认付款人确实签署了这份单子,但是无法自行确认付款人是否有足够的余额支付。谁来负责记账和确认每笔交易的有效性呢?


最终承担这份工作的是之前所提到的矿工组织。每个组首先自己复制一份初始账簿,初始账簿只有一页,记录了系统的第一次赠送。


每个小组有若干账簿纸,每一页纸上仅有账簿结构,没有填内容。


中本聪又向矿工组织的每个组分发了若干编码生成器,这个东西很神奇,将一页账簿填好内容的账簿纸放入这个机器,机器会在账簿纸的“本账单编号”一栏自动打印一串由“0”和“1”组成的编号,共256个。


(4)收集交易单


中本聪规定,每笔交易的发起人,不但要将交易单给到收款人,还要同时复制若干份一模一样的交易单投递到每个矿工小组的收件箱里。矿工小组的人定期到自己的收件箱里把收集到的交易单一并取出来。




(5)填写账本


此时小组的人拿出一张空的账簿纸,把这些交易填写到“交易清单”一栏,同时找到当前账簿最后一页,将最后一页的编号抄写到“上一张账单编号一栏”。 注意还有个“幸运数字”,可以随便填上一个数字,如12345。然后,将这样账簿纸放入编号生成器,打印好编号,只有编号的前10个数均为0,这页账簿纸才算有效。


要修改编号,只能修改账簿纸的内容,而“交易清单”和“上一张账簿纸编号”是不能随便改的,那么只能改幸运数字了。于是为了生成有效的账簿纸,小组里的矿工就不断抄写账簿纸,但每张纸的幸运数字都不同,然后不断的重复将纸放入编码器,如果生成的编号不符合规定,这张纸就算废了,重复这个过程直到生成一串有效的编号。


我们知道,如果编号的每一个数字都是随机的,那么平均写1000多张幸运数字不同的纸才能获得一个有效的编号。


这些矿工为什么要拼命干这看似无意义的事情呢?因为如果你生成了一张有意义的账簿纸,并且被所有挖矿小组接受了,那么就意味着这条交易也被接受了,你的挖矿小组将获得比特币作为报酬。


(6)确认账簿


当某挖矿小组幸运的生成了一张有意义的账簿,为了得到奖励,必须立刻请其它小组确认自己的工作。


需要确认的信息有三个:


  • 账簿的编号有效

  • 账簿的前一页账簿有效

  • 交易清单有效

如果完成了所有了上述验证并全部通过,这个小组就认可了上述账簿纸有效,然后将这张账簿纸并入小组的主账簿,后面的挖矿工作会基于这本更新后的主账本进行。


(7)账簿确认反馈


对于挖矿小组来说,当账簿纸送出去后,如果后面有收到其他小组送来的账簿纸,其“上一页账簿纸编号”为自己之前送出去的账簿纸,那么就表示他们的工作成功被其他小组认可了,因为已经有小组基于他们的账簿纸继续工作了。


另外,任何一个小组当新生成有效账簿纸或确认了别的小组的账簿纸时,就将最新被这个小组承认的交易写到公告牌上,那么收款人只要发现相关交易被各个小组认可了,基本就可以认为这笔钱已经到了自己的账上,后面他就可以在付款时将钱的来源指向这笔交易了。


以上就是整个比特币的支付体系。



原文链接:[url=]http://blog.codinglabs.org/articles/bitcoin-mechanism-make-easy.html[/url]



微信公众号→添加朋友→搜bitett