banner
leaf

leaf

It is better to manage the army than to manage the people. And the enemy.

比特币:一种点对点的电子现金系统

比特币:一个点对点的电子现金系统 8btc.com | 关注虚拟经济

独家赞助商:Bitcoinblogger.com 作者电子邮件:【[email protected]摘要】:本文提出了一种完全采用 P2P 技术实现的电子现金系统,它可以使在线支付由一方直接发起,并支付给另一方,而不需要任何金融机构。中本聪通过时间戳、工作量证明机制、非对称加密、UTXO 等技术的集大成,而创造了比特币区块链。

我们还学习了比特币技术上存在 3 个主要问题,分别是:

1、脚本语言太复杂,开发难度大;

2、生态系统基础差,缺乏足够的参与者;

3、脚本语言不符合「图灵完备」标准,限制了进一步用途。

最后,我们学习了新的虚拟货币的产生。因为比特币算法效率的问题,导致了莱特币区块链的诞生。另外,为了针对性地解决比特币区块链存在的扩展性不足等问题,市场又产生了太坊区块链技术。

image

尽管数字签名(数字签名)部分解决了这个问题,但如果您仍然需要第三方支持来防止重复支付(双重支出)、那么这样一个系统将失去其价值。我们(we)提出了一种解决方案,以使现金系统能够在对等环境中操作,并防止双重支付问题。(散列)为所有事务添加时间戳(时间戳)并将它们合并到扩展的基于随机散列的工作量证明中。工作量证明链用作事务记录,除非重新完成所有的工作量证明,否则不能改变最长的链,最长的链不仅用作观察到的事件序列,(序列)并被视为来自最大的 CPU 计算能力池只要大多数 CPU 计算能力不打算在对整个网络的攻击中合作,诚实的节点将产生超出攻击者的最长链。系统本身需要很少的基础设施。信息尽可能在整个网络中传播,和重新加入网络,并采用最长的工作量证明链作为在该节点离线时发生的事务的证明。

1. 几乎所有网上交易都依赖金融机构作为可信赖的第三者处理电子付款资料。虽然这些系统在大多数情况下运作良好,它们仍然固有地受制于以信贷为基础的模式(基于信任的模型)。人们不可能实现完全不可逆的交易,因为金融机构不可避免地会介入协调纠纷。金融中介的存在也会增加交易成本,限制实际最低交易规模和日常小额支付交易,而且潜在的损失是很多商品和服务无法退货,在没有不可逆支付手段的情况下,由于退款的可能性,互联网商务受到很大限制。

它需要交易双方的信任,此外,由于商家也必须谨慎对待自己的客户,会向客户索要完全不必要的个人信息,在实际商业实践中,一定比例的欺诈客户也被认为是不可避免的,相关损失作为销售费用处理,在实物现金的情况下,因为目前还没有第三方信用中介机构,因此非常需要一种基于密码而不是基于信用的电子支付系统,允许任何两方同意直接付款而无需第三方中介的参与。对于那些希望保护买方的人来说,在这种环境下建立通常的第三方担保机制是容易和愉快的。本文提出了一种对等分布式时间戳服务器,用于按时间顺序生成和记录电子交易凭证,以解决双重支付问题。只要诚实节点控制的计算能力之和,系统的安全性超过了合作攻击者的计算能力的总和。2. 交易我们将电子硬币定义为如下的数字签名串:每个所有者通过在前一笔交易和下一个所有者的公钥上签署一个随机散列数字签名,并将此签名附加到电子货币的末尾,将电子货币发送给下一个所有者。收款人可以通过验证签名来验证链的所有者。

image

该过程的问题在于,接收者将难以验证先前的所有者是否对电子货币进行了双重支付。通常的解决方案是引入可信的第三方机构或类似造币厂的机构来验证每笔交易,以防止双重支付。在每笔交易结束时,电子货币由造币厂回收,该公司发行了一种新的电子货币。然而,这种解决方案的问题是,整个货币系统的命运完全取决于经营造币厂的公司,因为每笔交易都要由造币厂确认,我们需要某种方法让收款人确保以前的所有者没有签署以前的交易。为了做到这一点,我们真正需要关注的是在这个交易之前发生的交易,而不是在这个交易之后是否会有双重支付企图。要确保一个交易不存在,唯一的方法是知道所有以前的交易。在 Mint 模型中,铸币局知道所有的交易,它决定交易完成的顺序。如果你想把第三方中介排除在电子系统之外,那么交易信息应该公开宣布 1。我们需要整个系统中的所有参与者。存在唯一识别的历史交易序列。收款人需要确保在交易期间绝大多数节点同意交易是第一次发生。3. 时间戳服务器解决方案从 “时间戳服务器” 开始。时间戳服务器通过执行随机散列来对块形式的一组数据加时间戳,并广播该随机散列,就像在新闻或 Usenet2345 上张贴一样。显然,时间戳可以证明特定数据必须在特定时间出现,因为相应的随机散列值只有在它在那个时间存在的情况下才能被获得。每个时间戳应当在它的随机散列值中包括先前的时间戳,每个后续时间戳都会加强前一个时间戳,这就形成了一个链。

