主页 > imtoken安卓app下载 > 比特币挖矿 - 区块链技术

比特币挖矿 - 区块链技术

imtoken安卓app下载 2023-01-31 05:21:04

1.说明

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

2.点对点传输

Peer-to-peer(简称P2P)也称为点对点互联网技术,依赖于网络中参与者的计算能力和带宽,而不是集群依赖于几台服务器。最典型的应用是电驴。在这里,它提供了最低级别的去中心化支持。

3.分布式数据存储

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

比特币基础技术

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

随着交易量的增加,钱包将继续增长。过大后会使用硬分叉技术。也就是启动一个全新的网络,让所有用户大规模迁移。

4.区块链

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

所谓挖矿,就是计算一个满足规则的随机数,从而获得记账权,将本轮要记录的数据发送出去,然后广播到全网。每个节点都会收到交易信息并记录下来。进入一个区块,然后链接到现有的区块链。

比特币基础技术

5.算法

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

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

SHA256(SHA256(版本 + prev_hash + merkle_root + ntime + nbits + x )) <目标

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

比特币基础技术

其中version为区块的版本,prev_hash为前一个区块的hash值,merkle_root为待写入交易记录的merkle树的值(merkle树应用于存储交易,其基本原理是将叶子节点(每个交易的hash)配对做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。当然,功能并不完全相同。深度学习需要矩阵乘法和卷积等基本运算,而挖掘主要是哈希碰撞。两者都需要并行性、多线程和高内存带宽等特性。虽然功能相似,但硬件方面还是有很多区别的。硬件描述请参考后续章节“控制器与矿机”。