主页 > www.token.im > 比特币及区块链原理简介

比特币及区块链原理简介

www.token.im 2023-07-30 05:12:51

2018年春节过后,区块链技术一下子火了起来。我对这个技术也很感兴趣,所以想研究一下区块链技术的原理,看看区块链背后有哪些技术值得研究。由于本人缺乏实际开发经验和使用经验,文章中难免有些理解不到位。本文的主要目的是总结最近的学习。

浅解比特币以及区块链原理

一、概览

比特币是一种存储在计算机中的货币,而计算机存储的本质是一串数字,那么为什么比特币中存储的这串数字可以等价于真钱呢?比特币感觉很像黄金。无论黄金是从哪里获得的(从沙子里,还是自己买的),人类都会认识到它的财富价值。

说起比特币,很多文章总结了它的特点,比如:去中心化,记账系统,安全性好,但是它的特点是什么,现在大家几乎都承认比特币可以等价于货币,但是比特币的货币不同来自现实社会中各国央行发行的法定货币。法币的重要特征之一是需要权威机构(一般指代表国家的中央银行)发行货币。货币的价值体现在老百姓对国家权威的承认上。无论如何,法币是一种中心化的货币发行机制,法币会受到国家中心的控制和约束。比特币的设计理念不同。它想以一种没有任何权威中心的方式发行货币,使货币只包含经济价值的本质属性。

比特币的价值是通过交易记账流程体现的,具体流程如下图所示:

浅解比特币以及区块链原理

产生支付交易,直到最终支付交易成功写入区块链,这样支付交易才会真正得到确认,比特币的币值在这个过程中体现出来,同时也承载了公司货币的发行在这个过程中。

这个流程图可能让很多人感到困惑,为什么我说它反映了比特币的货币价值?我之所以做这样的总结,主要包括以下几点理解:

区块链比特币原理

这个过程包括比特币发行、流通和交易的全过程;

此过程在没有中央机构参与的情况下执行。 ,但该过程与真实货币的价值具有相同的权限。

完全了解这个过程,就可以理解为什么比特币可以等同于实际的法币。

我会一一解释这个过程。

二、支付交易

如何完成比特币的支付交易,下图是中本聪论文中的交易流程图,如下图:

浅解比特币以及区块链原理

在支付交易方面,涉及到非对称加密和数字签名技术,这是比特币的原理之一。在比特币的知识范畴中,有一个钱包的概念。钱包的本质是一对非对称加密的公钥和私钥。如果我们把比特币的使用映射到实际用户身上,公钥就是这个人对外的唯一标识,而私钥就是用户打开钱包使用比特币的钥匙。公钥对公众开放。在比特币规则中,公钥代表钱包用户在网络中的地址。

区块链比特币原理

根据比特币的规则,公钥的长度为 512 字节。为了便于公钥在网络上的传播,公钥应转换为160位的数字指纹。数字指纹是二进制的。编码,转成字符串是26到35个字符。

那么如果A支付B比特币,那么A需要知道B的地址,这样A才能向B发送比特币。下面我将描述支付过程,如下:

A 向 B 支付比特币的交易是将比特币从 A 的地址转移到 B 的地址的过程。这是一个例子:

首先,A向B发送数据,其中包含以下内容:

B 收到信息后会核实信息。验证过程如下:

第一步是找到最后一笔交易,确认付款人的比特币来源。

第二步,计算付款人公钥的指纹,确认与付款人地址一致,以保证公钥为真。

第三步,使用公钥解锁数字签名,保证私钥的真实性。

区块链比特币原理

验证无误,B认为交易可以执行。注意:本次交易仅视为可执行,不确认交易有效成功。

从支付交易的传输数据和验证过程可以看出,比特币的支付过程主要使用支付方A的交易数据信息,以及A的公私钥进行支付。乙方只是验证操作的有效性,而支付方自己的公钥、私钥和交易信息不参与支付过程,所以我们可以认为私钥和公钥主要用于花费比特币外景。

如果希望交易最终确认成功,那么收款人B会将交易广播到全网,流程进入交易广播阶段。

三、交易广播

我认为,从交易广播开始,就进入了区块链技术领域,现在非常流行,因为广播的交易最终会是网络中的矿工(矿工是区块链分布式下的子节点)系统)接收它作为矿工创建区块链块的输入。这个过程比较简单,只是数据传输,但是是技术实现的技术难点之一,因为这个区块技术包含了比较复杂的网络通信技术和编程领域的高并发技术。但是,如果将交易广播理解为区块链的输入,那么这里还涉及到与输入相关的一项重要技术,那就是时间戳服务器。时间戳服务器的作用是同时给交易增加一个时间维度。 ,有了时间戳,我们可以确定交易一定是在某个时间点发生的。

中本聪的论文中对时间戳服务器的定义如下:

时间戳服务器以块的形式对一组数据执行随机散列。时间戳并像新闻或 Usenet 帖子一样广播随机散列。

从这个定义我们可以知道,时间戳就是将新生成的交易记录按照时间维度进行分组,从而保证每一笔实际交易都能正确保存。

区块链比特币原理

