您当前的位置:中国饮食健康网健康资讯正文

CSW简单支付验证(SPV)

放大字体  缩小字体 2019-10-10 19:20:30  阅读:2299+ 作者:刘晔医法研究

原标题:CSW | 简略付出验证(SPV)

作者:CraigWright

原文标题《SimplifiedPayment Verification》,2019年10月9日首发于craigwright.net

在比特币白皮书中,我具体阐明了如安在不运转完好网络节点的情况下验证付出。确认的标准和界说很重要: 白皮书第5节界说了比特币中的节点;更重要的是,作为一个节点,你需求发掘买卖。SPV 或简略付出验证是比特币扩容的一个要害方面。在我发布白皮书时,我以为这是适当清楚和清晰的,但人们好像忽视或误解了一切方面。作业的本相是,没有人意识到 SPV有多么简略。可是它至关重要,因为没有SPV,区块链就不或许扩容,更重要的是,SPV联系比特币的点对点。现在,脱离比特币的衍生体系,比方 BTC,底子不是点对点的。

依据界说,“点对点”是指个人之间或其他主体之间的直接交流。因而,顾客爱丽丝,期望从商人鲍勃那里购买产品,她会直接向鲍勃发送一笔买卖。鲍勃验证它,并把它发送到区块链以作清算和结算。这个进程是点对点的。网络中的矿工或节点充任分布式的中介。不需求直接信赖任何一个中间人,这与当时的任何体系都有很大的不同。温斯顿·丘吉尔支撑从头引进金本位制,虽然价格水平有些低,但它能够阻挠议会中的无赖为了政治意图而改动价值百科。一个分布式体系能够获得一种办法阻挠这些无赖寻求改动钱银供应量,一同又不会把它们变成可信赖的第三方。

体系中的用户只需求维护一个区块头的副本,以便与买卖进行比照。现在,区块头的巨细在50MB以下。许多图像文件都超越这样的水平。从现在起的十年内,增加只会是线性的。所以,咱们有一个按摩尔定律指数增加的体系,而资源是线性数量的。现在有少量体系不能在内存中保存区块头。

网络节点或矿工为用户供给最长的作业量证明链。用户能够完成一个贝叶斯体系,以保证他们有最长链。不是查看一个矿工,而是查询多个随机节点。经过这样做,就有或许保证十分简略,无需太多带宽,一同有最长途径。

只需诚笃节点操控网络,体系中的验证便是牢靠的。需求要点指出的是,网络矿工是在法令范围内举动的。网络节点触及出资。今日,即便是小型矿工也在他们的体系上出资了数亿美元。更重要的是,矿工有地理方位,不易移动,这使他们遭到法令的束缚,不诚笃的矿工将承当丢失。比特币从来没有被规划成一个在实际国际之外举动的体系。事实上,诚笃这个词在白皮书中被提及15次的原因是,它直接与法令有关,比方英国2006年反诈骗法

其结果是,一旦比特币到达任何规划化水平,它就处于法令的监管之下。从博弈论讲,矿工的博弈包含因为面对丢失,进犯者将最小化。我在白皮书的前期草稿中写道,买卖只要在被回滚时才变得软弱。之所以如此,是因为比特币并非被规划成一个脱离法令操控的体系。这是一个支撑诚笃买卖的体系,答应捕获和扣押或许与违法活动有关的买卖。

一个获得网络优势的进犯者只要在能够持续获得网络优势的情况下才干在网络节点下作业。这一点很快就会被留意到。现有的矿工能够在几秒钟内确认“两层花费”。在最坏的情况下,一个建立了六个区块深度链的进犯者矿工将在一个小时左右被确认,此刻他一切的将被彻底回绝。那些企图创立违法体系的人神化比特币能够在法令之外运作,这是一个虚伪的、歹意的谎话,很简略被识破。跟着政府、监管组织和法令部分开端觉悟,并看到比特币的真实规划,他们将开端了解这个体系是法令友爱的。它有助于追寻买卖,在为小额现金转账供给高度隐私的一同,又能不行篡改地记载洗钱和违法行为。

一个客户SPV钱包

SPV用户应该维护他们收到的买卖副本。买卖的规划很小,不会占用太多空间。当用户收到付款时,他们应该维护发送给他们的买卖副本,这样就能够依据一个特定区块的 Merkle 树进行验证,并简略地付出到下一个点。

假如咱们假定 Alice 现现已过下图中与 Tx3相关联的满意深度区块中的输入买卖获得了付出,那么她现在能够在区块途径中保存这些信息,以便在花钱时简化验证。

扩展该场景,咱们能够看到 Alice 能够保存每个输入买卖,这成为她期望能够在自己的核算机上花费的金钱。它们都被当作数字硬币处理。经过签名或满意输出脚本的其他条件,Alice 现在能够将硬币转移到新的输出以付出给 Bob。

Alice给Bob发送的副本包含Tx1和Tx2,而输入Tx3是鄙人面的买卖中作为花费付出给Bob的。鉴于也发送了 Merkle 途径,Bob 能够十分快速地验证每个买卖的哈希,并保证它跟从了区块头和验证。假如输入买卖存在于区块链中,Bob 能够信赖它们。当然,他能够自己挑选再次验证输入买卖。他刚刚从 Alice 那里收到了包含 Tx1和 Tx2的副本。

为了验证一个买卖,并保证它存在于 Merkle 途径和经过了区块头验证,Bob 只需获取每个买卖的哈希,这是 Alice 供给给他的付出买卖的输入。为此,Bob 核算了这两个买卖的哈希值:

Hash(Tx1);

Hash(Tx2)。

