主页 > 怎么在华为下imtoken > 区块链笔记——《区块链技术核心概念与原理详解》

区块链笔记——《区块链技术核心概念与原理详解》

怎么在华为下imtoken 2023-07-06 05:11:37

3. 什么是比特币

* 凯恩斯《论货币》:货币是可以承载价值的一般等价物

* 铜币、金银:贵金属作为货币的价值取决于贵金属本身的价值

* 银票:信用货币,银票作为货币的价值取决于银行的背书

* 法定货币:信用货币(如人民币),纸币作为货币的价值取决于国家政府的背书

信用货币,就实物而言,只是一张纸,本身没有任何价值。

信用货币的价值来源于我们对信用货币的信任,或者说,来源于我们对银行和政府的信任。

* 一串数字

类似于金、银、铜、纸都可以作为货币,数字也可以作为货币。

数字货币的价值来自于每个人对数字的信任,这在区块链中被称为共识。

每个人都相信数字是有价值的,数字可以作为货币。 比如卖馒头的人认得这个号码,就可以用这个号码买馒头; 如果卖手机的人认得这个号码,就可以用这个号码买手机。

* 财产只由你自己控制:银行不能动我们的¥,财产只由你自己的私钥控制

* 无通货膨胀:银行增发纸币不会贬值,比特币总量为2100万枚

* 无假钞:任何作弊支付都无法得到比特币网络中其他矿工的确认,因此无法完成支付

* 流通好:全球无缝流通,点对点流通

* 集中式系统:通常有一个中央服务器来存储所有数据。

存储在中央服务器中的是最终结果。 如果中央服务器的数据被篡改,则无法验证。

因为只有一方拥有数据,其他节点无法验证数据的真实性。

* 去中心化系统:数据不再仅仅存储在中央服务器中,而是存储在比特币网络中的各个节点中。

如果将每个节点比作一台电脑,记账数据将存储在每台电脑中。

比特币属于什么专业研究_比特币属于那个交易所_比特币属于

[问题] 每台电脑存储一个账本数据。 如果某台电脑的账本与其他电脑的账本不同,以哪个账本为准?

4. 比特币原理 4.1 如何验证账本? (哪个分类帐有效?)

【不同账本的场景】

比特币属于那个交易所_比特币属于什么专业研究_比特币属于

比特币属于_比特币属于那个交易所_比特币属于什么专业研究

正确的账本分别存放在王二、张三、李四、赵五的电脑里。

张三偷偷把余额从30改成了300。

比特币属于_比特币属于什么专业研究_比特币属于那个交易所

此时,张三的账本与王二、李四、赵五三人的账本不一致。 以谁的账本为准?

比特币网络中有数百万个账本,每个账本都有海量记录。

每次转账,都要和这几百万账本一一核对。 这种效率是不可接受的。

* 哈希函数:哈希(原始信息)=摘要信息

* 特征:

1)同一个原始信息,同一个哈希函数总能得到同一个摘要信息

2)原始信息稍有改动,就会散列出无法识别的摘要信息

3) 摘要信息不能反推原始信息

比特币属于那个交易所_比特币属于_比特币属于什么专业研究

账本通常包含的信息:序号、记账时间(时间戳)、交易信息。

散列分类帐以获得摘要,例如 787635A。

如果汇总信息与他人的汇总信息一致,则说明该账本信息与他人的账本信息一致。

这样一来,相比于比对账本的原始信息,比对汇总的效率会大大提高。

序列号、时间戳、哈希值、交易记录保存后,就形成了一个区块。

序号、时间戳、Hash值称为区块头

比特币属于什么专业研究_比特币属于_比特币属于那个交易所

比特币属于什么专业研究_比特币属于_比特币属于那个交易所

在对第二个账本进行hash时,加上第一个账本的Hash值,得到第二个账本的汇总信息,如456635B。

如果第二台账的汇总信息一致,则说明第二台账的信息与第一台账的汇总信息一致。

第一台账的汇总信息是一致的,也就是第一台账的信息是一致的。

以此类推,第三个账本的信息是一致的,第二个和第一个账本的信息也是一致的。

比特币属于_比特币属于那个交易所_比特币属于什么专业研究

每个账本都会产生自己的区块,所有这些区块串联起来的结构称为区块链。

每个节点在检查数据时,只需要检查最后一个块的摘要信息。