1 W Dai,一组不可追踪的数字假名用金钱彼此支付并在它们之间执行合同而无需外部帮助(外部辅助的电子现金机制)的方案,“B 货币,”http://www.weidai.com/bmoney.txt2 H. Massias,X. S. 阿维拉,和 J.-J. Quisquater,“具有最小信任要求的安全时间戳服务的设计”,在比荷卢信息理论的第 20 次研讨会上,1999 年 5 月。3 S. Haber,W. S. Stornetta,“如何对数字文档加时间戳”,在密码学杂志,第 3 卷,第 2 期,第 99-111 页。1991 年 4 月,D. Bayer,S. Haber,W. S. Stornetta,“提高数字时间戳的效率和可靠性”,以及可靠性)在序列 II:通信、安全和计算机科学中的方法,第 329-334 页,1993 年。5 S. Haber,W.S. Stornetta,“位串的安全名称”,第四届 ACM 计算机和通信安全会议论文集,第 28 - 35 页,1997 年 4 月。

image

4. 工作量证明工作量证明要在对等基础上构建一组分散的时间戳服务器,仅仅像报纸或世界新闻网那样工作是不够的。(Adam Back)建议的哈希现金(Hashcash)6. 工作量证明机制涉及在执行随机哈希操作时扫描特定值。例如,在 SHA-256 中,随机散列值以一个或多个零开始。随着零的数量增加,查找解所需的工作量呈指数增加,但只需要一次随机散列操作来验证结果。我们向块中添加一个随机数(Nonce),该随机数应使给定块的随机散列值出现所需数量的零。我们通过重复尝试找到该随机数,直到找到为止。这样,我们构造了一个工作量证明机制,只要 CPU 消耗的工作量能够满足工作量证明机制,除非等价的工作量被再次完成,否则该块中的信息不能被更改,并且由于后续的块都链接到该块,要更改该块中的信息,需要对所有后续的块重做整个工作量。

image

同时,工作量证明机制也解决了集体投票中谁是多数的问题,如果决定多数

6 A. Back,“Hashcash - 一种拒绝服务对策”,http://www.hashcash.org/papers/hashcash.pdf,2002 年

数的方式是以 IP 地址为基础的,一个 IP 地址一票,因此如果有人有权分配大量的 IP 地址,那么机器的工作量证明机制实质上就是一个 CPU 一票。“多数” 的决策被表示为最长的链,因为最长的链包含了最多的工作。如果大多数 CPU 都是由诚实节点控制的,则诚实链将尽可能快地扩展并超过其他竞争链。如果攻击者想要修改现有块,该块的工作负载加上该块之后的所有块的工作负载必须重做,并最终赶上和超过诚实节点 We' 稍后我们将展示,如果一个速度较慢的攻击者试图追上一个后续的区块,那么成功的概率将呈指数级下降。另一个问题是硬件的计算速度在迅速增加,节点参与网络的程度也在波动。为了解决这个问题,工作量证明的难度将使用移动平均目标来确定。也就是说,难度点是以每小时预定的平均速率生成块。如果块生成得太快,则难度增加。5. 网络运行网络:

  1. 新的事务被广播到整个网络;

  2. 各节点将接收到的事务信息进行分块;

  3. 每个节点试图在其自己的块中找到具有足够难度的工作证明;

  4. 当节点发现工作量证明时,它会将其广播到整个网络。

  5. 当且仅当块中包含的所有事务都有效并且在块有效之前不存在时,其他节点才同意;

  6. The other nodes indicate that they accept the block, and the method that indicates acceptance follows the end of the block, making a new block is added to extend the chain and the random hash value of the accepted block is considered to precede the random hash value of the new block. The nodes always regard the longest chain as the correct chain and continue to work and lengthen it. If two nodes are wide at the same time broadcast a different version of the new block, other nodes will receive the block at different times. In this case, he They will work on the first block received, but will also keep another chain in case it becomes the longest. The tie is broken until the next proof-of-work is found, and one of the chains turns out to be the longer one Then the node working on the other branch of the chain will switch sides and start working on the longer chain. The new transaction does not need to reach all nodes, as long as it reaches enough nodes The broadcast of a block is fault-tolerant to discarded messages

