CSW |简单支付验证

的原始标题“简化付款验证”于2019年10月9日在craigwright.net

上首次发布。在比特币白皮书中,我详细解释了如何在不运行完整网络节点的情况下验证支付。规范和定义非常重要:白皮书的第5节定义了比特币中的节点;更重要的是,作为一个节点,您需要挖掘事务SPV或简单的支付验证是比特币扩张的一个关键方面。当我发布白皮书时,我认为它非常清楚和明确,但人们似乎忽视或误解了所有方面。事实是,没有人意识到SPV有多简单。但这非常重要,因为没有SPV,区块链就不可能扩张。更重要的是,SPV与比特币的点对点相关。目前,BTC等脱离比特币的衍生系统并不是对等的

根据定义,“点对点”是指个人或其他主体之间的直接交流因此,消费者爱丽丝希望从商人鲍勃那里购买商品,并且她将直接向鲍勃发送交易鲍勃核实后,将其发送到区块链进行清算和结算。这个过程是点对点的网络中的挖掘者或节点充当分布式中介没有必要直接信任任何中间人,这与当前的任何系统都非常不同。温斯顿·丘吉尔支持重新引入金本位制。尽管价格水平有点低,但它可以防止流氓议员出于政治目的改变他们的价值观。一个分布式系统可以获得一种方法来防止这些流氓寻求改变货币供应,而不把他们变成可信的第三方。

系统中的用户只需要维护一个块头的副本,以便与事务进行比较。目前,块头的大小低于50MB许多图像文件超过了这个级别。从现在起的十年内,增长将只是线性的。所以,我们有一个根据摩尔定律指数增长的系统,资源在数量上是线性的。现在有一些系统不能在内存中保存块头。

网络节点或挖掘器为用户提供了最长的工作负载证明链用户可以实现贝叶斯系统,以确保他们拥有最长的链不检查挖掘器,而是查询多个随机节点通过这样做,可以确保它非常简单,不需要太多的带宽,并且具有最长的路径。

只要诚实的节点控制网络,系统中的验证就是可靠的。必须指出的是,在线矿工是在法律范围内运营的。网络节点涉及投资如今,即使是小矿商也在他们的系统上投资了数亿美元。更重要的是,矿工有一个地理位置,不容易移动,这使他们受到法律的约束,不诚实的矿工将承担损失。比特币从未被设计成一个在现实世界之外运行的系统。事实上,白皮书中提到诚实这个词15次的原因是它与法律直接相关,比如英国2006年的反欺诈法。

的结果是,一旦比特币达到任何规模水平,它都将受到法律监管。根据博弈论,矿工的游戏包括攻击者将由于他们面临的损失而被最小化。我在白皮书初稿中写道,交易只有在回滚时才会变得脆弱。原因是比特币不是一个不受法律控制的系统。这是一个支持诚实交易的系统,允许捕获和扣押可能与犯罪活动有关的交易。

获得网络优势的攻击者只有在继续获得网络优势的情况下才能在网络节点下工作。这一点很快就会被注意到。现有矿商可以在几秒钟内确定“双倍成本”。在最坏的情况下,一个已经建立了六个区块的深度链的攻击者矿工将在大约一个小时内被识别,到那时他的全部将被完全拒绝。那些试图创建一个犯罪系统的人把比特币神化为在法律之外运作,这是一个容易被发现的虚假和恶意的谎言。随着政府、监管机构和执法部门开始觉醒,看到比特币的真正设计,他们将开始理解该系统在法律上是友好的。它有助于跟踪交易,同时为小额现金转移提供高度隐私,它还可以记录洗钱和犯罪行为而不被篡改。

一个客户SPV钱包

SPV用户应该维护他们收到的交易副本交易规模非常小,不会占用太多空间。当用户收到付款时,他们应该保存一份发送给他们的交易副本,以便他们可以根据特定区块的Merkle树进行验证,并只需支付到下一个点。

如果我们假设爱丽丝已经通过下图中与Tx3相关联的足够深度的块中的输入交易获得了支付,那么她现在可以将该信息保存在块路径中,以简化消费时的验证。

扩展了场景,我们可以看到爱丽丝可以保存每一笔输入交易,这变成了她希望花在电脑上的钱。它们都被视为数字硬币。爱丽丝现在可以通过签署或满足输出脚本的其他条件,将硬币转移到新的输出以支付给鲍勃。

爱丽丝向鲍勃发送包括Tx1和Tx2的副本,而输入Tx3作为费用在下面的交易中支付给鲍勃由于Merkle路径也被发送,Bob可以非常快速地验证每个事务的散列,并确保它遵循块头和验证。如果输入交易存在于区块链,鲍勃可以信任它们当然,他可以选择再次验证输入的交易他刚刚从爱丽丝那里收到一份包括Tx1和Tx2的复印件。

为了验证事务并确保它存在于Merkle路径中,并且已经被块头验证,Bob只需要获得每个事务的散列,这是由Alice提供给他的支付事务的输入为此,Bob计算了这两个事务的哈希值:

