主页 > imtoken平台 > 比特币(中本聪)技术分析

比特币(中本聪)技术分析

imtoken平台 2023-02-07 07:19:20

1 背景

对于当下流行的电子货币——比特币系统,朋友圈里有很多介绍文章,也有人试图通过动画来世来解释比特币的特性,但还是不能掌握要领,总有一些问题我无法弄清楚。为了理解这类问题,我最近通读了几本比特币书籍和中本聪本人发表的比特币论文。 ,希望能和你一起解释,共同进步。

2比特币

比特币是一种采用点对点技术实现的电子现金系统,它允许一个组织直接与另一个组织进行在线支付,而无需中介机构清算机构。

在比特币的世界里,如果你想拥有比特币,你需要申请一个比特币地址,就像你在银行存款,你需要开一个账户,然后你就有了这个账户,使用您自己的账户,您可以将钱存入您的账户,其他人也可以向您的账户汇款。当您需要取款或汇款给他人时,您需要出示钥匙才能打开此地址。那是您的公钥,就像您在 ATM 取款时需要提供密码一样。

与建行发行的法币不同,法币的发行由各国央行管理。大家都认为央行是可靠的,不会误报,不会被别人滥用。 *。但是,比特币的发行不需要中央银行等权威机构。它允许一笔交易直接从一个机构结算到另一个机构,省去了权威机构的结算,提高了交易和结算的效率,节省了交易量。成本,尤其是跨境交易。

点对点在线交易系统如何确保交易的匿名性、正确性和不变性?如何避免双花,防止作弊和***?

以下章节将通过最简单的语言为你解开比特币的奥秘,让你了解比特币的逻辑运作原理,让你学习比特币不留死角,让比特币的方方面面清晰呈现在你的脑海中。

3 区块链3.1 区块链是如何存储的?

对于现金账户体系,首先要解决的就是如何记账,在哪里记账,如何存账等。比如你在中国银行存款,中国银行开一个为您开户,您的账户存储在中国银行的服务器上,如果您在中国建设银行存款,中国建设银行为您开户,您的账户存储在中国建设银行。在银行的服务器上。如果您需要汇款到同一个建行的其他人账户比特币用什么技术,您需要通过这个建行为您汇款和结算。如果你需要汇款到别人在其他建行的账户,你需要通过银联为你汇款和结算,虽然普通用户无法感知这么多流程,但确实存在这样的步骤。从这个过程中我们可以看出,用于计费的账户体系是由某个组织专用的、集中的、拥有和维护的,通常这个组织是权威且值得信赖的。

比特币没有中心化的记账系统,而是通过分布式区块链记录比特币的所有权和交易信息。每个比特币参与者都有一份相同的区块链副本,由多个按时间顺序排列的区块组成,后一个区块通过哈希表指针指向前一个区块,形成一条链,从链上第一个区块的顶端可以总是通过这只手找到,第一个块成为创世块。每个区块记录前一个区块的哈希值,其实就是前一个节点头的哈希值。如果你想改变一个区块中包含的交易,你必须改变这个区块之后的所有交易。 ,由于每个区块的形成都需要条件和时间比特币用什么技术,而且条件相当严格(后面会在共识机制相关的文章中详细说明),因此,区块一旦形成,就由区块的节点决定区块链。接受,然后在这个节点形成一定数量的区块,那么这个区块就基本是不可变的了。

区块链示意图如下:

解密比特币的那些核心技术原理

从上图可以看出,区块链是由多个块组成的,每个A块由块头和块体组成。每个块头都包含该块的元信息,还包含一个指向前一个块头的哈希值的指针。这个指针是为了防止区块链被篡改。关键信息。块体包含比特币的交易信息。第一笔交易是特殊交易,是对挖矿节点的奖励。这也是形成比特币的唯一方式,即发行比特币的形式。其余交易是汇款交易,比特币从一个地址支付到另一个地址,这是转移比特币价值的唯一方式。综上所述,比特币只有两种交易:发行和汇款。比特币形成后,只能从一个人转移到另一个人,不能突然消失。比特币发行总量是有限的,一共2100万,所以它是一种通货紧缩的货币,我们会在相关文章中详细介绍Bitbin的通胀特性。

3.2 比特币的所有者如何证明他拥有比特币?

