首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >区块链中的事务验证

区块链中的事务验证
EN

Stack Overflow用户
提问于 2018-08-30 13:14:39
回答 1查看 239关注 0票数 1

假设我们有一个名为ABCCoin,ABC的AltCoin。我将被称为X,开采了一个区块,并获得了新铸造的25个ABC作为开采奖励。现在,我想送这枚硬币一个朋友Y。

Tx: X -> Y : 25ABC

让我们假设这是存储在块B100中。现在,几个月后,Y女士想要把它转移到Z,因为任何原因。所以,

Tx: Y -> Z : 25ABC

现在,几个月后。Z先生想在和女友约会时在星巴克买咖啡。

现在,交易链如下:

代码语言:javascript
复制
|Tx|Minted -> X |
   --> "Tx: X -> Y : 25ABC" 
   --> "Tx: Y -> Z : 25ABC"
   --> "Tx: Z -> Starbucks : 25ABC"

所以,在这种情况下。当我们需要验证"Tx: Z -> Starbucks : 25ABC“时,我们是否必须追溯它的来源,即这枚硬币是铸造出来的,还是仅仅通过检查它的直接来源就可以验证它。即"Tx: x -> Y: 25ABC“,不关心其他以前的版本。

EN

回答 1

Stack Overflow用户

发布于 2018-08-30 17:22:38

假设您正在询问基于UTXO交易的区块链,如比特币。

有两种类型的验证

  1. FullNode验证

  1. 服务器验证

已满节点

Full node是一个完全验证事务和块的程序,如bitcoindlitecoindgeth。因此,每次完整节点从其他对等节点接收到新数据块时,它都会验证该数据块中的所有事务,并将其添加到其区块链中,并且仅当该数据块完全有效时才更新UTXO列表。

要验证事务,完整节点会检查如下内容

  • Transaction format
  • Transaction signature(s)
  • find Previous transactions from blockchain
  • double spending existence

中的先前事务处理

因为完整节点具有它认为正确的UTXO列表,所以检查事务格式/签名和UTXO列表就足以验证新事务。

SPV

SPV客户端没有完整的区块链数据,也没有UTXO列表,SPV仅检查事务是否在使用MarkleTree的块中,并且包含该事务的块是否满足块难度。这是SPV可以检查的所有内容,因为它必须逐个检查所有的块头和块体,以创建UTXO列表。所以SPV不能检查它是否是重复支出交易。但是,由于只要区块链有足够的难度,创建假区块的成本就会很高,因此它是可用的验证。就像评论中提到的@Haardik一样,在不使用markle tree下载所有区块链数据的情况下获得可信的UTXO列表可能会在未来的更新中出现

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52089638

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档