| timezone |
|---|
UTC+8 |
GitHub ID: Darkells
Telegram: @Allen Draken
待人真诚
不知不觉1个月就这么过去了,也算是Web3启航了。或许多年后感谢自己那晚的选择,加入本次实习计划,改变了人生的方向。后续我将继续在LXDAO继续耕耘。再次感谢ETHPanda和LXDAO。
今天开始做speed run ethereum,已经完成了Simple NFT Example,期间在wsl上初始化项目的时候遇到代理问题,yarn解析一直被劫持。最终更换代理解决这个问题。
开始整理GitHub遗留的无用仓库,同时也在构思个人主页,这对后续求职有较大帮助。本次实习计划也剩最后一天了。后续还是需要保持学习状态。
把uniswapv2 core的源码重新分析了一遍,记录了分析源码的步骤以及主要核心方法的原理,还有一些个人的思考问题。
开始着手之前未完成的Dapp,继续完善也从休闲黑客松评委的角度去看这个Dapp,为什么用户要去使用它,是如何激励用户去使用的。
开始去做speedrunethereum的学习案例。
今天搬家请假一天
晚上参与了Bruce老师的Web3求职分享,对于web2转web3的情况呢,更推荐是多参与社区,从社区积累项目经验从而去寻找web3的岗位。还有一点很关键就是精准投递面向招聘去学习。
这段时间陷入过无尽的内耗,但学习仍在持续。重新阅读 Uniswap V2 源码,算是第三遍了,这次的进度更快,过程中也产生了不少新的思考。我会把这些问题记录下来,先自我推敲,再结合 GPT 验证,收获颇丰,并计划整理到学习笔记中。
转眼已经来到第四周,能够坚持到这里本身就是一种突破。但同时,这也是我最担心的一周。或许是因为期待过高,总怕结果达不到预期。其实,参与这个学习计划的初心,是为了最终能够争取到 Web3 的实习机会。经过前三周的学习与一次休闲黑客松,我逐渐意识到自己此前对 Web3 的理解还比较片面。在思考后续挑战时,也会觉得简历上似乎没什么可写。
今天在搬家前打扫了卫生,意外地让心情也被清理了一遍。随着收拾的完成,内耗也逐渐散去。我发现,最终能否拿到实习机会已不再是唯一的目标,因为我已经收获了更重要的东西:认识了许多优秀的伙伴,并顺利加入了 LXDAO。未来,我更期待能在 LXDAO 中做出贡献,继续积累与成长。
万众瞩目的休闲黑客松一点也不休闲,参赛的选手都非常的强。有趣的、有深度的项目都非常的多。
本次实习计划也接近尾声了,后续还是保持学习,参加黑客松。立志参加10月上海ETH的黑客松.
今天主要是在做开源项目,不断的写bug然后fix bug。一遍遍的debug,最后把整个组件删除了,用ipad把流程图手画了一边重新写这个组件。
也在打扫卫生,整理物品。计划下周二搬家,即将离开这里,在这边生活快10年了。这次离开也算是对就旧生活的告别,踏入新的旅途。
今天分享会是Bruce老师,分享了FairSharing的从0到1的过程,从项目最初的出发点设计到最终上线的整个过程。干货满满,讲了很多项目开发中需要注意的东西。
在黑客松项目与开源项目之间来回穿梭开发中,在记录完以用户视角会出现的问题,以及思考和解决方案。最终决策的demo以两个核心问题去出发。
梳理黑客松项目的个人理解,用自己的语言概括设计内容。同时也整理出设计理念和细节。随后在思考作为设计以及用户角度思考存证的问题以及解决方案。
听完烟波老师的分享,更加笃定了web3以及数字游民的信念了。烟波老师的个人经历非常的丰富,是我梦想中的人生经历。
L2(Layer2,二层网络)是一种以太坊的扩容方案,它是一条独立的区块链,扩展了以太坊并继承了以太坊的安全保证。
在传统货币理论中存在“不可能三角”,即一国无法同时实现货币政策的独立性、汇率稳定与资本自由流动,最多只能同时满足两个目标,而放弃另外一个目标。
相类似,当前的区块链技术也存在“不可能三角”,即无法同时达到 可扩展(Scalability) 、去中心化(Decentralization) 、安全(Security) ,三者只能得其二。
- 可扩展性:每秒可以处理大量交易。
- 去中心化:拥有大量参与区块生产和验证交易的节点。
- 安全性:获得网络的多数控制权需要非常高昂的成本。
- 链上扩容:
- 分片(Sharding)技术:Sharding 一词本来源于数据库的术语,表示将大型数据库分割为很多更小的、更易管理的部分,从而能够实现更加高效的交互。区块链分片是指对区块链网络进行分片,从而增加其扩展性。根据最新的以太坊 2.0 规范,以太坊区块链会被分为 1024 个分片链,这也意味着以太坊的 TPS 将提高 1000 倍以上。但目前 Sharding 方案仍然在跨分片通信、欺诈识别、随机分配与选举安全性等方面存在不足。
- 链下扩容:
- 状态通道(State Channel):指用于执行交易和其他状态更新的“链下”技术。但是,一个状态通道内发生的事务仍保持了很高的安全性和不可更改性。如果出现任何问题,我们仍然可以回溯到链上交易中确定的稳定版本。
- 侧链(Sidechain)技术:侧链是平行于主链的一条链,由侧链上的验证者把一条链的最新状态提交给主链上的智能合约,这样持续推进的一类系统。侧链通常使用 PoA(Proof-of-Authority)、PoS(Proof of Stake) 等高效的共识算法。它的优势在于代码和数据与主链独立,不会增加主链的负担,缺陷在于它的安全性弱、不够去中心化,无法提供审查抗性、终局性和资金所有权保证。
今日主要在继续看socialFi的相关产品,学习它们的设计和理念。继续查阅黑客松项目的相关技术文档,构思 下一步计划的demo制作。同时复习所学的web3知识,计划参与实习计划的对于零知识证明在DAO投票的作用
从头在翻阅了一遍Lens协议的文档,目前仅是使用协议这块的功能。
- 在 Lens 中,所有 Post、Comment、Mirror、Profile 都是 元数据驱动(metadata-driven) 的。链上只保存最小的信息(如指针、哈希、权限),实际的内容都通过 Metadata API 或者 Metadata Validator 来校验和存储。
- 获取帖子的API中可以使用Metadata作为过滤条件进行检索。
一个去中心化的社交协议,用最小的协议设计实现消息广播和订阅。
- 让每个人都运行一个客户端程序,要发布什么信息时,用自己的私钥对文本签名,发送到多个中继器上。想要获取信息时,则向各个中继器问询。客户端再对得到的信息,借助其公钥验证从而判断真实性。
- 协议定位:Nostr 全称 Notes and Other Stuff Transmitted by Relays。它不是应用,而是协议,类似于“电子邮件协议”,不同客户端都可以基于它开发。
- 运作方式:
- 用户通过 私钥签名消息(笔记、文章、图片链接等)。
- 将消息发送到一个或多个 Relay(中继服务器)。
- 其他用户的客户端通过订阅 Relay 获取消息。
- Relay 不需要彼此通信,用户可以连接多个 Relay 来保证去中心化和冗余。
- 特点
- 简单:消息就是 JSON,签名就是 secp256k1 密钥。
- 抗审查:没有中心化服务器,Relay 可以随时搭建,用户可自由切换。
- 身份唯一性:基于私钥(类似加密钱包地址),而不是邮箱或手机号。
- 可扩展:通过不同类型的事件(Event kind),可以支持聊天、文章、点赞、转账等功能。
总结:Nostr = 用户用私钥签名消息 + Relay转发消息的极简社交协议,人人都能自由构建客户端和Relay,天然去中心化。
Lens Social Protocol 是 基于区块链的去中心化社交图谱协议,由 Aave 团队在 Polygon 上推出(2022 年发布)。它的目标是为 Web3 打造一个可组合、可扩展的社交网络基础设施,让用户真正拥有自己的社交关系和内容数据。
- 账户:Lens 账户就是一个可授权他人协作管理,但最终控制权始终在所有者手里的智能合约身份。
- APP:Lens 上的应用程序就是一个具备独立身份和可配置内容分发规则的链上实体。
- 组:Lens 的组功能就是一个可设置规则和治理的链上社区合约,支持自定义成员资格、内容提要和管理权限。
- Feed:Feed 是 Lens 中用于发布和分享内容的链上合约渠道,支持自定义规则、权限和交互方式。
- Graph:Graph 是 Lens 中管理账户连接关系的链上合约网络,支持自定义规则和应用级社交体验。
- 规则:规则是 Lens 中的模块化合约,用于为组、提要、图表和用户名等元素设置自定义条件和访问控制。
- Action:Actions 是 Lens 中的模块化组件,用于为账户、帖子或全局范围提供可定制的交互操作。
简述:Next.js官方学习脚本已全部完成,也获取了相应的入门证书。
- /app:包含应用程序的所有路由、组件和逻辑
- /app/lib:包含应用程序中使用的函数,例如可复用的函数和数据获取函数
- /app/ui:包含应用程序的所有UI组件,例如卡片、表和表单。
- /public:包含应用程序的所有静态资源。
- 配置文件
全局样式,定义一个全局样式的样式文件,在根布局中导入便可以定义全局样式。也可以使用CSS模块去自定义范围的样式,默认情况下使用CSS雷在本地限定为组件方位,从而降低样式冲突的风险。
Next.js使用文件系统路由,其中文件夹终于创建嵌套路由。每个文件夹表示映射到URL段的路由段。每个路由段都可以创建单独的UI。
- 根布局:每个Next.js应用都需要,添加到根布局的任何UI都将在应用中的所有页面之间贡献。因此可以在根布局中去定义全局的Provider,全局的工具和状态管理器。
- API层:API是应用代码和数据库之前的中间层。在Next.js中,可以使用router.js创建API端点。
- React服务器组件:React 服务器组件(React Server Components, RSC)是 React 在 服务端渲染(SSR)基础上引入的一种新组件类型,它的核心目标是 在服务端渲染部分 React 组件,然后将渲染结果发送到客户端,从而减轻客户端的负担、优化性能。可以直接访问数据库或文件系统。
- “瀑布流”:“瀑布流”是指一系列网络请求,这些请求依赖于先前请求的完成情况。在数据获取的情况下,每个请求只能在前一个请求返回数据后开始。避免瀑布的常用手段是采用并行启动所有数据请求。
合约端调整,针对gas优化,删除了捐赠留言的功能,同时将标众筹项目的标题、描述、封面图片、视频、文档、里程碑等存在 IPFS,在链上保存对应的 CID,保证数据不可篡改。前端优化计划使用The Graph做数据查询。
作为全栈,前端的技术栈十分匮乏,属于只掌握了工作中需要的前端技术栈。加入本次的Web3实习计划,认识了很多很厉害的技术,也意识到需要不断地主动去学习新的东西。Next.js也是目前web3技术领域比较热门的技术框架,因此从Next.js补全我的前端技术栈。同时也非常期待下周休闲黑客松能看到令人眼前一亮的项目,向大家学习。
将主体功能界面完善,提供检索众筹项目列表,创建众筹项目。已经完成了和合约的交互,能创建众筹项目以及获取目前已经创建的众筹项目列表。联调都是在anvil的本机测试网进行的,下一步优化是,优化合约端创建项目以及获取项目的逻辑。其次优化交互前端订阅创建event,刷新项目列表。在gcp部署的以太坊测试网,运行了一晚之后EC2实例进入了假死状态,无法通信。重启过后重新部署以太坊测试网一直失败,可能的原因是实例配置较低。
Wong的分享令我感到十分的震撼,这就是从业大佬的深度。以他的Licredity项目介绍以及UniswapV4科普了现代合约架构,分享了合约开发的干货。soldeer进行依赖管理,使用 vm.startSnapshotGas 和 vm.stopSnapshotGas 手动记录 gas 消耗,FFI等效性测试等等,令人印象最深的是讲解是版本不兼容合约的测试环境部署,例如uniswapv4测试uniswapv3的二进制文件,在 licredity 外围合约内进行二进制部署的操作。
原计划按照12号设计的UI进行UniCrowd的前端UI开发,实际开发过程在调试样式的时候屡屡碰壁,因为选择一个不熟悉的UI库,要不断地去看文档。
最终推翻原有的UI设计,抛弃一切华而不实的设计,参考了哈德曼老师的LXScale主题样式,重新构建了UniCrowd的前端UI。目前已经完成了主体的UI,计划在明天进行钱包连接以及众筹合约的对接联调。
Ray老师在分享会上讲解了以太坊的架构和运作原理,同时也演示了如何在本地运行测试网节点。计划在gcp的EC2实例构建测试网节点,提供明天的众筹合约的对接联调,模拟开发环境的开发流程。
今天将unicrowd的合约部分,将单项目众筹的模式更新为支持多种项目众筹,同时也摸索着写测试用例。使用Foundry测试的时候有block的地方,测试用例代码与合约预期的结果不一致,使用forge test -vvv可以看到具体调用的trace log排查问题。
记录一个小问题,合约端的event事件定义中和测试文件中的事件定义有个参数没有标记indexed,导致异常,同时在forge test -vvv 测试日志看的记录是一致的没能第一时间排查出问题。最后在检查合约的时候发现event事件定义参数存在差异。修复完之后,测试通过。
`indexed` 参数存储在事件的 topics 中(用于高效查询),而非 indexed 参数存储在 data 中。
unicrowd合约端仓库:https://github.com/Darkells/unicrowd
UniCrowd作为一个入门级练手Web3众筹DApp,旨在提供去中心化的资金募集平台,
支持 ETH 捐款、事件记录和项目里程碑管理。
目标:定义项目愿景、受众和核心功能,避免传统众筹的痛点(如高费用、欺诈风险)
基本规划:
- UniCrowd聚焦Web3项目(如DeFi, NFT),目标用户为加密爱好者和开发者
- 采用奖励型众筹(ETH捐款换NFT或代币)
- 考虑监管(如KYC/AML)和安全
与Launchpad对比
- 核心功能类似,Launchpad专注代币发行(IDO、IEO),帮助项目快速上市。
- 适用项目,UniCrowd适用广泛Web3项目,包括非代币化(入公益DAO),Launchpad专注与区块链原生项目,强调tokenomics。Launchpad属于众筹的子集。
- 什么是DApp
- 去中心化应用(dApp)是基于区块链技术的应用程序,代表了 Web3 时代的新型应用架构。
- Dapp核心特征
- 去中心化:DApp 运行在区块链网络(如 Ethereum、BNB Chain)上,无需中心化服务器,数据和逻辑由分布式节点维护。
- 开源:DApp 的代码通常公开,允许社区审查、贡献和复用,增强信任和协作。
- 激励机制:DApp 通常使用代币(如 ERC-20、NFT)激励用户参与,形成经济生态。
- 用户控制与自治: 用户通过私钥控制身份和资产,无需信任第三方,符合 Web3 的“用户主权”理念。
- 透明性与可审计性:DApp 的交易和逻辑公开在区块链上,任何人都可验证,智能合约需经过审计确保安全。
- 抗审查性:DApp 运行在去中心化网络上,难以被政府或机构关闭,保护用户自由。
Foundry 是一个为以太坊区块链设计的智能合约开发工具链,使用 Rust 语言编写,强调高效、模块化和开发者友好性。它集成了依赖管理、项目编译、测试、部署和链上交互功能,支持通过命令行界面(CLI)和 Solidity 脚本操作。Foundry 的核心目标是降低 Web3 开发的复杂性,让开发者专注于创意实现而非技术障碍。
- Forge:用于构建、测试、模糊测试(fuzz testing)、调试和部署 Solidity 智能合约,类似于 Hardhat 或 Truffle。Forge 支持快速编译、并行测试和内置的模糊测试功能,可自动检测代码中的边缘情况。
- Cast:一个多功能命令行工具,用于与 EVM 智能合约交互、发送交易和获取链上数据。例如,可以查询区块高度、检查账户余额或回溯交易。
- Anvil:一个快速的本地以太坊测试节点,类似于 Hardhat Network 或 Ganache,用于在本地模拟区块链环境,便于前端测试和 RPC 交互。
- Chisel:一个快速、实用的 Solidity REPL(交互式解释器),允许开发者在本地或分叉网络上快速测试 Solidity 代码片段。
| 特性 | Foundry | Hardhat v3 Alpha |
|---|---|---|
| 编程语言 | Rust | TypeScript |
| 测试语言 | Solidity | Solidity和TypeScript(支持原生Solidity测试,但Typescript为主) |
| 编译速度 | 快于Hardhat速倍,支持增量编译和并行编译 | 改进缓存机制,速度提升明显,内存占用高 |
| 模糊测试 | 内置模糊测试,自动生成随机输入检测边缘情况 | 支持fuzz测试,但需额外配置,功能不完整 |
| 本地测试节点 | Anvil(快速、轻量,支持主网分叉) | Hardhat Network(功能丰富,但启动较慢) |
| 依赖管理 | forge install 简单计策OpenZeppelin等库 |
npm install , 支持remappings.txt,简化依赖管理 |
| 项目结构兼容性 | 支持非标准目录,兼容Hardhat项目 | 改进兼容性,支持Hardhat v2项目,需迁移工具 |
| 测试工具 | 内置交互式调试器,支持逐步执行Solidity代码 | 支持Solidity堆栈跟踪,JavaScript测试输出改进,需插件 |
| Gas优化与分析 | 内置Gas跟踪,测试时显示详细Gas消耗 | Gas报告不完成支持 |
| 社区与生态 | 快速增长 | 成熟社区,插件生态丰富 |
| 学习曲线 | 对Solidity开发者友好,无需学习新语言 | 需熟悉JS/TS, 适合前端开发者 |
| 安全性 | 模糊测试和Rust的可靠性使其更适合高价值合约 | 改进Solidity测试和对接跟踪,功能不稳定 |
| 链上交互 | Cast提供CLI, 支持复杂查询和交易 | 依赖Ethers.js或Viem,需编写脚本,功能灵活但复杂 |
| 多链支持 | 支持EVM兼容链,分叉测试成熟 | 新增多链支持,但Chain Types为完全支持 |
官方教程是在Linux或macOS上安装,记录是在WSL2上安装。执行命令:
curl -L https://foundry.paradigm.xyz | bash执行完之后会提示需要 source .bashrc and run foundryup
执行之后测试 forge命令
执行获取Foundryup命令的时候存在403,需要挂梯子重新下载。
- 初始化项目
- 执行命令:
forge init project name - 目录结构:
src: 智能合约代码源目录test: 测试文件目录script: Solidity脚本目录lib: 项目依赖foundry.toml: 项目配置文件
- 执行命令:
智能合约无法获取区块链以外的数据,外部API提供的数据和任何其他链下资源都无法获取。
为什么区块链没法主动获取外部数据,因为区块链是一个确定性的系统,每个操作都需要网络中大部分节点验证,通过达成共识最终写入区块。如果每个节点执行操作会得到不同的结果则无法通过验证达成共识。 因此需要一个第三方的工具,预言机给提供数据。
- 中心化预言机
- 采用单一节点通过数据源获取数据,再将数据推送到链上的智能合约。
- 优势
- 低成本: 单一数据和一次上链操作,部署、运行成本低。
- 低延迟:数据实时推送到链上,适合高频率更新场景。
- 架构简单:架构清晰,开发周期短,维护成本低。
- 灵活性高:自由调整数据源、更新频率以及推送逻辑,适应业务变化快的项目。
- 高吞吐:适合需要频繁喂价或大批量数据更新的应用。
- 缺陷
- 信任单点风险:用户需无条件信任数据源,如果被恶意篡改数据会导致链上智能合约执行错误逻辑,在DeFi中可能直接导致清算、套利、价格操纵等大规模损失。
- 单点故障风险:预言机服务遇到宕机、被攻击、不可抗力因素导致不可用,链上智能合约会失效。
- 透明度不足:用户无法验证数据来源、采集方法和处理过程。
- 易受外部攻击操纵:攻击者攻击中心化预言机成本远低于去中心化多节点预言机网络。
- 合规与审查风险:中心化预言机运营方可能受到监管机构、政府或第三方支配,拒绝提供某类数据或对特定用户封锁服务。
- 总结:中心化预言机破坏了区块链“去信任化”原则。
- 去中心化预言机
- 多个数据节点形成中心预言机网络,每个节点都会收集数据,达成共识输入到区块链上的智能合约。
- 优势:
- 去信任化:数据由多个独立节点采集和签名,通过共识聚合,减少对单一数据源的依赖。
- 抗篡改性:攻击者需要同时控制多数节点才能操纵数据,成本极高。
- 高可用性:多节点冗余,部分节点宕机,系统仍可以正常提供数据。
- 透明性:节点列表、签名、数据来源和价格计算方式通常是公开可审计的。
- 适合高价值场景:适用于DeFi借贷、衍生品、清算等对数据正确性要求高的应用。
- 缺陷:
- 成本高:多节点运行、链上聚合交易、频繁更新会有较高的gas和运营成本。
- 更新延迟:需要等待多节点提交数据并聚合,实时性不如中心化单源。
- 数据源依赖问题:存在多节点可能依赖同一交易所或者API,如何数据源出错,也会影响结果。
- 复杂性高:协议设计、节点激励、惩罚机制和签名聚合逻辑较复杂,增加了运维和审计难度。
- 潜在经济攻击:攻击者可能在预言机更新间隔内操纵数据源,进行闪电贷套利或清算攻击。
- 手动喂价
- 由可信节点/多签钱包定期更新链上数据。
- 优点:简单实现
- 缺点:人工成本高,易出错或延迟。
- 跨链消息传递
- 从另一条链上同步已存在的可信数据,比如从Binance Smart Chain同步价格到以太坊。
Uniswap不会主动去获取外部价格,而是利用自身的AMM(自动做市商)恒定乘积公式
x * y = k
在任何时刻,池子中两种代币的余额比值y/x天然反映了市场价格。 当有人交易时,储备量发生变化,价格随之调整。 价格 = 池中ETH数量 / 池中USDC数量 这个价格是反映当前池子的状态。
- 可以通过闪电贷进行操纵
- 闪电贷允许用户在单个交易内借入大量资产,执行操作之后立即归还,几乎无需担保。
- 攻击者可以利用闪电贷大量买入或卖出某资产,在Uniswap池内瞬间改变代币储备比例(价格)。
- 价格会瞬间偏离真实市场价格,价格被人为的拉高或压低。
- 利用这个被操纵的价格,在依赖该价格的其他智能合约(借贷、清算、衍生品合约)中套利。 -最后在同一个交易内还回闪电贷,完成整个操作,没有持有被借资产风险。
- 成功因素:
- 交易是原子性的:所有操作在一个区块内完成,外部观察者无法在中间干预。
- 当前储备比是瞬时的,价格没有平滑机制,瞬间的储备变化直接反映为价格变化。
- 在Uniswap V1中,只能读取当前池子的储备比,价格是瞬时快照,容易被闪电贷操纵。
- Uniswap V2 引入了“累计价格”概念
- 每个区块都会更新一次价格累计值,累计值是“价格 * 时间”的累计和。
- 通过两个十九点的累积价格差,除以时间差,可以算出这段时间的平均价格(TWAP)
思考场景:
- 市场价 ETH = 4000 USDT
- Uniswap池内即时价格 = 3900 USDT
- 且没有新的流动性注入或者交易发生
- 链上价格是池内储备比例的反映
- 存在偏差
- 交易频率和流动性影响
- 套利机会
- 套利过程会推动池内价格回归市场价:
- 例如当前场景可以在Uniswap买入ETH,推高池内ETH价格。
- 直到价格差被消除或套利利润变小到不可行为止。
- 没有新流动性注入不代表价格失真
- 流动性注入只是池子容量的变化,价格由交易行为决定。
- 如果没人交易,价格静止,但这不等于“价格真实失真”,而是“价格未及时更新”。
- 市场通过套利机制自动修正价格偏差。
- 总结
- Uniswap的即时价格是链上状态快照,不一定与市场价完全一致。
- 价格失真会被套利者修正,通过买卖行为推动池内价格回归市场价。
- 流动性注入影响池容量和滑点,但不直接决定价格是否失真。
- 合约结构
- 变量类型
- 函数
- 数据位置
- 控制结构
- 映射与结构体
- 控制流
- 事件
- 构造器与修饰器
- 继承
目前已完成第三关
- 心得记录:在remix上部署攻击合约时,踩坑,攻击频率过高会出现在同一区块上执行,其次通过sepolia etherscan的Lastest Block查看区块变动存在延时。
- Web3存在的违法行为
- 作为技术人员如何去避免参与到违规项目
- 法币抵押型(Fiat-Collateralized Stablecoins)
- 定义:由中心化机构发行,1:1 锚定法币(如美元、欧元),由托管银行账户或储备资产支持。
- 特点:
- 优点:价格稳定,风险低,用户信任度高。
- 缺点:中心化、依赖托管机构,面临监管风险。
- 代表项目:
- USDT(Tether):最早、流通量最大,锚定 USD。
- USDC(Circle):合规性强,监管友好。
- BUSD(Binance USD):由 Binance 与 Paxos 发行。
- 加密资产抵押型(Crypto-Collateralized Stablecoins)
- 定义:通过超额抵押加密资产(如 ETH、WBTC)发行,依靠智能合约和清算机制维持锚定。
- 特点:
- 优点:去中心化,不依赖传统银行系统。
- 缺点:价格波动风险高,需超额抵押(通常 150%-200%),清算复杂。
- 代表项目:
- DAI(MakerDAO):锚定 USD,通过超额抵押 ETH、USDC 等资产生成。
- sUSD(Synthetix):基于合成资产协议发行。
- LUSD(Liquity):基于 ETH 抵押,最低抵押率 110%。
- 算法稳定币(Algorithmic Stablecoins)
- 定义:不依赖抵押资产,通过算法调节代币供应维持价格锚定(类似央行货币政策)。
- 机制:
- 当价格高于 1 美元 → 增发代币降低价格。
- 当价格低于 1 美元 → 销毁代币提高价格。
- 特点:
- 优点:无抵押需求,资本效率高。
- 缺点:风险极高,易发生“死亡螺旋”。
- 代表项目:
- UST(Terra):通过 LUNA 铸造/销毁维持锚定(已崩盘)。
- AMPL(Ampleforth):通过供应弹性调整价格。
- 定义:以太坊(Ethereum)是一个开源、去中心化的区块链平台,提供智能合约和去中心化应用(Dapps)支持。
- 创始人:Vitalik Buterin,提出于 2013-2014 年,2014 年正式启动。
- 核心创新:智能合约(Smart Contracts)——存储在区块链上的自动化执行代码。
- 定位:区块链 2.0,目标是“世界计算机”,支持更广泛的应用场景。
- 原生代币:以太币(ETH),用于支付交易和 Gas 费用。
- 当前地位:市值全球第二,仅次于比特币;The Merge 后,年通胀率约 0.2%-0.8%。
| 维度 | 比特币(BTC) | 以太坊(ETH) |
|---|---|---|
| 目标与定位 | 去中心化数字货币,强调稀缺性 | 去中心化平台,支持智能合约和 Dapps |
| 编程能力 | 脚本语言有限 | 图灵完备,支持复杂逻辑(Solidity) |
| 共识机制 | PoW(挖矿) | PoS(The Merge 后) |
| 区块时间 | 约 10 分钟 | 约 12 秒 |
| 经济模型 | 总量固定,抗通胀 | 灵活供应,可能呈通缩(EIP-1559) |
| 应用场景 | 数字黄金,价值存储 | DeFi、NFT、DAO、Dapps |
- 使用工作量证明(PoW),依赖矿工算力。
- 问题:能耗高、TPS 低(约 30 笔/秒)、Gas 费用高。
- 信标链(Beacon Chain):2020 年启动 PoS。
- The Merge(2022.9.15):PoW → PoS,能耗降低 99.95%。
- PoS 特点:
- 验证者需质押 32 ETH。
- 奖励 + Slashing 惩罚。
- 区块确认更快,经济安全性提升。
- 分片(Sharding):数据分片,配合 L2 降低成本。
- EIP-4844(已上线):Blob 交易,降低 L2 成本 70%-90%。
- Layer 2 扩展:Rollups(Optimistic、ZK)。
- ZK-Rollup:批量验证,快速低成本。
- 其他:Verkle 树优化、EVM 性能增强。
- L1 主网:共识安全层,EVM,账户系统。
- L2 扩展:Rollups(Arbitrum、Optimism、zkSync)、侧链(Polygon)。
- 应用层:
- DeFi:Uniswap、Aave、Compound。
- NFT:OpenSea、Foundation。
- 钱包:MetaMask、Rainbow。
- DAO:Snapshot、Aragon。
- EOA(外部账户):由用户私钥控制。
- CA(合约账户):由智能合约代码控制。
- 关键字段:Nonce、余额、CodeHash、StorageRoot。
- Gas = 计算量单位,防止滥用。
- 费用 = Gas Used × Gas Price。
- EIP-1559:
- Base Fee:销毁,助力 ETH 通缩。
- Tip:奖励验证者。
- 图灵完备,运行智能合约。
- 每个节点都执行相同代码,确保一致性。
- 隔离执行,防止恶意代码破坏网络。
- 去中心化治理(社区共识、EIP 流程)。
- 无需许可、开放性。
- 抗审查性。
- 密码朋克精神:代码即法律。
- 可持续发展:环保(PoS)、长期主义。
- 是一个Web3安全社区,在全球拥有超过3900名成员和292名白帽黑客
- 致力于汇聚多方安全专业鱼创新力量,打造更安全、更具韧性的Web3生态系
- 为传统和新兴人才进入Web3安全领域牵线搭桥,通过战略合作伙伴关系和教育增强生态系统的稳健发展。
- 定义:去中心化、分布式账本,数据按时间顺序串联成“区块链”
- 特性:
- 不可篡改:区块通过哈希相连,修改需重写全部后续区块
- 公开透明 + 匿名:交易可查,钱包地址无实名
- 快速交易:全球无障碍结算
- 特性:
- 比特币是矿工通过维护网络获得奖励(挖矿)
- 比特币具备货币属性:稀缺性 + 可转账 + 去中心化
- 特点:匿名、公开、不可篡改、跨境便捷
- 去中心化网络:节点(矿工)共同维持
- 代币激励机制:Gas Fee + 区块奖励
发起交易 → 广播 → 验证 → 打包成块 → 上链 → 发放奖励
- 公链:
- 任何人都可以加入
- 数据全公开
- 采用去中心化投票管理
- 应用场景主要是加密货币、存证
- 缺点是决策效率低,维护成本高
- 联盟链:
- 采用邀请制/审批方式
- 数据仅联盟内部可见
- 采用多方治理
- 应用场景主要是金融、供应链
- 优点是效率比公链高,隐私比公链好,灵活性还是欠缺
- 私链:
- 采用严格的审批,成员固定
- 数据仅内部可见
- 管理模式中心化
- 应用场景主要是企业内部系统
- 优点是效率极高,隐私极强,但缺乏公链的透明性
| 控制权 | 数据存储 | 技术 | 场景 | |
|---|---|---|---|---|
| web 2 | 平台 | 中心服务器 | JS | 微信、抖音 |
| web 3.0 | 部分开放 | 语义结构化 | RDF/OWL | 语义网搜索 |
| web 3 | 用户自治 | 区块链/IPFS | 智能合约 | 去中心化金融、NFT |
- Web 3.0 = 语义网(结构化数据),不等于区块链
- Web3 = 区块链驱动,强调去中心化,去信任化
- 优势:
- 信任最小化
- 抗审查 + 高弹性
- 用户数据主权
- 创新生态
- 挑战:
- 可拓展性差
- 安全与治理
- 用户体验差
- 法律合规风险