十年匠心定制 · 商业建站与技术教学双线并行 咨询热线:400-886-1026 service@lmnt.cn
ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

Uniswap学习笔记:从AMM原理到流动性管理实战

Uniswap学习笔记:从AMM原理到流动性管理实战 在进入正文之前我必须先说明本次输入内容仅包含项目标题“Uniswap学习笔记”和一个热搜词没有提供关键词、摘要描述或正文细节。因此我将基于自己多年来在去中心化金融DeFi领域的实际研究和操作经验把Uniswap这个项目从零到一拆解开来写成一篇完整的学习笔记。全文只讲技术机制、协议逻辑、实操步骤和踩坑经验不做任何投资建议也不评价币价。内容围绕Uniswap的恒定乘积做市商AMM模型、无常损失、流动性管理、版本演进、实操流程、常见问题这些核心主题展开力求做到既让刚入门的朋友能看懂也让有一定经验的人能从中获得一些可以落地的东西。1. Uniswap的整体设计思路为什么AMM能取代传统订单簿1.1 传统订单簿的核心痛点在Uniswap出现之前加密货币交易的主流模式是订单簿。中心化交易所里交易者挂买单和卖单系统按价格优先、时间优先的原则撮合。这个模式本身没有错但它有一个致命的依赖条件市场深度。一个交易对如果没有足够的买卖挂单滑点会高得离谱大额交易甚至会直接砸穿盘口。而流动性又往往集中在头部交易所长尾资产的交易体验非常糟糕。更关键的问题是订单簿模式天然依赖撮合方。谁来维护挂单顺序谁来保证交易执行谁来托管资产这些问题的答案在中心化场景下就是交易所本身。于是就有了资产安全风险、平台运营风险甚至作恶风险。用户必须信任一个第三方机构这在“代码即法律”的去中心化理念下是一个妥协。Uniswap的突破在于它把“交易”这件事从“人与人撮合”变成了“人与算法交易”。用户不再需要等待对手方出现流动性提供者LP把两种资产按比例存入资金池交易者直接与这个池子交互。池子就像一个永远在线的对手方价格由数学公式决定而不是由挂单簿决定。1.2 恒定乘积公式一个天才的简化Uniswap V2采用的恒定乘积做市公式是 x * y k。这个公式的意思是在任意时刻池子里的两种代币数量的乘积是一个常数。当用户用A代币换取B代币时A的数量增加B的数量必须相应减少以保持乘积不变。举个具体例子。假设一个ETH/USDT池子里有100个ETH和200000个USDT那么 k 100 * 200000 20000000。如果你用1个ETH兑换USDT池子里的ETH变成101个那么新的USDT数量就是 20000000 / 101 ≈ 198019.8。你得到的USDT数量是 200000 - 198019.8 1980.2。注意这个结果低于直接用2000的“公允价格”计算出的2000因为你买走了流动性池子里的ETH/USDT价格比例发生了变化。这个设计的神奇之处在于它不需要预言机喂价不需要外部报价价格完全由资金池内的资产存量决定。当交易者买走大量B代币后B代币的存量下降A代币的存量上升根据公式下一次购买B代币的价格会更高。这就是AMM内置的价格发现机制它模拟了订单簿中深度被吃透后价格滑行的过程只是把这一切自动化、链上化了。1.3 从V1到V4版本演进背后的逻辑思考Uniswap V1是最早的雏形只支持ETH与其他ERC20代币之间的兑换池子结构是ETH/ERC20对。为什么这么做因为V1的合约设计需要一种“核心资产”作为中间桥梁ETH天然是链上流动性最好的资产。但这种方式有一个明显弊端如果你想兑换两个非ETH代币的ERC20资产需要经过两次兑换、两次手续费、两倍滑点。V2引入了核心创新任意ERC20代币对之间的直接池化以及ERC20对ERC20的兑换路径。也就是说可以创建一个DAI/USDC池子而不是强制通过ETH中转。另外V2还加了一个我很看重的功能价格累积预言机Price Accumulator Oracle通过在每个区块开始时记录价格累积值外部合约可以计算出时间加权平均价格TWAP这为链上借贷协议、衍生品协议提供了安全的参考价来源。V3解决的是资本效率问题。在V2的平坦曲线下大部分流动性其实很少被用到——池子里的绝大多数资金只在价格剧烈波动时才会成交。V3引入了集中流动性Concentrated Liquidity概念LP可以选择在某一个价格区间内提供流动性资金使用效率最高提升了4000倍。代价是区间外的流动性不再产生手续费而且区间管理需要更主动的策略。V4则进一步引入了澳元调度器Hook机制让外部合约可以在池子生命周期的关键节点换币前、换币后、加流动性前等插入自定义逻辑。比如可以做一个带有链上限价单功能的池子或者一个自动复投手续费的池子。V4还升级了宇宙分权共享化多个池子共用一个核心合约降低部署gas成本。这个演进脉络非常清晰地表明Uniswap不只是做了一个DEX它是在构建一个链上流动性基础设施后续所有版本的核心考量都是资本效率、安全性和可组合性。2. 核心机制深度解析公式、滑点与无常损失2.1 x * y k的深层含义与滑点关系前面我们说了 x * y k 的基本运算但真正理解滑点需要更精细的视角。实际运行中每一笔交易无论多小都会改变池子中两种资产的比例从而改变交易价格。交易的规模相对于池子规模越大价格偏离就越严重这就是滑点的来源。滑点可以用公式近似表示。假设池子中 A 代币数量为 A_reserveB 代币数量为 B_reserve你希望兑换 ΔA 个 A 代币得到的 B 代币输出量 ΔB 为ΔB B_reserve * ΔA / (A_reserve ΔA)这是不考虑手续费时的数学输出。如果考虑 0.3% 的手续费则实际进入池子的 A 代币是 ΔA * 0.997所以ΔB B_reserve * (ΔA * 0.997) / (A_reserve ΔA * 0.997)这个公式就是你链上看到的交易输出。很多人看到官方界面上的“滑点容差”百分比设置以为那是实际滑点下限其实不是。滑点容差是“我最多能接受多少滑点”如果你在Uniswap界面下单时设置了 0.5% 的滑点容差实际滑点只有 0.3%那交易会正常执行。如果实际滑点达到 0.6%交易会失败并回滚revertgas费照样扣。我建议大家实际交易前用这个公式自己算一遍。比如你想用 10000 USDC 兑换 ETH池子当前有 5000 ETH 和 2000万 USDC手续费 0.3%。那么进入池子的 USDC 是 9970新的池子状态是 5000 ETH 和 200多万 USDC……数字不够精确但在真实场景里套利者会迅速把价格拉回市场平均水平所以你在Uniswap看到的最终成交价格与外部市场价格相差不会太大。差距大时会引发套利交易套利者是AMM生态的重要润滑剂。2.2 无常损失最需要理解的风险无常损失Impermanent Loss简称IL是LP最需要理解的概念也是最容易被忽略的风险。简单说当你向一个AMM池子提供流动性后两种资产的市场价格发生变动你按当前价格计算的总资产价值会低于你不在池子里、直接持有这两个代币的价值。这个差值就是无常损失。为什么会产生无常损失因为AMM的恒定乘积机制强制要求池子内资产比例随价格变化而调整而套利者会不断通过交易使池内价格与外部市场保持一致。当市价涨跌时套利者会从池中买走价格偏低的资产导致池子中价格上涨的资产变少、下跌的资产变多。作为LP你实际上是在“高抛低吸”中被动交易但你的持仓结构被推向了短期不利的方向。具体数值可以算出来。当两种资产的市场价格比率变化了一个因子 r 后无常损失的近似公式是IL 2 * sqrt(r) / (1 r) - 1例如ETH价格翻倍r 2无常损失约为 5.72%价格涨到三倍r 3损失约为 13.4%跌到三分之一r 1/3损失同样约为 13.4%。注意这个值是根据价格变化率算的不是赛跑的绝对值。也就是说如果你加了流动性三个月后ETH涨了一倍你虽然资产绝对值是赚的但相比“一开始就不加池子直接屯币”少赚了约 5.72%。很多人听到这儿会问既然有损失为什么还有人愿意做LP答案很简单手续费收入可以覆盖这个永久性损失尤其是在高波动、高交易量的池子里。如果费率高、交易频繁手续费年化收益率超过无常损失LP仍然有正的净收益。但如果池子很冷清、交易量很小又不幸遇到剧烈行情你可能两头挨打。V3的高波动集中流动性设计要求LP对价格区间有更精准的判断一旦价格跌出区间流动性处于“熄火状态”既不产生手续费还会使持仓结构变成单边资产无常损失风险被放大了。这是我反复提醒V3新手要注意的集中流动性本质上是一种主动做市策略已不适用“存进去躺赚”的叙事。如果你不能频繁管理仓位区间V3的高级做市玩法的门槛比你想象中高得多。2.3 手续费分配与协议治理Uniswap V2的手续费费率是 0.3%其中全部归LP所有。V3引入了多级费率选项0.05%、0.30%、1.00%后来还有0.01%、0.05%、0.3%、1%的组合LP创建池子时可以按预期波动率选择费率。稳定币对如USDC/DAI波动极小滑点低适合低费率高波动山寨币对适合高费率因为套利交易频繁滑点补偿需求高。一个很容易被忽视的细节是Uniswap V2的手续费是持续复投到池子中的LP的代币数量不会变化但池子中每单位LP代币对应的资产比例在不断增加。这意味着你手中的LP代币价值会随时间增长。在撤出流动性时你获得的资金中包含本金加累计手续费收益这个计算是自动完成的。V3在区块头加入了协议治理费开关选项社区投票可以决定是否激活某个池子的协议费通常为手续费的四分之一用于Uniswap协议开发与治理。这个机制在V2时代不存在。如果没有技术背景你只需要知道Uniswap的治理权限是用UNI代币投票治理者可以调整的部分有手续费开关、Factory参数等但核心交易合约是不可篡改的。这种“既设定了治理能力又不给核心合约留后门”的设计是DeFi协议安全的典范。3. 实操过程从连接钱包到成功添加流动性3.1 实操前的准备开始操作Uniswap之前我强烈建议你不要在主网上直接试错先到测试网走一遍完整流程。常用的测试网是 SepoliaGoerli正在逐步退役支持链的信息可以在Uniswap官方文档里查到。你在测试网用的测试ETH可以到公开水龙头faucet去领不需要花一分钱。虽然测试网的交互体验偶尔有点卡但能帮你完全避开“手一抖转账转错链”的灾难性错误。钱包方面主流选择是 MetaMask、Rabby 或 Coinbase Wallet只要支持WalletConnect或浏览器扩展注入即可。核心要求必须确认当前连接到了你期望的链。每次交易前养成好习惯看一眼钱包顶部的链ID。Uniswap界面右上角也会显示当前网络两边核对一致再操作。同时建议准备一个专门用于DeFi操作的钱包不要跟你长期囤币的资金放在同一个热钱包里。我的做法是冷钱包囤资产热钱包只放最近一到两周需要交互的少量资金每次用完及时转走。原因很简单DeFi领域的安全事件钓鱼授权、恶意合约、假币合约太多了频繁交互会增大暴露面。3.2 连接钱包与代币选择打开 Uniswap 网页版app.uniswap.org点右上角“Connect Wallet”浏览器会弹出钱包授权确认。这里会出现一个关键操作签名请求。连接钱包的签名通常是 off-chain 的不会转移资产但需要仔细看签名类型。勒索式钓鱼在连接阶段就会伪装成交易请求如果看到金额或资产转移相关的内容千万不要签字。连接成功后在兑换Swap页面选择交易对。例如你想用USDC兑换ETH就在“From”中输入USDC“To”中选择ETH。当你第一次选择非主流代币时MetaMask会在下面提示“未知道的人必须验证代币地址”。务必去 CoinGecko、区块浏览器Etherscan或项目官网核验该代币的真实合约地址再用这个地址在Uniswap“搜索”里查找。很多攻击者会创建符号、名称完全模仿热门代币的假合约不校验地址就直接买大概率会买到一堆空气。在发起真正的兑换交易前界面会让你填写“滑点容差”Slippage Tolerance。V3新版的默认值是0.50%你可以根据交易对流动性和交易规模进行调整。大额交易建议手动改成1.00%-2.00%宁可接受一点滑点也不愿交易因为滑点超过容差而反复失败白付gas费。但不要无脑设成8%、10%那等于给套利机器人留了抢跑的空间。3.3 添加流动性的实操步骤进入Uniswap的“Pool”选项卡点击“New Position”在V3版本中或“Add Liquidity”在V2版本中。V3版本会让你选择费率档位和价格区间这一步要慎重如果你只是想长期持有一对资产并且接受高无常损失风险你可以选择 Full Range全区间模式这相当于V2的流动性提供方式但资金利用率很低。V3里全区间的仓位会被摊得非常薄手续费收入会明显少于选择集中区间。如果你看好某个价格区间比如ETH在2000-2400之间震荡那你就可以把流动性集中到这个区间在该区域内获得更高的手续费份额同时承担更大的单边风险。决策方法其实是判断某资产未来价格的最大概率分布范围这比表面看起来要复杂得多。选定区间和费率后系统会计算出需要存入两种代币的数量。按“Preview”查看交易预测再确认“Add”。紧接着MetaMask会弹出两笔交易的确认第一笔是授权Approve自己选择的数量给Uniswap合约第二笔是执行添加流动性。第一笔是典型的“需要警惕但通常是安全的”ERC20授权操作但要复核授权对象地址是否为Uniswap的Router合约地址。V2添加流动性相对简单不用选区间直接填两个数量系统会按照当前池内比例计算另一边需要补充的数量。比如你想添加流动性输入100 USDT另一边ETH会自动算出所需数量。建议让系统自动计算不要两边都手动填数值——手动填容易因比例不匹配而反复失败跑掉多次gas。3.4 用Python测算流动性添加后的关键参数如果你是开发者或有一定技术基础可以用Python通过web3.py直接计算添加流动性的核心参数。下面我贴一段我常用的脚本用于读取池子状态并计算预期输出和大致滑点。注意这里只做数学演示不调用合约import math # 模拟池子状态 eth_reserve 100.0 # 池中 ETH 数量 usdt_reserve 200000.0 # 池中 USDT 数量 fee 0.003 # 0.3% 手续费 def get_amount_out(amount_in, reserve_in, reserve_out): amount_in_with_fee amount_in * (1 - fee) numerator amount_in_with_fee * reserve_out denominator reserve_in amount_in_with_fee return numerator / denominator def get_price_after_trade(amount_in, reserve_in, reserve_out): amount_out get_amount_out(amount_in, reserve_in, reserve_out) return amount_in / amount_out # 交易 1 个 ETH兑换 USDT eth_in 1.0 usdt_out get_amount_out(eth_in, eth_reserve, usdt_reserve) price_before usdt_reserve / eth_reserve price_after eth_reserve / (eth_reserve eth_in * (1 - fee)) * (usdt_reserve / eth_reserve) print(f池内初始ETH: {eth_reserve}, USDT: {usdt_reserve}) print(f交易 {eth_in} ETH期望获得 {usdt_out:.2f} USDT) print(f初始价格: 1 ETH {price_before:.2f} USDT) print(f滑点模拟: {(1 - usdt_out / (price_before * eth_in)) * 100:.2f}%)这段代码非常简化但能帮你看清手续费对输出量的影响0.3%的手续费远低于许多新用户对DeFi的心理预期不过在滑点大的池子里面滑点要比手续费可怕得多。实际开发时建议用合约的getAmountsOut方法来获取精确的链上输出我这里给的是教学示例。3.5 撤出流动性的实操步骤在V2中撤出流动性就是执行一个“销毁LP代币”的操作连接到Pool页面点“Remove”选择要撤出的比例确认后执行。通常系统会先要求你批准LP代币被Router合约销毁然后再执行撤出。整个过程界面友好但有一个坑你要记得在撤出页面检查最终能收到多少数量的两种资产。如果池子已经出现过深度不平衡你撤出时的资产比例可能和你加入时的比例完全不同。在V3中撤出流程多一步“Collect”操作因为V3的手续费是独立累积的你不会自动收到手续费收益。如果你在V3里提供了集中流动性一段时间不在界面操作仓位里的手续费会积攒在一个独立字段中需要手动去“Claim”或“Collect”。我见过很多人忘了收这一笔时间长了手续费一度不少。另外一个细节V2撤出流动性时前面计算出的LP代币数量和撤出资产的关系受手续费复投影响所以即使没有发生任何市场价格变动你撤出的资产数量也会比加入时多出一点点这是手续费积累的结果。如果出现资产数量少了先不要慌检查是否是撤出比例选择错误或是资产已自动分配到其他区域。4. 常见问题与排查技巧实录4.1 为什么交易一直失败回滚这是新手上路时最常遇到的问题。排查顺序我是这样做的第一看滑点容差。如果交易金额较大而你的滑点容差设得太小比如 0.1%几乎必定失败。交易界面显示的估计值包含了滑点但实际执行价格会因为交易同步、矿工打包时间、链上拥堵而浮动。建议先取消这笔交易把滑点调到 1% 再试。第二看gas价格。以太坊拥堵时低gas的交易会长时间处于 pending最终可能被矿工丢弃。如果出现“Transaction dropped and replaced”意味着你的交易被替换了或失效了。我的做法是在gas费暴涨期不要做DeFi操作哪怕多等半天再操作也比反复被替换省钱。第三看授权是否过期。很多合约授权不是无限额某些项目要求你设置授权额度。如果你授权的额度小于交易金额交易会因为 Erc20InsufficientAllowance 而失败。第四看链是否正确。有时候钱包里连接的是ArbitrumUniswap界面却显示以太坊主网或反之。所有链上数据余额、池子地址都是链相关的链选错了会显示你没有资产甚至导致资产误发到错误链异常危险。每次交易前把浏览器顶部网络和钱包网络对齐一下成本几乎为零收益极大。4.2 为什么我撤出流动性的资金变少了这个问题在V3中几乎每周都有新人来问。原因往往是单一流动性区间。如果你把流动性范围设定在一个较窄区间比如ETH在2000-2100之间而当前价格已经跌至1800你的仓位实际只包含ETH不含USDC。那么撤出时你就只能拿到单边资产从账面看“价值下降了”。这不是平台出问题而是集中流动性的代价。无常损失超额释放。前面算过两倍变化约损失5.72%三倍约13.4%。如果波动再大一些损失会更明显。加上你在区间外的“单边持仓”相当于强制回购/卖出损失会被放大。手续费覆盖不足。低费率池0.05%的收益不足以覆盖高波动资产的IL在行情剧烈波动时不赚钱甚至亏损是很正常的。稳定币对的低费率高流动性池才是低风险策略。我的建议是每次提供流动性时记录你投入时的价格区间和资产数额。三个月后撤出时不要只盯着“总价值数字”而是对比两种方案A. 一直加池子B. 始终持有原始资产。明确差值后再判断是否值得继续做这个LP。如果你自己都没办法在这个区间内保持信心不要勉强。4.3 安全排查授权治理与假代币在Uniswap的UI界面上很多操作会要求你批准某个代币给Router合约。请记住一个原则不要随意无限授权。授权时尽量选择“自定义限额”也就是批准你本次交易所需的最小数量。这样即使合约被攻击或钓鱼地址伪造你亏损的金额也被限制在授权限额内。可选项如“Import”自定义代币时要认真核实合约地址避免复制“看起来像”的地址。另外任何陌生人通过Discord或Twitter私信你发送“Uniswap官方链接”或“验证助手”要求点击并签名基本都可以判定为钓鱼攻击。Uniswap官方从不通过私信联系用户。记住这点后你把解释放心的重点放在如何操作界面上就不会被伪装成“客户服务”的诈骗带走资产。4.4 一份常见问题速查表问题可能原因解决建议交易一直pendinggas过低或链上拥堵提高gas或取消后重试拥堵时不操作交易回滚滑点容差不足/授权不足/链选错调大滑点、检查授权额度、确认链ID币发过去了但看不到合约供应商地址错误链选错未导入代币用区块浏览器核对地址加入自定义代币确认链V3撤出只有一种代币价格跌出了你的流动性区间理解区间机制考虑撤出后重新设区间撤出时没有手续费V3手续费是独立累积的手动执行Collect/Claim操作LP代币数量变多/变少池内比例变化或手续费复投是正常现象对比总价值变化4.5 我给新手的三个避坑经验第一先用测试网全流程走一遍超值。你花20分钟在Sepolia上体验兑换、添加流动性、撤出流动性就能避开主网上90%的低级错误。技术圈有一句话“测试网都不玩就直接上主网的人很快就会变成别人的收益。”第二不要选冷门池子提供流动性。冷门池子交易量低手续费收入少无常损失却一点不少。如果你想练手直接选 ETH/USDC 或 ETH/DAI 这种头部大池数据透明、深度好、进入退出方便。虽然集中流动性在大池里面的费率段竞争激烈但它也是最真实的做市环境。第三定期记录你的仓位状态。包括投入时间、池子地址、初始资产数量、当前资产数量、已计提的手续费、当前价格与你的区间上界/下界的距离。每隔一周或半个月更新一次。记录做得越细你对无常损失和手续费的理解就越直观长期优化策略的能力也会显著提升。5. 工具选型与学习资源推荐5.1 数据面板和监控工具做DeFi不只需要在界面上点来点去更需要用数据工具观察池子状态、LP收益和历史曲线。我常用的有Dexscreener、GeckoTerminal快速查看任意交易对的历史价格、成交量、跟踪积压订单不AMM没有订单簿、池子深度和持有人数。对对比不同池子非常有帮助。DefiLlama可查协议总锁仓量(TVL)和额外协议的历史数据。判断一个池子是否有长期活跃度看它的TVL是否稳定增长很重要。Uniswap Analytics官方V3统计面板可以直接查看各交易对费用、TVL历史、资金流入流出。做流动性管理时最常用的数据源之一。这些工具都是免费的界面也很简单不需要懂代码就能上手。做数据分析前先调出你想要研究的池子的“基础数据面板”学会看“交易量/总锁仓量”这个比值。该比值越高说明池子单位流动性的交易活跃度越高对应的年化费收益通常也更高。5.2 代码层面学习资源如果你想更深一层读懂Uniswap合约先读白皮书V2和V3白皮书是协议的“论文原文”所有公式和设计决策都有数学推导。V2白皮书短一些建议先读V2再读V3最后再看V4的滚动白皮书内容。然后读官方文档docs.uniswap.org里面关于路由、池子工厂、报价器、许可断言的部分写得很清晰。再看核心合约UniswapV2Pair.sol 和 UniswapV3Pool.sol。先不追求完全理解每个函数重点关注swap、mint、burn这三个核心方法。理解了它们你就理解了这个协议运行的核心。我开始学Uniswap的路径就是先读白皮书再用测试网操作最后再读合约。读合约时遇到不懂的函数用 Python 模拟跑一遍把输入输出跑通了原理就自然通了。不建议刚开始就去读复杂的Router合约那里面的路由逻辑和标准管理容易让人劝退。5.3 低风险实践中常备的资产管理习惯无论你是初学者还是有一定经验都要养成“小额多次”的操作习惯。我开始做LP时只拿总资金的5%去试水然后是10%、20%直到我对某个池子的收益特征有足够的把握才敢提高仓位占比。很多人一次梭哈进一个池子行情一反向就和团队哭诉“用DeFi亏掉本金”这往往不是DeFi的问题而是仓位管理的问题和风险认知的问题。另一个习惯是始终保留一部分资金用于支付gas。很多人把钱包里所有资金都填进流动性里等到手续费暴涨或需要撤出时发现自己连gas费都付不起。最后只能等gas降低或者临时转入资金错过了最佳操作时机。这个错误很低级但发生频率极高。我的做法钱包里永远留着至少足够支付十次常规交易费用的资金。6. 学习笔记之外的思考Uniswap对DeFi生态的启示最后想分享一点更宏观的体会。Uniswap表面上是一个去中心化交易所实际上它重新定义了链上流动性实现的方式。它把“市场中存在一个持续做市商”这个概念从“需要人力资本维护”变成了“算法自动供给”这不仅仅提高了交易效率更关键的是让长尾资产的交易成本降低到可接受水平。对我们这些有经验的技术人而言研究Uniswap的价值还不只是学习如何swap、如何赚手续费而是理解去中心化金融基础设施的设计思路如何用最简的数学公式完成复杂的功能如何在无法信任第三方的前提下用代码和激励建立信任边界又如何通过版本迭代在保证安全的前提下持续提升资本效率。对一个刚接触DeFi的朋友来说我建议你们把Uniswap当作第一站先做几次小额兑换理解滑点和gas费之间的关系再添加一个小额流动性体验LP的角色然后再逐步学习V3的集中流动性。这个路径不会让你一夜暴富但会让你真正建立起链上交互的底层能力。这种能力在后面的很多协议应用和项目深入研究里都会用到。如果你只是把它当作一个“换个币的工具”那你会错过很多有趣的东西。如果你愿意花一点时间把它当作一本开放的教材来读它会非常慷慨地教会你结构性、模块化和去中心化的思维这套思维在未来很多智能合约项目的学习和设计中都是极其宝贵的起点。
返回列表