Solidity 基础教程
本章讲解与 Solidity
相关的基本概念,以及为什么要学习 Solidity
,如何学习 Solidity
。
Solidity
是一种面向对象的静态编程语言,用于在以太坊区块链上编写智能合约。
Solidity
深受 C++、Python 和 JavaScript 等编程语言的影响,语法与它们非常相似,但是 Solidity
针对以太坊虚拟机进行了专门的设计。
我们可以使用 Solidity
在以太坊区块链上创建代币、NFT、投票、DeFi 以及 GameFi 等各种类型的智能合约。
学习 Solidity
之前,先要搞清楚几个基本概念:以太坊虚拟机是什么,智能合约又是什么。
以太坊虚拟机
我们知道,Solidity
用于在以太坊区块链上编写智能合约,那么以太坊又是什么呢?
以太坊,英文名称为 Ethereum
,它是一个能够运行智能合约的区块链平台。它由 Vitalik Buterin
(维塔利克·布特林,又称为V神)和合伙人共同创建,并于2014年正式发布。
以太坊虚拟机,英文缩写为 EVM
,是以太坊上智能合约的运行环境。换句话来说,以太坊使用 EVM
来运行智能合约。
以太坊虚拟机是以太坊区块链中最核心的组件。
智能合约
智能合约
(Smart Contract)是一种以信息化方式传播、验证和执行合同的计算机协议。智能合约允许在没有信任中介的情况下进行可信交易,这些交易可追踪且不可逆转。
简单地说,智能合约
可以理解为一个可以自动执行的协议,它可以自动处理协议的履行、管理,以及支付,无需第三方信任中介。
例如,我们可以编写这样一个智能合约:本月15号,张三转账给李四 1 个以太币。一旦这个智能合约部署后,那么在本月的15号,张三就可以领取到李四转来的 1 个以太币,整个过程不需要类似公证机构、银行这样的第三方信任中介参与。
智能合约
的基本特点:去中心化、不可篡改、自动执行,所以它能够提供去中心化的信任,执行过程安全透明,从而可以减少成本、提高效率、实现公平公正。
在区块链领域,智能合约的定义更为广泛,可以理解为具有“去中心化”能力的应用程序。
比如:运行在区块链上的输出 Hello World
的简单程序,也可以称为 智能合约
。
所以,以太坊上的 智能合约
就是位于以太坊区块链上特定地址的代码和数据的集合。
智能合约
的代码量一般都比较少,几千行级别的智能合约就属于中大型的智能合约了,常见的合约通常只有几十行或者几百行。但是,即使是短短的几行代码,也可以发挥出巨大的威力。
Solidity 的应用范围
使用 Solidity
编写的智能合约,不仅能够部署和运行在以太坊上,还适用于币安链 BSC
、Polygon
、Arbitrum
等任何兼容以太坊虚拟机的区块链。
当然,并不是所有区块链上的智能合约都能使用 Solidity
编写,有些区块链就不支持 Solidity
,比如高性能链 Aptos
,它使用 Move
语言来编写智能合约。
但是,在目前的公链领域里,以太坊及其兼容链占据了绝大部分份额,其它公链所占份额极低。所以,我们只要掌握了 Solidity
语言,就能够编写适用于大多数场景下的智能合约。
如何学习 Solidity
Solidity
的语法非常简单,如果您学习过任何一门编程语言,那么在1个月内,就可以完全掌握 Solidity
语言,并能够编写一些常见的智能合约。
如果您没有编程经验,只需按照本教程循序渐进地学习,那么在1至3个月内,也可以基本掌握 Solidity
语言。至于熟练到什么程度,这与自己学习目的和努力程度有关,可自行掌控。
如果您只想做一个投资者、产品经理或者运营人员,那么只要了解基本的概念、原理以及能够读懂简单的合约即可。
如果您要做一个开发人员、科学家、资深投资者,就应该进行更深入地学习,能够熟练读写常见的智能合约。
本教程是一门严谨的教程,所有的表述和案例都经过严格审核和精心编排。您既可以把它作为入门级的教程,也可以作为深入学习的参考书。
Solidity 能带来什么
学习 Solidity
可以带来以下机会:
1、获得工作机会。比如,成为 Web3
公司一名区块链工程师、智能合约开发者、智能合约审计师等,也可以成为独立开发者。
2、获得财富机会。您可以独立开发和部署智能合约、去中心化应用以及其它区块链项目,成为区块链项目的创建者和所有者,获得创造财富的机会。
3、增强投资和套利机会。比如成为加密货币投资人、数字货币研究员、币圈科学家、撸空投专家等。