《区块链技术及应用》摘抄
《区块链技术及应用》第二章小结中关于区块链技术的一段精彩论述。
推荐
华为区块链技术开发团队编著的《区块链技术及应用》挺不错。想了解区块链技术的话,推荐阅读。
摘抄
书中第二章小结中的这个论述太精彩了,摘抄如下。
如果时光倒流 10 年,那时的中本聪在想什么呢?虽然不能穿越,但从他后来的工作和若隐若现的表述中,我们大致能还原他的思路。他要把数据做成一个生命体,数据可以随着时间轴演变。为了这个目的,他做了如下假设:(1)数据是交互的;(2)数据有身份;(3)数据是连续的;(4)数据有历史,历史不可改变;(5)当下的数据正在进入历史。假使把上述 5 条中的“数据”替换成“生命”,同样成立,只是从“虚拟”进入“现实”。要实现这 5 条假设,他需要一些工具。幸运的是,这些工具大多数已经成型,但从来没有人把它们放到一块儿。
(1)交互:交互分两层,底层是网络通讯框架,属于基础设施,早年的 bittorrent 里已经有成熟的 P2P 方案,可以直接借用;上层是人与人之间的协作,可以看作游戏,游戏需要规则,规则最大,规则就是代码化的智能合同。所以,交互需要两个技术:“P2P” 和“智能合同”。
(2)身份:身份是一个证明“我是我”的过程。网络都是虚拟的,靠谱的只有数字。一组独特的数字对应一个真实的身份。这组数字要让别人知道,又不可以被冒充。看似是个无解的难题,其实密码学早有研究,非对称加密就是为这个问题而生,公私钥配对,一个留给自己,一个送给别人。由此构建的“数字签名”恰好证明了“我就是我”。
(3)连续:在数据流里表述连续是个难题,必须转化成前后两个实体的传承关系。实体的颗粒度不能过细,太小的不可标识;也不能过粗,太大的难以传播。因此,区块链的核心结构呼之而出:块(block)。块是时间轴上截取的一段数据流,包装一下,加上摘要。每个块记录上一个块的摘要,表明先后顺序。摘要是块的唯一标识。摘要在技术上也有成熟的办法:“哈希函数”。
(4)历史:在第三条中,引进了哈希函数定义连续性,同时也让历史有了某种不可更改性。在工程实现上,哈希函数可以层层堆积,能够提高算法效率。“堆积”的方法是:“默克尔树”。
(5)当下进入历史:正在发生的事,哪些能成为可以铭记的历史?这是区块链里最难的地方。历史不是它真的发生了,而是大多数人同意它发生了。转化成技术词汇,叫“共识”。在一个分布式的环境中,形成共识如同希腊城邦的超级泛民主大会,难,非常难。因此,不断有新的“共识协议”出来,相应协议解决某种相应特殊的场景,“共识协议”是正在发展的热门技术。
感悟
陆游说,文章本天成妙手偶得之。中本聪说,我不是发明了比特币和区块链,我只是发现了比特币和区块链,因为那些工具大多数已经成型,但从来没有人把它们放到一块儿。
历史的真伪总是充满争议。不过那不重要,重要的是大多数人同意它真的发生了。