主页 > imtoken钱包有客服吗 > 区块链以太坊DApp开发实践(一)——基础知识

区块链以太坊DApp开发实践(一)——基础知识

imtoken钱包有客服吗 2023-10-14 05:07:36

区块链以太坊DApp开发实践(一)——基础知识

系列文章目录

区块链以太坊DApp开发实践(一)——基础知识

前言

从基本概念开始,逐步介绍区块链、共识、分叉等概念。

一、基本概念 1、块

类似于基础数据结构的“链表”,区块是一个可以定义属性、变量、方法的对象,许多区块链接在一起形成区块链。 下面是一个简单的块示例。

type Block struct {
	Number string // 区块号
	PreHash string // 前一个区块的哈希值
	Hash string // 自身的哈希值
	Value string // 携带的数据,可以将类型定义为string、自定义类型等满足不同需求
	Create int64 // 创建的时间戳
} 

sitesohu.com 以太坊公链私链_多少dapp应用建立在以太坊去_以太坊公链dapp安全吗

在区块链中,同一个区块号的区块不能以相同的身份在同一条链中出现两次(以太坊允许不同含义的区块同一个区块号)

一般来说,区块链公链包括但不限于以下技术模块:

加密签名模块 共识机制模块 分布式数据存储模块 点对点传输模块 智能合约模块 App接口模块

当我们把这些模块技术实现的代码集成到一个程序中,就是一个区块链应用。

2.链条

链条一般分为3类:

公链:有很多维护节点,对所有人开放,任何人都可以访问特定数据。 私有链:针对个人或组织。 联盟链:由多个组织团体的节点共同维护,只对组织开放。 2. 共识

区块链的节点都有自己存储数据的地方,节点之间相互通信,但由于彼此不信任,所以并不依赖。

共识机制:为了保持数据的一致性,链上只有一个块号相同的块。

共识是规则。

矿工是区块链节点中的角色,是程序中的功能模块。 矿工和区块链是包容和包容的关系。

sitesohu.com 以太坊公链私链_多少dapp应用建立在以太坊去_以太坊公链dapp安全吗

每个节点都有一个账本,账本的内容是所有节点维护的公链中的区块和区块的相关信息。

在出块过程中,不同的节点可能会产生出块号相同的块,这就需要通过共识算法来选择将哪个块放到公链上。

1.PoW算法

PoW(Proof of Work以太坊公链dapp安全吗,工作量证明),区块链1.0。 就像字面意思一样,谁做的多,谁的话语权就大。 代表是比特币BTC。

比特币挖矿是通过计算匹配某个比特币区块头的哈希值来争夺记账权。

在 PoW 共识算法下,当很多节点都在挖矿时,每个节点都可能挖出一个区块。

比特币区块链定义,一个区块被挖出后,会广播给其他节点,然后每个节点会根据相应的验证方式来验证这个区块是否合法,被确认合法的区块会被纳入进入主链。

在比特币挖矿中,一旦计算出正确的哈希值,就会生成一个新的区块,并将生成的区块信息广播给其他节点。 其他节点收到广播信息后,停止计算工作,开始验证区块信息。 如果信息有效,则最新区块被节点识别,各节点开始挖下一个区块; 如果信息无效,每个节点继续自己的计算工作。

问题是随着比特币难度系数的增加,哈希值的计算会越来越困难,导致计算需要大量的算力资源和巨大的工作量。

工作量证明的优点:

战俘缺点:

2. PoS 算法

多少dapp应用建立在以太坊去_sitesohu.com 以太坊公链私链_以太坊公链dapp安全吗

PoS(Proof of Stake,股权证明),区块链2.0。 就像字面意思一样,谁的份额多,谁的话语权就大。 代表是以太坊ETC。

在 PoS 中,份额只是一个衡量话语权的概念,可以使用更复杂的实现方式,比如多个变量参与份额值的计算。

只要你有股份,不管你有多少,你就有话语权,就有被选中的概率。