如果最后一个区块的汇总信息相同,则说明整个区块链的账本是一致的,从而可以完成高效的账本验证。

4.2 归属问题(某个账户中的比特币属于谁?)

某个账户中的比特币属于谁?

比特币属于什么专业研究_比特币属于那个交易所_比特币属于

谁可以在这个账户下支付比特币?

刷卡的时候需要提供两个东西:银行卡+密码。 如果银行卡卡号和密码与银行系统中的一致,即可支付。

如果存在欺诈行为,银行将检查帐户所有者。

开户时,我们确认了我们对该账户的所有权

比特币属于_比特币属于什么专业研究_比特币属于那个交易所

比如有诈骗账户,0001账户有一笔200元的款项给0002账户,

如果银行确认存在欺诈行为,银行可能会撤销该账户。

比特币属于那个交易所_比特币属于_比特币属于什么专业研究

在点对点交易中,如何在没有第三方(如银行)参与的情况下确定账户的归属?

账号用地址表示,转账过程就是将比特币从一个地址转账到另一个地址。

账本上不保存任何个人信息,谁可以使用这个地址进行支付,谁就拥有这个账户。

比特币属于_比特币属于什么专业研究_比特币属于那个交易所

比特币用一个地址来代表一个账户,一个地址有对应的私钥。

谁拥有这个私钥,谁就可以使用这个地址进行支付。

比特币地址和私钥是非对称关系,私钥可以通过一系列的哈希运算得到比特币地址。

但是比特币地址不能反转私钥。

比特币属于_比特币属于那个交易所_比特币属于什么专业研究

谁拥有该地址的私钥,谁就可以使用该地址进行支付。

此时,所有权问题就变成了:如何在不泄露私钥的情况下证明我们拥有一个地址的私钥。

签署交易分为两步:

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

② 用私钥对摘要进行签名

比特币属于那个交易所_比特币属于什么专业研究_比特币属于

签名计算完成后,支付节点将在整个比特币网络中进行广播。

广播内容包括交易的原始信息和交易的签名信息。

整个广播过程是一个循环过程。

比特币属于_比特币属于什么专业研究_比特币属于那个交易所

比特币属于_比特币属于什么专业研究_比特币属于那个交易所

当节点收到广播并通过验证后,将再次广播给已知的相邻节点。

其他节点收到广播信息后,会验证:

验证签名信息是否为付款方使用私钥对交易信息进行签名生成。

比特币属于_比特币属于什么专业研究_比特币属于那个交易所

签名和验证是逆操作:签名是一个加密过程,验证是一个解密过程。

比特币属于_比特币属于什么专业研究_比特币属于那个交易所

关于隐私:整个账本没有任何个人信息,保证了比特币的隐私性。

关于安全:银行卡里的¥可以被银行冻结。 在比特币中,只要我们不泄露私钥,账户的¥是安全的。

4.3 为什么要参与记账? (挖矿) 4.3.1 为什么要记账?

既然要付出成本,为什么还要让节点参与记账呢?

这个奖励也是比特币发行的过程。

4.3.2 挖矿——工作量证明

记账有奖励。 每次记账时,系统都会向记账账户发放一定数量的比特币。

如果大家同时记账,就会出现账目不一致的情况,必须要有一定的规则来限制大家的账目:

① 一段时间内(一般10分钟),只有一个人可以预订成功

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

③ 其他节点复制记账结果

在解决密码难题时,存在一定的随机性。

而记账是可以得到奖励的,所以大家形象的把记账挖矿的过程叫做。

在验证账本时,每次记账时,都将上一个账本的Hash值和当前账本信息一起作为Hash的原始信息。

如果只是这样一个过程,显然每个人都可以轻松完成记账。

为了保证一段时间内只能一个人记账,就需要增加记账的难度。

因此,比特币系统要求Hash值满足一定的条件(必须以N个0开头,比如18)。

为了满足Hash值以N个0开头,在计算Hash值时必须引入一个变量(输入信息的任何细微变化都会导致Hash值发生变化)。

通过不断改变随机数的值,每次都会得到一个新的Hash值,总能找到N个0开头的Hash值。

第一个找到 N 个从 0 开始的哈希值的节点可以获得唯一的记账权。

比特币属于那个交易所_比特币属于_比特币属于什么专业研究

