酸饼博客
关注区块链技术应用与数字货币

区块链入门100问(11):如何理解比特币的账户模型?

我们的银行账户,有一个唯一的编码作为银行账户。账户有余额,直接记录了你的账户还有多少资金。

跟我们所熟知的银行账户模型不同的是,比特币系统并没有“账户”,也没有余额。

我们去银行开户,银行会给我们开一个账户。比特币是一个去中心化系统,没有中心化机构来“开户”,而是生成公钥、私钥对。比特币的“收款”地址,是通过公钥按特定的算法推算出来的。

比特币的地址类似于银行的“账号”,私钥类似于密码。跟银行不同的是,比特币系统用一种称为“Unspent Transaction Output”的数据结构来记录某个地址收到的转账记录。Unspent Transaction Output简称为“UTXO”。

老实说,UTXO模型理解起来是有点费劲;更费劲的是,如何能够把他解释得清楚。我看到一些对于UTXO的解释,感觉不是很容易理解。我尝试着解释一下,但是否解释得正确,并没有完全的把握,更不敢保证解释得通俗易懂。

我们说过,比特币是一个账本。这个账本了记录比特币系统的每一笔交易。
比特币的“交易”,包括输入和输出(区块里记录的第一个交易称为“CoinBase”交易,是用来发放挖矿奖励给矿工,只有输出,没有输入)。对于一个地址来说,他收到“转账”就是输入,转账出去就是“输出”。交易输出和交易输入之差,也即是“未消费的交易输出”。这个“未消费的交易输出”,也就是我们所说的该地址的“余额”。

比特币钱包实际上是创建来一系列的公钥、私钥对。用其中的一个或者多个公钥生成地址。这些地址的UTXO汇总起来,即是这个钱包的“余额”。

未经允许不得转载:酸饼 » 区块链入门100问(11):如何理解比特币的账户模型?
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

留言联系关于酸饼