哈希值;和

哈希

使用这两个值和爱丽丝刚才提供的Merkle路径。Bob可以简单快速地计算完整的块标题值,并确保块标题中的路径是正确的。如果散列与他保存的块头的Merkle树匹配,那么Bob必须知道Alice已经给了他一个有效的事务。他知道比特币矿商已经核实了区块链交易的存在,现在有了工作量的证据来确认区块链交易的存在。

spv公司是什么意思

SPV系统如下图所示:

spv公司是什么意思

客户SPV钱包

请注意,爱丽丝不仅在系统中维护她的私钥她还必须保存Merkle路径和她试图花费的输入事务。爱丽丝不需要为了花她的钱而去区块链因为爱丽丝知道她是唯一一个可以花钱的人,她甚至可以采取行动使交易有效,而不用以任何方式连接到区块链。爱丽丝不需要担心任何变更事务或输出的有效性,因为鲍勃不能改变它们。如果Bob试图更改事务,并且更改没有合并,则整个事务将无效。因此,鲍勃要么将他从爱丽丝那里收到的付款提交给区块链进行结算,并支付给爱丽丝找钱,要么他不能收到付款,在这种情况下,爱丽丝根本不需要担心她的零钱。

请注意客户SPV钱包的以下特征:

1 . txs-预加载完整的交易数据,其中包括爱丽丝可用的未使用的交易输出完整的交易数据和Merkle路径一起构成Merkle证明爱丽丝的消费交易是有效的。散列一个完整的事务产生一个文本标识符,它是新事务的输入数据的一部分

如果爱丽丝没有存储这个信息,鲍勃将需要检查块链,这将延迟该过程当然,Bob可以对非SPV交易收取一定的费用,因为他必须从挖掘者那里下载完整的交易,而且挖掘者还可以对需要快速响应所选查询的业务收取一定的费用。

2。私钥/公钥-钱包必须能够访问一组私钥来签署发送输出和公钥,以便在进行交易时指定变更地址

3。Merkle路径-每个事务(包括TXs)的Merkle路径商家的销售点钱包将使用Merkle路径来验证TXs是否有效请注意,钱包提供的Merkle证书并不能防止“双重费用”,而是作为一种快速失效机制来对抗垃圾邮件攻击。

4。最低处理-SPV钱包需要签署未付款交易才能消费为此,离线钱包需要能够实现ECDSA签名,或者换句话说,需要具有足够的处理能力来执行椭圆曲线点乘法和计算散列函数。

5。区块标题-客户钱包可能希望包含区块标题,以验证销售点的SPV钱包的收据和付款已被处理。这也需要在与销售点钱包交互后存储txid和Merkle路径

保护隐私并确保容量扩展。作为一名商人,鲍勃把这笔交易交给了区块链,而不是爱丽丝。她比她自己更有隐私。鲍勃和爱丽丝已经在交流了,所以鲍勃知道一些关于爱丽丝的信息。鲍勃发送交易时,因为他可能是一个有许多交易的商人,所以他的IP地址是公开的,而不是爱丽丝的爱丽丝不需要用Tor来吸引注意力;她可以交易。她知道只有鲍勃能看到她的交易。因此,爱丽丝透露的信息少得多,可以在全世界保护她的隐私。分析和记录

链上的IP地址不会暴露爱丽丝的交易鲍勃有记录,但不是公开的。

在下面的文章中,我将开始详细解释如何实现这样的解决方案,以及它如何帮助比特币扩展。事实上,没有SPV的实施,比特币不可能是点对点或大规模的。鲍勃可以迅速检查爱丽丝付给他的任何硬币的有效性。他可以检查是否有一个UTXO设置为未使用的事务,并且可以快速验证区块链中的输入位置,因为爱丽丝已经给了他一条路径。硬币越深,改变路径所需的工作量就越大,鲍勃接受它就越安全。如果爱丽丝收到硬币并在验证后一小时内花掉,它仍然是非常安全的。Bob不需要下载整个块链即使他运行自己的节点,他也不会得到任何东西只有矿工才能改变区块链因为鲍勃已经收到了爱丽丝的输入硬币,他可以检查它是否有效,并且她已经正确地将输出硬币形成给鲍勃,这是他自己验证支付所需的全部。接下来,如果爱丽丝给了鲍勃与硬币相关的墨克尔路径,她现在可以确定鲍勃可以通过输入事务的散列来快速验证它,并通过验证她给的墨克尔路径来检查它在散列头中的位置。

这一直是我对比特币交易方法的想法,允许在没有第三方的情况下进行点对点交易。没有它,所有系统作为一个完整的网络节点运行的要求和系统的简单性将会丢失,并且系统不能再扩展。通过运行SPV,用户可以快速简单地验证他们自己的事务,并且他们可以通过存储最少量的信息来做到这一点。

在接下来的文章中,我将继续阐述SPV涉及的过程,并解释如何将比特币扩展到每秒数百万笔交易,而不是几笔交易。

大家都在看

相关专题