一.区块链核心:
区块链核心是去中心化
二.通过比特币和支付宝说明去中心化:
传统的淘宝交易模式,买家付款,卖家发货,是通过支付宝为中介的,买家先将钱打入支付宝,卖家的支付宝帐号提示收到款项后进行发货,买家收到商品后检查没有问题,点击确认收货,支付宝再将收款打给卖家,在这一过程中,支付宝充当着交易中心的作用。
中心化的问题是,所有的环节都依赖于中心,一旦中心出现问题,不再可靠,整个的流程都会都到影响甚至瘫痪。
而比特币依赖的区块链技术是如何实现去中心化的呢?
笔者的理解是:区块链不是单纯意义上的去中心化,而是多团体的竞争中心化,比如说比特币,比特币的中心就是"矿工群体"
三.我所理解的比特币"挖矿"
在比特币的体系中,假设有一个交易,A要给B支付10个比特币,换取等值的商品,首先通过一系列的加密认证手段(公私钥加密),B确认这款交易是来自A的,但是如何验证A实际拥有这么多余额呢?他的钱从哪边来的?之前我们有支付宝这个中心,现在没有了,谁来验证?中本聪大师发明了"矿工群体"和"挖矿规则"。
我们在数据结构中学过链表的结构,在区块链的体系中,每个人的交易或者操作都是链表中的一个节点,都是可以寻根溯源的.
比特币交易体系中,"挖矿"就是确认交易单并产生下一个链表节点的过程。我们用新矿来比喻链表上的一个新的操作节点
具体到每一笔交易,除了交易双方参与外,还有矿工群体参与,矿工就是来挖矿的,必须符合以下几个规则才能"得到新矿"(即确认新的操作节点)
1.该次操作在整条操作链中可以找到源头(即可以溯源)
通俗来讲,A用于购买B商品的10枚比特币可能实在之前和C的交易中获取的,而C的又有可能来源于D...直到找到其官方默认的源头(如比特币是系统默认的最初50个币)
2.矿工的提交结果符合验证规则
系统规定,在提交验证结果的时候要根据分配的随机数产生的结果符合某种规则,如比特币在挖矿中,提交的结果加上某个随机数要符合前多少为0,方能证明此次验证有效。
比如说有一个矿工率先完成了验证,根据规则提交结果,提交了n多次都不行,而后一个矿工手感爆棚,提交两次就认证通过了,所以"挖矿"也是要看手气的,并且对于整个系统而言,参与的矿工数越多,其"发掘矿种"的效率越高(即链表中产生下一节点的效率越高)
3.发掘的新矿需要得到其他矿工的验证
每个矿工手里掌握的系统资源(整条链表)是等同的,当一个矿工成功发掘新矿后,需要广而告之,等待其他矿工验证完毕后,这个新矿才能加入链表中去。这就好比矿工老李说"我找到新矿啦",其他矿工老张、老叶、老丁等都确定后,都认同"老李找到新矿啦",这个新矿才能被加进链表节点中。
这就是我理解的"挖矿"。
其实写到现在,越发的觉得和我们的系统集群有些像了。
所谓的去中心化也就是,小明说"我是好人",以前有派出所来认证"恩,小明没有前科,是个好人",现在每个人手中都有一本档案,每个人验证后,都说"恩,小明没有前科,是个好人",小明自然就是好人了。当然互联网中不可能把信息如此暴露,每个行为记录不过最后细化成为一个串号而已,在通过片头所说的加密方式(公私钥)进行加密传输。
下面希望可以自己用语言实现一个区块链的雏形