以太坊,AB C.

这是系列文章中的第四篇,我们讨论了区块链,比特币和以太坊背后的核心概念。 在Verify,我们正在以太坊区块链上建立信誉协议,并分享这些帖子,以与更广泛的加密社区分享我们的知识。


以太坊是一个虚构的元素。 当前被称为基于开源区块链的分布式计算平台。 它的创始人是Vitalik Buterin,他之所以选择以太坊,是因为它里面有以太一词,“以太坊是一种假想的无形介质,它渗透到宇宙中并允许光传播”(您可以在此处看到Vitalik对名称选择的反应)

我刚才提到“基于区块链”; 这是否意味着它类似于比特币? 是的,它是一个区块链,具有一个额外的重要功能,并且是内置的图灵完备的编程语言。 用外行的术语来说,图灵完备的语言是允许您运行使用其编写的任何程序的语言。 也就是说,您可以编写任何算法并将能够执行它。 例如,一个计算器(无论是科学的还是普通的)都没有完整完成。 一台允许编程的计算机。

以太坊中的图灵完备的编程语言允许任何人在区块链上编写代码; 该代码被称为“智能合约”。 这意味着您可以创建分散的应用程序,这些应用程序可以具有自己的转换功能,格式以及所有权规则。 它基本上是带有编程语言的比特币,这是以太坊和比特币之间的主要概念差异。

以太坊账户:

让我们探讨两者之间的其他差异。 在之前的文章中,我们讨论了比特币的状态和过渡以及如何执行交易。 比特币中的状态基本上是UTXO的集合; 在以太坊中,状态由称为“ 帐户 ”的对象组成。 每个帐户都有一个20字节的地址。 在比特币中,状态转换是从一个州到另一个州的转移。 在以太坊中,状态转换是帐户之间的直接转移。

以太坊账户包含:

nonce :计数器,以确保每个事务只能被处理一次(我们将在另一篇文章中进行探讨)。

醚平衡以太坊的加密燃料)

合同代码(可选)

存储(默认为空)

帐户可以分为两种类型: 普通帐户(称为外部帐户)合同帐户

外部拥有的帐户由私钥控制,它没有代码,并且可以从中发送已签名的交易

合约账户受其合约代码控制。 它们包含代码,并且每当它们接收消息事务并因此访问键/值类型的存储)和/或创建其他合同时就执行它们。 合约控制自己的以太币余额和它们的存储(键/值类型)。 醚是加密燃料。 为简单起见,将其视为以太坊中的货币。 合约以字节码格式存在于区块链上(不用担心有高级语言来编写合约;字节码只是它们的编译方式)。

我刚才提到了消息交易一词 ; 在其他几个资源中,消息和事务可互换使用; 但是有一个重要的区别:

以太坊中的交易签名的数据包,其中包含来自外部账户的消息,并且已在区块链注册 。 请注意“签名”一词,因为这是交易的一个关键方面。 交易包含:

–一些重要的标识字段,例如:

–邮件的收件人。
–标识发件人的签名。
–从发送者到接收者的以太转移量。
–数据字段(可选)
保留任何要发送到合同的数据。 – STARTGAS值,
将其视为发件人在整个交易中愿意消耗的天然气量。 – GASPRICE,
代表发件人按计算步骤(清单n)支付的费用。

注意 :以太坊中的气体是计算单位; 通常,一个计算步骤花费1气体。 还请记住,交易数据字段中的1个字节消耗5汽油。 汽油价格通常以桂为单位。 1个醚= 10⁹Gwei。 桂= 10⁹ 天然气价格通常在矿工之间有所不同。

我们已经在比特币中看到了网络如何专注于执行一种类型的应用程序,那就是硬币的转移。 在以太坊中,由于具有编程语言,因此可以构建不同类型的应用程序。 在所构建的许多不同应用程序之间,执行以太坊交易所需的处理能力将有很大差异; 可能有复杂的交易也有简单的交易。 复杂的事务执行起来会更加昂贵,因为它们需要更多的计算能力。 更简单的交易会更便宜。 这就是为什么每笔交易都有一个STARTGAS和GASPRICE的原因。 在执行开始时,STARTGAS将乘以GASPRICE,总和就是从发件人帐户中删除的以太币。 每个事务都应限制执行代码所需的计算步骤数。 STARTGAS和GASPRICE非常重要,因为它们有助于防止浪费或无限循环。 我们拥有STARTGAS和GASPRICE(而不是像“ ETHLIMIT”这样的单一指标)的原因是,天然气是以ETH计量的,而ETH的价格相对于USD波动(但这与执行程序的实际成本无关) )。 通过将两者分开,矿工可以简单地按GASPRICE(从最高到最低)对挂起的交易进行排序,并将执行优先级给予每单位天然气提供更多ETH的交易(即更高的GASPRICE)。 要找出适合使用的GASPRICE,请访问http://ethgasstation.info/。

注意 :交易或合同中分配的天然气价值适用于所有执行,包括子项目。 例如,A向B发送了一笔100瓦斯的交易。 B消耗30气体并向C发送消息,而C使用50气体,现在B仅剩20气体。

另请注意,所使用的天然气被授予执行交易的矿工。 矿工可以自由选择要包括在区块中的交易。 GASPRICE激励他们在区块中添加您的交易。 矿工可以随机选择交易,但大多数人遵循的策略是列出从最高GASPRICE到最低(或到他们愿意接受的最低价值)的交易。 如果不是紧迫性,那是什么? 您可以设置足够的GASPRICE,然后等到将您添加到块中。 建议大多数用户降低其GASPRICE,其想法是通过降低GASPRICE,矿工更有可能反过来降低其收费。

现在消息呢?

消息基本上是永远不会序列化的虚拟对象,仅存在于以太坊执行环境中。 它们在合同之间发送。

一条消息包含:

–消息的发送者。
–邮件的收件人。
–与消息一起转移的乙醚量。
–可选的数据字段;
– STARTGAS值。

它非常类似于交易,除了它源自合同而不是外部拥有的帐户。 这允许合同一起通信。 该消息由命令(操作码)CALL产生。

现在,这些是以太坊的基础。 在下一篇文章中,我们将研究交易实际上是如何发生的? 敬请关注。