课程链接:https://www.coursera.org/learn/blockchain-basics/home/week/2
本文为自己听课时做的笔记,翻译可能不太准确,望谅解。
目录
Ethereum Blockchain
以太坊区块链:智能合约 Ethereum Blockchain: Smart Contracts
以太坊结构 Ethereum Structure
以太坊操作 Ethereum Operations
激励模式 incentive model
Quiz Resources
Quiz Directions
比特币和以太坊区别:
左边是用于启动交易的比特币区块链和钱包应用程序。右边的是Ethereum,它在将区块链转换为计算框架方面迈出了重要的一步。
1)Ethereum支持智能合约 Smart Contracts 和执行智能合约的虚拟机。
2)智能合约反过来使分散的应用程序能够完成比价值转移更多的任务。
学习目标:
1)从高层次上讨论以太坊区块链的创新,即智能合约。
2)说明ethereum区块链协议、结构元素和操作方面。
3)演示gas的概念,gas 或代码执行的付款模型和Ethereum区块链的激励模型。
智能合约是什么?
智能合约是部署在区块链节点中的一段代码。智能合约的执行由嵌入在事务中的消息发起。
数字货币转账要求简单的加减法。Ethereum支持可以执行更复杂操作的事务。
怎样写一个智能合约?
从结构上讲,智能合约类似于面向对象设计中的类定义。它有数据、函数或方法,带有修饰符public或private,以及getter和函数集。特定的编程语言,如Solidity,是为编写智能合约而设计的。
第一行用pragma表示稳定语言的版本。合同的名字在第一行。
此特定契约用于一个整数存储。该整数的数据定义为类型 uint 来存储数据。
为写入和读取数据定义了两个函数,Set 和 get.
智能合约中的代码在何处执行? 它位于节点的什么位置?
我们需要一个计算基础结构 computational infrastructure 来执行任意代码。Ethereum网络中的每个节点都应该能够执行代码,而不管底层的硬件或操作系统的类型。与底层硬件或操作系统类型无关。
进入Ethereum虚拟机,EVM。EVM为合约代码提供了一个随处可以运行的阻塞层 obstruction layer。
一个高级编程语言编写的智能合约被翻译成EVM字节码,然后部署在Ethereum虚拟机EVM上。每个节点将在EVM上托管相同的智能契约代码。
总结:
智能契约为区块链支持的信任基础设施添加了一层逻辑和计算。智能契约允许执行代码。提升比特币区块链的基本价值转移能力。这个智能契约的代码是用高级语言(如solid)编写的,并编译为字节码。智能契约的代码是在一个称为Ethereum虚拟机的特殊结构上执行的。
从业者角度:企业 Practitioner's Perspective: The Enterprise
Ethereum已经出色地解决了如何解决这些规模和隐私问题,以及公共网络需要解决的许多其他问题。企业Ethereum联盟是最大的致力于Ethereum协议的实体组织,并将其发展成行业可以使用的东西。但与此同时,围绕着Hyperledger项目的公司,Fabric, Iroha, Sawtooth,以及其他所有这些在Linux基金会下的协议项目,他们称之为Hyperledger项目。这导致了围绕渠道和合同隔离的一系列其他突破。我们需要一些东西的透明度和其他东西的不透明度,并得到正确的混合是非常困难的。因此,我们需要像通道和图表这样的东西,现在在以太坊等离子体和我们所谓的第二层技术,这将在今年和明年出现,这将真正改变我们区块链的概念。
阅读材料:
Smart Contracts: The Blockchain Technology That Will Replace Lawyers
Introduction to Smart Contracts
What is Ethereum?
Ethereum正式引入了作为协议一部分的帐户的概念。帐户是交易的发起者和目标。交易直接更新账户余额,而不是像比特币UTXOs那样维护状态。它允许在可能导致状态转换的帐户之间传输值、消息和数据。这些传输是使用事务实现的。
有两种类型的帐户,外部拥有的帐户和合同帐户。
外部拥有的帐户或EOA由私钥控制。合同帐户或CA由代码控制,只能由EOA激活。
需要一个外部拥有的帐户来参与以太坊网络。它使用交易与区块链交互。合同帐户代表智能合约。
每个账户都有货币余额。参与节点可以发送事务进行以太传输,也可以发送事务调用智能合约代码,或者两者都可以。这两种交易都需要收费。帐户必须有足够的余额来支付激活交易所需的费用。费用用Wei支付。
以太坊的一条交易包括:
1)信息接收者
2)发送方授权传输的数字签名
3)转账金额
4)一个可选的数据字段或有效载荷,它包含一条到合同的消息
5)STARTGAS是一个值,表示允许事务执行的最大计算步骤数
6)gas 价格:表示发送方愿意为计算支付的费用的值
智能合约执行会产生费用,可获得的金额由各个gas fields指定。
Ethereum块结构具有区块头header 、交易transaction 和副区块头 runner-up block headers,区块详细信息 Block details。
总结:账户是以太坊协议的基本单位。外部拥有的帐户和智能合同帐户。一个Ethereum事务不仅包括转移Ethers的字段,还包括调用智能合约的消息。Ethereum块包含通常的前一个块hash、nonce、交易细节,但也包含关于 gas 或费用限制、智能合同状态和亚军报头的细节,我们将在后面讨论。
阅读材料:
Smart Contracts: A White Paper
Account Management
Native: Account management
测试题:
Ethereum节点是表示业务实体或单个参与者的计算系统。
Ethereum full节点承载事务发起、验证、挖掘、块创建、智能契约执行和Ethereum虚拟机EVM所需的软件。
智能合约是在一个可以有多个智能合约的EVM上设计、开发、编译和部署的。
当事务中的目标地址是智能合约时,在EVM上激活并执行与智能合约对应的执行代码。
执行所需的输入是从事务的有效负载字段提取的。智能合约的当前状态是其中定义的变量的值。智能合同的状态可以通过执行更新。执行的结果写在收据上。区块链同时维护状态散列state hash和接收散列 receipt hash。我们将在以后的智能合约课程中详细阐述这些。所有生成的事务都经过验证。事务验证包括检查时间戳和nonce组合是否有效,以及是否有足够的执行费用。
网络中的矿工节点接收、验证、收集和执行事务。工作中的智能合约代码由所有矿工执行。广播和收集经过验证的事务以创建块。所使用的一致协议是基于内存的,而不是基于cpu的工作证明。
阅读材料:
How Ethereum Works
What Is Meant By The Term “Gas”?
挖矿 mining 是一个用来确保网络安全的过程,它通过验证计算结果、收集它们以创建一个区块、验证它们并广播它们。
以太坊也使用基于激励的模块创建模型。
以太坊中的每个动作都需要加密燃料crypto fuel 或gas。
为便于使用标准值进行计算,gas point 是比Ether小的费用单位。
Gas points are used to specify the fees inside of Ether, for ease of computation using standard values.
gas point 允许独立于加密货币的交易费用和计算费用的估值。Ether 作为一种加密货币,它的价值可能会随市场波动,但 gas point不会变化。
以太坊为每种类型的操作指定了gas point 。挖矿过程计算交易执行所需要的 gas point . 如果交易中的gas point不足够规定的费用,将被拒绝。执行所需的 gas point 必须在帐户余额中,以便执行。如果在执行交易后还有剩余金额,则将其返回到原始帐户。
Gas limit :一个区块可以使用的 gas point 数。
例如,如果一个区块指定了1,500,000单位的 gas,并且基本的 Ether 交易费用是 21,000,那么这个特定的Ethereum块可以容纳大约70个普通的 Ether 交易。如果我们将智能合约交易也添加到这个块中,这通常需要更多的 gas,并且这个块的交易数量可能会更少。
Gas spent:块创建完成时实际花费的 gas 量。
挖矿激励模型:
工作证明谜题的赢家,即创建新区块的矿工,将受到 3 Ethers 的基本费用以及以太坊区块链中的交易费用的激励。获胜的矿工还将获得执行智能合约交易的费用,gas point。
除了获胜者之外,可能还有其他的矿工也解决了这个难题。这些能解决难题,但是没有赢得区块的矿工称为Ommers。他们创建的区块称为 Ommer Blocks。这些作为Ommer块或侧块添加到主链中。作为安慰和网络安全,Ommer矿工获得了总 gas point 的一小部分。
总结:以太坊的任何交易,包括 Ethers 的转让,都需要在交易中注明费用或 gas point。采矿者为安全、验证、智能合同的执行以及区块的创建支付费用。我们展示了以太坊区块链的高级视图。
阅读材料:
Vitalik Buterin Doubles Down on Ethereum Incentive Strategy
Ether
Proof of Work vs Proof of Stake: Basic Mining Guide
Etherscan
任务1:探索以太坊区块链中的一个区块(Q1-Q2)
任务2:探索Ethereum中的事务(Q3-Q4)