SPV

SPV - 简化付款验证

人们要么完全没有理解 SPV,要么在涉及其使用时误导其他人,试图推动虚假议程。重要的是,如果用户正在存储密钥,则他们可以存储输入交易。

客户钱包即发送交易的人甚至可以离线。他们不需要检查是否向他们发送了更改,他们指示要发送更改的位置,以及如果商家没有将交易发送到网络,则用户不会被收费。

SPV 比人们理解的要简单得多。私人证明或人们正在寻求的任何其他浪费时间和金钱的项目都没有必要。所有需要发生的事情是钱包不仅要存储密钥,还要存储最后一笔交易的交易细节。因此,如果 Alice 向比特币发送比特币,并且她有两个输入交易(Tx1 和 Tx2),那么她需要存储的是区块头,她想要花费的交易的 Merkle 路径以及交易本身。Bob 可以简单地检查信息并计算 Merkle 路径和区块头,以验证 Alice 根据输入发送给他的交易。此时,Alice 只需要保留区块头,正如我在白皮书第 8 节中所解释的那样。

请注意离线客户 SPV 钱包的以下功能:

  1. UTXO 集。预加载的完整,未使用的交易输出(UTXO)可以存储为预付的 “钱”,可用作包含 Alice 的未使用的未使用交易输出的数据。Merkle 路径旁边的完整交易数据构成了 Alice 正在花费的交易有效的 Merkle 证据。散列完整交易将给出作为新交易花费的输入数据的一部分所需的 TXID。
  2. 私钥/公钥。钱包必须能够访问一组私钥以签署 UTX 输出,并且公钥可以在进行交易时指定更改地址。
  3. Merkle 路径。商家的销售点钱包将使用包含 UTXO 的每个交易的 Merkle 路径来验证 UTXO 是否有效。请注意,此类钱包提供的 Merkle 证明不会阻止双重花费,但可以作为防止垃圾邮件攻击的快速机制。
  4. 最小处理能力。SPV 钱包需要签署未花费的交易输出(UTXO)以便花费它们。它要求离线钱包能够实现 ECDSA,这意味着需要足够的处理能力来执行椭圆曲线点乘法和计算散列函数。
  5. 区块头(可选)。客户钱包可能希望包括区块头以验证已经处理了对销售点 SPV 钱包的付款。它还需要在与销售点钱包交互之后存储 TXID 和 Merkle 路径。

对于 Alice,即使区块头也是可选的。Bob 当然需要他们。

只要我们不更改协议规则,就无法攻击系统。事实上,即使一群拥有超过 50%网络的矿工选择改变协议,他们也会突然发现没有人在他们的网络上花费任何比特币。这就是分裂的本质。矿工们对协议变更进行投票并没有改变规则本身,正如白皮书最后一句所说的那样。

只有矿工才是节点。这是比特币的一个重要方面。决定规则和矿工可以做的不是你的软件,事实上,共识纯粹是通过采矿来实施的。该协议是整个系统。

这就是为什么 SPV 可以工作以及为什么它不能用于像 BTC 这样的系统。在协议可以改变的地方,SPV 不复存在。比特币允许链接到主链的本地验证。事实上,这个过程非常简单。所有需要进行的是收件人存储交易。如果我们假设 Alice 和 Bob 寻求交换交易,而 Bob 正在销售 Alice 希望购买比特币的商品,那么 SPV 可以非常简单。

如果 Alice 保留了她与 Merkle 树一起支付的交易副本,她可以将交易的这两个部分和相应的块交给 Bob,Bob 现在可以非常简单地验证和验证整个交易链。

任何所需的规则和激励措施都可以通过这种共识机制来实施。

比特币白皮书的最后一行非常重要。如果您需要所有 SPV 钱包和运行比特币或创建交易的整个组织进行升级,那么您可以更改协议而不是规则。这是一个重要的区别。

正如白皮书中的最后一行所解释的那样,在比特币协议范围内采取行动的规则和激励措施总是可以通过接受工作链证明并对接受有效块进行投票的矿工的简单决策来更新。系统在不进一步改变网络的情况下起作用。请注意,结论非常具体地说节点和节点只需要投票。白皮书的第 5 节中明确指出节点实际上是一个矿工并创建了新的区块。网络上的所有其他人都是网络的钱包和用户。两者在安全模型中都很重要,因为除非大多数用户被改变协议所愚弄,否则系统的安全性不会被劫持。

它实际上可以比作需要更改以便被破坏的软件。这是一种社会工程攻击。

证明非常简单。

我们有一个合乎逻辑的声明,声明矿工对规则的简单投票可以在协议中设定任何规则。从逻辑上讲,我们可以推断,除了通过拒绝交易和区块进行投票的能力之外的任何规则也在协议之外。从逻辑上讲,没有其他方法可以阅读该声明。任何节点(注意,白皮书里所说的节点指是挖矿的矿工)都可以通过单独投票来设置规则,或者它在协议之外。

我们现在将看到在协议之外建立规则的不同之处,从而创建一个不是比特币的系统。

https://medium.com/@craig_10243/forks-as-a-demerger-or-a-split-as-a-copy-c38bf6d8abed


results matching ""

    No results matching ""