区块链相关知识3
资料
以太坊(ETH)到底是什么? - 知乎 (zhihu.com)
一文读懂以太坊 —— ETH 2.0发展与投研报告 - 知乎 (zhihu.com)
以太坊外部账户和合约账户是如何存在于区块链中,余额又是怎么更新的? - 知乎 (zhihu.com)
「ETH 基本功」什么是内部转账(Internal Transactions)?| 如何销毁通证? - 知乎 (zhihu.com)
以太坊相关
以太坊是一个去中心应用编程平台,相当于一个分布式计算机。
提供了许多API接口,其中封装了网络服务,底层服务(数据库,算法),共识等等。
网络和应用互相成就:应用需要更健壮强大的网络作为承载,网络需要功能完善的应用场景服务用户。
智能合约
一段程序,达到条件后即可执行。
new bing的解释
智能合约是一种计算机协议,是以数字方式促进、验证或执行合同的谈判或履行。智能合约是表示为一段代码的合约,旨在执行一组指令。一旦某个事件触发合约中的条款,代码即自动执行。智能合约可以在不需要中间人的情况下自动执行协议,以便所有参与者都可以立即确定结果,而无需任何中间人参与,也不会浪费时间。
智能合约可以用于各种应用程序,例如数字货币、投票、物流、供应链管理等。智能合约可以存储和检索数据,并根据预定义的规则自动执行操作。智能合约还可以在区块链上实现去中心化应用程序(DApps)。
简单应用
代码
1 | pragma solidity ^0.4.0; |
部署过程
用户用solidity编写智能合约,假设源码文件为contract.sol,经过编译器编译后变成字节码的形式
外部账户发起部署合约的交易,字节码作为input data随交易一起提交到区块链上
该交易会被节点验证是否合法,若合法则被放入交易池中等待矿工打包进区块,分发到节点
遍历区块中的交易,该智能合约在EVM虚拟机中执行,计算出智能合约部署的地址等运算结果
运算结果被打包到区块中,经过共识后新区块将被链接到主链
PS. 外部用户和内部用户:外部账户(Externally Owned Account ,EOA)是由以太坊网络的人类用户创建的帐户。它与公钥、私钥对相关,他是通过对公钥进行二次哈希后结果的最后20个字节导出的。以太坊内部账户是由智能合约的代码控制的账户,与外部账户不同,它们没有私钥,只能由智能合约进行交互。
过程
- 编码部署,全网验证
- 定期检查是否触发
- 若触发,验证节点先签名验证,多数验证节点就此事件达成共识后,合约成功执行
- 合约移出区块
逻辑越复杂,消耗的以太币就越多。
先存以太币才执行合约。
以太币
以太坊中的货币,可用于支付交易费用,可用于创建智能合约。
应用生态
DAO,DeFi,NFT,ERC-20
网络扩容
链上:改进链结构(改变共识or分片技术)
链下:链下计算结果,主链只关注结果。