该算法没有挖矿过程,而是将权益分配比例写入创世区块,然后进行转账交易(IPO公募方式),逐渐分散到用户的钱包地址,并通过“利息”**的为节点地址添加货币实现奖励的方式。

权益证明优势:

PoS 的缺点:

3. DPoS算法

DPoS(Delegated Proof of Stake,股份授权证明机制),区块链3.0。 它的出现是为了解决 PoW 和 PoS 的缺点。 代表是柚子EOS。

DPoS 引入见证节点,可以生成区块。

注意:具有出块权限的是witness节点,不是stake节点。

持有代币的是权益节点,但不一定是见证节点。 见证节点由持股节点投票选出。

DPoS选举方式:

多少dapp应用建立在以太坊去_sitesohu.com 以太坊公链私链_以太坊公链dapp安全吗

每个利益相关者节点都可以投票给见证节点。 获得同意票总数前 N 名的候选人可以成为见证节点。 N 应该满足:至少一半的选民认为 N 已经完全去中心化。 最好是奇数。

第 3 点表明,至少有一半的投票利益相关者节点认为,当达到 N 个见证人时,区块链已充分去中心化。

第四点是解决“分叉”(下一节会提到)。

每个维护周期更新见证节点候选列表,候选者会被随机排序,然后按顺序,有一定的权限时间出块。 如果见证人不能在给定的时间片内生成区块,则出块权将移交给下一个见证人。

DPoS 的优势:

DPoS 的缺点:

三、分叉

原因:

由于区块链网络是分布式的,总有至少两个节点同时出块的可能,就可能出现分叉。

假设节点A和B同时计算出合法的哈希值,生成一个区块block,并进行广播。 节点C和D都先后收到了A和B的块。但是由于C靠近A,D靠近B,C会接受A的块,拒绝B的块; 类似地,D 将接受 B 的区块并拒绝 A 的区块。 所以出现分叉。

分叉的两种情况:

软分叉。 老节点可以认可新节点产生的区块,并对最终结果进行修正。 硬分叉。 老节点无法认可新节点产生的区块以太坊公链dapp安全吗,最终的结果就是链一分为二。 1. 软分叉

以太坊公链dapp安全吗_sitesohu.com 以太坊公链私链_多少dapp应用建立在以太坊去

有两种类型的软分叉:

(1) 每个节点使用相同的共识算法

对于这种情况,矿工自我纠错相对容易。 由于节点网络整体解决问题的能力与矿工数量成正比,因此训练的增长速度不同。 一段时间后,一条链的长度总会超过另一条。 当矿工发现全网有更长的链时,就会放弃当前链,复制长链,在长链的基础上继续挖矿。 但并非所有分叉都会自动更正。

最优链选择机制:

最长链机制。 基于最长链,比特币就是这样一种机制。 其他链选择机制。 以太坊“幽灵协议”机制。

(2) 共识规则变更

共识规则变更后,老节点使用旧共识规则,新节点使用新共识规则; 旧节点可以识别新节点的区块,但新节点不能接受旧节点的区块。

这种软分叉不一定能靠节点自行纠错,解决方案必须靠人力将节点升级到同一个版本。

当新节点的全网算力大于51%**时,无论旧节点是否升级,最长链最终都是由所有新节点产生的区块组成的链,可以被识别通过新旧节点。 当新节点算力低于50%**时,无法通过短复制和长复制统一,结果就是硬分叉。 2. 硬分叉

硬分叉过程:

开发者发布新代码,新节点代码改变区块链规则,与旧代码不兼容,节点程序产生分叉(Software Fork)。 区块链网络中的一些节点开始运行新的节点代码,新规则产生的交易和区块被老节点拒绝,老节点开始与发送被拒绝的交易和区块的新节点暂时断开连接。 结果,整个区块链网络分叉(Network Fork)。 新节点矿工按照新规则开始挖矿,老节点矿工仍然使用旧规则,矿工算力不同导致分叉(Mining Fork)

最终,整个区块链分叉(Chain Fork)。

总结

本章介绍区块链的基础知识,包括区块链的定义、链的分类、共识算法等。