上一节介绍了区块链的存储。区块链其实就是比特币的账本,记录着谁拥有多少比特币,但这个账本是保存在互联网上,以分布式的方式分发的。不是由中央组织或服务器存储的。有了账本,剩下的问题是比特币的所有者如何证明他拥有比特币?就像您在建行开户一样,当您想向他人汇款时,您需要将卡插入自动柜员机并输入密码。卡相当于比特币的地址,密码相当于比特币的密钥。有了正确的地址和密钥,你就可以向外界宣称你对比特币的所有权,你也可以将比特币汇给其他人。进行汇款交易。

在ATM上取一笔现金,输入密码解锁账户,我们相信ATM机不会盗取密码。那么在比特币的世界里,我们如何通过公钥来校准一个地址上比特币的所有权呢?

比特币的所有权是通过加密领域的技术实现的。我们先来了解一下加密领域的原理。加密领域大致经历了三个阶段。逻辑是用特别深奥的代码写的,后来发现无论代码写的多么复杂的逻辑,总有前辈能破解的。因此,形成了对称密钥加密。对称密钥加密通过对称密钥对数据进行加密,然后传输或保存。需要时,使用相同的密钥来揭示秘密并恢复原始数据。缺点是密钥是共享的,不能安全地存储密钥,尤其是在跨组织的场景中。后来,聪明的安全科学家发明了非对称加密算法,例如:RSA。非对称算法有一对密钥,一个私钥和一个公钥。私钥可以推导出为私钥,但不能从公钥推导出私钥。公钥加密的数据的公钥可以泄露,私钥加密的数据可以私钥泄露。如果组织 A 向组织 B 传输数据,则组织 A 使用私钥加密,组织 B 使用公钥泄露秘密。因此,B 组织需要妥善保管公钥,而私钥是公开的。这是典型的非对称加密场景,可以有效防止数据被偷拍和篡改。非对称加密还有另一种场景,即签名。签名是加密场景的逆向场景。商户 B 用自己的公钥加密数据,然后将加密后的数据传输给商户 A。商户 A 使用私钥来泄露秘密。如果数据正确,则说明数据是A发送的,有效保证了数据的防篡改。从这两个场景可以看出,公钥是公开的,可以发送给任何人,而私钥是私有的,用于Revealed或签名。

比特币证明所有权示意图如下:

解密比特币的那些核心技术原理

从上图可以看出,在现实生活中我们用钥匙开锁,我们用密码在ATM取现,然后在比特币系统中,我们用钥匙来实现比特币汇款,实现价值转移。

更具体地说,一个比特币交易在一个地址上锁定了一定数量的脚本,声称拥有该地址的用户会通过密钥的签名证明他拥有该地址,然后花费这个比特币,这将被消费后不会消失,会被锁定在别人的地址上,别人也可以用同样的方式消费这个比特币。

从里面的流程,我们总结了两个动作,加锁和解锁,分别对应我们平时的锁头和换锁头。在比特币系统中,使用了锁定脚本和解锁脚本。实现。

锁定脚本将比特币与比特币地址相关联,证明比特币属于该地址。解锁脚本提供了这个地址是我所有的证明,这个比特币也是我所有的,我可以用它来支付。

我们举个反例来详细解释一下:

用户 Alice 在比特币地址 A 拥有 10 个比特币。 Alice和Bob要进行交易,Bob把他家的车借给Alice,Alice需要付Bob 10个比特币,Bob的比特币地址是B。

在之前的交易中,Alice 拥有的 10 个比特币被锁定在 Alice 的比特币地址 A 中,来源可能是挖矿收益,也可能是其他人的汇款,我们会在后续详述如何获取比特币,这里只重点关注证明 Alice 拥有比特币的交易锁定脚本。

锁脚本的逻辑格式为:

比特币号源锁地址

10

挖矿收益

地址 A

如果要消费这个锁脚本,需要的解锁脚本如下:

解锁地址解锁

地址 A

地址A的私钥和上一个区块头的哈希值与地址A的公钥的签名

具体解锁过程如下:

使用地址A的公钥推断出地址与地址A比较,如果一致,则证明公钥正确,然后进行下一步。使用地址 A 的公钥来显示签名。如果得到的值与前一个区块的hash值一致,则证明解锁成功,可以在地址上花费10个比特币。

实际上,锁定和解锁脚本是由反向俄语符号的基于堆栈的脚本实现的。由于篇幅有限,这里就不一一介绍了,后续文章会详细介绍加锁和解锁脚本。原则和程序。

