摘要:既然我们已经了解了以太坊是什么,那么让我们更深入地了解该平台如何在后台运行。考虑“ 什么是以太坊? ”中描述的在线笔记本应用程序。使用以太坊,该应用不需要一个实体即可存储和控制其数据。为了实现这一目标

既然我们已经了解了以太坊是什么,那么让我们更深入地了解该平台如何在后台运行。

考虑“ 什么是以太坊? ”中描述的在线笔记本应用程序。

使用以太坊,该应用不需要一个实体即可存储和控制其数据。为了实现这一目标,以太坊从比特币的协议及其区块链设计中大量借用,但对其进行了调整以支持资金以外的应用。

但是,以太坊旨在抽象化比特币的设计,以便开发人员可以创建具有附加步骤,新的所有权规则,替代交易格式或不同的状态转移方式的应用程序或协议。

以太坊的``全面完成''编程语言的目标是允许开发人员编写更多程序,在这些程序中区块链交易可以控制和自动化特定结果。

如指南“ 以太坊智能合约的工作原理 ” 所述,这种灵活性可能是以太坊的主要创新。

以太坊区块链

以太坊区块链的结构与比特币非常相似,因为它是整个交易历史的共享记录。网络上的每个节点都存储此历史记录的副本。

与以太坊的最大区别在于,除所有以太坊交易外,其节点还存储着每个智能合约的最新状态。(这比描述的要复杂得多,但是下面的文字应该可以帮助您弄湿自己的脚。)

对于每个以太坊应用程序,网络都需要跟踪“状态”或所有这些应用程序的当前信息,包括每个用户的余额,所有智能合约代码以及它们的存储位置。

比特币使用未花费的交易输出来跟踪谁拥有多少比特币。

虽然听起来比较复杂,但是这个想法很简单。每次进行比特币交易时,网络都会像纸币一样“打破”总金额,以使数据的行为类似于物理硬币或变化的方式发行比特币。

为了进行将来的交易,比特币网络必须将您所有的零钱加起来,归类为“已花费”或“未花费”。

另一方面,以太坊使用账户。

像银行账户资金一样,以太币也出现在钱包中,并且可以移植(可以说)到另一个账户。资金总在某个地方,但没有所谓的持续关系。

icone:以太坊如何运作-区块链315

什么是以太坊虚拟机?

对于以太坊,每次使用程序时,成千上万台计算机组成的网络都会对其进行处理。

用特定于智能合约的编程语言编写的合约被编译为“字节码”,称为“以太坊虚拟机”(EVM)的功能可以读取和执行。

所有节点均使用其EVM执行此合同。

icone:以太坊如何运作-区块链315

请记住,除了跟踪当前的“状态”之外,网络中的每个节点还保存交易的副本和网络的智能合约历史。每次用户执行某项操作时,网络上的所有节点都必须同意发生此更改。

此处的目标是使矿工和节点的网络负责将州与州之间的转移转移,而不是像PayPal或银行这样的授权机构。比特币矿工证实了比特币所有权从一个人到另一个人的转移。EVM按照开发人员最初编写的任何规则执行合同。

EVM上的实际计算是通过基于堆栈的字节码语言(机器可以读取的一和零)实现的,但是开发人员可以使用诸如Solidity和Serpent之类的高级语言编写智能合约,人类更易于阅读和使用。写。

正如我们的指南“ 以太坊挖矿的工作原理 ”中所述,矿工是防止不良行为的人-例如确保没有人花钱超过一次并拒绝尚未付款的智能合约。

有数千个以太坊节点,每个节点都在编译和执行相同的代码。

但是,您可能会想,这不比普通计算贵吗?是的。这就是为什么网络只能仅用于特定用例的原因。

官方的以太坊开发教程 承认了这种低效率,指出:

“大致而言,一种很好的启发式用法是,您将无法在EVM上执行1999年以来无法在智能手机上执行的任何操作。”