返回

NTU MOOC 学习笔记 - 第二讲 从 Web2 到 Web3:开发者指南

By
HackQuest
Jun 4, 2024
4 min read

日期:2024 年 5 月 28 日 新加坡时间上午 9:30-11 点 / 2024 年 5 月 27 日 美国东部时间晚上 9:30-11 点

课程主题:区块链和智能合约简介


NTU I&E x HackQuest MOOC 是我们与南洋理工大学官方联合出品的公开课程,旨在为对 Web3 感兴趣的小伙伴提供免费且公开的学习机会。MOOC 课程由 Yat Siu (Co-founder, Animoca), Ed Felten (Co-founder, Offchain Labs), Sergey Gorbunov (Co-founder, Axelar), Scott Moore (Co-founder, Gitcoin), Haider Rafique (CMO, OKX), Austin Griffith (Developer Onboarding, Ethereum Foundation), Anna Yuan (Stablecoins Lead, Solana Foundation) 等 Web3 业界和学界专家主讲。所有 MOOC 课程将会被整理提炼成笔记供各位复盘和学习。Happy Learning!


概述

主要主题:了解如何在以太坊上构建应用程序并探索Web3技术。

目标

1.了解以太坊和 Web3 的基本原理。
2.了解构建以太坊应用程序的工具和资源。
3.探索智能合约、去中心化应用程序(DApps)和密码学原理等关键概念。


第1节:基本概念

1.1 区块链的演变

从大型机到个人电脑:从集中式去中心化计算的转变。
互联网和云计算:虚拟机和网络计算。
人工智能和加密货币:正在改变数据处理和安全的新兴技术。
“以太坊之所以如此有趣,是因为任何人现在都可以用几行代码构建比特币。但以太坊允许你通过编写一些代码非常容易地在其上部署去中心化应用程序。”

1.2 加密货币的重要性

去中心化:对于抵抗审查和将权力推向边缘至关重要。
误解:由于与骗局的联系,加密货币常常被误解。
💡
Web3 正在尝试创建去中心化,将权力推向边缘,以摆脱集中的权力和围墙花园。

1.3 密码学原理

哈希 函数:对于数据完整性和安全至关重要的单向函数。例如:用于比特币的SHA-256。
公钥和私钥:对于加密解密和数字签名至关重要。
数字签名:确保消息的真实性和完整性。
演示:生成哈希函数和密钥对,以展示其在区块链中的重要性。
骰子游戏示例:骰子游戏演示 - 此游戏展示了猜测以太坊私钥的不可行性,突出了密码学原理的稳健性和安全性。
“这些密码学原理是这项技术的核心,确保区块链应用中的数据完整性和安全性。”
image
Preview

1.4 现实应用

讨论密码学原理在现实场景中的应用。
示例:安全的电子邮件通信,SSL/TLS 用于网络安全。


第2节:在以太坊上构建

2.1 关键概念和工具

交易
组件:收款和付款地址、金额、Gas 和数据字段。
Gas 机制:确定交易费用和优先级。
EIP-1559:稳定 gas 费用并引入基础费用。

2.2 开发工具

Solidity:以太坊上编写智能合约的主要编程语言。重点在语法和结构上。
Remix IDE:用于部署智能合约的基于 Web 的开发环境。逐步指南使用Remix。
Truffle Suite:构建 DApps 的开发框架。包括测试和部署功能。
💡
新开发者的清晰学习路径(技术人员): - 从https://ethereum.org/en/ 获取一些概念,阅读基础部分 - 查看https://eth.build/ - 一旦掌握了它,可以深入学习https://speedrunethereum.com/ 上的学习时刻,构建实际的东西
image
Preview

2.3 构建会话

使用 Remix 部署一个简单的智能合约:部署一个“Hello World”合约,并通过 Remix 控制台与之互动。
Scaffold-ETH:https://scaffoldeth.io/ - 一个用于快速原型设计以太坊的框架,用于在本地开发环境中编写和部署Solidity智能合约。
“Scaffold-ETH 提供了一个很好的环境来探索以太坊智能合约,使得快速原型设计和部署去中心化应用变得容易。”


第3节:智能合约和DApps

定义:自执行合约,条款直接写入代码中。
部署:通过包含代码的交易启动。
功能:在满足条件时执行预定义的操作。
示例:使用一个简单的代币合约来说明概念。
代码示例:基础 ERC20 代币合约。
每个功能的解释:totalSupply、balanceOf、transfer。
“智能合约就像任何人都可以访问且无法停止的自动售货机,甚至部署它的人也不能停止它。”
与智能合约的互动:DApps 使用智能合约来处理后端逻辑。
示例:DApp 与已部署的智能合约进行交互的互动演示。
用例:用户可以在区块链上投票的投票 DApp。
用户界面:与智能合约交互的简单前端。
💡
如何编写不消耗过多 gas 的智能合约? 降低 gas 费用的提示:成本基于代码,鼓励不在链上存储内容,不使用重计算,并在链外完成许多事情

3.3 用例

金融服务:DeFi 平台启用贷款、借贷和交易。
供应链管理:跟踪货物并验证真实性。
游戏:通过 NFTs 拥有游戏内资产。
image
Preview
image
Preview
通过几行代码,我们可以创建类似比特币的去中心化数字货币。虽然比特币需要创建一个完整的经济和金融系统,包括挖矿激励和点对点网络,以太坊为你提供了所有这些基础设施。你只需编写代码规则,确保没有人类可以更改它。机器将按照编程精确执行代码,使系统抗审查且不可阻挡。
💡
这种在国家级别运行的新型计算允许你作为编码员在Solidity中编写简单的规则。你可以在[第二层](https://www.hackquest.io/en/glossary/Layer-2)解决方案上花费几分钱部署这些智能合约,围绕它们构建一个强大且无限的系统。

关键要点

在以太坊上构建涉及理解区块链技术的理论和实践方面。从密码学原理到智能合约开发,本课程为从Web2 过渡到 Web3 提供了全面的概述。


问答环节

1.问题 1:量子计算将如何影响区块链和密码学系统?

回答:量子计算可能更容易解决一些密码学挑战,这可能需要未来采用不同的方法和类型的安全性。Vitalik Buterin 讨论了如何使系统更加量子安全。虽然这超出了我的专业范围,但我相信构建这些平台的人们理解如何使它们抵御此类威胁。

2.问题 2:共享屏幕中使用的是什么 IDE 主题?

回答:只是 VS Code中的默认 Solidity 语法高亮。你可以通过在 VS Code 市场中搜索 Solidity 扩展找到它。

image
Preview
3.问题 3:如果你有 72 小时的黑客松项目时间,你会构建什么?

回答:如果我有 72 小时的黑客松项目时间,我会使用 Scaffold-ETH 快速原型设计并构建一些创新的东西。一些想法可以包括创建一个模因币菜单游戏,使用如 ZK Sync 或 Basse 等技术构建无 gas 应用程序,或者探索具有账户抽象的智能钱包。关键是利用最新技术并创造性地构建在时间限制内有影响力和功能的东西。

与我们保持联系

更多关于 ’Study Notes‘

查看所有
loading...