比特币是如何转移的?原来如此! |区块链话题(3)
我们在日常生活中经常会遇到转机的情况。这时候,我们可能需要做以下事情:
第一步要知道对方的账号、开户名和开户行名;
第二步,我们会使用手机银行或到柜台填写转账表格(网上转账需要填写的信息要少得多),包括转账金额、收款账户等信息;
第三步,我们将填写好的表格提交给银行服务器(交给柜台的营业员),然后等待处理完成通知结果并打印凭证。
这样,我们就完成了整个转账流程,其核心是基于账户的设计,主要依靠关系型数据库(RDBMS)来保证数据的一致性比特币怎么转给别人,即原子性、一致性、隔离性、持久性(酸)。
比特币网络与我们的传统机制有何不同?如何处理资产多次发行的问题?
让我们用一个例子来说明它。
比特币网络原理
例如,一个名叫小吴的人在山上采矿。今天,他很幸运,发现了一块价值一万元的稀有金属。为了感谢小三和小四借钱,所以他想分别给小三和小四转100块和400块钱,表示感谢。为了感谢小三,小四告诉小舞他想借他的工具(刚借工具就得到了400块钱),为了表达对小四的感谢小三转了150表示感谢。让我们看看账户是怎么处理的,比特币是怎么处理的。
基于帐户
首先有三个帐户:
然后小舞挖了一个区块,对于价值10000的稀有金属,账户状态如下(仅说明过程,其他除外):转账100和400比特币怎么转给别人,账户状态如下:
最后第四个转150给第三个,账户状态如下:
三人最终账户状态如下:
这是我们记账币系统的核心,只对账户做加减运算,账户状态为最终状态。每次开户前,都要对账户的余额做出判断,是否具备成立条件,就像上面小四转账给小三150一样,这个时候,如果小四的账户是150 不够,传输会失败。
未使用的交易输出(UTXO)
我们用基于账户的设计解释了上面的例子,让我们看看它在比特币网络中是如何处理的。
先说明Unspent Transaction Output,中文为“未使用的交易输出”,其中Transaction缩写为TX表示交易。
UTXO交易类型分为CoinBase,一种是挖矿获得的奖励,另一种就是我们所说的普通交易。 CoinBase 类型的交易必须是区块中记录的第一笔交易。接下来我们用UTXO解释上面的例子。
第一步,小舞挖出了一块价值一万的稀有矿石。我们使用下表来描述 UTXO:
第二步,第五步,小舞分别将100和400转给小三和小四。我们使用下表来描述 UTXO:
第三步,小四给小三转150,我们用下表来描述UTXO:
通过以上三个表格,我们可以得出以下结论:
1、 比特币网络中的普通交易必须有输入,输入为上一笔交易输出中的UTXO。前面搜索的是小吴转给小司的400对应的交易地址和序列号。
2、输入输出两边一定要平衡,还是小四转小三转150。根据输入,我们知道这次交易的输入是400,有两个输出项,一个是转移到第三个是150,另一个是第四个剩下的250。
3、 比特币网络中的账户余额是所有 UTXO 的总和。比如小三应该有250,是#10001#1加到#10002#1得到的,小四也有250,是#10002#2赚到的,因为#10001#2已经用完了。
经过上面的讲解,相信大家应该对UTXO有了一些了解。比特币网络中的转账如何?有什么问题可以在评论区留言,一起讨论吧。