. If a node does not receive a particular block, the node will find that it is missing a block and can Make your own request to download the block. 6. excitation The agreement is that the first transaction of each block is specialised, and that transaction generates a transaction that is generated by the block 's creator This increases the incentive for nodes to support the network and issue money without a central authority The invention provides a method for distributing the electronic money into the circulation field under the condition that a certain amount of new money is continuously added. into the monetary system in much the same way that resources are expended to mine gold and inject it into circulation. CPU time and power consumption are the resources consumed. Another source of incentive is transaction fees, where the output of a transaction is less than the input. The difference is the transaction fee, which is added to the incentive for that block. Into circulation, then the incentive mechanism can be gradually converted to completely rely on transaction costs, then the monetary system can be free from inflation Swelling. The incentive system also helps encourage nodes to remain honest. If there is a greedy attacker who can mobilize more than all honest nodes Add up more CPU computing power, then he faces a choice: or use it for honest work to generate new electronics he will find it more profitable to play by that rule and work honestly profitable, because the rules allow him to have more electronic money, rather than breaking the system and making his own fortune is compromised. 7. Reclaim hard disk space If the most recent transaction has been included in enough blocks, the data before that transaction can be discarded to Reclaim hard disk space. To also ensure that the random hash value of the block is not corrupted, when the transaction information is randomly hashed, it is constructed as a Merkle tree 7 such that only the root is included in the random hash value of the block. The old block can be compressed by stubbing the branches of the tree. The internal random hash value is not necessary Saved.

7 R.C. Merkle, "Protocols for public key cryptosystems," In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. on Computer and Communications Security, pages 28-35, April 1997. H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamping service with minimal trust requirements," In 20th Symposium on Information Theory in the Benelux, May 1999.7 R.C. Merkle, "Protocols for public key cryptosystems,"(Protocols for Public Key Cryptosystems) In Proc. 1980 Symposium on Security and Privacy, IEEE Computer Society, pages 122-133, April 1980. S. Haber, W.S. Stornetta, "Secure names for bit-strings," In Proceedings of the 4th ACM Conference on Computer and Communications Security, pages 28-35, April 1997. on Computer and Communications Security, pages 28-35, April 1997. H. Massias, X.S. Avila, and J.-J. Quisquater, "Design of a secure timestamp service with minimal trust requirements," In 20th Symposium on Information Theory in the Benelux, May 1999.

image

Block header without transaction information The size of the Block header is only 80 bytes. If we set the block generation rate to one every 10 minutes, then 4.2 MB of data bits are generated per year.(80 bytes * 6 * 24 * 365 = 4.2MB). In 2008, the typical memory capacity of PC systems was 2GB, and Moore 's Law predicted that even storing all block headers in memory would not be a problem. 8. Simplified payment confirmation A user needs to keep a copy of the block header of the longest proof-of-work chain, and it can keep asking the network until it is convinced that it has the longest chain. It would have been impossible for a node to check the validity of the transaction itself, but by tracing back somewhere in the chain, it could see that a node had accepted it, and that the block appended to it was further proof that the network had accepted it.

image

在这种情况下,只要诚实的节点控制着网络,验证机制就是可靠的,但是当整个网络受到计算能力上级的攻击者的攻击时,就变得更加脆弱,因为网络节点可以自己确认交易的有效性,只要攻击者能够保持计算能力的优势,简化的机制就可以被攻击者焊接(捏造的)交易欺诈。一种可能的策略是一旦他们发现无效块就发送警报,并且接收到警报的用户将立即开始下载被警告有问题的块或交易的完整信息,这样就可以判断出不一致的地方,对于每天都有大量资金收付的业务,可能还是希望运行自己的 complete 节点,以保持更大的独立完整性和校验快速性。

image

9. 价值的组合与分割(合并和分割价值)虽然可以单独处理电子货币,但单独为每种电子货币启动交易是笨拙的。为了使价值易于联合收割机和分割,交易被设计为合并多个输入和输出。一般来说,一个输入由一个较大值的前一个事务组成,或者一个并行输入由几个较小值的前一个事务组成。但是,最多有两个输出:一个用于支付,一个用于找零(如果有的话)。应当注意,虽然一个事务依赖于多个先前的事务,每个先前的事务依赖于多个事务,但是这不是问题,因为该机制不需要扩展所有先前事务的历史。