比特币属于_比特币属于什么专业研究_比特币属于那个交易所

① 收集广播中未记录在账本中的交易

② 验证交易有效性(交易签名是否正确,支付地址是否有足够余额)

③ 添加交易给自己转账(挖矿奖励)

如果一个节点比其他节点更快地找到哈希值,则整个交易集将被打包到区块链中。

这样,打包的节点就得到了这个奖励。

该块的哈希值以 18 个零开头。

Hash值是一个十六进制的字符串比特币属于,每一位的取值范围是0-F,所以为0的概率是1/16。

那么连续18位全部为0的概率为1/(16的18次方),即理论上尝试Hash运算的次数为16的18次方。

这么大的计算量需要非常大的计算设备投资,消耗非常大的电量。

比特币属于什么专业研究_比特币属于那个交易所_比特币属于

目前还没有独立的矿工进行挖矿,因为可能几十年都没有办法计算出符合要求的Hash值。

现在基本上是矿工联合起来组成矿池进行挖矿。 矿池中的矿工按照算力的百分比分享收益。

从经济角度来看,只要挖矿还有利润,总会有新的矿工加入,加剧竞争,提高算力难度。

因此,挖矿会消耗更多的算力和电力,这样一来,最终的成本就会接近于收益。

4.4 以谁的书为准? (共识机制)

第一个完成工作量证明的节点优先拥有唯一记账权,可以打包区块获得奖励。

每个矿工独立完成工作量证明,所以会出现一种情况:

在比特币系统中,没有中心化的仲裁机构,仲裁裁决无法通过。

矿工如何协商达成共识比特币属于,让大家同意使用谁打包区块?

在比特币系统中,这个问题被称为共识机制。

在经济生活中,每个人都追求利润的最大化

一个节点的工作量只有在其他节点同意的情况下才有效:

新打包的区块需要其他节点进行验证,验证通过后才会加入区块链。

并且在网络上传播,打包区块的节点也获得收益。

如果不遵守规则,打包的区块将不会被添加到区块链中,因此不会获得任何收入。

因此,节点会自发遵守约定,从而达成共识。

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

比特币属于什么专业研究_比特币属于那个交易所_比特币属于

每个节点只识别累计工作总量最大的区块链。

每个节点都是独立的,独立选择累计工作量最大的区块链,对这条区块链进行扩展。

共识机制的最终目标是保证比特币运行在工作量最大的区块链上。

主链:包含区块最多的链

同时,两名矿工各自获得工作量证明的解,各自打出一个数据包(#3458A,#3458B),并在网络上广播。

每个接收到有效块的节点都会将这个新块拼接到主链中。

两个区块在传播时,有的节点先收到#3458A,有的节点先收到#3458B,有的节点同时收到#3458A和#3458B。

收到#3458A 的节点将在主链上扩展#3458A。

收到#3458B 的节点将在主链上扩展#3458B。

同时收到#3458A和#3458B的节点会比较这两个区块,选择工作量大的区块扩展主链。

另一条链保存为备用链,因为备用链可能会被用作主链,因为后面会产生更多的块。

这会创建一个分叉。

比特币属于什么专业研究_比特币属于_比特币属于那个交易所

收到#3458A块的节点会以#3458A为父块,在#3458A之后打包。

收到#3458B块的节点将使用#3458B作为父块,并在#3458B之后打包。

这时候两条链竞争,但总会有一方先发现工作量证明,然后传播解决的区块。

例如,以#3458B为父块的节点生成#3459B并传播它。

然后以#3458A作为父块的节点,收到#3458B和#3459B后,发现#3459B的链更长,

#3458A所在的链将被丢弃,#3459B所在的链将作为主链。

这解决了分叉问题。

比特币属于什么专业研究_比特币属于_比特币属于那个交易所

由于网络的不确定性,有时节点会先收到#3459B,而不是#3458B。

此时#3459B将作为孤块放入孤块池。

一旦节点收到#3458B,就可以链接块。

比特币将区块间隔设计为 10 分钟,这是更快的交易确认和更低的分叉概率的折衷。

更短的区块生成间隔将允许更快地确认交易,但也会使分叉更频繁。

较长的区块生成间隔会减少分叉的次数,但会使交易确认时间变长。

完整的工作量机制:工作量证明+最长链的选择。