主页 > imtoken官网下载2.0国际版 > 区块链 - 理论导论

区块链 - 理论导论

imtoken官网下载2.0国际版 2023-04-29 06:08:44

一、背景

区块链不是单一的技术,而是多种技术的组合。 在区块链应用和比特币中,比特币的诞生离不开“密码朋克”组织。

Cypherpunk:一个电子邮件组; 群里囊括了众多密码学天才和计算机精英:维基解密的创始人、BitTorrent 的作者、WWW 的发明者、智能合作的提出者、Facebook 的创始人、比特币之父中本聪。

小组讨论的主题是:数学、计算机技术、加密技术、数字货币。

密码朋克中的一系列技术伏笔给了中本聪发明比特币的巨大灵感。

①Adam Back发明了Hashcash,使用工作量证明POW,这是比特币的核心要素;

② 时间戳确保数字文件的安全,是比特币协议之一;

③戴维发明了B-money,强调点对点交易,记录不可更改,点对点交易技术也用在了比特币上;

④ 哈尔芬尼推出“加密现金”;

在这种技术的铺垫下,中本聪发布了“比特币:一种点对点电子现金系统”。

比特币底层技术:

比特币解决了什么问题_比特币价值比特币最新_比特币分叉对比特币的影响

区块链的起源:由于比特币系统中的数据是逐块存储的,块之间通过Hash连接,形成了区块链。

2、应用场景

资产:数字资产发行、支付、交易、结算; 记账:股权交易、供应链金融、商业积分; 不可篡改的应用程序:众筹、医疗证明、存在证明; 点对点应用:共享经济、物联网; 隐私命名特性的应用:匿名交易;

3. 比特币:

1、比特币是一种数字货币;

什么是货币? 货币是具有一定价值的一般等价物;

一般等价物:铜币、金银-->银票-->法币(纸币)

一般等价物本身,如纸币、钞票比特币解决了什么问题,本身没有价值。 它们之所以可以作为货币使用,是因为人们认可它。 那么,一串数字是否也可以作为货币呢? 这是数字货币。

2、比特币的优势,它的信任从何而来:

①财产只在自己掌控之中,不会像银行里的钱一样被冻结;

比特币解决了什么问题_比特币价值比特币最新_比特币分叉对比特币的影响

② 无通货膨胀风险,比特币总量2100万枚,只会升值;

③ 没有假钞,因为需要别人认可;

④ 良好流通,全球流通,点对点交易;

3、比特币也是一个去中心化的记账系统;

通常,中心化系统将所有数据存储在中心服务器中,但比特币数据不存在中心服务器中,而是将数据存储在记账网络中的各个节点中; 假设每个节点相当于一台电脑,那么记账数据会存储在每个人的电脑里,每台电脑都有账本数据,那么如果一个人的账本和别人的账本不一样,谁的账本为准呢? 这是比特币相关的原理知识,请看后面的内容。

① 如何验证账本? 哪个分类帐有效?

②所有权问题? 如何证明谁拥有货币?

③为什么要记账?

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

4.如何验证账本?

有人会说,比较所有的账本,少数服从多数; 方法可行,但数据量大,效率太低。

Hash哈希函数:Hash(原始信息)-->摘要信息

哈希特征:

① 相同的原始信息,使用相同的哈希函数,总能得到相同的摘要信息;

②原始信息的任何细微变化都会通过哈希函数导致“无法识别”的摘要信息;

③ 汇总信息不可逆推为原始信息;

MD5是一个hash函数,用来比较文件下载后是否损坏;

根据Hash的特性,可以验证账本的有效性!

比特币分叉对比特币的影响_比特币价值比特币最新_比特币解决了什么问题

哈希(原始信息)==摘要信息

比特币解决了什么问题_比特币价值比特币最新_比特币分叉对比特币的影响

通过比较汇总信息来验证账本! ! !

比特币价值比特币最新_比特币解决了什么问题_比特币分叉对比特币的影响

接下来的会计处理如下:

比特币分叉对比特币的影响_比特币价值比特币最新_比特币解决了什么问题

在新账本Hash之前,会加入上一个账本的哈希值作为参数:这样每次只需要验证最后一个哈希值,就可以判断整个链上的所有账本是否正确。

比特币价值比特币最新_比特币解决了什么问题_比特币分叉对比特币的影响

账本校验摘要:每个节点在校验数据时,只需要校验最后一个区块的摘要信息即可。 如果最后一个区块的汇总信息检查正确,则说明整个区块链的账本是正确的,可以完成。 高效的账本验证!

5. 账户归属问题(比特币系统中如何确定账户中的比特币归谁所有?)

我们先来看中心化系统——银行系统如何确定所有权:

银行系统:用户(银行卡+密码)---->交易

银行卡被人盗用怎么办? 第三方(银行)介入以验证交易是否由您执行。 如果银行卡所有者不履行,银行将取消交易。

但比特币系统是一个去中心化的点对点交易系统,没有第三方参与,那么所有权如何保障呢? ? ?

1. 比特币解决方案:

在比特币系统中,一个账户---->由一个地址来表示,一个地址就是一个账户; 一笔交易实际上是将比特币从一个地址转移到另一个地址; 在整个交易过程中,没有任何个人信息;

比特币价值比特币最新_比特币解决了什么问题_比特币分叉对比特币的影响

谁能使用该地址进行支付,谁就拥有该账户的所有权。

2.密码---->私钥

比特币系统中的私钥相当于银行系统中银行卡的密码;

比特币分叉对比特币的影响_比特币解决了什么问题_比特币价值比特币最新