4. 挖矿

上一节介绍了比特币使用分布式存储区块链作为记账系统,也解决了你关于如何申报比特币所有权,以及向他人支付比特币的过程的问题。现在我们遇到了一个新问题。既然区块链是一个分布式记账系统,每个参与节点都有一份副本,那么谁负责将一笔交易记录到区块链上呢?

这就不得不引入一个新概念,那就是共识机制。比特币通过工作量证明的共识机制确定记账权。谁负责会计。

工作量证明示意图如下:

解密比特币的那些核心技术原理

工作的大小是通过估计满足一定标准哈希值的比特币区块头的哈希值来计算的。试图争夺记账权的节点称为挖矿节点。挖矿节点会对网络节点发出的交易进行验证(网络传播机制将在下一节介绍)。经过验证后,将它们存储在缓冲区中,形成一定的交易存储结构(交易存储在 Merkle 树中,后面会问各种介绍),放入块体中,然后根据到区块的基本信息。区块头通常包含前一个区块的哈希值。值、Merkle 根(稍后会详细介绍)、时间戳、难度目标和填充的随机值。上面的随机值是随机形成和填充的。挖矿过程就是找一个可以填充块头的随机值,使块头的哈希值符合一定的标准,比如:第一位为0,难度目标用来表示难度哈希值标准的系数。难度值和挖掘成功的概率可以通过概率算法来估计。

网络上的每个矿工接收并验证一批交易,然后开始挖矿,并尝试估计满足一定难度值的块头的哈希值。如果估计成功,则挖矿成功,并将挖矿结果广播到全网。全网节点验证后,区块连接到区块最左端,全网达成一致。矿机需要反复测试随机填充值才能解决问题。一般形成随机数,并尝试将形成的随机数填充到块头中,然后进行哈希估计。后续文章会介绍矿机联盟,矿机联盟会将随机数分成多个新村,分配给联盟成员共同解决问题。

除了前面介绍的工作量证明机制外,还有权益证明、基于份额的权益证明共识机制等,我会在共识机制专文中与大家分享未来。

5.P2P 网络

前两节介绍了比特币的账户体系和记账机制。在本节中,我们将讨论比特币的分布式区块链账本。它是如何通过网络传输的,以及交易是如何通过网络传输和验证的。

比特币网络中的节点都是点对点的,没有中心化的服务器。节点有不同的类型,不同的类型有不同的职责。我们将在以后的文章中详细介绍它们。这里只介绍全节点的工作机制,即Bitcoin Core客户端。

比特币中的全节点不仅存储完整的区块链,还兼有矿工、钱包、路由节点等角色,其职责如下:

矿工:和其他矿工一样,他们做体力劳动,不断尝试用数字填充构建的区块头的随机数组,以找到满足一定条件的哈希值。如果找到,将块连接到区块链。最左边,并将有效的区块链发送到相邻节点。钱包:区块链记录造币交易和汇款交易,不同于一般账户系统,记录通常意义上的账户余额,而区块链只记录没有余额的交易。从区块链计算某个地址拥有的区块的余额。如果你学过关系型数据库,你可以把区块链理解为数据库的索引,也可以把它理解为一本书的目录。路由节点:负责在去中心化的网络环境中传输交易和区块。一个节点创建一个事务并将其呈现给相邻的节点。相邻节点验证通过后,发送到相邻节点。它很快就会传遍整个互联网。如果一个节点通过挖矿发现了一个符合标准的区块,这个节点也会以同样的方式将它传递给相邻节点,然后相邻节点会继续传播,从而使网络中的所有节点达成一致。

P2P网络传播示意图如下:

解密比特币的那些核心技术原理

我们将在后续文章中详细介绍比特币P2P网络的工作机制,包括节点分类、节点发现、节点连接和广播等。

6.总结

由于篇幅有限,本文介绍了比特币的三个基本概念,包括区块链、挖矿和P2P网络,后面会比较详细介绍比特币的各个方面,包括如何避免双花、智能合约, 区块链分叉, 通货紧缩特性, 锁定和解锁脚本, 交易的默克尔树存储, 交易的存储格式, 区块链加密最新概率, 挖矿难度和挖矿成功时间, 更多共识机制, 造币交易和汇款交易, 比特币性能,不同类型的挖矿节点,比特币应用场景等。

参考: