主页 > imtoken最新官网客服 > 比特币挖矿技术:分布式数据存储、点对点传输、共识机制、加密算法……

比特币挖矿技术:分布式数据存储、点对点传输、共识机制、加密算法……

imtoken最新官网客服 2023-08-30 05:09:39

一、说明

区块链具有数据运行开放、不可篡改、可追溯、跨国际、去中心化等特点。 因此,越来越多地应用于各个领域。 区块链的主要技术包括:分布式数据存储、点对点传输、共识机制、加密算法,下面将一一介绍。

2.点对点传输

点对点技术(Peer-to-peer technology,简称P2P),又称点对点互联网技术,依赖于网络参与者的计算能力和带宽,而不是聚集对少数服务器的依赖。 最典型的应用是eMule。 在这里它提供了第一层去中心化支持。

比特币挖矿难度周期_比特币挖矿难度曲线_比特币和莱特币挖矿

3.分布式数据存储

比特币挖矿难度曲线_比特币和莱特币挖矿_比特币挖矿难度周期

看一下对区块链最直观的感受:第一次运行比特币钱包,会下载很多数据,2017年10月大约150G,而且还在增加。 数据存放在data/blocks目录下,blk*.dat为block块。

第一个问题是:为什么建一个矿池需要下载那么多数据? 区块链本质上是一个去中心化的数据库。 我们下载的是比特币所有数据组成的数据库,所以非常大。 在去中心化数据库中,数据不存储在某个服务器上,需要在P2P的每个节点上存储一个副本。 对于中心化的数据库,数据库可能被主机或黑客篡改,可靠性变差。 去中心化的数据库就像一个公开的账本,每个人都可以查看,但是没有人可以私自修改过去的数据,因为分散在别人机器上的数据库是不可能修改的。 当某个数据与其他数据库不一致时,以最一致的为准。 这就是所谓的“共识机制”。

随着交易的增加,钱包将继续增长。 当它太大时,将使用硬分叉技术。 即启动一个全新的网络和所有用户的大规模迁移。

4. 区块链

区块链是一系列与密码学方法相关联的数据块。 每个数据块(block)都包含了一次比特币网络交易的信息,用于验证其信息的有效性比特币挖矿难度曲线,并生成下一个区块(根据一个生成下一个生命,形成一条链)。

所谓挖矿就是计算出一个符合规则的随机数,从而获得本次的记账权,将本轮需要记账的数据发出,然后广播到全网,同时每个节点都会接收到交易信息,并将其记录在一个区块中,然后链接到现有的区块链上。

比特币挖矿难度周期_比特币和莱特币挖矿_比特币挖矿难度曲线

5.算法

哈希算法是字符串到(有限位数)数字的映射。

Block的算法是根据前一个区块的哈希值,找到一个满足一定哈希结果的字符串。 简单来说,就是将字符串拼凑起来,计算SHA256哈希值(碰撞哈希值),直到找到合适的字符串。 哈希字符串,这个字符串就是解决方案。 具体公式如下:

  1. SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET 

挖矿就是求解上面方程中的x。

其中version为区块的版本,prev_hash为上一个区块的hash值,merkle_root为需要写入的交易记录的merkle树的值(merkle树应用于交易的存储,其基本原理是将每笔交易的叶子节点(Hash)成对配对生成父节点,不断迭代这个过程最终生成唯一的根节点merkle root),ntime为更新时间, nbits为当前难度,TARGET根据当前难度计算。 x的范围是0~2^32。 这是一个求解x的问题。 一旦找到 x比特币挖矿难度曲线,就可以广播一个新块。

比特币挖矿难度曲线_比特币挖矿难度周期_比特币和莱特币挖矿

TARGET 越小,求解 x 就越困难。 每产生2016个区块(约14天),网络会根据这段时间平均产生新区块的间隔调整TARGET,以保证10分钟产生一次的速度。 . 因此,随着在线算力的不断提升,计算难度会越来越大,矿山也会越来越难挖。

如果两个人同时挖,区块链就会分叉,客户端会在众多分支中找到满足当前难度的最长的。

6.安全机制

1)私钥

私钥是以下形式的字符串:

5KYZdUEo39z3FPrtuX2QbbwGnNP5zTd7yyr2SC1j299sBCnWjss。 只要应用正确支持比特币协议,就可以将这个字符串识别为私钥,转换为公钥,再转换为地址。 如果对应的地址有比特币,就可以用这个私钥来消费上面的比特币。 货币。 盗窃一般是指私钥被盗。

比特币挖矿难度周期_比特币和莱特币挖矿_比特币挖矿难度曲线

2)公共和私人

公钥是由私钥生成的,一个私钥经过椭圆曲线变换之后会生成一个65个byte的数组,一般我们会看到这样形式的一个公钥:04a34b99f22c790c4e36b2b3c2c35a36db06226e41c692fc82b8b56ac1c540c5bd5b8dec5235a0fa8722476c7709c02559e3aa73aa03918ba2d492eea75abea235

操作是用私钥签名的,只有对应的公钥才能解锁。 地址也是由公钥生成的,这样就可以验证操作是否属于这个地址。

3)地址

地址由公钥生成。 生成的过程是先对公钥进行SHA256,然后对得到的结果进行RIPEMD160,再从结果中取出一个20字节的数组。 得到的数组就是得到的hash160。 如:9a1c78a507689f6f54b847ad1cef1e614ee23f1e

4)工艺

比特币挖矿难度曲线_比特币挖矿难度周期_比特币和莱特币挖矿

你发送的数据是用私钥加密的(包括挖矿广播、转账等),数据传输的时候也传递了一个公钥,用公钥解密。 如果公钥/私钥能够匹配,就可以证明你的身份。 公钥对所有人可见,如果私钥被盗,其他人可以使用您的身份进行交易。 具体加解密和密钥导入导出方式请参考后续“钱包”章节。

7. 挖掘与深度学习

1)组织算力

挖掘和深度学习都需要组织计算能力。 当计算量较大时,需要构建集群,拆分计算,整合结果等。

2)硬件基础

挖矿和深度学习都是数学模型计算,它们对大规模学习的解决方案是:显卡、FPGA、ASIC。 当然,功能也不完全一样。 深度学习需要矩阵乘法、卷积等基本操作,而挖矿主要是哈希碰撞。 两者都需要并行、多线程和高内存带宽等特性。 虽然功能大同小异,但在硬件上还是有不少差异。 硬件说明请参考后续“控制器与矿机”章节。