有银行作为中心的交易结算体系
假如张三和李四分别在X银行都开设了一个账户,并且账户里面都有钱。因为张三和李四有生意往来,现在张三给李四通过银行转账100元。银行就会在银行的结算系统中生成一条唯一的账单:
账单编号01:张三的银行账户转出100元,李四的银行账户转入100元
这样张三账户里面就会少100元, 而李四账户里面就会多100元。正是因为有银行这个值得双方信任的中心结算机构,所以总是能保证在交易转账时每个人的账户余额都是正确并且统一,而且张三和李四也相信银行会处理正确的。当然银行系统不止记录张三和李四的转账记录,还记录所有其他在银行开设了账户的人的转账记录。也就是说所有人的交易都只需要银行维护一个总账本来记录这些交易就可以了。我们称上面这种交易为有中心化交易方式。
虚拟货币
现实中我们买卖东西,都需要用到钞票,而钞票是每个国家的中央银行负责发行的对应于黄金等价物的纸质货币。钞票是实实在在的实物货币,它看得见摸得着。
那么什么是虚拟货币呢? 举例来说一些平台为了鼓励你多用他的系统,都会推出所谓的积分一样的东西,这些积分只是一个数字,他并不是货币,但是你却可以拿这些积分来换取实物,或者进行积分转移(流通)。同样我们玩QQ斗地主游戏可能会得到一些欢乐豆,而这些欢乐豆可以用来买一些道具,以及欢乐豆在游戏玩家之间赠送转移。这些积分以及欢乐豆都有一些统一的特点:
-
他们都只是你账户里面一个的数字,并不具备实物属性,不具备和真实的货币有直接对应关系。
-
他们由各自的平台根据一定的规则自动产生,而并不会预先发行。
-
这些数字可以进行交易交换和流通。
我们称这种由平台按某种规则产生的这种虚拟的数字为虚拟货币,也就是积分、欢乐豆其实都可以理解为虚拟货币。虽然虚拟货币不能和真实的货币有一一对应关系,也就是不能转化为真实的金钱。但是有些平台做大了后,这些虚拟的货币就具有一定的价值了,物以稀为贵吗!结果你懂得。
比特币也是一种虚拟的货币
虚拟货币没有定额面值,也不是平台系统事先特意发行出去的,而是根据有些规则凭空就生成的。以积分为例,假如我们到美团进行团购,美团规定你每团购一次,系统就会自动送你一定点数的积分,这样买的东西越多,积分也就越多了,或者你在里面完善了你的个人资料,系统也会送你一定数量的积分。
虚拟货币也是一样的,他会根据某些规则自动的生成并存入你的账户里面,而这些规则就是你要付出一定的东西才能得到。 这个付出的行为我们就形象的称之为挖矿,后续我会具体的说明。
真实的场景也是这样的,你必须付出劳动,才能赚到真金白银!!
没有银行作为中心的交易体系
我们知道比特币等虚拟货币的产生和交易是没有一个所谓中心银行的概念的。也就是虚拟货币的发行不是由某个银行事先发行,同时虚拟货币的交易结算也并没有通过哪个银行来处理。 那如果这样的话怎么保证你账上的钱是正确的呢? 答案是可以的。
我们还是以张三向李四转账100元为例子。并假如现在一共有10000个人在联网玩虚拟货币。那么当张三向李四转出100元时, 张三就会向所有9999人通过网络发送一条广播,大家注意了啊,我要向李四转了100元,大家注意查收啊:
广播的内容:账单编号01:张三的账户转出100元,李四的账户转入100元
我们称这条广播出去的转账账单为一个block,也就是一个区块(真实的区块并不是一条交易,而是多条被全网认可的交易打包在一起才叫区块)!!(哦,原来区块就是指一条转账的账单啊,就叫交易记录多好啊,非得要取一个block并翻译为区块! 差评!!!)
因为没有中心结算机构,这样每个收到的广播的人都会在自己的账本上记录并保存这条转账记录。网络中任意两个人之间的转账记录都会在所有人的账本上记录下来并且同步更新,从而保证了所有交易信息的完整性了。因为所有人都记录了同样的信息,这样就没法作弊了。
这种机制说白了就是由原先的一个银行来记账变为所有参与的人都来记账了。其实道理也很容易理解,要想保证每个人的账面上的东西都是正确的,要么就找一个大家都信任的人来记账,要么就每个人都记录相同的账。 很明显比特币等虚拟货币采用的记账方式是后者。
等等。。。
每天这么多转账记录,人家每广播一条,其他人所有人都要在自己账本上记录下来。而且人家的交易关我屁事啊。我又没有什么好处,算了,算了,我不记了,你们谁爱记就自己去记去吧。
于是就有可能所有人都不愿意记账了。。。那都不记账游戏就没法玩了呀。。因为没有银行这个中间权威机构,就保证不了信息的统一和一致了呀。。。
其实主要还是因为记账的人得不到什么好处,那如果能给那些愿意记账的人好处费呢?
于是大家重新约定:只要谁愿意记账就给记账的人每记录一笔账就奖励一个虚拟货币作为补偿, 那这样的话因为有好处费大家就都愿意干了。
于是大家又开始高高兴兴重新记账了,因为每记录一笔账都有1个虚拟货币作为奖励。可以这有什么意义呢?每个人只要记一笔账都给1个虚拟货币。大家都有了,就没有意思了,要是能有办法让劳动和收入成正比就好了,多劳多得嘛。应该要将游戏的大锅饭规则改为家庭联产承包责任制!
矿工挖矿
于是乎所有玩家就又在一起想出一个玩法: 本地每次都生成一个随机数,然后把人家给你广播的账单编号,交易金额,和这个随机数作为一个三元函数的变量,而设计一个算法(这里只是举例一个简单的算法,真实的算法要比这个复杂多了):
计算结果 = 账单编号 * 交易金额 * 随机数
来让你的电脑进行计算,并规定如果计算结果里面末尾出现了3个0的话(就是计算结果是1000的倍数的话)。你就可以将你的计算结果向所有其他人广播说: 我对某个交易的账单进行辛苦的计算得到了一个末尾3个0的计算结果。我成功了!!! 这样只要大家都认可你确实是计算结果末尾是3个0,系统就给你奖励1个虚拟货币作为补偿。当然你还要负责将账单的交易记录写入到账本里面,并向所有其他玩家发送账本的更新信息。
嗯!这个游戏规则不错,我愿意玩!! 有责任就有义务,有付出就有收获。
在新的规则里面,我们会发现了又变成只有一个人记账了,前提是只有算出了计算结果末尾是3个0的那个人才有记账的权利,并且能得到大家的认可。这种场景我们称之为抢夺记账权。因为只有抢到了记账权,你才有资格获得一个虚拟货币的奖励。为了形象表达这种辛苦的计算和抢夺记账权的过程,我们称之为挖矿!而进行计算的人叫矿工!进行计算的机器叫矿机。 这个计算并得到货币奖励的过程就像工人付出辛劳挖矿挖到金子一样。比喻非常贴切,好评!!!!
为什么说挖矿的过程辛苦呢? 这样因为虽然交易的账单编号和金额是一样,但是每次的随机数都不一样,所以不是计算一次就能得到计算结果末尾是3个0,这时候就要新生成一个随机数进行再次计算。整个过程有可能要经过几千次,或者几万次,甚至更多次... 那这样一来就是比谁的运气好,以及电脑计算能力强了。计算能力越强的电脑获得正确结果就有可能更快。但是相应的消耗也就更大了。
每次接收到新的交易账单通知时,只要你想要得到奖励的虚拟货币,那么你就必须去挖矿,但是其他人也想要得到虚拟货币奖励,他们也在挖矿。 就看谁能先算出末尾3个0了。先算出的人就能得到1个虚拟货币。
因此挖矿的过程其实就是一个解题的过程,也是抢夺记账权的过程,以及生产虚拟货币的过程。
区块链
刚才我说了每一笔交易的账单我们称之为一个区块, 而每个挖到矿的人除了能得到奖励的虚拟货币外,他还有一件事情要做,就是要把他挖出矿的那笔交易账单,在账本里面记录下来,并向所有的人发送广播,叫其他人更新账本,我们就称这个大家共同维护的总账本为区块链。* 也就是区块链其实就是所有交易记录的集合。 说白了就是一个小账本嘛!
真是的,一个小账本,还叫区块链这么佶屈聱牙的词语。(靠!你不是也写佶屈聱牙吗?不就是拗口难懂的意思吗?)
矿池
上面说了一个人挖矿其实是非常耗时和耗力的事情,那么有没有可能某几个人联合起来挖矿呢,比如3个人约定:其中一个人算倒数第三位,一个人算倒数第二位,而一个人则算倒数第一位。这样合作起来挖矿的话就比一个人单独挖矿要快的多啊。 因此我们把这种联合起来挖矿的方式称之为矿池。在矿池中,每个人只负责计算一部分,最后如果3个人最终都算出结果后,他们就可以联合向外广播计算的结果了,同样系统给予每个人1/3个虚拟货币的奖励。
为什么矿越来越难挖了呢?
其实很简单的,根据玩法规定,最开始挖矿时我们规定,只要计算的结果的数字结尾有3个0就表示你挖到矿了,而系统会在每隔一定时间就会更改规则,将计算结果末尾是同时0的位数进行提高。比如末尾结果为4个0,5个0 ... 很明显越往后要求出现的0越多,也就是越来越难计算了。 所以矿就越来越难挖了。
好了!虚拟货币,区块,区块链,挖矿,矿池的概念你都弄明白了吗?