比特币白皮书-简化的支付确认
Posted 哈希实验室
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了比特币白皮书-简化的支付确认相关的知识,希望对你有一定的参考价值。
6 次确认过了如果验证的这笔交易已经被6 次确认过了,代表这笔交易已经被最长链承认了,则这笔交易是真实存在的。
03 SPV节点是一把双刃剑
SPV节点在数据存储上虽然带来了便利,但同时也带来了安全问题。
由于只是简单地通过区块头来验证一下是否存在交易,相当于大厦保安检查健康码,只是看了一下进入大厦的人员是否有健康码,而不是检查健康码上的照片是不是本人,这其实有很大的安全隐患。
SPV节点只是保留了区块链的区块头部分,而不像全节点那样(保留区块头+区块交易列表),因此,SPV节点是无法验证某笔交易的。如果想检查某笔交易,只能依赖全节点,但同时又无法保证全节点是安全的。因此,SPV 节点需要随机链接多个节点,增加与至少一个可靠节点相连接的概率,但是这种随机链接的需求 也会容易受到网络分区和sybil攻击。
04 最后
不同的节点类型满足了不同的场景需求,这也说明节点的终端越来越多样化,但便利与安全,却总有一方要让步,就像李彦宏说过:“中国人对隐私问题的态度更开放,也相对来说没那么敏感。如果他们可以用隐私换取便利、安全或者效率。在很多情况下,他们就愿意这么做”。
虽然无耻,但是在理。
这一章,我们讲解了比特币白皮书中的简化的支付确认。
下一章,我们将讨论中本聪的比特币白皮书——价值的组合与分割(Combining and Splitting Value)。
期待您的点评、分享、关注、在看,您的鼓励是我写作的最大动力!
参考文献:
《Bitcoin: A Peer-to-Peer Electronic Cash System》
https://bitcoin.org/bitcoin.pdf
《比特币白皮书:一种点对点的电子现金系统》
https://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system
比特币白皮书-价值的组合与分割
上一章,我们讨论了白皮书中的简化的支付确认(Simplified Payment Verification),这一章,我们来介绍比特币白皮书中的价值的组合与分割(Combining and Splitting Value)。
原文:
Although it would be possible to handle coins individually, it would be unwieldy to make a separate transaction for every cent in a transfer. To allow value to be split and combined, transactions contain multiple inputs and outputs. Normally there will be either a single input from a larger previous transaction or multiple inputs combining smaller amounts, and at most two outputs: one for the payment, and one returning the change, if any, back to the sender.
It should be noted that fan-out, where a transaction depends on several transactions, and those
transactions depend on many more, is not a problem here. There is never the need to extract a
complete standalone copy of a transaction\'s history.
翻译:
虽然可以单个单个地对电子货币进行处理,但是对于每一枚电子货币单独发起一次交易将是一种笨拙的办法。为了使得价值易于组合与分割,交易被设计为可以纳入多个输入和输出。一般而言是某次价值较大的前次交易构成的单一输入,或者由某几个价值较小的前次交易共同构成的并行输入,但是输出最多只有两个:一个用于支付,另一个用于找零(如有)。
需要指出的是,当一笔交易依赖于之前的多笔交易时,这些交易又各自依赖于多笔交易,但这并不存在任何问题。因为这个工作机制并不需要展开检验之前发生的所有交易历史。
在这一部分中描述文字不多,也比较好理解,它其实是讲述了比特币网络中UTXO模型。
01 绕不开的UTXO
UTXO(UnspentTransactionOutput),指的是未花费的交易输出,我们可以理解成未被花费的状态。
在传统的交易中,账户余额是由中心化机构记录在数据库中,数据库中记录着不同的账户的余额,而在UTXO模型中记录的则是交易的过程。
比如在银行,A账户有10元,B账户有20元,A转给B 3元,A还剩下7元,B还剩下23元,这里显示的是结果。
而在UTXO模型中是怎样体现交易过程的呢?
比如A有10个BTC,B有20个BTC,A要转给B 3个BTC,过程是这样的:
1)A会转3个BTC给B
2)A会转7个BTC给A
是的,我没有写错,A不但给B转了,A也给自己转了一次。其中,A最开始的10个BTC,就是未花费的交易输出(因为他未花费,所以才能向B转账)。
因为UTXO是比特币交易里不可拆分的基本单元结构(转账时必须全部花费,多余的转给自己),一个交易中可以有多个输入,代表比特币来源,是前序交易的输出UTXO;可以有多个输出,代表比特币去向,是后序交易的输入UTXO。
我们在《比特币白皮书-激励》一章中得知,比特币来源于币基交易,币基交易就像铸币厂一样生产着比特币,并将比特币流入市场。可以说币基交易是所有比特币最初的“未花费输出”UTXO,每笔交易的输入都是来自于上笔关联交易中所得到的“未花费输出”UTXO,而交易输出则意味着比特币的新的所有者拥有了这笔比特币,并且没有花费。
相关的交易形成了一个链条,链头是币基交易,所有的比特币都来源于前N笔交易的UTXO,它们就像接龙一样,一个接着一个,完成了比特币的流转,而链尾一定是当前未花费的交易输出UTXO。
02 继续挖坑
我相信,一定有人和我有着同样的疑问:UTXO模型设计的如此反人类,中本聪为什么要把简单的账户体系设计的这么复杂?
我曾在某论坛上看到,有人怀疑中本聪不是地球人,因为他的很多设计不符合人类的可读性,可能在他自己的星球这样做是合情合理的。不过,比特币网络从运行之初到现在,没有出现任何问题,说明,UTXO模型在比特币网络上是成功的。
由于这一部分在白皮书中没有过多的描述UTXO,因此我会在后面的章节详细的讲解UTXO,敬请期待。
期待您的点评、分享、关注、在看,您的鼓励是我写作的最大动力!
这一章,我们讨论了白皮书中的价值的组合与分割(Combining and Splitting Value),下一章,我们来介绍比特币白皮书中的隐私(Privacy)。
参考文献:
《Bitcoin: A Peer-to-Peer Electronic Cash System》
https://bitcoin.org/bitcoin.pdf
《比特币白皮书:一种点对点的电子现金系统》
https://www.8btc.com/wiki/bitcoin-a-peer-to-peer-electronic-cash-system
以上是关于比特币白皮书-简化的支付确认的主要内容,如果未能解决你的问题,请参考以下文章