以太坊技术入门

几周前,我参加了一个关于以太坊的演讲,并对它提供的可能性着迷,并开始探索生态系统。 这是一个新兴的生态系统,正在开发者社区中迅速追赶。 在这篇文章中,我将解释以太坊背后的技术,以便我们可以开始使用以太坊进行开发。 假设您具有技术背景和对区块链的基本了解,以便我们可以讨论以太坊的实现。

区块链提供了一个去中心化的 点对点网络,其中数字资产可以从一个对等点转移到另一个。 我们在去中心化网络中面临的主要问题是谁将验证所有正在进行的交易的有效性? 简短的答案是每个人。

想象一下包含一些信息的文档。 网络中的每个人都保留相同文档的副本。 如果文档中有更新,则该更新会通过网络传播,每个人都将更新自己的文档副本。 假设一个新人在文档中带有不同的内容,那么其他所有人都可以验证其副本并检测到该新人在撒谎并将其踢出网络。 基本上这就是区块链的工作方式。

首先,我们需要了解一些基本术语才能上手。

杂凑

我们可以使用加密哈希函数(SHA256)将任何字符串转换为其等效的哈希。 哈希具有两个独特的属性:

  1. 产生的哈希与输入字符串具有一对一的映射关系。 相同的输入始终会产生相同的唯一哈希,并且其他任何输入都不能具有相同的哈希。
  2. 即使输入字符串中的很小变化也将导致输出哈希值发生较大变化 ,因此可以轻松地验证输入。

交易

资产从网络中的一方转移到另一方的过程称为交易。 所有交易都被记录并永久存储。假设A想要将5个以太币转移到B。这就是网络中的交易。

许多交易合并在一起形成一个块。 每个块均包含一个唯一的哈希 ,可在网络中对其进行标识。 使用前一个块的哈希将一个块链接到前一个块。

创世块

网络中所有节点都同意的区块链的初始块或状态。

区块链

随着交易的增加,创建了许多区块,然后使用其哈希将它们链接在一起,形成区块链网络。

工作证明

工作量证明是难以生成(昂贵,耗时)但他人易于验证且满足某些要求的数据。 当网络中存在事务时,任何尝试处理该事务的节点都应解决密码难题,以使其能够被该块接受。 这就是工作证明。 只能通过反复试验才能完成将要执行的工作,并且必须先对网络中的任何有效交易执行此工作,然后才能使其成为区块链的一部分。

矿业

通过执行工作证明来处理交易并将其添加到区块中的过程称为挖掘。 一旦交易被接受为区块链的一部分,矿工(节点)将获得交易的奖励。

默克尔树

Merkle树是一棵树,其中每个非叶节点都用其子节点的标签的哈希标记。 我们可以验证从其他节点接收到的数据块是否完好无损,甚至可以检查其他节点没有说谎并发送假块。

工作中

现在,我们可以继续进行区块链的基本工作。

  1. 每个节点都从创世块开始,并逐步发展到区块链的“当前状态”。 当它收到一个新块时,每个节点都会验证其哈希值,从而验证其是否为有效块,并继续构建链。
  2. 一旦网络中存在交易,矿工将通过生成所需的工作证明来进行挖掘。 然后,矿工将其添加到他的网络副本中,并将更改传播到附近的节点。
  3. 收到它的所有节点都将验证工作量证明,然后将其添加到其各自的副本中。 如果无效,则不会将该块添加到链中。
  4. 当网络中存在冲突时,将应用“最长链规则”来解决它。 假设有两个矿工声称拥有相同的区块,并且都拥有有效的工作证明。 然后应用最长链规则,无论哪个区块链最长的矿工都将作为赢家,并将其添加到区块链中。

现在您已经掌握了区块链,让我们继续以太坊。 以太坊是一个去中心化的平台,它使我们能够编写完全按照编程方式运行的应用程序,而不会出现停机,审查,欺诈或第三方干扰的可能性。 它由以太坊虚拟机(EVM)组成,以太坊提供了可以在其中执行所有智能合约的容器。

智能合约

以太坊允许我们在区块链上编写应用程序,该应用程序称为智能合约。 这些智能合约位于区块链上,并且本质上是不可变的 。 部署后,无法在区块链中删除或修改代码。 可以使用Solidity或其他语言编写,但最优选的是Solidity。 这是一种图灵完整的语言。

以太是以太坊区块链中使用的加密货币。

帐目

在以太坊中,状态是由称为“帐户”的对象组成的,每个帐户都有一个20字节的地址,状态转换是帐户之间价值和信息的直接转移。 以太坊有两种类型的账户:

  • 外部拥有的帐户:这些帐户由用户拥有,由私钥控制。 外部拥有的帐户没有代码,并且可以通过创建和签名交易从外部拥有的帐户发送消息。
  • 合同帐户:这些帐户归合同代码所有。 在合同帐户中,合同帐户每次接收到一条消息时,其代码就会激活,从而使其可以读写内部存储并发送其他消息或依次创建合同。

加油站

随着智能合约的完善,任何无限循环或其他代码都可以编写,并且区块链可能崩溃。 为了防止这种攻击,以太坊使用了一种称为gas的概念。 天然气不过是一些交易成本,使用以太币(以太坊链中的基本货币)执行交易需要支付一定的交易成本。 每条指令都需要执行一些指令,并且指令与需要修改区块链的任何调用一起发送。

DAPPS

这些是可以使用智能合约构建的分布式应用程序,并为用户(帐户)提供界面。 可以开发各种类型的应用程序,这些应用程序将与区块链中的智能合约进行交互。

使用以太坊的基本工作流程

我们可以讨论以太坊网络中的基本工作流程,以更好地了解所有这些概念如何协同工作。

  1. 我们可以编写智能合约并将其部署到以太坊网络。 一旦部署,这些合同将无法更改。
  2. 网络中的任何帐户或其他智能合约都可以通过交易执行这些智能合约功能。
  3. 可以通过将交易发送到合约来调用和执行智能合约。 这些交易需要花费一定的费用,并且一定要随交易一起发送。
  4. 有时我们只需要了解某些合同的状态而无需修改区块链。 这些被称为通话,它们不花费任何汽油。
  5. 我们可以通过使用事务和调用执行智能合约来构建各种Dapp,从而允许用户以不同方式直接交互智能合约。

我相信这篇文章提供了对区块链和以太坊的基本了解。 在我的下一篇文章中,我将提供有关使用以太坊构建Dapp入门的详细指南。

如果您喜欢这个故事,请随时通过 https://kaizencoder.com/about 与我联系