若干容易迷惑的区块链概念
区块链和区块链应用
区块链和区块链应用其实是两个概念,但人们常常会将其混淆,并且会因此而对区块链产生误解。
我们已经盲人摸象般从不同角度来看什么是区块链,无论从哪个角度,都可以看到区块链是一种基础架构类型的部件。在计算机应用系统里,类似的部件还有很多,比如数据库、网络、文件系统等。作为基础部件,它们通常“有所为且有所不为”,它们是用来构建一个应用的基础,而往往不是应用本身。
由于区块链技术还处于早期,应用不够丰富,还显得比较原始,人们容易区分不清区块链和其应用。这里我们可以通过类比来帮助理解,以企业的工资管理系统为例,用到的MySQL或SQL Server就是数据库本身,而工资管理系统就是数据库的应用。虽然工资管理系统的软件核心逻辑、数据全部保存在数据库里,但企业管理者、员工、财会人员是完全不需要也不应该去接触数据库的。其实,用户并不需要掌握任何数据库的知识,就可以使用这些数据库应用,数据库应用作为一个重要角色来为用户提供友好的界面、正确的应用逻辑,而把与数据库如何打交道的技术细节完全对最终用户隐藏。区块链应用也是同理。未来,一个合格的区块链应用应该为用户提供非常友好的界面和使用体验,但并不需要用户去了解区块链的技术细节。
不少接触过区块链现有应用的用户可能会困惑,为什么现在使用这些区块链数字钱包、交易所和矿机需要学习很多知识?因为这些处于区块链早期的应用还处于原始状态,有些根本不是为最终用户设计的,所以无比难用。不过,早期的计算机、数据库和互联网无一例外都很难用,当时也只有专业人员才有能力使用。
区块链应用和去中心化应用
接触区块链时,人们也常会听说“去中心化应用”(或“去中心应用”),它和区块链应用是什么关系呢?关于去中心化应用,本书第5章会进行详细介绍和讨论。
简单而言,区块链应用的定义更广,只要使用到区块链技术的应用就是区块链应用,无论这个应用是不是去中心化的。目前很多和区块链相关的应用,如Web(万维网)版区块浏览器、数字货币交易所等都是典型的中心化部署的应用,并不是去中心化应用,但它们都和区块链相关,后台的数据来自区块链或者其业务逻辑需要区块链支持,因此都是区块链应用。
区块链将有助于构建真正的去中心化应用,但去中心化应用未必一定需要区块链,在区块链诞生之前繁荣的很多P2P应用都有非常好的去中心化特性,但它们并不是区块链,也没有使用区块链技术。
钱包
区块链钱包其实是个“钥匙包”,而不是钱包,因为它里面并没有保存任何数字货币、数字资产,这些东西都保存在区块链上。区块链钱包里面保存的是一连串“钥匙”,这些钥匙使得用户可以使用区块链上的资产,因此可以被认为是一个钥匙包。我们之所以称之为“钱包”,是因为从比特币时代开始大家都这么称呼,并且沿袭到今天。但这种称呼常常让初次接触区块链的人感到困惑,甚至产生误解。
新一代区块链数字钱包保存的不仅仅是数字资产的钥匙,还会保存更多的东西,最典型的是数字身份。这样一来,区块链钱包其实越来越接近现实生活里的钱包——今天我们的钱包里放得最多的反倒不是钱,而是身份证、驾驶证、信用卡、银行卡(相当于银行账户的钥匙)等(见图1–8)。
图1–8 ArcBlock开发的新一代区块链数字钱包
区块浏览器
同样,区块浏览器和我们常用的Web浏览器完全不同。由于区块链是一个密码学账本,为了高效地进行网络传输,都采用特定的二进制格式保存数据,因此区块链上的数据要查看起来就非常不直观。区块浏览器的作用首先是能把区块链上的数据解码出来,让用户看得明白,其次还会对区块链上的数据进行各种索引,从而让用户可以查询并交叉对照各种信息(见图1–9和图1–10)。
其实,区块浏览器更多时候是一个开发者才需要使用的应用,最终用户本应不必使用。但由于区块链处于早期,很多应用和基础设施不完善,现在的区块链用户都习惯用区块浏览器去查看区块链上具体的数据信息。
图1–9 以太网区块浏览器,可查看以太坊区块链信息
图1–10 ABT链网通用区块浏览器,可查看使用ArcBlock框架创建定制的区块链和互联互通、编织成网的区块链数据