主页 > imtoken钱包苹果 > 深入理解区块链以太坊

深入理解区块链以太坊

imtoken钱包苹果 2023-04-21 07:47:36

Love-Ethereum以太坊

区块链通常被定义为去中心化的分布式记账系统。 该系统中的节点无需相互信任,通过统一的共识机制共同维护一个账本。 前几年大家都会关注比特币,不会单独谈论区块链技术。 直到2015年,区块链的概念才被单独提出,让更多人了解,并朝着更广泛的应用场景发展。 在这个时间点发生这种情况的主要原因之一是以太坊的出现和日益成熟。

简单地说,以太坊是一个具有智能合约(Smart Contract)功能的公共区块链平台。 以智能手机为例,如果以太坊是智能手机的操作系统,那么智能合约就是智能手机上的应用程序(App)。 通过以太坊,用户可以直接开发自己的区块链应用。

以太坊 (ETH)

以太坊是以太坊发行的数字货币,在以太坊上发起的任何交易都需要支付一定数量的以太币。

ETH的来源包括:预挖+区块奖励+叔块奖励+数个区块参考奖励,具体分配大致如下:

以太坊发行:

交易

以太坊中的交易是指由外部帐户发送到区块链上另一个帐户的消息的签名数据包。 消息主要包括发送方的签名、接收方的地址、交易中的ETH数量等。 在以太坊上 以太坊中的每笔交易都需要支付一定的费用,主要用于支付执行交易所需的计算开销交易。 以太坊中的 Gas 是执行开销的基本单位。

手续费

以太坊中使用 Gas 和 GasPrice 对交易所需的手续费进行定价:

交易内容

交易将包括以下内容:

在不同的场景下,交易分为三种:

web3.eth.sendTransaction(从:sendAddress,到:receiveAddress,值:10000000000)

web3.eth.sendTransaction(from:sendAddress,data:“合约二进制代码”)

web3.eth.sendTransaction(from:sendAddress, to:“合约地址”, data:“调用方法签名和编码参数的哈希值”)

智能合约

在现实生活中,我们经常会遇到这样的场景:买家和卖家想要进行一笔交易。 为保证交易的顺利进行,双方签订合同,声明各自的身份、权利和义务(买方付款、卖方交货的时间节点和方式等),一式两份,每个分开保存。 这样,当交易出现纠纷时,合同就成为寻求法律援助的依据,法律就成为保证合同执行的强制性保障。

虽然合同为交易的顺利进行提供了一定的保障,但也存在不少不足之处。 一旦在交易中发生纠纷,如卖方延迟交货或买方拒绝付款,即使通过法律援助解决纠纷,也会大大降低交易效率。 甚至在某些情况下,合同会失去约束力,如合同含糊不清或合同失效。

那么有没有更高效的方式来保证交易呢? 假设有一个绝对可信和公平的交易代理人,卖方将货物交给代理人,买方与代理人进行一手付款,一手发货的面对面交易。 如果买家拒绝购买,卖家可以从代理处取回货物; 买家不会有付款后收不到货的风险。

智能合约可以充当这样的代理人。 简单来说,智能合约是区块链上的一个虚拟账户在以太坊上发行代币要多少钱,包含合约代码和存储空间。 智能合约的行为由合约代码控制,智能合约的账户存储保存了合约的状态。

与传统合约相比,区块链智能合约具有诸多优势:

从理论上讲,任何计算复杂度的金融交互过程都可以通过智能合约安全自动完成。 除了金融应用,以太坊平台还可以部署和使用在任何对信任、安全和性能有要求的环境中,如财产登记、投票、智能交通、物联网等。

以太坊虚拟机 (EVM)

在以太坊平台上,智能合约的代码运行在以太坊虚拟机(Ethereum Virtual Machine,EVM)中,EVM是一个图灵完备的虚拟机,是以太坊协议的核心。 在以太坊的点对点(P2P)网络中,每个全节点都包含一个以太坊虚拟机。 当节点需要打包或验证区块时,将交易相关的可执行代码发送到EVM中执行。 结果更新以太坊账户的状态并记录在区块链上。

以太坊网络中的每个节点都需要在自己的 EVM 中执行代码,这会导致两个问题:

相关文章密码学重要技术要点

区块链的密码算法对区块的生成、交易的传输等进行加密。