10. 隐私权

image

传统的造币厂模型为交易参与者提供了一定程度的隐私,因为从可信第三方获取交易信息的尝试受到严格限制。但向整个网络广播交易信息意味着这种方法是无效的。但隐私仍然可以得到保护:保持公钥的匿名性,公众只知道某人向另一个人发行了一定数量的钱,但很难将交易与特定的人联系起来,即,公众很难确定这些人是谁,这就像证券交易所公布的信息,每一次股票销售的时间和数量都有记录,可供查询。但是交易双方的身份并没有被公开。作为额外的预防措施,用户可以为每笔交易生成一个新的地址,以确保交易不会被追溯到共同的所有者。但是,由于并行输入,某种程度的可追溯性是不可避免的,因为并行输入意味着货币属于同一个所有者,风险在于如果某人的一个公钥被确定为属于他,很多其他交易都可以追溯到那个人。

11. 计算假设以下情况:攻击者试图以比诚实节点创建链更快的速度创建替代区块链。即使这样,系统也不会完全任由攻击者摆布,凭空创造价值或掠夺不属于攻击者的金钱。这是因为节点不会接受无效交易,而诚实节点永远不会接受包含无效信息的区块。攻击者所能做的,最多,他改变自己的交易信息,并试图拿回他刚刚支付给别人的钱。诚实链和攻击者链之间的竞赛可以描述为二进制随机游走。成功事件定义为诚实链延伸一个区块,使其领先 + 1,而失败事件是攻击者链

攻击者成功填补缺口的概率可以近似为赌徒破产问题,假设一个赌徒有无限的透支信用,并开始进行无限次的下注,试图填补他的缺口,那么我们可以计算他填补缺口的概率,即攻击者赶上诚实链的概率,如下所示:=𝑝诚实节点生成下一节点的概率𝑞= 攻击者生成下一节点的概率𝑞𝑧= 攻击者最终闭合 z 个块差距的概率

image

如果付款人没有足够的运气迅速成功,他成功的机会会随着时间的推移而变得越来越小。让我们考虑收款人要等多久才能充分确信付款人已经使交易难以改变。让我们假设付款人是一个付款攻击者,他想让收款人相信他已经付款一段时间了。然后,它立即将付款偿还给自己。虽然收款人会在那时发现这一点,但为时已晚。收款人生成一个新的密钥对,然后有很短的时间将公钥发送给付款人。这防止了以下情况:付款人提前准备好一条区块链,继续运行该区块,直到运气让他的区块链超越诚实之链,在这种情况下,交易一发出,攻击者就秘密准备一条包含交易替代版本的平行链,收款人随后等待交易出现在第一个区块,然后等待 z 个区块跟随,此时,他仍然不知道攻击者已经前进了多少个区块,但是假设诚实的区块将花费平均期望时间来产生一个区块,攻击者的潜在进展是泊松分布,期望为

image

在这种情况下,为了计算攻击者追上的概率,我们将攻击者已经取得进展的区块数量的泊松分布的概率密度乘以攻击者仍将追上该数量的概率。

image

通过将其简化为以下形式,避免对无穷级数求和:

image

编写以下 C 代码:

#包括

双倍攻击者成功概率(double q,int z)

image

sum -= 泊松 *(1 - 幂(q /p,z-k));} 返回总和;}

在此基础上,我们可以得到以下概率结果,并发现概率随 z 的值呈指数下降。

image

image

12. 结语

我们在这里提出一种不需要信用中介的电子支付系统。我们首先讨论传统电子货币的电子签名原理。虽然这种系统提供了对所有权的强有力控制,但不足以防止重复支付。为了解决这个问题,

本文提出了一种带有工作量证明机制的 P2P 网络,它记录了交易的公开信息。只要诚实节点能够控制大部分 CPU 计算能力,攻击者就很难修改交易记录。网络的健壮性在于它的结构简单,节点之间的大部分工作是相互独立的,几乎不需要合作,每个节点不需要识别自己,对交易信息的流动路径没有要求,只需要尽可能的传播,节点可以随时离开网络,并且由于它们只需要在离开网络期间补充工作量证明链,所以重新加入网络非常容易。节点通过它们的 CPU 计算能力来投票确认它们的有效块,并且他们继续扩展有效的区块链以表示他们的确认,并且拒绝扩展无效区块之后的区块以表示拒绝。

该框架包含 P2P 电子货币系统所需的所有规则和激励措施。

Loading...
Ownership of this post data is guaranteed by blockchain and smart contracts to the creator alone.