区块链1.0
比特币和区块链的关系
在
最初的文章中,我将比特币和区块链的关系描述为区块链是比特币的分布式账本。其实,在比特币(bitcoin)这个名词在中本聪的论文中出现的时候,还没有区块链(block chain)这个术语的诞生。后人根据中本聪在论文中描述的这样一种由区块(block)组成的链式结构,才提出了区块链这个术语。所以,区块链是从比特币中挖掘出来的技术。
区块链只是“区块的链”吗
从
字面上理解,区块链只是由区块组成的链,这样的理解其实也并没有错误。只是我们在技术上谈到区块链的时候,往往将共识机制(如工作量证明PoW)等都包含在内,毕竟如果区块链只是一个由区块组成的链式结构,而脱离了共识机制下的分布式信任,也仅仅是一种很平凡的数据存储方式。所以,在技术上谈到区块链的时候,实际谈的是整个区块链架构下的技术。
区块链1.0的构成
这
幅区块链1.0技术架构图来源于《中国区块链技术和应用发展白皮书(2016)》:
我们通常认为比特币的技术架构即为区块链1.0技术架构,在先前的文章中,我们主要从比特币的挖矿、交易和分叉三个维度上分析了区块链1.0技术架构中的主要技术。总结一下,主要有以下概念:
矿工:区块链分布式网络中的节点,使用自己的计算能力去挖矿。
挖矿:矿工们抢夺区块链上当前区块的记录权。
共识机制:让利益冲突的矿工们对谁挖到矿达成一致的机制,如比特币的工作量证明(PoW)算法。
工作量证明:保证计算能力更强的矿工有更大概率可以挖到矿。
非对称加密:加密和解密使用不同钥匙(私钥和公钥)的加密算法。
数字签名:账户使用私钥对信息进行加密的过程。
UTXO:一种区别于传统账本记账的记账方式。
分叉:区块链上从某个节点开始链变为两条或者多条。如果你学过数据结构,那么应该可以理解这是区块链变成了区块树。
如果你对这些概念还充满迷茫,你可以再次阅读对应的文章。
区块链1.0+
在
之前的描述中,区块链1.0主要为用户们提供了一个可运行的货币系统(包含货币发行和货币交易)和一个公开透明可靠的账本(记录运行历史),似乎没有为我们提供其他功能。在现实的金融体系下,我们可能有各种各样的需求,例如众筹。
作为一个众筹平台,需要保证的一点是如果钱没有筹够,那么需要将众筹来的钱退还给大家;如果钱筹够,需要把钱给发起众筹的机构或个人。但是众筹平台本质上也是一个中心化系统,对资产有绝对的把控权,似乎也是比特币体系应该解决的问题,比特币可以解决吗?可以。
如何解决这个问题?请大家跟着我这位程序员的思路去思考:程序员和普通用户最大的不同,是普通用户在使用软件,而程序员在开发软件。开发软件本质上是用编程语言写特定的执行逻辑,然后构造出软件供给用户去使用。而比特币也提供了这样的开发能力。
在前面我们提到的比特币UTXO记账方式中,我描述的是输入为多个交易,输出也为多个交易,实际上这是一种简化的描述方式。真实的交易中交易是会提供一个解锁脚本,去解锁上一个交易输出的锁定脚本。
当然普通用户无需关心这些脚本,会有比特币钱包软件帮你生成。在这我只是想说,比特币体系中是可以修改这些脚本用以开发出特定功能的,如众筹。
智能合约与区块链2.0
智能合约
智
能合约本质上解决的问题就是让区块链拥有开发能力,不会让区块链应用在面对新需求时一筹莫展。在上面我们提到,比特币的脚本也提供了这样的能力。但是,比特币脚本本身提供的开发能力较弱,只能算是智能合约的雏形,所以我们通常不叫它智能合约,如果你不怕被打也可以叫它zhizhang合约。
区块链2.0
通
常来讲,我们会把区块链1.0 + 智能合约称为区块链2.0。区块链2.0技术架构让区块链拥有了更加灵活的拓展能力,程序员们可以使用某种特定的编程语言在区块链上开发出各种各样的应用,以太坊(ETH)就是一种非常成功的基于区块链2.0技术架构的技术。
后续文章
接
下来将进入以太坊篇系列文章,让你看到基于区块链技术更加多样化的应用。
领取专属 10元无门槛券
私享最新 技术干货