《区块链技术指南》读书笔记(二)
这里的前后端,只是逻辑上的,如果在自己的电脑上下载一个完整的节点,上述的各个部分,都会存在本地。
这里的脚本是非图灵完备的,功能有限。只用来处理比特币的一些功能。
- 区块链2.0:以以太坊(ethereum)为例,基于比特币的架构,扩展了更多的功能,打包了更多细节。其源代码可以在Github上看到。
类似于一个多种类比特币的管理平台,不但可以支持虚拟币,也可以把这个区块链技术扩展成一个去中心化的市场。
比特币的PoW机制(挖矿)简单说就是,对一个区块链的头,用一个随机数做hash,如果结果刚好满足一定的条件,就认为是发现了新块。而以太坊不仅仅考虑到CPU算力,还增加了一个DAG(有向无环图)的概念,简而言之,就是运算一定时间后,不光要用到CPU,还要申请一部分内存,这样,如果用矿机或者矿池来算的话,成本就高些了。
关于废块(stale),就是两个矿工都找到一个合规的块,但因为网络等问题,一个没有被确认,比特币则 认倒霉,而以太坊则是仍给一定的奖励,并且也把它挂到区块链的树上。
以太坊里的EVM是图灵完备的,所以为了解决停机问题,只能引入Gas
因为智能合约等EVM高级语言功能的引入,其通讯协议等也比比特币复杂 了许多。
- 区块链3.0:可以理解为以区块链为技术基础的分布式应用。目前还没有成熟的方案,所以也没有达成共识的概念。一般认为可以通过智能合约进行自动服务的,都可以算是这类应用。
我们可以假设一个情景,我在网上超市买了一袋猪肉水饺,这个产品的全生命周期,可能是从猪肉等源材料的来源到生产到包装到超市到运输等全流程。而相关的信息是保留在流程各部分的数据库中的,如果是基于区块链3.0,我们可以通过智能合约,在产品进入下一步节点时,自动按权限在不同的数据库中读取数据、留存数据,同时在节点中保留自身的数据再入下一节点。这样,我们就不需要一个大一统的数据库来管理它的全生命周期数据,而是用一个链保留它自身的全生命周期数据即可。
下图是作者的一个想象架构
我认为,如果把区块链和原来分布式应用的架构结合起来,还是有许多的可扩展空间的,比如,GridCoin的概念就很好,用代币的方式引入一个激励机制。
多个区块链,可以用一种通讯协议联合起来,形成一个互联链(Interchain),一个类似的概念是互联账本(InterLedger)协议。