区块链中的完整支付验证与简单支付验证
本文重点讨论支付验证的各种方式。让我们首先介绍本文将使用的基本术语。
1. 鉴权:鉴权是指对用户访问比特币等数字货币底层技术的资源进行鉴权的系统。
2. 授权:在将交易添加到链中的区块之前,必须首先由用户授权或授权。
3. 工作量证明:(PoW):在区块链网络中,(PoW)是第一个共识算法。它确认交易并将新区块添加到交易链中。工作量证明可以是一种低概率的随机操作。在创建适当的工作证明之前,此过程需要进行大量试验和错误。工作量证明的基本操作前提是一个可以快速证明某物存在的数学问题。
工作证明是安全、防止欺诈和建立信任所必需的。由于其安全性,独立的数据处理器(矿工)不能误导交易。工作量证明是一种保护比特币交易历史的技术,同时也使数据随着时间的推移变得更加困难。
4. 权益证明(PoS):根据权益证明原则,一个人挖掘或验证大宗交易的能力与其拥有的硬币数量成正比。这意味着矿工拥有的硬币越多,他们拥有的挖矿能力就越大。要完成验证步骤,节点或矿工必须解决称为工作证明问题的计算机挑战。第一个解决每个区块交易问题的矿工将获得一枚硬币。当一个交易块被验证时,它被添加到区块链中,这是一个公开的、透明的数据库。
简单的付款验证
简单支付验证 (SPV) 是一种允许轻量级客户端检查交易是否在比特币区块链上的方法,而无需下载整个区块链。比完整块小得多的块头是 SPV 客户端需要下载的全部内容。 SPV 客户端请求 Merkle 分支作为包含的证据,以验证交易是否包含在块中。与网络钱包相比,SPV 客户端提供更好的安全性。
主要特点:
- 在不成为矿工的情况下知道最长的链是简单可行的。
- 用户只需要保留最长的工作量证明链的块头的副本,并检索将交易连接到其时间戳所在的块的 Merkle 分支。
- 用户不能自己检查交易,但他可以通过将其绑定到链中的某个点来看到它已被网络节点批准,并且他可以停止它。
- 因此,只要网络由诚实节点控制,验证就是可靠的,但如果攻击者控制了网络,验证就会变得容易受到攻击。
- 虽然网络节点可以独立验证交易,但只要攻击者能够保持网络主导地位,这种简化的方法就可以被攻击者制造的交易所欺骗。
- 当网络节点识别出不正确的块时,接受来自网络节点的警告,强制用户程序下载整个块并通知交易以验证差异,这是一种防御方法。
全额付款验证
完整的支付验证钱包需要区块链的完整副本,通常称为厚钱包或重量级钱包。他们可以通过向后扫描区块链,逐笔交易,直到找到它们的来源,来验证交易中使用的比特币是否来自开采的区块。
主要特点:
- 这些钱包应用程序经常是比特币网络中的活跃参与者,因为它们不仅管理用户的交易,还验证和中继其他个人的交易。 (在这些情况下,执行此类应用程序的计算机称为完整节点。)
- 全节点都是比特币矿工(即,他们需要区块链的完整副本来开采)。
- 在其第五年,区块链的大小已增长到超过 15GB,包括 3500 万笔交易(到其 10 岁生日时,它可能会大 100 倍)。
- 已安装新的完整支付验证系统。通过比特币钱包应用程序下载完整的区块链可能需要几天时间(取决于带宽)。
- 需要连接到其他完整节点并确定哪个区块链具有最高的工作量证明才能获得区块链(根据定义,这被假定为共识区块链)。
完整与简单的付款验证
Full Payment Verification | Simplified Payment Verification |
---|---|
Thick or heavyweight wallets, also known as full payment verification wallets, require a complete copy of the blockchain. | Simple Payment Verification is a method that allows a lightweight client to check if a transaction is on the Bitcoin blockchain without having to download the entire blockchain. |
Wallets run on high-end systems. | Wallets run on low-end systems. |
They can verify that bitcoins used in a transaction originated from a mined block by scanning backward, transaction by transaction, in the blockchain until their origin is found. | An SPV client requests a Merkle branch as evidence of inclusion to ensure that a transaction is included in a block. |
Running a complete payment verification wallet on laptops and other household devices may be inconvenient. | For laptops and other home devices, running a simplified payment verification wallet is convenient. |