主页 > imtoken怎么退出账号 > 深入比特币原理(一)——比特币白皮书总结与评论

深入比特币原理(一)——比特币白皮书总结与评论

imtoken怎么退出账号 2023-01-18 18:09:55

2008年,中本聪发布了比特币白皮书《A Peer-to-Peer Electronic Cash System》,开启了区块链技术的新天地。虽然中本聪在 2011 年之后就消失了,但白皮书涵盖了本中本聪最希望传达的比特币世界观,是每个区块链初学者的必读之作。以下是个人总结和评论。

1.简介

基于信任模型的交易:

(1)传统金融中介成本增加

(2)支付交易是可逆的,欺诈是不可避免的

基于密码学原理:

(1)点对点交易,无金融中介

(2)不可滚动的支付交易,防止欺诈

个人评论:本节强调当前传统的中心化金融模式存在很多无法回避的问题,可以通过密码学保证的分布式账本来解决。

2.事务(事务)

每个电子货币的所有者都是收款人的公钥(public key)签署一个哈希数字签名,然后发送给下一个所有者。

(1)收款人使用付款人的公钥进行验证,是否由正确的付款人发送

(2)因为交易中有收款人的公钥,所以只有收款人可以用自己的私钥解锁转币

比特币的原理

1e.png

但上述过程仍然存在问题,无法解决双重支付问题,即币主签署同一个电子货币并发送给多个收款人。

传统金融:判断并确认用户是否通过中介进行双重支付

比特币:通过公开宣布该币种的所有交易,形成唯一的历史交易序列,由系统确定。所有参与者都同意交易

个人评论:通过公私钥的非对称加密,可以解决虚拟货币的所有权问题,但是同一种货币可以由拥有者支付给多人,也就是双重支付,是不够的只在货币系统中使用加密。(这实际上意味着货币系统必须有人记账)

3.时间戳服务器(时间戳服务器)

以区块的形式对一组数据进行随机散列(HASH),并添加时间戳将区块连接成链,形成区块链

2e.png

个人评论:本节其实给出了比特币账本的原型,这也是区块链(Blockchain)名称的来源。每个块是分类帐的一个页面。 Hash函数保证账本的真实性。

4.工作量证明

计算一个随机数(Nonce),块头一起计算一个随机哈希值(Hash),哈希值必须以N个零开头(N是变量,计算难度可以控制N,越大N,难度越大),这就是“挖矿”的内在原理。

3e.png

比特币的原理

工作量证明的目的:

(1)保证区块链的不变性,既然区块组成了一条链,如果要修改一个区块,就必须重做之前的所有工作,这样随着区块链高度的增加,越老的区块链块,越难篡改。

(2)工作量证明的本质是一个CPU一票(不同于传统的一个IP一票,攻击者需要投入大量的成本来获得更多的票)比特币的原理,如果大部分CPU都是诚实的节点,那么正确的链会以最快的速度扩展。

个人评论:上一节的模型可以保证账本的顺序和真实性,但是不能阻止人为创建多个账本,而这些账本只能其中一个被大家认可,所以是共识机制必须创建。比特币的共识机制是工作量证明(POW),即工作量(哈希计算)最大的账本被识别为正确的账本。

5.网络

网络的操作步骤如下:

(1)新交易向全网广播;

(2)每个节点将收到的交易信息合并到一个区块中;

(3)每​​个节点都试图在区块中找到足够难度的工作证明;

(4)当节点找到工作量证明时,会向全网广播;

(5)当且仅当该区块中包含的所有交易均有效且之前不存在时,其他节点才会认可该区块的有效性;

(6) 其他节点表示接受该块,接受的方法是跟随块尾比特币的原理,做一个新的块来扩展链,接受块的随机哈希值将被视为比新区域更快的随机哈希值。

比特币的原理

如果两个节点同时完成工作量证明并广播,由于网络传输,可能会出现两个长度(工作量)相同的节点。在这种情况下,需要等待下一个工作量证明被发现,以确定哪个是最长的。

个人评论:全网的节点(矿工)将努力完成工作量证明来争夺新的区域。写入区块的权利(记账),如果有人先完成并确认有效,所有节点将轮流争夺写入下一个区块的权利。

