FrankFan / blog

blog
http://frankfan.github.io/blog/
2 stars 0 forks source link

EVM与智能合约 #7

Open FrankFan opened 11 months ago

FrankFan commented 11 months ago

正如上一个章节所述,当前的区块链发展处在第二和第三阶段之间,并朦胧的看到了未来的方向。

本章节重点介绍第二阶段,第二阶段以EVM和智能合约为主要贡献特征,以太坊是这个阶段的绝对主角。

简单地说,EVM就是以太坊上分布式虚拟机,这台虚拟机运行在以太坊区块链网络之上,虚拟机可以执行应用程序,这个被称为智能合约的应用程序采用solidity语言编写。开发者利用solidity编写在区块链上达成交易的程序,交易的本质上是让智能合约从一个状态转换为另外一个状态的状态机。EVM及其底层的技术负责状态机在区块链网络上的共识和链上存储。

关于EVM与智能合约(smart contract)的正式详细的论述,请参考官方文档《ethereum_evm_illustrated》

solidity

solidity是以太坊推出的用于编写智能合约的编程语言。 官方链接:Solidity Programming Language

关于solidity,编程语法的介绍可以参考官方文档。以及各种出版的书籍。这里特别需要指出的是: 传统的编程语言,比如c/c++,java,go,python...它们都有一个共同点,都是基于传统的计算机及操作系统之上,比如基于x86指令集,基于linux操作系统。而solidity是基于EVM这台运行在区块链网络上的虚拟计算机。虽然EVM上也有指令集,内存,持久存储这些概念,但这些概念与传统计算机是存在本质不同的。不能够将传统编程的思维惯性迁移到EVM编程上来,而需要一种全新的针对区块链系统的思维方式。这里举几个例子:

开发部署一个ERC20代币合约

todo

Oracle(预言机)

什么是预言机 设想一种场景: 一个用于token兑换的智能合约,需要获得当前的token之间的兑换汇率。但是汇率是浮动的,它来自于各大交易市场的实时汇率,可能是各大交易市场的实时汇率取一个加权平均值。这样就出现一个问题:链上的合约如何获得这个外部信息?一种支持这种需求的组件被设计了出来,它叫“oracle”-预言机。比如说价格预言机,汇率预言机,以及其他各种不同的预言机。oracle是实现链上合约获取外部数据的一种方式。 那么怎么从技术上实现这个预言机呢。这里转载一篇文章:https://www.panewslab.com/zh/articledetails/D61475779.html 另外有一个知名的oracle项目chainlink了解一下 预言机的关键功能

defi

DeFi是去中心化金融(Decentralized Finance)的简称。 知识普及-DeFi的知乎话题

gameFi

gameFi可以理解为game + defi。 也就是在游戏中融入NFT资产管理和金融交易属性。从而在这个商业方向上引申出各种玩法:play to earn,play and earn.