理论教育 深入探析比特币的实现原理

深入探析比特币的实现原理

时间:2023-06-08 理论教育 版权反馈
【摘要】:比特币的实现是基于SHA-256密码散列算法。采用以上数学加密算法,可使比特币交易单的伪造无法实现,从而保证交易的不可篡改性和安全性。图3.2工作量证明机制示意图工作量证明机制在时间戳的基础上进一步增强了比特币交易数据的不可篡改、不可伪造性,让“双花”成为不可能。2)比特币运行原理比特币构建了全球去中心化

深入探析比特币的实现原理

1)比特币的相关技术及概念

(1)加密算法

①散列算法

散列算法主要用来对消息进行加密处理,而且该算法是不可逆的,具有很高的数据安全性。比特币的实现是基于SHA-256密码散列算法。以该散列算法为例,输入任意一串消息,通过该算法都会产生一个256位的二进制数字,从而记录该消息的摘要信息。在消息传输的过程中,如果数据发生任何细微的变化,都会生成新的消息摘要。散列算法是不可逆的,故一般都是将两个或多个消息进行散列算法,然后将其与加密以后生成的256位结果进行比对。如果结果相同,证明消息是一致的。散列算法只能加密,不能解密,只能通过生成的两个加密结果进行验证。

②密匙体系

密匙对包括一个私匙和由其衍生出的唯一的公匙。密匙是成对出现的。私匙本质上是由32个二进制字节组成的,而一个字节由8位二进制组成,因此,一个私匙本质上应由32×8=256位0或1组成。由此可知,私匙有256个组合,数量是相当庞大的,想要通过遍历所有的私匙方式找到有比特币的私匙是不可能的,因此,比特币私匙具有很高的安全性。公匙是由私匙通过椭圆曲线算法生成的一串十六进制字符串,是对外公开的。公匙可用来验证地址的私匙持有人的真实性。

数字签名

数字签名即对信息的数字化签名,用来验证用户的身份,证实被签信息的正确性。在比特币体系中,付款人首先将收款人的公匙和交易数据一起生成散列值,然后采用椭圆曲线算法使用私匙对此散列值进行加密,以便每次得到不同的数字签名。利用数字签名可推出公匙,从而可解密付款人的签名,对私匙持有人进行有效验证,而验证为有效签名的交易才会被存储起来。

采用以上数学加密算法,可使比特币交易单的伪造无法实现,从而保证交易的不可篡改性和安全性。

(2)P2P技术

P2P(Peer to Peer)技术也称对等网络技术,是一种不同于传统C/S(客户机/服务器)模式的网络信息交换方式。

传统的C/S模式构建了以服务器为中心,多个客户机都从服务器获取数据的方式。该模式中数据的一致性容易控制,系统也容易管理,但是服务器的中心控制地位太突出,客户端对于服务器的依赖性过强,系统容易出现单一实效点;另外,服务器要同时为众多的客户端提供服务,一方面能同时提供客户端服务的数量有限,网络结构本身的扩展性也很差;另一方面由于服务器网络负载大,因此,对服务器的处理能力、内存大小、网络带宽等都有较高的要求。

P2P网络结构中,不存在中心节点(或中心服务器),每个节点都既是服务器,又同时可从其他节点获取服务。P2P技术具有以下6个特点:

①非中心化。P2P技术不需要服务器和中间环节的介入,直接在各个网络节点中进行信息的传输和服务。

可扩展性。网络节点越多,提供服务的节点也越多,系统整体性能和服务能力越强,用户的需求越能够很好地被满足。

健壮性。因服务和资源分布在网络各个节点,即使某些节点遭到破坏,也不会影响整个网络的性能。

④高性价比。P2P技术可有效利用网络中分布的每一个节点,为其分配相应的计算、存储等各项任务,从而可低成本地提高整个网络的运行效率

⑤由于P2P是非中心化的,不需要经过中间环节,因此,提高了用户隐私保护力度。

⑥由于P2P架构中每个节点都是对等的,因此,减少了对传统结构的服务器快速处理要求和存储的性能要求,能更好地实现网络的负载均衡。

比特币采用P2P技术构建分布式网络节点,这些网络节点共同创建账本、管理账本、验证交易、确认交易,从而共同实现数字授信的追踪,保证系统的安全性和健壮性。

(3)区块链技术(www.daowen.com)

区块链技术是基于上述提及的加密技术和P2P技术形成的一种新的安全可靠的记录数据、传输数据、存储数据的方式。它是比特币运行的技术核心与基础。利用该技术能实现比特币数据的去中心化管理与维护,即比特币网络系统中的每个用户都可参与比特币交易数据的记录和存储,而不需要第三方管理机构来集中控制、维护和管理数据;同时,通过复杂加密算法,使比特币用户之间形成足够的信任,达成共识,从而保证数据的真实性、完整性、连续性、一致性。比特币的交易数据都记录和存放在按时间先后顺序生成的一个一个的区块上,从第一个区块开始,到最新产生的区块为止,形成了一个存放和记录比特币全部历史交易的区块链,比特币的全部数据都可通过区块链追本溯源,进行验证。