6.激励(激励)

(1)通过完成工作量证明,可以获得一定数量的新电子货币作为激励

(2)另一个激励是交易费,如果所有比特币(2100万)都进入流通,激励将完全依赖交易费,保持货币不受通胀影响

激励系统还有助于鼓励节点保持诚实,如果攻击者拥有大量的计算能力,他利用这种计算能力来挖掘的收益可能高于攻击比特币网络。

个人评论:网络节点(矿工)争夺记账权必须有一定的激励,否则没有人有记账的动力。这种激励是簿记员可以获得一定数量的新比特币和交易费用。 (比特币的产出是每块50比特币,每4年减半,2018年减半两次,目前为12.5)

< @7.回收硬盘空间

交易信息构成了默克尔树的形式。根据默克尔树的原理,验证交易的正确性只需要根节点(root)和路径,这样用户只需要存储区块头(包括默克尔根),就可以得到默克尔树需要验证交易的路径。

4e.png

没有所有交易信息的区块头只有80个字节,出块速度大约是10分钟。生成数据 4.2MB

个人评论:比特币的区块头总是只有80个字节,但是它可以包含交易相关的信息,即使用Merkle树来记录交易,把它在区块头中放入Merkle根(我们将要使用的Merkle树)在后面的章节中详细讨论)。

比特币的原理

8.简单的付款确认

无需运行完整的网络节点即可验证付款。节点只需要保留区块头,通过merkle的分支验证交易的存在即可。

6e.png

个人评论:早期比特币账本中的数据量很小,整个网络的节点实际上是全节点(将所有数据存储在账本中)。中本聪在设计之初就预见到账本容量会随着时间的推移不断扩大,全节点的负担会越来越重。这时候可以只保留区块头,可以使用Merkle树来验证交易,可以大大减少节点的存储空间。

9.合并拆分值

每次发起交易时,可以有多个输入,只有两个输出:一个用于支付,另一个用于找零

7e.png

个人评论:比特币作为一种货币,需要具备灵活划分和使用的特点,通过输入输出的划分和合并,让交易变得非常灵活。

10.隐私

传统模式:金融中介提供一定的隐私保护

比特币:由公钥生成的地址,虽然交易在全网广播,但公开的唯一信息是有人向另一个人发送了一定数量的比特币,但无法确认这些人是谁是。

8e.png

比特币的原理

个人评论:由于比特币的账本是对全网开放的,隐私保护是一个重要的问题。比特币使用公钥Hash作为交易地址来对外表示交易的输入输出过程,这里有两个好处:

(1)因为公钥和私钥是随机生成的,只知道公钥Hash无法知道是谁进行了交易

(2)一个公钥地址的私钥持有者可以自由控制地址上锁定的币种,但没有人知道真正的私钥持有者是谁

11.计算

即使拥有巨大的计算能力,攻击者也只能更改自己的交易信息,以试图取回自己刚刚支付给他人的钱(双重支付)或拒绝他人的交易信息。不可能凭空创造价值或掠夺他人的货币。

--以下内容涉及较多数学计算,不再赘述。如果您有兴趣,请自行阅读白皮书。

--p>

个人评论:Proof of Work 有一个风险,就是如果有人控制了整个网络的大量算力(比如超过 51%),他实际上可以控制大部分的记账权。风险。但是比特币的设计将这种风险的后果降低到了一个较低的水平:

(1)因为只有算力,没有私钥,所以不可能掠夺别人的币。

(2)虽然他可以拒绝其他人的交易记入账本,但这种销毁实际上并不会给其他人造成金钱损失。

(3)他也可以尝试双花,但是如果对方在一笔大交易中进行多个区块(比如6+)确认来验证交易,仍然很难双花。而且这种攻击可以很容易发生如果被检测到,比特币社区可以迅速做出反应。

综上所述,51%算力攻击需要巨大的成本,但收益并不大。如果你能掌握 51% 的算力,攻击的好处可能远不及成为诚实节点进行挖矿的好处。当然,如果有人以破坏比特币网络为目标,完成51%算力攻击,必然会对比特币产生影响,但不可能杀死比特币。

白皮书链接:

下载.jpg