在区块链系列的上一篇文章中,我介绍了比特币的诞生以及去中心化网络的含义。在这篇文章中,我们就一起来看一下比特币到底长什么样子。
1.比特币只有数字形式,没有对应的实物
比特币这样的虚拟货币与我们日常使用的人民币等法定货币相比,存在形式非常不同。现在,请你想象一元人民币的样子,你想到的是什么?
我估计大部分人能想到的就是那张绿色的一元人民币现金了。即使我们现在很少使用现金交易了,但自小的认识根深蒂固,所以当我们看到银行卡余额的时候,也是联想到对应的现金实物的样子。而实际上,你的银行卡余额只是一串存储在计算机上的数字,并不一定在银行存放有对应等额的现金实物。当然,你可以随时从银行把它们兑换成现金。所以我们可以认为,我们的法定货币人民币实际上有两种存在形式,一种是现金实物,就是我们熟知的由人民银行印制的纸钞或硬币;而另一种是数字形式,就是我们的账户余额,由银行等金融机构记录。
比特币这样的虚拟货币是完全没有实物形式的,只有数字形式。而且它的数字形式也不是以账户余额的方式来存在的,而是零散地存在于一笔一笔的交易中。在比特币中也没有账户的概念,而是只有一条条的交易信息,记录了谁转给了谁多少比特币。所以我们可以把比特币理解为计算机上的数字就行了。
2.比特币存在于交易中
如果一个人对你说他/她有10个比特币,那么你可不要以为是他/她的账户上有10个比特币。因为从比特币的技术实现原理上来说,实际情况是这样的:在比特币的所有有效的交易记录中存在着若干笔交易,这些交易的收款方是这个人,而这些交易一共转给了这个人10个比特币。
所以在比特币的实现中没有帐户的概念,更没有账户余额的概念,只有交易记录(主要是交易双方的地址信息和交易额)。不过,为了用户更方便直观地使用比特币等虚拟货币,很多加密货币交易所、加密货币钱包都提供了以账户、账户余额的方式来显示用户拥有的加密货币的功能。
至于比特币的交易是什么样子的,我这里先放上比特币白皮书中的一张示意图,大家可以先看看
这张图展示了两笔交易的发生过程。比特币从所有者1,转到了所有者2,然后又转到所有者3。这里边涉及到了计算机科学中的哈希函数,密码学领域的非对称加密技术(私钥与公钥)以及由此衍生出来的数字签名技术。后边我会详细讲这些知识,今天我们先只关注交易过程本身。
现在我们可以把图中的交易过程理解为以下几步:
所有者1写了一张转账凭据,上边写了自己要把多少枚比特币(假设5枚)转给所有者2,并签上了自己的名字(数字签名技术)。我们将这张转账凭据称为转账凭据A。转账凭据就像我们生活中常见的借条一样,写了谁转给谁多少钱。不过,这里需要注意的是,交易双方用的不是自己的姓名,而是双方的地址,即公钥,是一串字母、数字加字符的组合,你可以暂时将公钥理解为类似于身份证号一样的东西,每个人的都不会重复。
例如,所有者1的公钥是sjfdkhsfkd,所有者2的公钥是laidhckbiona,那么转账凭据A写的就是
sjfdkhsfkd 转给 laidhckbiona 5个比特币。
所有者2有了这个被所有者1签名的转账凭据A,就可以证明自己拥有其中写好的要转的5枚比特币了。
所有者2再写了一张转账凭据,我们称为转账凭据B,里边写了自己要转账5枚比特币给所有者3。并且在新的转账凭据B里附上了转账凭据A,最后再签上自己的名字。这样,所有者3也就拥有了这5枚比特币。
3.交易记录保存在区块链上
前边说过,我们的银行卡余额以及我们通过微信、支付宝等进行的交易信息都是存储在银行等金融机构的计算机中的,即各个金融机构的数据库里(数据库是一个计算机术语,你只需要知道数据库是存储大量数据的地方)。这些机构的数据库记录了我们的账户信息,余额是多少等等。这些数据保密级别非常高,不对外开放,很少有人能够看到里边的数据。这些数据库也由各个机构自己拥有和维护,其中的数据也是由这些机构拥有。从数据库技术原理上来说,传统的数据库是存在人为篡改数据的可能性的。所以各国都有各种各样的高标准监管要求,对金融数据有着严格的保密制度。举个例子来说明传统数据库的数据可篡改。传统的数据库就好比是我们的手机备忘录,你在里边写一个数字100,然后让一个人看。看完之后,你完全可以把这个100再改成50,这个人也没办法去证明说这个数字之前是100。
而比特币的交易信息则是存储在区块链上的。区块链也是一个数据库,或者说记录交易信息的账本。但它是公开的,去中心化的数据库和账本。每个人都可以通过网络下载和运行这个数据库,而每个运行这个区块链的人也就成了一个结点,共同构成了比特币这个去中心化的网络。在网络上的每个人都拥有这个数据库的访问权限,所以所有人都能看到这个数据库里存储的信息,即有史以来所有的比特币交易信息。因此区块链上的数据信息几乎是不可篡改的(工作量证明机制和最长链原则保证不可篡改性,我们后续会详细讲)。
这里我们插入一个表格来总结一下刚才提到的传统数据库和区块链的主要区别:
| 传统的数据库 | 区块链 | |
|---|---|---|
| 是否有中心管理者 | 有,管理者对整个数据库及其中数据有完全的控制权 | 没有,运行在去中心化网络上,没有管理者 |
| 数据是否公开 | 否,只有管理者以及经过管理者授权的人才可以查看数据 | 是,网络上的所有人都可以查看数据 |
| 是否可篡改 | 是,管理者可以修改 | 否(除非有人拥有整个网络51%以上的算力,这个后续会讲) |
我们先列出这么多,随着后续内容的慢慢展开,大家会更明白区块链的特性。
今天的文章先让大家对比特币及其交易过程有个 大概的认识,下一篇文章我会讲讲比特币交易记录中涉及到的哈希函数,这是比特币、区块链中非常关键的一门技术。我们下一篇文章见。