区块链技术还包括时间戳、工作量证明等重要概念。

①时间戳

时间戳是一个经加密后形成的凭据信息,是数字签名的变相应用。它主要用来记录和证明特定的信息在特定的时间写入,保证数据的不可篡改、不可伪造性。比特币系统中每一个区块都会随机散列生成一个时间戳,并向全网公开,这个时间戳又会通过随机散列合并到下一个区块中,生成下一个区块的时间戳,如此一来,每个区块中都包含有上一个区块的时间戳,从而形成一个有序的链条。区块时间截生成示意图如图3.1所示。

图3.1 区块时间戳生成示意图

②工作量证明

工作量证明机制是基于加密算法。它的原理是:在交易的数据区块中,增加一个随机数,如指定区块的随机散列值以一个或多个0开始,0的数目越多,找到满足这个条件的解所花费的工作量就越多,计算机只能通过穷举的方法不断试错,最终通过花费复杂的“劳动”获得正确的解。因此,要想篡改或伪造区块的信息,必须重新完成全部的工作量。对结果进行检验只需一次散列运算就可以完成。这就是工作量证明机制。工作量证明机制示意图如图3.2所示。

图3.2 工作量证明机制示意图

工作量证明机制在时间戳的基础上进一步增强了比特币交易数据的不可篡改、不可伪造性,让“双花”成为不可能。

2)比特币运行原理

比特币构建了全球去中心化的公共记账平台和交易系统,系统是由遍布全球的成千上万的任意计算机构成,一台计算机就是一个网络节点,这些网络节点共同创建账本、管理账本、验证交易、确认交易,从而共同实现数字授信的追踪,保证系统的安全性和健壮性。

(1)比特币的发行

比特币的发行不依赖第三方机构,是去中心化的,它的发行是矿工通过“挖矿”来实现的。“挖矿”是基于上述工作量证明机制创建新数据区块的过程。具体实现是这样的:网络上每个节点都不断收集网络上最近广播的没有被证实的交易,并把这些交易加到块中;然后每个节点都不断进行穷举运算,试图找到一个满足条件的值,以此来证明为寻找区块而付出的足够难度的工作证明。当某个节点找到了一个工作量证明,创建一个临时账本(区块),并广播整个网络,其他节点对这个临时账本(区块)进行验证,如果该区块中包含的所有交易都是有效的并且是不重复的,那么其他节点就认同该区块的有效性,创建区块成功;跟随该区块末尾继续创建新的区块以延长该链条。“挖矿”为整个系统的运转提供原动力,是比特币的发动机,没有“挖矿”就没有比特币。从上述运行原理可总结“挖矿”有3个重要功能:发行新的比特币;维系比特币支付功能;通过算力保障系统安全。网络节点上不断创建新数据区块(账本),并不断验证和确认交易、更新交易的人,称为矿工。任何人都可以成为矿工,所以任何人都有可能成为比特币的发行者,而计算能力越强的矿工,就能越快创建新的数据区块。一旦新的数据区块向全网广播并得到确认,就会产生新的一定数量的比特币,这些新发行的比特币会作为对矿工复杂劳动的奖励。最初每个新区块产生的比特币是50个,每4年减半。以此类推,最终比特币总的数量将会稳定在2 100万个。比特币的发行原理如图3.3所示。

图3.3 比特币的发行原理

(2)比特币的流通和交易

比特币在全球流通,没有国家地域限制,只要有网络的地方,比特币就有流通的可能。比特币流通过程中采用分布式记账方式和分布式交易单验证方式。用比特币进行交易时,首先会生成一个交易单,为了保证交易的安全性,交易单会将该交易的前一次交易信息和收款人公匙以及交易金额等相关信息用散列算法加密生成一个哈希值,并由付款人私匙签名。该交易单向所有网络节点广播,网络节点会从该交易单中追踪该交易的历史来源并检查付款方是否有足够的支付金额。如果确认有足够的余额,就把该笔交易加到数据区块,交易需要经过6个节点才能被验证成功,成功的交易最终都被记录在数据区块链的总账上。新产生的数据区块会生成时间戳,每次新区块的时间戳都包含前一个区块的时间戳,从而为电子交易的先后序列提供证据,同时也为防止分布式系统中的双重支付提供基本保证。区块链记录着比特币全部历史交易,从比特币诞生开始,区块链就被比特币网络一直保存并不断更新,并且是公开透明可供查询。比特币交易原理如图3.4所示。

图3.4 比特币交易原理

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