时间戳服务器的作用对于比特币的货币价值非常重要。这里我举个例子:在传统交易中,往往没有时间维度的概念,而没有时间维度的交易往往会影响交易的信用评价,例如:甲乙双方账户各有100元一天,甲方将10元存入乙方账户,第二天,乙方账户向甲方账户增加10元。账上还是100元。如果不记录交易过程,那么我们就很难追踪交易行为。如果双方进行了非法交易,最终在查账前平衡了账户,那么危险行为就会被隐藏起来。 因此,时间戳服务器为比特币交易提供了一个积极的、不可逆的交易过程,使比特币的区块链技术能够实现溯源的功能,解决通信中的信息不对称问题。区块链技术能够应用到其他领域的一个重要原因。

交易广播后,就是将交易写入区块的过程。

四、交易写入区块

交易的最终确认是将交易写入区块链,而区块链是由区块串联而成的,区块是记录交易的实体,所以要将信息写入区块链,首先将信息写入块中。那么区块是如何产生的呢?

区块的生成由网络中的矿工完成。但是对于矿工来说区块链比特币原理,要生成一个新区块并不是那么容易。这里我们先说一下block的数据结构。区块分为区块头和区块体。块体存储交易记录。这些交易记录由付款方如B.交易记录广播到网络。

在比特币系统中,一个区块的大小被指定为 1 mb,一个交易大约是 500 字节,所以一个区块可以存储大约 2000 个交易。区块中最关键的因素是区块头。区块头包含了很多区块的特征值。更关键的是

以上数值是外部获取的。此外,区块头还包含一个随机数的难度系数难度和Nonce,以及一个在挖矿系统中的固定常数值。这是一个公式:

目标 = 固定常数值/难度

区块链比特币原理

可以看出,难度系数越大,目标值就会越小。矿工将对区块头中的数据进行哈希计算。哈希结果是一串二进制数。如果最终的哈希结果小于目标,则该块将被认为是一个有效块,这个有效块可以同步到该块。在链上,但要计算出一个有效的区块就不是那么容易了,需要反复计算才能得到最终的结果。但是由于一个区块的特征属性一般是固定的,为了让每个区块头计算的哈希值每次都不同,在计算出每个无效的哈希结果后,矿工程序会动态调整Nonce的值。让最终的哈希值改变。 Nonce 是一个 32 位的二进制数,所以它的取值范围是 0 到 21.47 亿。然后击中目标是一个详尽的数学过程。一个矿工可能很幸运能够快速计算它,或者它可能无法达到 21.47 亿次。此时,框架必须重新同步区块链。数据,重新计算。这是区块链技术中的工作量证明,可见出块是相当麻烦和困难的。

回到出块的描述,从上面的过程中,我们发现出块是非常耗费资源的,也就是消耗计算机的算力和算力资源,那为什么矿工总要生成块块呢?这是因为产生的每个区块的经济回报都非常有吸引力。

这就是中本聪设置生成区块奖励的方式。比特币系统运行于 2008 年。当时,生成有效新区块的奖励为 50 个比特币,每 4 年递减一次。一半,也就是说2012年以后是25,2016年以后是12.5,现在2018年,一个新区块的奖励是12.5,和目前比特币的价格已经超过一万美元,这个收入是极其可观的。从这个规律我们也可以发现区块链比特币原理,比特币的数量一天不会增加。当新的区块没有因为新的比特币而得到奖励时,那么就没有可开采的采矿了。为了激励框架继续挖矿,中本聪还制定了另一个激励措施,那就是手续费。区块记录交易,每笔交易都是收费的,每个区块都会根据手续费的高低来安排交易,所以没有手续费。或者手续费很低的交易往往很难写入区块,也就是最后很难写入区块链,交易也会很难建立,让矿机拥有无限的权力去挖矿.

新区块的诞生将奖励比特币。这就是比特币发行的过程。这就是为什么在巨大利益的驱使下,人们总是乐于成为矿工。

当一个新的区块产生时,它会被加入到区块链中。

五、区块被写入区块链

新区块不是简单的加入区块链,因为区块链是一个没有中央管理员的分布式数据库,那么不可能有权威机构加入链上。向区块链添加新区块的过程是一个集体协商的过程。具体流程如下:

矿机生成成功 当一个区块生成时,矿工会在全网广播该区块,拥有完整区块链数据备份的服务器会收到信息并将新区块添加到区块链末尾即使在区块链末尾添加了一个新区块,也尚未说明新区块已成功添加到区块链中。这里我们将成功加入区块链的区块命名为节点,只有新区块添加到最后一个区块。一条长链,也就是最真实的链,可以称为节点。这条规则的原因是可能有多个新区块同时添加到区块链中。到底哪一个是有效的,需要一个判断机制。这种机制一般来说,新区块最先获得连续6个新区块,则该链为真链,该区块即可确定为区块链的新节点。

但是,将新块添加到区块链的时间间隔受到严格控制。在比特币系统中,每 10 分钟只有一次机会向区块链添加一个新区块。加入气候需要6个新区块才能最终确认区块链的新区块添加成功,这意味着大约需要1个小时才能成功确认一笔交易。我们也可以计算出,一个区块最多可以存储 2000 笔交易,10 分钟就是 600 秒。即使摊销1秒,比特币系统也只能处理3到5笔交易,这是比特币交易时间长的重要原因。当然,时间间隔的建立还有另一个重要原因。限制出块的数量,控制新块的数量,也是控制比特币的总量,也就是说比特币的总量其实是固定的,总有一天会完蛋的。

交易成功写入区块链后,收款人B同步区块链中的数据。如果 B 在区块链中找到自己的交易记录,则认为该交易有效。