Bitcoin: A Peer-to-Peer Electronic Cash System(比特币论文翻译)
比特币历史:
2008年,比特币论文诞生
2009年1月,第一批比特币诞生
2011年4月,比特币价格第一次达到了1美元
2011年6月,涨到30美元,然后开始跌
2013年1月,4美元
2013年11月末,价格到达1200美元(恐怖!!!),然后开始跌
2017年1月,1000美元
2017年12月,19,000美元,然后开始跌
2018年8月,6000千美元
比特币是一种虚拟货币,可以进行交易,商品买卖和兑换真币。可以通过耗费计算资源挖掘block,发现新的block可以获得比特币奖励和发生在此block上的交易奖励。
比特币拥有者会保留一个私钥,如果私钥被盗,比特币就会被转走,然后偷盗者通过“洗比特币”的方式,使得脏币无法被追踪,然后兑换真币获取财富。
Nakamoto, Satoshi. "Bitcoin: A peer-to-peer electronic cash system." (2008): 28.
摘要:这是一种电子现金,可以实现个人到个人的在线交易,而且不需要任何中间金融机构。数字签名是一种可行的解决方案,但是这种方案有一定的损失,就是需要第三方机构。我们提出一种端到端的网络来解决这个问题。这个网络会给交易打上时间戳,这种时间戳是基于哈希的,除非重置网路,这个时间戳是不变的。最长的链不仅是事件的见证,而且也表明它来自最强的CPU集群。只要大多数的CPU由节点控制,那他们就会超过攻击者的计算速度。这个网络本身只需要很小的结构。信息尽可能地被广播,而且节点可以随时离开和接入这个网络,在他们离开的时候也能即受到最长链的信息。
1.引言
互联网上的商业过度依赖于第三方金融机构。然而,网络系统对交易已经非常的的完善,但它依然受限于第三方机构体制。不可逆交易在金融机构的调解下是不现实的。这种调解增加了交易成本,限制了实际交易规模,减少了小交易的随意性。金融机构对用户十分谨慎,想用户询问过多的信息。一部分诈骗不可避免。这些成本和非确定性在真实货币上可以被避免,但是还没有一个能通过信道的非第三方认证机构的付款方式。
这里需要一个基于加密的证明而不是一个第三方机构去完成两个用户之间的认证和交易。不可逆计算可以保护卖方不被欺骗,常规托管机制能容易地被实现以保护购买方。在这篇论文中,我们提出一种对双方付费问题的端到端的交易解决办法,这种方法含有分布式的时间戳,具有计算可证明性。这种方法的安全性是基于好节点的CPU数量多于攻击者的CPU的数量。
2. 交易
我们把电子金币定义为一串数字签名。对于每个金币拥有者,他如果想把金币交给下一个用户,他需要首先把上次的交易和下一个用户的公钥做一个hash,然后加到这个数字签名的后面就行了。而对于接受者来说,只要用自己的私钥进行验证,验证通过即代表拥有该金币。
这里存在一个问题,就是接受者不知道这个金币的上个拥有者是否多次使用过这个金币。一个通常的解决办法就是找一个可信赖的中央机构,让它来验证每一次交易是否合法,然后这个中间机构发出新的金币,保证这个金币只用过一次,这就有点像银行。
我们需要一个方法来让接受者知道前一个用户是否多次使用了这个金币。为了达到这个目的,就只有知道所有的交易历史。在中间机构的模型当中,中间机构知道所有的交易细节。但是为了达到这个目的而且不加入中间机构,就只有公开交易细节。这样接受者才能证明这个金币是第一被使用的。
3.时间戳服务
为了解决上面的问题,我们提出了时间戳服务。时间戳服务就是把以前的时间戳和现在的一些信息 做一个hash,然后在广播出去。那么这个时间戳就包含了当前数据的信息和以前的历史信息。
4.工作证明性
为了实现分布式的端到端的时间戳服务,我们需要使用一个叫做工作性证明的系统。这个工作证明系统就是从零序列进行做hash。
只要好的CPU比攻击的CPU多,那么就是安全的。
5.网络
网络上主要分为以下几步:
(1)新的交易广播到所有节点上。
(2)每个节点把交易嵌入一个block中。
(3)每个节点进行工作性证明的block计算。
(4)当某个节点发现工作性证明block,就会广播出去。
(5)所有节点在所有交易都处于就绪状态时,会接受这个block。
(6)节点接受这个block后会用这个block的hash,然后继续搜寻下一个block。
节点只会接受最长的链,然后继续扩展这个链。对于两个节点同时发出相同长度的链,那么一个节点会同时保留两个链,但只在第一个链上工作,如果有其他节点对其中一个链计算出了结果,则丢弃那个更短的链。
新的交易不用到达所有的节点,只要他们到达足够多的节点就行。不久后它们会融合进block当中。block的广播对于丢包也是鲁棒的。当一个节点没有接收到了一个block,他会发出请求下一个block。
6.激励
需要话费CPU的计算能力和电力去创造新的金币。一个攻击者如果拥有很多的CPU计算能力,他去偷金币的利润还不如去创造金币。
7.回收磁盘空间
一旦最近的交易被足够多的block保存,那么很久以前的交易就可以被丢弃了,这样就能节省磁盘空间。 为了缓解这个问题,可以把hash组成一棵Merkle树。
8.简化的付款验证
可以通过保存最长链的副本来避免运行所有节点。
9.组合和分裂值
为了更灵活的使用,需要使交易能够有组合和分裂的能力。
10.隐私
11.计算
攻击节点很难赶上好节点的能力。
12.结论
参考文献:
Bitcoin: A Peer-to-Peer Electronic Cash System(比特币论文翻译)的更多相关文章
- Bitcoin: A Peer-to-Peer Electronic Cash System
Bitcoin: A Peer-to-Peer Electronic Cash System Satoshi Nakamoto October 31, 2008 Abstract A purely p ...
- Peer To Peer——对等网络
今年的考试.大问题没怎么出现. 就是考英语第二天的下午,发生网络阻塞的现象,不影响大局.可是事出有因,我们还是须要看看是什么影响到了考生抽题.最后查了一圈,发现其它几场的英语考试听力都是19M大小,而 ...
- Peer to Peer File Sharing Through WCF
http://www.codeproject.com/Articles/614028/Peer-to-Peer-File-Sharing-Through-WCF https://github.com/ ...
- 《The Google File System》论文阅读笔记——GFS设计原理
一.设计预期 设计预期往往针对系统的应用场景,是系统在不同选择间做balance的重要依据,对于理解GFS在系统设计时为何做出现有的决策至关重要.所以我们应重点关注: 失效是常态 主要针对大文件 读操 ...
- 经典论文翻译导读之《Google File System》(转)
[译者预读] GFS这三个字母无需过多修饰,<Google File System>的论文也早有译版.但是这不妨碍我们加点批注.重温经典,并结合上篇Haystack的文章,将GFS.TFS ...
- 《The Google File System》论文研读
GFS 论文总结 说明:本文为论文 <The Google File System> 的个人总结,难免有理解不到位之处,欢迎交流与指正 . 论文地址:GFS Paper 阅读此论文的过程中 ...
- The Google File System(论文阅读笔记)
概述 GFS:一个可扩展的分布式文件系统,用于大型分布式数据相关应用,TB级的数据,成千上万的并发请求. 设计概览 假设 组件的失效比异常更加常见 多数的文件修改操作是追加数据而不是重写原来的数据 ...
- 一、Bitcoin比特币与BlockChain区块链技术
一.比特币历史 2008 年 10 月 31 日,一个网名叫中本聪(英文翻译过来滴)的家伙发布比特币唯一的白皮书:<Bitcoin:A Peer-to-PeerElectronic Cash S ...
- 比特币_Bitcoin 简介
2008-11 Satoshi Nakamoto Bitcoin: A Peer-to-Peer Electronic Cash System http://p2pbucks.com/?p=99 ...
随机推荐
- Linode之使用UE实现SSH连接
在Linode上建立了节点后,选择对应的操作系统(我选用的是Ubuntu 12.04 LTS),然后启动就可以.详细能够參见该文(https://library.linode.com/getting- ...
- Linux配置 xampp下的https证书(腾讯云申请)
准备 从腾讯云后台SSL证书管理里下载证书 一.上传文件 解压出来以后有三个文件: 1_root_bundle.crt 2_www.xxxxx.com.crt 3_www.xxxxx.com.key ...
- js判断浏览器是否关闭
http://www.blogjava.net/wyz191/archive/2008/12/08/245089.html JS window.onunload=function(){ ...
- Linux-软件包管理-rpm命令管理-查询
rpm -q httpd 查看apache包是否已经安装 rpm -qa 查看所有已经安装的包rpm -qa | grep httpd 查询包含和apache关键字相关联的所有包信息 rpm -qi ...
- IIS发布.net core mvc web站点
这里只有操作步骤! 第一.查看IIS是否安装了 AspNetCoreModule,查看路径:IIS->模块 查看 安装步骤 下载网址:https://www.microsoft.com/net/ ...
- EMQ 注意事项
ClientID 唯一:否则后连接的会将前面的踢下去 发送的消息内容太长(payload),导致客户端断线,原因是EMQ默认的消息长度是64K(65536字节),一旦超过就会出问题.可能出现场景: 日 ...
- Redis的5个常见应用场景
前言 Redis 是一个强大的内存型存储,具有丰富的数据结构,使其可以应用于很多方面,包括作为数据库.缓存.消息队列等等. 如果你的印象中Redis只是一个 key-value 存储,那就错过了Red ...
- php回调函数原理和实例
原理 自己调用自己 称之为“递归”,而不是回调 你也知道回调的关键是这个回既然是回,那么就有一个谁是主体的问题,因为回调是往回调用的意思我调用了函数A,而函数A在执行过程中调用了我提供的函数B,这个函 ...
- spring boot文件上传、下载
主题:Spring boot 文件上传(多文件上传)[从零开始学Spring Boot]http://www.iteye.com/topic/1143595 Spring MVC实现文件下载http: ...
- Python 切片那些事