区块链相关知识3

资料

以太坊(ETH)到底是什么? - 知乎 (zhihu.com)

一文读懂以太坊 —— ETH 2.0发展与投研报告 - 知乎 (zhihu.com)

以太坊外部账户和合约账户是如何存在于区块链中,余额又是怎么更新的? - 知乎 (zhihu.com)

「ETH 基本功」什么是内部转账(Internal Transactions)?| 如何销毁通证? - 知乎 (zhihu.com)

以太坊相关

以太坊是一个去中心应用编程平台,相当于一个分布式计算机。

提供了许多API接口,其中封装了网络服务,底层服务(数据库,算法),共识等等。

网络和应用互相成就:应用需要更健壮强大的网络作为承载,网络需要功能完善的应用场景服务用户。

智能合约

一段程序,达到条件后即可执行。

new bing的解释

智能合约是一种计算机协议,是以数字方式促进、验证或执行合同的谈判或履行。智能合约是表示为一段代码的合约,旨在执行一组指令。一旦某个事件触发合约中的条款,代码即自动执行。智能合约可以在不需要中间人的情况下自动执行协议,以便所有参与者都可以立即确定结果,而无需任何中间人参与,也不会浪费时间。

智能合约可以用于各种应用程序,例如数字货币、投票、物流、供应链管理等。智能合约可以存储和检索数据,并根据预定义的规则自动执行操作。智能合约还可以在区块链上实现去中心化应用程序(DApps)。

简单应用

代码
1
2
3
4
5
6
7
8
9
10
11
12
13
pragma solidity ^0.4.0;

contract SimpleStorage {
uint storedData;

function set(uint x) public {
storedData = x;
}

function get() public view returns (uint) {
return storedData;
}
}
部署过程
  1. 用户用solidity编写智能合约,假设源码文件为contract.sol,经过编译器编译后变成字节码的形式

  2. 外部账户发起部署合约的交易,字节码作为input data随交易一起提交到区块链上

  3. 该交易会被节点验证是否合法,若合法则被放入交易池中等待矿工打包进区块,分发到节点

  4. 遍历区块中的交易,该智能合约在EVM虚拟机中执行,计算出智能合约部署的地址等运算结果

  5. 运算结果被打包到区块中,经过共识后新区块将被链接到主链

PS. 外部用户和内部用户:外部账户(Externally Owned Account ,EOA)是由以太坊网络的人类用户创建的帐户。它与公钥、私钥对相关,他是通过对公钥进行二次哈希后结果的最后20个字节导出的。以太坊内部账户是由智能合约的代码控制的账户,与外部账户不同,它们没有私钥,只能由智能合约进行交互。

过程
  1. 编码部署,全网验证
  2. 定期检查是否触发
  3. 若触发,验证节点先签名验证,多数验证节点就此事件达成共识后,合约成功执行
  4. 合约移出区块

逻辑越复杂,消耗的以太币就越多。

先存以太币才执行合约。

以太币

以太坊中的货币,可用于支付交易费用,可用于创建智能合约。

应用生态

DAO,DeFi,NFT,ERC-20

网络扩容

链上:改进链结构(改变共识or分片技术)

链下:链下计算结果,主链只关注结果。