经济学 P2P 网络节点通信(TCP/IP) Merkle Tree - Merkle Tree Merkle Patricia Tree - Merkle Patricia Tree 共识算法介绍

区块链构建的去中心化账本需要解决的首要问题是如何保证账本数据在不同节点上的一致性和正确性,而共识算法正是解决了这个问题。

相关文章经典共识算法

几种经典共识算法分析

战俘

Pow就是通过工作结果证明你已经完成了相应的工作。 工作工程繁琐且效率低下,工作结果的验证却很容易。 例如:我们可以用一份高考成绩单来衡量一个学生在高中三年中各科的学习情况。 Pow 的目的是让区块的创建变得困难,从而防止“女巫”攻击者恶意重新生成区块链。

通用加密货币的 Pow 算法可以描述如下:

节点需要经过大量的哈希计算才能计算出合适的哈希值,计算时间取决于机器的哈希速度。 因此,一般矿机的性能越好,成功计算出合适哈希值的概率就会越大。

位置

Pos是根据网络参与者当前持有数字货币的数量和时间来分配利益的,是货币所有权的证明。

在以太坊中,Pos算法可以描述如下:

验证者参与的共识算法有哪些?

在Pos中,“随机”投票的行为会受到惩罚:

权益证明 Casper 分片

总的来说,如何提高单链区块链的tps性能是__并行化__和__适当的中心化__。 并行化的一种思想是分片。 分片主要用于加速交易验证。

什么是分片

今天,运行以太坊网络的每个节点都必须处理通过网络传输的每一笔交易。 由于每个块的大量验证,这使得区块链高度安全,但同时这意味着整个区块链最多只能与其单个节点一样快,而不是与那些节点一样快。 和。 目前,EVM 上的交易不是并行化的,每笔交易都是全局串行执行的。

解决可扩展性问题必须面对这样的想法,即区块链最多只能具有以下 3 个属性中的 2 个:

我们如何打破这种三难困境,将可扩展性纳入当前模型? 我们不能通过增加块大小来增加吞吐量,或者在以太坊的情况下,通过增加气体使用限制来增加吞吐量吗? 这在理论上是正确的做法,但我们增加的越多,区块生产就越集中在运行在超级计算机上的节点上,从而为进入系统创造了更高的门槛。

更明智的方法是区块链分片的概念。 我们将整个网络状态划分为一系列称为分片的分区,其中包含自己独立的状态切片和交易历史。 在这样的系统中,特定节点只处理特定分片的交易,允许在所有分片中处理比在单个分片中处理所有交易更高的交易吞吐量。

在每个Sharding上,__Collat​​or(整理)节点__用于处理和验证分片的交易,并将相关信息打包到__Collat​​ion(证明块)中。 每个排序规则块都有一个__排序规则头(Collat​​ion Header),它是一个数据片,包含以下信息:

也就是说,每个 Sharding 上有很多 Collat​​ors 来处理和验证交易__。

然后在以太坊上发行代币要多少钱,__supernode__ 会将分片中的所有校对块放入将要添加到以太坊区块链中的块中。 他们的职责是处理所有证明块中的交易,并通过聚合其证明标头来维护所有分片的状态。

如果跨分片进行交易怎么办?

比如我从分片1的地址汇款到分片10的地址,怎么办? 这个系统最重要的部分之一是跨分片通信的能力,否则我们就没有什么创新了。 这是 __receipt__ 发挥作用的地方,以及它如何使上述场景起作用:

Alice(分片 1 上的地址)想要发送 100 个以太币给 Bob(分片 10 上的地址):

整体控制攻击

一旦我们考虑到对网络的可能攻击,分片区块链的问题就会变得更加明显。 一个主要问题是单分片控制攻击的概念,其中攻击者控制单个分片上的大多数整理器,以创建可以提交无效整理块的恶意分片。 我们如何解决这个问题?

以太坊 wiki 上的分片常见问题解答建议在每个分片上随机抽取整理者样本。 这样做的目的是让这些验证者无法提前知道他们得到的是哪个分片。 每个分片都会分配大量的收集人,真正验证交易的收集人会从中随机选出。 随机性的来源需要足够普遍(Common),以确保这种抽样是完全强制性的(Compulsory),并且不能被验证者操纵。

此外,进行这种随机抽样还存在一些潜在的延迟问题,因为验证器在重新分配为整理器时可能需要重新下载新分片,从而引入大量潜在开销。

分片常见问题解答

分片

相关文章