运用这两个值,以及 Alice 刚刚供给的 Merkle 途径,Bob能够简略快速地核算出完好的区块头值,并保证区块头中的途径是正确的。假如哈希和他保存的区块头的Merkle 树相匹配,那么 Bob 必定知道 Alice 现已给了他一个有用的买卖。他知道区块链中买卖的存在现已被比特币矿工验证,现在现已有作业量证明能够确认区块链中买卖的存在。

SPV体系如下图所示:

客户SPV钱包

请留意,Alice 不只是在体系中维护她的私钥。她还要保存 Merkle 途径和企图花费的输入买卖。Alice不需求维护对区块链的拜访以便花费她的钱。因为Alice知道她是仅有能够花掉她的钱的人,她乃至能够采纳举动,在没有以任何办法连接到区块链的时分使买卖有用。Alice不需求忧虑任何更改买卖或输出的有用性,因为 Bob不能更改它们。假如 Bob 企图更改买卖,导致更改不被兼并,那么整个买卖将无效。结果是,Bob 要么把他从 Alice 那里收到的付款提交给区块链进行结算,并将更改付出给 Alice,要么他收不到付款,在这种情况下 Alice 底子不需求忧虑她的更改。

请留意客户SPV 钱包的以下特色:

1. TXs ——预加载的完好买卖数据,其间包含 Alice 的可用未花费买卖输出(UTXOs)。完好的买卖数据和 Merkle 途径一同构成了 Merkle 证明 ,Alice 的的花费买卖是有用的。对完好买卖进行哈希将生成 TXID,它是新买卖输入数据的一部分。

留意,仅供给 TXID 是不行的,因为 Bob 有必要能够验证 TXID 确实是该买卖的哈希。只要当 Alice 向 Bob 供给完好的买卖数据时,Bob 才干验证; 因而,她有必要存储数据。

假如Alice不存储这些信息,Bob将需求查看区块链,这将推迟进程。当然,Bob 能够对非SPV买卖收取必定的费用,因为他有必要到矿工那里下载完好的买卖,而矿工也能够对选定查询需求快速回复的商家收取必定的费用。

2. 私钥/公钥——钱包有必要有权拜访一组私钥来签署 TX 输出和公钥,以便在进行买卖时指定改动地址。

3.Merkle 途径——包含 TXs 的每个买卖的 Merkle 途径。Merkle 途径将被商家的销售点钱包用于验证 TXs 是否有用。请留意,钱包供给的 Merkle 证明并不能避免“两层花费”,而是作为一种快速失利机制来对立垃圾邮件进犯。

4.最低极限的处理—— SPV 钱包需求签署未花费的买卖,以便花费它们。为了这样,需求离线钱包能够完成 ECDSA 签名,或许换句话说,具有满意的处理才能来履行椭圆曲线点乘和核算哈希函数。

5. 区块头(可选)—客户钱包或许期望包含区块头,以便验证销售点SPV钱包的收付现已处理。这样做还需求在与销售点钱包交互之后存储 txid 和 Merkle 途径。

维护隐私,保证扩容才能

作为商人,Bob把买卖发送给区块链,而不是Alice发送;比起她自己发送,她有更多的隐私。Bob和Alice现已在交流了,所以Bob知道Alice的一些信息(他或许需求给她送货)。当 Bob 发送买卖时,因为他或许是一个有许多买卖的商人,他的 IP 地址是揭露的,而不是 Alice 的。Alice 不需求运用 Tor 来招引留意力;她能够买卖,她知道只要 Bob 能够看到她的买卖(在这里,Bob和 Alice 能够运用加密通道)。因而,Alice泄漏的信息要少得多,能够大到在整个国际中维护自己的隐私。

链上剖析和记载 IP 地址将不会露出Alice的买卖。Bob保留着一项记载,但不是揭露的。

在接下来的文章中,我将开端具体介绍怎么完成这样的解决方案,以及它怎么协助比特币扩容。事实上,没有 SPV 的完成,比特币既不或许是点对点的,也不或许是有规划的。

Bob能够敏捷查看Alice付出给他的任何硬币的有用性。他能够查看作为一个未花费的买卖是否存在于 UTXO集里,并且能够快速验证在区块链中的输入方位,因为 Alice 现已给了他途径硬币的方位越深,则改动途径所需的作业量证明就越大 Bob 承受它就越安全。假如Alice收到硬币并花费它只是发生在验证后一小时之内,仍然是十分安全的。Bob不需求下载整个区块链。即便他运转自己的节点,也不会得到任何东西。只要矿工改动区块链。因为Bob现已收到了Alice的输入硬币,他能够查看它是有用的,并且能够查看她现已正确地势成了输出硬币给Bob,这便是他需求验证付款自身的悉数。接下来,假如 Alice 将硬币相关的 Merkle 途径交给了 Bob,她现在就能够坚信, Bob能够经过输入买卖的哈希来快速验证,并经过验证她给出的 Merkle 途径来查看它在哈希头的方位。

这一直是我想象的比特币的买卖办法,答应在没有第三方的情况下进行点对点买卖。假如没有它,完成一切体系作为一个完好的网络节点运转的要求,以及体系的简略性就会损失,体系也不能再扩容。经过运转 SPV,用户能够快速和简略地验证他们自己的买卖,并且他们能够经过存储最少量的信息来做到这一点。

在接下来的文章中,我将持续具体介绍SPV触及的进程,并解说怎么将比特币扩容到每秒数以百万计的买卖,而不是少量几个买卖。

责任编辑:

“如果发现本网站发布的资讯影响到您的版权,可以联系本站!同时欢迎来本站投稿!

0条 [查看全部]  相关评论