主页 > token.im钱包下载 > 比特币钱包:UTXO 是如何放置在钱包中的?

比特币钱包:UTXO 是如何放置在钱包中的?

token.im钱包下载 2023-11-28 05:11:17

中易财经8月28日消息,在进一步讨论SPV的实现之前,有必要先说明一下比特币钱包里存储的是什么,钱包和私钥有什么关系? 既然用了“钱包”这个词,那么应该和我们日常生活中使用的钱包有一些相似之处。 为了更直观的解释,我们将其与我们日常生活中使用的钱包进行比较。 日常生活中,可能会在其中存放纸币、支票、印章等(为简化描述,我们将银行卡排除在外,银行卡的使用涉及到很多中间环节,增加了表达的复杂度)。

用钞票购物时,

1、从钱包中取出多张不同面额的纸币,计算总面额是否大于要求的金额,应退回多少零钱;

2. 将这些钞票直接交付给卖家;

3. 卖家验证这些钞票的真伪;

4、卖家计算这些钞票的面额是否大于或等于商品价格,并退回相应的找零。

比特币国际钱包网站_q币怎么转入qq钱包_比特币怎么转入钱包

5. 将收到的零钱退回钱包。

比特币钱包中存放的东西,相当于“一次性支票”,上面标有面值和相应的“印章”。 付款时,

1、用户从钱包中取出几张“一次性支票”比特币怎么转入钱包,计算总面值是否大于要求金额,应退回多少零钱。 注意扣除比特币系统收取的手续费;

2. 写支票给卖家,注明卖家地址和付款金额; 如果您需要找零,请给自己写一张找零支票(写上您自己的地址和找零的金额);

3、在从钱包中取出的每张支票上盖上相应印章,以确认支付权;

q币怎么转入qq钱包_比特币国际钱包网站_比特币怎么转入钱包

4. 将这些账单提交给比特币系统,比特币系统验证支票的真实性和付款的有效性。

5. 如果比特币系统验证通过,收款人将收到的支票放入钱包。 用户丢弃钱包中已支付的支票(这些支票已被比特币系统视为无效,不能再使用),

即使是刚接触比特币的人也能猜到“印章”指的是“私钥”。 但什么是“一次性支票”? 在比特币系统中,这种“一次性检查”的术语是UTXO,全称是Unspent Transaction Outputs(未花费的交易输出)。 区块链是一个记录所有历史交易(Transaction)的总账,每个区块(block)包含若干笔交易记录。 每笔交易记录由两部分组成:资金来源(可以有多个来源)和资金去向(可以有多个目的地),术语分别为Tx_in(交易输入)和Tx_out(交易输出)。 也就是说,每笔交易TX包含若干个Tx_in和若干个Tx_out。

除了创世块中的交易外,每笔交易都必须有资金来源。 资金来源有两种,一种是挖矿奖励(按固定算法实现的货币发行),出现在每个区块的第一笔交易中; 另一个是之前交易中没有使用过的Tx_out(交易输出)比特币怎么转入钱包,即UTXO。 付款人需要出示证据证明他拥有这个Tx_out,而比特币系统需要验证这个Tx_out是否真的没有被花费(是否是UTXO)以及付款人是否有权利花费它。

资金去向(TX_out)包括两部分,一是转出的金额,二是控制权(谁可以使用)。 提款权是通过比特币的脚本系统实现的。 如果收款人的地址是1开头的普通地址,脚本中会包含该地址对应的公钥的哈希值(hash160)。 一般需要用对应的私钥对钱进行签名; 如果收款人的地址是 3,脚本将包含特定脚本的哈希值 (hash160)。 使用货币时,一般需要根据特定的脚本用多个私钥进行签名。

比特币怎么转入钱包_比特币国际钱包网站_q币怎么转入qq钱包

用户钱包中的比特币实际上是Tx_out中记录的用户已经控制的、尚未花费的金额的总和,即用户可以控制的所有UTXO金额的总和。 一个完整的钱包应该存储若干个UTXO和每个UTXO对应的私钥。 当然,有时候从安全的角度考虑,钱包可能会分为两部分,在线钱包只有UTXO,离线钱包只存储私钥。 但是用户如何将他们所有的 UTXO 都放入钱包中呢?

用户如何包含自己的UTXO

(1) 分权方式:

执行:

1.创建本地数据库,用于存储UTXO;

比特币怎么转入钱包_比特币国际钱包网站_q币怎么转入qq钱包

2. 设置区块扫描起点(区块链上的扫描起点高度),从该点开始,依次下载该点之后所有区块的完整数据。

3. 分析每个区块的所有TX数据,依次读取每个Tx_in的prev_Tx_out([tx hash] + [tx_out serial number]),查看UTXO数据库中是否存在这个Tx_out,存在则删除UTXO 数据库(或标记为删除)。

4.依次分析每个Tx_out的脚本,如果与用户相关,则记录[tx hash]+[Tx_out序列号]和整个tx_out内容到UTXO数据库;

备注:如果钱包里只有新创建的私钥,可以从最新的区块开始扫描(因为私钥碰撞的可能性可以看作0。在你告诉别人比特币地址之前,对应的地址私钥不会有任何收益)

优点:不依赖于信任; 数据准确。

比特币国际钱包网站_比特币怎么转入钱包_q币怎么转入qq钱包

缺点:速度慢,需要从比特币网络下载大量数据,对网络造成很大压力。

(2)集中方式:

1. 一个中心化的组织(或个人)运行一个完整的比特币节点,并建立一个包含所有 UTXO 的数据库。

2. 用户使用中心化机构提供的API请求与自己相关的UTXO数据。

优点:速度快,不拖累比特币网络;

缺点:依赖信任; 数据可能不准确(中心服务器可能出现故障,或者与中心服务器的会话被劫持,数据可能被篡改)