主页 > imtoken安卓怎么下载 > 中本聪原创比特币论文解读:一个点对点的电子现金系统
中本聪原创比特币论文解读:一个点对点的电子现金系统
概括:
解读中本聪的比特币论文《比特币:一种点对点的电子现金系统》
中本聪比特币纸的结构
以下是中本聪2008年10月31日在论文《比特币:一种点对点电子现金系统》中开发的点对点电子现金系统的目录:
一、简介
2. 交易
3.Timestamp server时间戳服务器
4. Proof-of-Work 工作量证明
5.网络
六、激励激励
7. Reclaiming Disk Space 回收硬盘空间
8.Simplified Payment Verification 简化付款确认
9.合并和拆分值
10.隐私
11.计算
12.结论结论
中本聪原比特币论文的逻辑结构如下:
1题:点对点,分布式时间戳(timestamp)服务器,原理是计算能力为证(computational proof)。
----------
2 通过签名交易电子货币->导致解决双花问题;
----------
3(基本实现)时间戳(Timestamp)服务器,构建区块(block)链(chain)
4 (Basic implementation) 区块补充随机数获得Proof-of-Work
5 网络工作流程
6 通过激励机制产生一种新的货币,取代中央权力机构(central authority)
----------
7(优化)存根旧块 -> 优化磁盘
8(优化)不完整的节点也可以确认工作量证明
9(优化)多输入多输出的可能性
10(优化)隐藏公钥保护因子;
----------
11 攻击者节点可能存在的情况; 概率是指数的
----------
12 实现了不依赖信任的电子交易。
本文标题指的是比特币(Bitcoin),本文的重点是区块链思想的实现。
在原始论文中,这可能是这个想法:
原论文对于具体的实现其实还是比较简略的,里面有一些默认的知识——比如分布式系统和密码学。
背景知识
1 去中心化结构
传统的交易系统依赖于一个中心化的结构,它实际上是一个银行,也被称为信托机构。
在去中心化结构中,追求点对点的结构,这些点在分布式系统中是对等的,称为每个节点。
节点代表分布式系统中的计算机,中心化和非中心化有本质区别。
以下是集中式结构。 在交易系统中,银行代表中心节点。
下面是一个去中心化的结构,每个节点都是点对点的关系,也称为点对点(Peer-To-Pear)。
2 哈希函数
哈希函数是一种从任何类型的数据中创建小型数字“指纹”的方法。
哈希函数的基本原理是:
下图展示了哈希函数的各种情况。
下表是常见哈希函数的表格。
例如:
MD5的输入长度不限,输出是生成一个128位(16字节)的哈希值;
SHA-256 是 SHA-2 的一种,输入限制为 2^64-1,输出为 256 位(32 字节)的哈希值。
3 非对称加密
非对称加密(Asymmetric cryptography)是一种单向加密算法,密钥由一对组成:
一个密钥加密后,只能用对应的另一把密钥解密。
以下是公钥和私钥加解密的特点。
公钥和私钥是成对生成的。 对于非对称加密,公钥可以公开,私钥不能公开。
非对称加密有以下场景:
加密:公钥加密,私钥解密,保证传输安全,不安全传输时无法窥视;
签名:私钥加密,公钥解密给大家,证明来自用户,中间篡改无效;
下面是用爱丽丝的公钥加密鲍勃并将他的信息传送给爱丽丝的过程。
下面是爱丽丝如何用自己的私钥签名,发布内容比特币 本聪,证明这段内容来自爱丽丝本人。
Diffie–Hellman 密钥交换描述如下。
《一、引言》:区块链的目标
《2.Transactions交易》:传输
本节首先介绍基本交易,其中涉及到非对称加密的过程。
每个交易者需要做的是通过以下两部分生成一笔交易:
先前交易的哈希值
下一个所有者的公钥
上图应该从中间看比特币 本聪,就是Owner 1生成的交易,#1是图片对应的hash,#2是图中Owner 2的Public Key。 用所有者 1 的私钥签名后,就形成了所有者 1 的签名。 所以大家可以知道这个Transaction是由Owner 1发出的。
根据非对称加密的距离,由于其他人没有Owner 1的私钥,所以内容无法被篡改,也可以证明该内容一定是Owner 1发布的。
注意:这里Owner 2的Public Key代表一个地址,需要在后面的隐私链接中进行优化。
另一个问题出现在这里。 所有者 1 本身可能有双花。 如果没有中心化的信任机构,需要公开,然后收款人(payee)得到多数连接节点的认可——第一次出现。
本节针对电子交易的传输问题。
【问题已解决】:采用非对称加密,私钥加密确保内容(电子货币)的所有者。
〖待解决的问题〗:每一个内容都是真实的,没有双重支付;
《3.Timestamp server Timestamp server》:组成分区链
本节介绍的timestamp server的本质是给数据加上timestamp,然后进行hash,从而一条一条的形成一条链。
这一段是区块(block)链(chain)的由来,区块就是带有时间戳的数据,链就是它们组成的链。
区块链的结构实现了电子交易的一个核心问题:记账。
【问题解决】:散列的结果是保持“记账”正确,不被篡改。 链条形成后,层层保障。
〖待解决问题〗:部分节点恶意记账;
《4.Proof-of-Work工作量证明》:增加计算负担
本节提出的工作量证明是一种负担,使得每一步的生成都有更多的计算量,这样做的目的是增加计算成本。
为了保证不被篡改,通过在块中自增一个nonce的方式,在内容中附加一个随机数(nonce)生成N个0作为约束,取工作量最大的结果作为一个共识。
例如,SHA-256 的哈希结果是 256 位和 32 字节。 如果前面有8个0,那么前一个字节就是0。找随机数的时候,需要反复试验,直到找到为止。 至于需要多少个0,那就是难点了。
由于哈希算法的不可逆性,很难找到满足条件的哈希值,但很容易验证该值是否正确。 因此,只要经过计算,很多都可以达成多节点共识。
上面的逻辑是,在以 CPU 为多数投票的系统中,如果大多数 CPU 是诚实的,则结果是正确的。
在比特币的实际实现中,难度是动态调整的。 随着算力的增加,难度逐渐增加,保证生成速度不变。
在比特币的实现中,结构其实并不复杂。
Block的结构如下:
其中,Block Header的结构如下:
也可以用下图表示。
工作量证明的原理是,如果要改变一个区块,则需要重新计算该区块之后的“新划分”,这也需要算力。
此部分是电子交易中的关键环节,解决了伪造问题。
【问题已解决】:使用工作量证明的共识来确定认可的正确内容。
〖待解决的问题〗:完整流程;
《5.网络网络》:基本流程
本节给出了区块链运行的基本流程。 网络(Network)是指由多个节点(Node)组成的分布式系统。
区块链网络的工作过程是:
新交易广播到全网;
每个节点(Node)将接收到的交易信息合并到一个区块中;
每个节点都试图在自己的区块中找到足够难度的工作量证明;
当节点找到工作量证明时,它会向整个网络广播;
当且仅当区块中包含的所有交易都有效且之前不存在时,其他节点同意该区块的有效性;
其他节点通过创建一个新块来扩展块末尾后的链,并考虑接受块的随机散列作为新块之前的快速随机散列来表示他们接受该块。
在区块链的运行过程中,每个节点都在争取“记账”的权利——一个有共识的区块,所以节点都在努力计算,先算出来的就是可接受的。
以上意味着交易广播不需要到达所有节点,节点可以弥补丢失的块。
本节到此为止,区块链的去中心化过程可以顺利运行,剩下的问题是:为什么节点需要计算?
《六、激励激励》:
激励(Incentive)的作用是要求节点记账,否则节点没有记账的动力。
区块链节点记账过程中,有两种收益,一种是交易手续费差价,一种是新币。
对于比特币系统来说,如果所有的币都被挖完了,只有交易手续费,没有新币奖励。
这一段的意思很简单,就是解决节点为什么要计算的问题,因为可以得到新币。
未完待续
《七、回收磁盘空间》:
“8.Simplified Payment Verification Simplified Payment Confirmation”:
《9.合并与拆分值Combining and Splitting Value》:
《10.隐私隐私》:
“11.计算”:
《十二、结语结语》: