我的区块链入门

因为最近写了一下DHT爬虫(P2P协议),所以对P2P之类的东西还蛮有感觉的,因此就决定花点时间了解一下当下火热的区块链技术。

理论

关于理论,我推荐阅读阮一峰的博客:区块链入门教程

实践

这篇博客,利用Nodejs实现了区块链的核心思想,大家一定要看懂:200 行代码实现一个简单的区块链

分析

既然在P2P网络里,谁维护的有效区块链最长就以谁的为准,那么自然有一个问题:到底谁的区块链最长呢?

所以,在一个交易平台上,你看到自己钱包的余额也许只是基于这个交易平台(它自己也是个矿工)当前已知的最长区块链数据算出来的,也许世界某个角落有一堆天才科学家用量子计算机之类的构造了一个非常长的区块链,那么他们完全有能力散播出去,让大家此前的区块链荡然无存。

比如我在某个交易平台获知自己有10比特币,然后我转账给A钱包,这个交易请求丢出去会有很多矿工帮你计算区块(算满足特征的hash),假设这个某个矿工成功生成了区块,然后开始广播。接下来,A钱包在另外一个交易平台上,不断刷新页面查看自己的交易记录是否有入账,直到A所在的交易平台区块链得到更新,获得了对应的区块。但是这时候,A就能完全相信钱到账了么?显然不能,万一天才科学家过会用一个稍长一点的链把A所在平台的链替换了怎么办?说白了,谁的区块链长谁说的算,而区块链就是记账簿。

区块链对新区块的hash特征要求很高,以至于目前世界上大概每10分钟才能算出一个满足条件的区块,相当于全世界的计算能力才达到这个水平。所以,A不能看到区块立即确认转账完成,而是等待后面再出现6个区块,这个时候就基本可以确认到账了。因为,除非有一个恶意的攻击者,它能超过全世界的算力,生成一个比当前还要长的区块链,否则这笔交易基本可以确认是落地了。

如果文章帮助您解决了工作难题,您可以帮我点击屏幕上的任意广告,或者赞助少量费用来支持我的持续创作,谢谢~