① 比特币中的一个地址对应一个私钥; 地址和私钥不对称;

比特币分叉对比特币的影响_比特币解决了什么问题_比特币价值比特币最新

②可以通过私钥获取地址:

Hash(Hash(fun(private key))) ——> 地址

③无法从私钥推导出地址:

④谁有私钥就可以支付;

那么,在私钥泄露的情况下,如何证明自己拥有某个地址的私钥呢? ? ?

3. 非对称加密技术(对交易进行签名)

(一)签名过程:

① 对交易进行哈希处理得到摘要;

Hash(交易信息/转账记录)——>汇总信息

② 用私钥对摘要进行签名;

Sign(摘要信息,私钥)——>签名信息

(2)广播交易:

签名后,支付节点在全网广播。 广播内容包括交易信息和签名信息,让其他节点验证交易。 广播是一个循环过程。 其他节点验证通过后,同时向周围节点广播;

4.验证:

其他节点收到广播后,开始验证付款人用私钥对摘要进行签名后是否生成签名信息:

verfiy(签名信息, 付款人地址) ————> 交易摘要

比特币价值比特币最新_比特币分叉对比特币的影响_比特币解决了什么问题

5. 签名与验证:互逆运算

签名是一个加密过程:签名(摘要信息,私钥)——>签名信息

验证时的一个解密过程:验证(签名信息,付款人地址)——>摘要信息

比特币分叉对比特币的影响_比特币价值比特币最新_比特币解决了什么问题

6. 为什么要记账? 工作证明:

记账:是一个Hash打包过程,消耗资源比较多;

记账需要消耗资源,所以系统之所以需要记账,是因为系统会对参与记账的账户给予一定的奖励; 由于记账的随机性,也被称为记账即挖矿;

一、挖矿过程:

① 每次记账,系统先发放一定数量的比特币到记账账户;

②目前每个记账发行12.5个比特币,每个比特币价值>4000RMB;

③ 大家都在争着记账。 如果大家一起记账,就会出现记账不一致的情况,需要制定规则;

2.规则:

①一段时间内,只有一个人可以预订成功,当前时间段为十分钟左右;

② 通过解决密码学问题(工作量证明),竞争获得唯一的记账权;

③其他节点只是复制上一步的记账结果;

3. 工作证明:

①记账:Hash(最后一个Hash值,交易记录集)=23434WEG3

② 这个记账太简单了,每个人都能记账成功; 为了保证一段时间内只有一个人可以完成记账:需要增加记账的难度,所以比特币要求Hash值必须以N个0开头。 目前是18,从0开始;

③因此引入随机数,不断改变随机数,得到不同的Hash值,匹配符合条件的值;

Hash(最后一个Hash值,交易记录集合,随机数)= 0000000000000000002346ffkw324lf23lsfe23f43t3455f

交易集:

一种。 收集并广播未记录在账本中的交易;

b. 交易有效性验证;

C。 为自己添加转账交易(挖矿奖励);

比特币价值比特币最新_比特币分叉对比特币的影响_比特币解决了什么问题

4.工作量分析

区块:区块#512884

哈希值:0000000000000000002243f4g45g3463sl3424l89fd231583nrkf92i3a3823i98i409o9o32f5rf1wedf6tg

Hash值以18个0开头,Hash值为十六进制数;

那么得到0的概率是1/16。 理论上,你需要尝试16次。 要得到两个0,需要尝试16*16次。 然后你需要得到一个18个0开头的数字。 理论上需要尝试1618次;

七、共识机制

既然记账有奖励,就会有很多人参与挖矿,而且有可能两个节点同时记账,同时完成工作量证明,那么用谁的块呢? 为了解决这个问题,比特币采用了一种通用的识别机制,节点的工作量需要被其他节点识别才有效。 共识机制如下:

1. 如果两个节点同时完成工作量证明,则每个节点只同意累计工作量最大的区块链,延伸最长的链;

比特币分叉对比特币的影响_比特币解决了什么问题_比特币价值比特币最新

2.分叉方案:无论哪个节点接收到广播,都会打包到该节点的链上。 如果同时出现两条相同长度的链,则两条链会相互竞争,总有一条链先完成工作量证明;

如上,两个节点#2345A和#2345B同时完成了工作量证明。 两条链的长度相同。 此时#2345A和#2345B这两个节点同时向网络中的其他节点广播。 在这条链上继续打包,收到#2345B的节点在#2345B链上打包,网络传输速度不一样比特币解决了什么问题,所以最终#2345A和#2345B两条链之间,总会有超越的另一条链,例如#2346B,则该链有效;

比特币解决了什么问题_比特币价值比特币最新_比特币分叉对比特币的影响

8.总结

1. 比特币是一个没有第三方参与的点对点区域中心通信系统;

2. 账号验证有问题? 因此引入Hash函数来验证账本的有效性; 每次只需要比较上一次的fast Hash值是否正确即可。 如果最后一个区块的哈希值是正确的,那么整个链的账本都是正确的;

3.所有权问题? 如何判断账户中的比特数属于谁?

Signature:Hash(交易信息)-->摘要信息,sign(摘要信息+私钥)-->签名信息

验证:verify(地址+签名信息)-->判断是否等于Hash(交易信息)

4、为什么要记账?记账是消耗资源的,可以得到系统的奖励

5、工作量证明:引入随机数,增加记账难度,匹配符合比特币条件的Hash值;

Hash(前一个Hash值,交易记录集,随机数)== 18个0开头的Hash值

6、共识机制:每个节点的工作量只有被其他节点认可才有效,每个节点只认可累计工作量最长的链;