主页 > imtoken安卓官方下载 > 比特币所依赖的技术

比特币所依赖的技术

imtoken安卓官方下载 2023-07-07 05:24:33

一、项目图

比特币是如何运作的,它使用了哪些技术?

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

1. 交易是一切数据的来源

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

2、交易流程

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

2. 比特币使用了哪些技术

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

1 概述

1.密码学

2.P2P网络

3. 工作量证明

4.base58

三、密码学(保证交易安全) 一、对称加密简介

使用单密钥密码体制的加密方法,可以用同一个密钥对信息进行加密和解密。 这种加密方式称为对称加密,也称为单密钥加密。

算法

DES、3DES、AES、TDEA、河豚、RC2、RC4、RC5、IDEA、SKIPJACK。

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

Feature 2. 非对称加密介绍(交易验证)

公钥和私钥一一对应。 公钥负责加密,对外公开。 私钥用于加密和签名。 只能自己拿着,绝对不能外泄。

公钥加密的组成

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

比特币分叉影响比特币总量_比特币分叉会影响比特币价格吗_比特币缩写

私钥签名

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

签名图标

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

特征算法

常用:RSA、ECC、Elgamal、背包算法、Rabin、DH

应用

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

总结4. P2P网络(广播交易,同步账本)

计算机网络的初衷是建立一个可以相互通信的对等计算机网络。 但由于历史问题,联网的计算机配置不高,计算能力和存储能力不足。 因此,长期以来,我们更倾向于使用基于客户端(client)和服务器(server)的C/S模式和浏览器(Browser)和服务器(server)的B/S模式。

现代计算机的计算能力和配置有了显着提高,建立去中心化的P(peer)2P(peer)对等网络可以很好地应对这种高并发数据处理,广泛应用于文件下载和在线视频领域。

==才明白==

1 简介

P2P(peer-to-peer):点对点技术,没有中央服务器,依靠用户群交换信息的互联网系统。

网络中的参与者共享他们的一些硬件资源(处理能力、存储能力、网络连接能力、打印机等),这些共享资源通过网络提供服务和内容,可以被其他对等节点(Peer)直接访问无需通过中间实体。 这个网络的参与者既是资源、服务和内容的提供者(Server),也是资源、服务和内容的获取者(Client)。 P2P架构是一个应用层的概念。

2.图标

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

三、特点

抗攻击,高容错,地位平等。

4.申请

BT下载,电驴下载。

5. 工作量证明(挖矿)

工作量证明(POW:Proof of work)是指表明你做了某事的结果。 得到结果的过程很曲折,但验证却很简单。

==你展示计算出的随机数nonce,如果你提供的区块数据的计算结果小于当前难度值,则系统认为你做了一定量的计算工作。 ==

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

我们都说比特币挖矿是个问题,那到底是什么问题呢? 其实就是对当前打包的交易进行哈希sha256运算。 哈希运算很简单,为什么会出问题呢? 比特币难题需要矿工找到特定的哈希值。 我们都知道哈希运算的结果是没有规律可循的,想要找到一个明确的哈希是不现实的。 我们需要难度和可行性,所以挖矿需要找到一个小于目标值的哈希值。 能。

比特币分叉影响比特币总量_比特币分叉会影响比特币价格吗_比特币缩写

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

演示:

== 计算时同步收集交易,上一轮比赛结束后将收集到的交易打包,开始新一轮比赛。 ==

==挖矿期间不会添加新的交易==

难度值(猜测):0x000f00000000000000 0x0000ffffffffffffff 10000

sha256(helloworld+1) => 0x12345.... 0x000100000000000000

sha256(helloworld+2) => 0x0212345.... 0x000100000000000000

.....

sha256(helloworld+10000) => 0x0000f4345.... 0x000100000000000000 挖矿成功! 10000 随机数

是我们当前区块的哈希值

10000 是我们要找的随机数

0x333f00000000000000 -> 0x10087ffffffffff

0x00000000 ->

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

截屏

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

1 简介

