主页 > token.im钱包下载 > 区块链技术+初识比特币

区块链技术+初识比特币

token.im钱包下载 2023-01-17 14:04:12

什么是比特币

– 区块链背景

在这些前提下:

2008 年,中本聪推出:“比特币:一种点对点的电子现金系统”

比特币 --> 区块链(技术的集合)

发现比特币底层技术不仅可以用于数字货币,还可以应用于其他领域

对比特币的底层技术,如:工作量证明、点对点网络、加密技术、时间戳方法等进行了全面提炼,提出了区块链的概念。可见,区块链不是单一的技术,而是一系列技术的集合

为什么叫区块链,因为比特币系统中的数据是以区块的形式存储的,区块之间通过散列连接,形成区块链,所以称为区块链。

前景:资产、簿记、不可变、点对点、隐私

- 货币历史

铜币、金银

钞票

法定货币

纸币和法定货币都是信用货币,本质上类似于一张纸,本身没有价值。它的价值来自于我们对它的信任。

回到正题,总结一下比特币的概念

1> 数字货币

作为货币的一串数字,它的价值来自于大家的信任。在区块链中,它被称为共识。

– 信任从何而来

比特币特点:财产自控,无通胀(总量不变,2100万),无假钞,流通性好

2> 去中心化记账系统

比特币如何运作

– 账本是如何验证的?(验证哪个分类帐有效)

– 所有权问题?(如何证明谁拥有该货币)

– 为什么要参与记账?(矿业)

– 以谁的账本为准?(共识机制)

– 账本是如何验证的?(验证哪个分类帐有效)

计划一:

查账本记录,少数服从多数(每次海量比较去哪里弄比特币,低效,否)

– 在集中式系统中,存储的数据是什么是最终结果。如果数据被篡改,基本上是无法验证的。因为只有一方拥有数据,其他人无法证明数据的有效性。

比特币解决方案:

1> 哈希函数

散列函数:散列(原始信息)=摘要信息或将复数映射为简单数特征:

相同的原始信息总是可以用相同的哈希函数得到相同的摘要信息\原始信息的任何细微变化都会对无法识别的摘要信息进行哈希处理

原始信息不能从汇总信息中反推

– 所以hash(账本信息)=一串汇总信息(eg:888888A) 比较汇总比原始信息效率高很多。

2> 块

---------
| 序号   |
| 时间戳 |
| hash值 |
---------
|       |
|交易记录|
|       |
---------

这种存储称为块,上面称为块头。

– 这时候,另一个账本信息(这里暂且说这个,后面会提到交易记录集)

hash(888888A, 另一个账本信息) = 7776699B

如果执行协调,则比较第二个哈希值 7776699B。如果匹配,则表示第二个账本信息和第一个汇总信息 888888A 都是正确的(使用特征 1,2)

同样,第一个汇总信息是正确的,说明账本上的信息是正确的。这样就形成了:区块 1 的结构变成了区块链

– 所有权问题?(如何证明谁拥有该货币)

在比特币系统中

点对点交易,没有第三方参与(与银行交易不同)

帐户 -> 地址

{

“付款地址”:“54455d4ddsd1f1g”

“付款地址”:“eijsjng45221211”

'金额': '0.2btc'

}

谁能拿到这个地址支付,谁拥有账户

密码 -> 私钥

地址:54455d4ddsd1f1g

私钥:hdnsfnjgjgnsngdngnsgnhnhn21581sdsdf

哈希(哈希(乐趣(hdnsfnjgjgnsngdngnsgnhnhn21581sdsdf)))-> 54455d4ddsd1f1g

如果你有私钥,你可以用地址支付。

我们如何在不泄露私钥的情况下证明我们拥有地址的私钥?

– 非对称加密技术(交易签名) 交易哈希得到摘要,私钥用于签署摘要

– 签名过程对交易记录进行哈希运算,得到摘要信息哈希(

{

“付款地址”:“54455d4ddsd1f1g”

“付款地址”:“eijsjng45221211”

'金额': '0.2btc'

})

-> hgg455d66558 进行签名操作

- 参数 1 是交易摘要

-参数2是私钥

- 返回签名信息sign("hgg455d66558", "hdnsfnjgjgnsngdngnsgnhnhn21581sdsdf") -> "3245d5fegdfg"

– 广播交易

包含交易的原始和签名信息

-核实

其他节点收到信息后开始验证

- 参数1为签名信息

-参数2是付款人的地址

- 返回交易摘要 verify("3245d5fegdfg", "54455d4ddsd1f1g") -> hgg455d66558

if(verify("3245d5fegdfg","54455d4ddsd1f1g")==hash(交易信息)):
#写入账本
#广播
else:
#donothing

– 实际上,签名和验证类似于逆操作,使用支付地址作为公钥

签名是一个加密过程,验证是一个解密过程。

- 账本中没有个人隐私,安全。

– 为什么要参与记账?(矿业)

记账:哈希打包过程会消耗资源。既然有成本去哪里弄比特币,节点为什么要参与记账呢?

因此,在比特币系统中,完成记账的节点可以获得少量的比特币奖励。这个奖励就是比特币发行的过程。

每次记账都是向记账地址新发行一定数量的比特币。

- 采矿 - 工作证明

这样的奖励会引起大家争相记账,应该用规则来限制,否则记账就不会有不一致性。规则:在一段时间内,只有一个人可以成功预订一本书。

唯一记账权是通过解决密码学问题(即工作量证明)竞争获得的。其他节点复制记帐结果。

- 因为在解决密码学问题时,存在一定程度的随机性,记账可以得到奖励,所以记账的过程称为挖矿。

- 工作证明:

为了保证只有一个人可以记账一段时间,就必须增加记账的难度。hash(最后一个哈希值,交易记录集,随机数)= 0000adngngn

摘要应该以多个 0 开头,而比特币现在以 18 个 0 开头。

- 交易记录集收集广播中未记录在账本中的交易\验证交易(账本所有权和地址是否有足够的余额)\添加交易转账给自己(挖矿奖励,12.5 个比特币)

– 如果某个节点比其他节点更快地找到哈希值,则将整个交易打包成一个块,进入区块链,打包的节点将获得奖励。

工作量分析:

一个 0:1/16 16 次

2次0:16*16次

等等…

16^18次,消耗大量计算资源和电力。

- 形成矿池进行挖矿。

– 以谁的账本为准?(共识机制)

如果两个节点同时完成工作量证明,使用谁的区块?

比特币没有仲裁员

如果他们说使用我的块\

如何在矿工之间协商并达成共识,以识别由谁打包的区块

- 共识机制

为什么要遵循协议(为什么要达成共识)?

我不能用我的块而你用你的块吗?这是一个经济问题。

追求利润最大化

一个节点的工作量只有在其他节点一致认为有效的情况下才有效,因此必须遵守协议。

– 如何达成共识?

1> 累计工作量最大的区块链

独立的

延长最长的链条

- 分叉分辨率

- 比特币将区块间隔设置为 10 分钟

是更快的交易确认和更低的分叉概率之间的折衷

- 更短的块生成间隔将导致更快的交易确认,但也更频繁的分叉。

相反,较长的时间间隔会减少分叉的数量,但确实会导致较长的确认时间