解锁智能合约的力量:区块链入门教程
Smart Contract
什么是智能合约?
概述
和纸质合约一样,智能合约(smart contract)同样设立了一些交易的条款,比如谁欠谁多少钱,什么时候还,利息怎么计算等。不同的是,智能合约的条款是运行在区块链(例如以太坊)的一个程序 — 包含一些代码(函数)和数据(状态)。
假设使用上面的代码创建一个智能合约。代码有一个类型为 uint(无符号整数)名为counter
的变量。 counter
变量的值就是该合约的状态。每当我们调用count()
函数时,此智能合约的区块链状态将增加 1,这个状态是对任何人都可见的。
智能合约也是一个以太坊账户,一般称为合约账户。与用户账户类似,也可以:
接收、持有和发送 ETH 和代币。
与已部署的其它合约进行交互。
由于智能合约运行在区块链上,所以通过智能合约构建的应用程序或交易行为天生可以具有一些优势:
准确、快速、高效 - 交易前会严格检查智能合约中预设的条件。
安全 - 交易过程中没有银行等其它第三方中介参与,不用担心个人信息被窃取;交易确认后,篡改交易几乎不可能。
透明 - 交易日志可以被所有网络参与者查看。
防篡改 - 应用一旦部署在区块链上,就不能在不被人发现的情况下更改或删除。
使用智能合约构建的一些去中心化应用
Uniswap - 一个去中心化交易所,允许用户通过智能合约交易某些类型的加密货币,而无需任何中央机构设置汇率。
Compound - 一个使用智能合约让投资者赚取利息和借款人立即获得贷款的平台,而无需中间的银行。
USDC - 这种加密货币与美元挂钩,通过智能合约实现,每个 USDC 等于一美元。
智能合约编程实践
编程语言
目前可以用来开发智能合约的编程语言有如下几种:
Solidity
Vyper
Yul / Yul+
由于 Solidity 支持的语法更丰富,生态更完整,社区更活跃,所以比较推荐从 Solidity 入门智能合约开发。
开发框架
使用一些成熟的开发框架可以帮助你更快的构建一个基于智能合约的去中心化应用。这些开发框架的一些基础功能包括格式化、编译、调试、部署智能合约,并提供一个可以测试的本地区块链网络。本文档使用hardhat演示,其它框架具体可以查看官方的文档。
Dapp Development Frameworks | ethereum.org
实践
初始化 Node.js 环境
安装 Hardhat 组件
在交互式命令行中创建一个默认的Typescript
应用,完成后目录结构大致为:
编写合约代码
示例实现一个合约,核心功能是实现一个托管账户逻辑,包含基础的存储和提现功能:
编译合约:
编写测试用例
执行测试用例:$ npx hardhat test
生成测试报告:$ npx hardhat coverage
生成 gas 消耗报告:$ REPORT_GAS=true npx hardhat test
部署到测试链
申请Alchemy账号,创建一个 Relay Network 节点。
创建一个测试钱包地址,并导出 private key。
编辑 Hardhat 配置文件:
编辑部署脚本:
执行部署脚本
在 etherscan 上查看合约信息
总结
入门智能合约的开发后,仍有很多话题需要继续学习,例如:
理解智能合约中变量的不同存储类型。
理解智能合约运行的基础 - 以太坊虚拟机(EVM)。
学习智能合约的优化方法和技巧,可以更好的缩减代码容量和执行的成本。
学习并重视智能合约的安全问题,传统的软件应用可以通过升级修复 bug,由于智能合约一旦部署后续的更新会十分困难,所以做好安全审查对于代码安全十分重要。一旦智能合约出现安全风险可以是数以亿计的损失,甚至导致公司破产。
相关资源
Ethernaut - 智能合约安全训练课程
逃离黑暗森林 - 一个合约漏洞导致的安全问题
Hardhat Docs - Hardhat 官方文档
Etherscan Explorer - 以太坊交易浏览器
登链社区 - 国内的区块链技术社区
OpenZepplin合约文档 - 常用的智能合约第三方库
关于领创集团
(Advance Intelligence Group)
领创集团成立于 2016 年,致力于通过科技创新的本地化应用,改造和重塑金融和零售行业,以多元化的业务布局打造一个服务于消费者、企业和商户的生态圈。集团旗下包含企业业务和消费者业务两大板块,企业业务包含 ADVANCE.AI 和 Ginee,分别为银行、金融、金融科技、零售和电商行业客户提供基于 AI 技术的数字身份验证、风险管理产品和全渠道电商服务解决方案;消费者业务 Atome Financial 包括亚洲领先的先享后付平台 Atome 和数字金融服务。2021 年 9 月,领创集团宣布完成超 4 亿美元 D 轮融资,融资完成后领创集团估值已超 20 亿美元,成为新加坡最大的独立科技创业公司之一。
版权声明: 本文为 InfoQ 作者【领创集团Advance Intelligence Group】的原创文章。
原文链接:【http://xie.infoq.cn/article/9452aacb3d052531f1bce6e01】。文章转载请联系作者。
评论