工作量证明(Proof Of Work),简称POW,是一种针对服务和资源滥用,或阻断服务攻击的经济对策。 一般需要用户进行一些耗时且适当的复杂计算,答案可以很快被服务商核对。 所消耗的时间、设备和能源作为保证成本,以确保服务和资源被真正的需求所使用。 目前该技术已经成为加密货币的主流共识机制之一,例如比特币所采用的挖矿技术。

2.原理

BTC的POW需要运行哈希算法(sha256)找到符合要求的Block Hash(小于目标哈希值),==,哈希值由N个前导零组成,零个数取决于网络难度值==。 得到合理的 Block Hash 需要大量的试算,计算时间取决于机器的哈希速度。

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

Hash和Nonce是匹配的,只有计算出Nonce才能确定hash值。

因为满足条件的Nonces有无穷多个,我们只需要找到一个就可以挖矿成功。

3.代码

import (
    "crypto/sha256"
    "fmt"

比特币分叉影响比特币总量_比特币分叉会影响比特币价格吗_比特币缩写

) func main() { var data = "helloworld" for i := 0; i < 1000000; i++ { hash := sha256.Sum256([]byte(data + string(i))) fmt.Printf("hash : %x, %d\n", string(hash[:]), i) } }

看一下,前导0的个数增加了一个,i值的变化

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

六、比特币地址生成 1、地址规则

散列一个随机字符串以生成一个 32 字节的私钥

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

生成过程如下(大家可以看懂了,v5版本会使用代码实现):

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

可以验证地址比较短比特币缩写,可读的前面有版本号,可以根据地址快速判断属于哪个网络地址

版本号不同:

主网:00 ---> 1

测试网:

专用网络:

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

2.在线演示

在线生成地址(不靠谱,仅供演示)

比特币缩写_比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量

BitCoinAddress(很有意思的地址,生成一个真实可用的地址)

七、编码(网络传输、地址生成) 一、Base64简介

Base64编码是我们程序开发中经常使用的一种编码方式。 因为base64编码的字符串更适合在不同的平台和语言中传输(一个字符在其他系统中可能没有)。 它是一种基于用 64 个可打印字符表示二进制数据的表示方法。 通常用于存储和传输一些二进制数据的编码方式,一句话:textualize binary data (convert to ASCII)。

影响

由于在某些系统中只能使用 ASCII 字符。 Base64 是一种用于将非 ASCII 字符数据转换为 ASCII 字符的方法。

原则

base64编码需要将3个8位字节(3*8=24)转换成4个6位字节(4*6=24),然后在6位前面加上两个0比特币缩写,组成8位字段形式. 如果剩余字符小于3个字节,则用0补足,输出字符使用'=',所以编码后的输出文本末尾可能出现1个或2个'='。

为了保证输出的码位是可读字符,Base64制定了统一转换的码表。 编码表的大小为2^6=64,这也是Base64这个名字的由来。

base64编码表

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

恰好三个字节的情况:

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

少于三个字节:

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片

特征码

package main
import (
    "encoding/base64"
    "fmt"
    "log"
)
func main() {
    input := []byte("区块链学员中有一群神秘的大佬,他们家里有矿!")
    
    encodeString := base64.StdEncoding.EncodeToString(input)

比特币分叉会影响比特币价格吗_比特币缩写_比特币分叉影响比特币总量

fmt.Println(encodeString) decodeBytes, err := base64.StdEncoding.DecodeString(encodeString) if err != nil { log.Fatalln(err) } fmt.Println(string(decodeBytes)) fmt.Println() uEnc := base64.URLEncoding.EncodeToString([]byte(input)) fmt.Println(uEnc) uDec, err := base64.URLEncoding.DecodeString(uEnc) if err != nil { log.Fatalln(err) } fmt.Println(string(uDec)) }

Base58(比特币生成地址)

去除base64字符中的6个容易混淆的字符

为什么是base58

==58个字符(Base58数字系统)和校验位用于提高可读性,避免歧义并有效防止地址转录和键入错误。 ==

8.总结

我们从交易环节入手,大方向介绍了比特币的运行流程和相关技术,但是各个环节在系统中是如何工作的呢? 接下来,我们就带领大家逐层分析,走进它的内部结构。

比特币分叉会影响比特币价格吗_比特币分叉影响比特币总量_比特币缩写

图片