我们都知道比特币是一种点对点的交易系统,无需任何可信第三方,交易双方可直接进行支付或转账。而且身处不同国家和地处的人,比如一个人在南半球,另一个人在北半球,比特币转账可在十多分钟内完成,而如果使用传统的国际汇点的方式,则最少也要3~5个工作日。比特币是如何进行转账的呢?这个传统的银行账户有什么区别呢?为什么比特币系统内转账相比国际汇电能快那么多?今天我们一起来看比特币的转账原理~
在了解比特币转账原理之前,首先普及几个名词:比特币钱包、私钥、公钥。想要拥有比特币首先需要下载一个比特币钱包,这类似于银行账户;公钥就相当于银行账户的银行卡号;私钥就相当于取款密码。如果A向B发起转账需要经过哪些步骤呢?假如A的钱包里有10个比特币,需要向B转账8个比特币。转账时A需要先填写B的钱包地址也就是公钥,然后填写要转的比特币个数——8个。这里需要注意的是A除了要向B转8个比特币外,还需要向自己转2个比特币。这是为什么呢?
比特币价值盲& UTXO模式
这是因为比特币的区块链系统是价值盲的,和传统的银行账户不一样,比特币钱包不是基于余额的。而是基于UTXO模式,即未花费的交易输出(unspent transaction output)。这里是什么意思?就是说比特币钱包里的比特币,不能直接显示有多少钱,而是由一个一个UTXO组成的,你的余额有多少,就是把每个UTXO里的比特币都加总起来。而且每个UTXO是会被一次性消耗掉,这就是为什么上面A有10个比特币需要转给B 8个比特币,同时转给自己2个比特币了。
再举一个例子,假如甲的钱包里有3个UTXO(a,b,c),每个UTXO里的比特币分别为a(10)、b(3)、c(5)个,那么甲总共有10+3+5=18个比特币。如果甲向B转8个比特币,有几种方式呢?第一种方式和上面一样,甲用UTXO a (10)转给B 8个,同时转给自己2个。如果用UTXO b(3)和UTXO c(5),则需要转两次转一次3个,转一次5个。这种UTXO的模式的特征就是一次花费完,且比特币钱包不是以余额模式呈现而是有看有几个UTXO,这就是比特币区块链的价值盲。转账起来不是很便捷,为了改进这些缺陷这才有了以太坊,在以太坊的区块链上价值是可见的,类似于银行的余额模式,所以说以太坊系统比比特币系统要先进。
比特币转账的后台操作流程
我们都知道传统银行账户的转账,是需要中心化的机构继续记账。在中国的银行体系内,中央银行有一个大账本,中央交易结算中心对转账双方的两个账户上的余额分别记加和记减。比如A银行账户向B银行账户转了1000元,那么在在央行的大账本上对A的账户余额—1000,而B的账户余额+1000,这就是传统中心化的大账本转账后系统后台的操作。而在比特币系统中是没有类似于商业银行或中央银行这样的中心化的机构的,那么谁来对交易双方的余额进行加和减?
比特币是去中心化的点对点的电子现金交易系统,这种模式的实现是因为有全网矿工在共同维护比特币网络。矿工们为什么会忠心不二的维护比特币网络呢?这是因为比特币系统的奖励机制。比特币就像一个自成体系的经济系统,全网矿工都在争相计算比特币系统抛出的难题,谁先计算出这道难题谁就拥有新区块的记账权,同时他也会获得新区块产生的比特币奖励,这就是所谓的挖矿。获得新区块记账权的节点,会把待确认的交易信息确认后打包记入新区块。这种挖矿机制,在理论上说全网任何一个节点都有获得新区块记账的权利。这是就比特币系统的去中心化,是与传统银行账户最本质的区别。