长推:Web3产品经理如何清晰理解ERC规范?

互联网 阅读 469 2023-06-27 09:17:00

注:本文来自@SiliconLuoDAO 推特,其是 @0xCreatorDAO联合创始人,原推文内容由MarsBit整理如下:

Web3产品经理,如何一次性清晰理解ERC规范?

Web3产品经理可以不懂代码,但是必须要精确理解ERC协议的接口概念。(这是一篇从产品经理视角下的ERC协议技术科普贴)

一、Web3 PM的关键是构思资产逻辑

Web2的PM,梳理清楚数据逻辑是非常关键的;类似的,做Web3产品,就一定需要梳理清楚资产逻辑,而要做到这一点,一定要对ERC协议有精准的概念理解。同时我之前看到了太多模糊的比方,这样的比方短期内可以让你觉得自己理解了,长期却会影响你的理解和产品设计。

要理解ERC,首先要明白:ERC本身是一种代码规范,它尽可能从最底层的视角去抽象想刻画的事物的通用属性,并且对应的在合约代码中,用接口(函数)去刻画这些属性,这样子规范就可以起到让大家广泛的使用,在实现自己特异功能的同时,还可以互相通信认可的目的。(只要大家都按照规范去写的代码)

二、聊聊ERC20的设计思路

个人暴论:ERC20可以被认为是其他资产规范之根基,把ERC20的精神理解清楚了,其他的都是类似的套路,只不过多了一些小细节不同而已。

ERC20的核心是描述同质化代币。我们来想想,做减法做到极致,同质化代币有哪些最根本的属性?首先最核心的是需要一个账本,记录每个地址有多少数量代币,后续的一切其他属性都是围绕这个点来展开的。这个账本一般在合约代码里是通过一个map格式的数据来实现,map就是一个从地址到数量的映射。

当然了,这个是藏在代码里面的,没有通过接口暴露在外面。

那么基于这个账本,FT有哪些基本属性呢?查询余额这个肯定有,所以我们有了balanceOf(address _owner)接口,输入是地址,输出就是资产数量。

具体代码内部实现的话,基本操作就是调取合约内部的map账本数据,即:mapping(address => uint256) private _balances,获得输入地址对应的数量;

当然如果你要搞骚操作,也可以写其他返回的逻辑,比如返回真实数量的两倍。。。(其实接口的实现非常自由)

转账动作是一个关键的属性,围绕这个属性我们可以延伸出几个相关联的接口。先看看概念,什么是转账?就是一个账户的数字+a,另外一个账户的数字-a;同时转账必须需要一个发起方,并且发起方能发起的转账指令肯定是受限制的,其中一个必有的限制是:他只能发起转出特定的地址的资产。

比如你只能发起转移自己的资产给其他人,或者你获得了某个地址A的授权,你可以代表A发起指令,转移这个地址特定数量的资产。所以就出现了两个核心的接口:transferFrom(address _from, address _to, uint256 _value),即转账指令本身,以及approve(address _spender, uint256 _value),即授权指令

具体在代码实现的话,transferFrom内部,一般会做一个检查,看看发起这个transaction的地址,是不是有address _from本身,或者有没有address _from的相应授权。如果有,那么就会让合约里记录资产所有信息的map变量的address _from的资产数量减去uint256 _value。

对应的address _to资产数量+uint256 _value;对应的,合约里肯定有个变量,用来储存谁给谁授权了多少额度的信息,即mapping(address => mapping(address => uint256)) private _allowances;同时这个变量又可以被approve接口来写入。

如果你要搞骚操作,也可以不这么内部实现。虽然接口在这里,但是你可以改,比如你要当庄家,你可以改动transferFrom的内部代码检查逻辑,让onwer地址可以操作所有地址的资产...

三、理解完接口概念后,如何设计产品?

如果你现在明白了ERC20是如何通过接口,抽象出通用的属性后,你就会发现,你可以基于此定义很多自己的产品逻辑了。

比如你希望设计一款社交App,你希望用户只能接受来自好友的转账,那么你就可以在Tranfer这个接口的实现里做文章。

接口本身的输入输出不要动,但是你可以在接口函数内部实现代码中,增加一个对“转装接受地址”的检查,检查这个地址是否和转出方存在好友关系。(所以你还需要用一个map或者其他的数据格式,来记录好友关系)

再比如你想学习usdt,设置一个黑名单,黑名单的地址就无法转入准出了。那么这个本质上也是在对Tranfer过程做文章。同样不要动接口本身的,保持和其他合约通讯的通用能力;

但是你可以在内部实现过程里,加一个检查,只要是转入/转出地址在某个黑名单地址里,就统一报错。这个黑名单变量你也可以用单独另外一个变量在合约里储存好。

四、基于ERC20的概念,去理解721,1155,以及其他高阶资产合约呢

回头看,任何资产的核心基本面就是三个:描述资产的数据结构、描述资产所有信息的数据结构,以及资产转移动作相应接口。从这三个基本面出发,你可以自上而下推导出所有的应当拥有的标准接口。

FT的资产数据结构很简单,因为是同质化,就是一个数字就够了。随后就可以推导出上述的内部账本数据结构,以及相应的转账接口设定。

如果变得更加复杂一些,比如资产本身不是一个数字,而是一个ID,并且只有ID,不在意ID的具体数量(或者每个ID总量就是1),那么就变成了721。

照着上述的逻辑推导,你可以第一性原理推导出721应该如何内部储存资产关系,又应该哪些接口来去刻画这种资产数据结构。另外你单独加个接口,让ID和一个图片链接产生映射关系,这个NFT就有了图片可以显示。如果这个ID是和音乐链接产生映射关系,就可以代表音乐。

如果你希望同时有ID,以及每个ID有数量。。。那就是1155,也是类似的逻辑。。。

关于高阶资产的变种规范,如何沿着「资产数据结构 - 资产所有信息 - 资产转移」的方法论去第一性推导,以及在各种应用场景下进行具体的设计。我可以后面再专门写一篇来分享

五、为什么作为web3 PM,精准理解合约逻辑很重要

产品经理可以不懂代码细节,但是产品经理要搞明白产品逻辑。对于web3产品来说,资产一定是一个非常重要的主角。我的暴论是,未来好的web3产品,一定要有好的资产逻辑。而资产很重要,一些微妙的资产逻辑不同,都会带来很大的区别。

要想精确的描述资产逻辑,你就必须要去学习ERC背后对资产的哲学抽象。

绝对不是说因为我要写代码,我才需要看ERC规范。而是恰恰相反,ERC规范的提出者,为了提出精妙的规范,他们大量思考了各种概念背后的哲学本质,抽象出了最关键的几个属性。

这个属性不仅可以帮助大家设计出代码上的规范,它同样也可以帮助你去拆解思考清楚资产逻辑本身。

避免一切模糊的概念,理解清楚关键细节后,你会发现世界是如此的清晰。

免责声明:
1.资讯内容不构成投资建议,投资者应独立决策并自行承担风险
2.本文版权归属原作所有,仅代表作者本人观点,不代表本站的观点或立场
上一篇:三类Rollups横向对比:经典Rollups(Optimistic/ZK Rollups)、Enshrined Rollups、Sovereign Rollups 下一篇:香港汇丰允许买卖虚拟资产 ETF,银行业不再是绊脚石

您可能感兴趣

  • 解读CKB版 “闪电网络” Fiber Network:比特币可编程性扩展的另一种思路
    解读CKB版 “闪电网络” Fiber Network:比特币可编程性扩展的另一种思路

    作者:NingNing行业周期与宏观金融周期共振,加密行业正处在与 2019 年相似的整体性迷茫之中,现阶段不仅流动性枯竭,叙事貌似也在枯竭。市场不但对 VC 叙事兴趣阙如,对反 VC 的 Meme 叙事也已经疲倦。就像每次哲学危机,人们都会回归柏拉图寻找出路,当加密行业危机时,我们也需要回归比特币、回归中本聪。正如 CKB 生态 RGB++ 协议创始人 Cipher 在最新 Blog 里所阐述的,加密行业需要对以太坊 “链上计算” 的路径依赖进行反思,回归P2P经济学,让计算归于链下,让验证归于链上。因

    每日资讯 2024-09-02 12:06 1573
  • 面对NFL球员工会起诉,“退圈”的DraftKings竟主动承认NFT是证券?
    面对NFL球员工会起诉,“退圈”的DraftKings竟主动承认NFT是证券?

    作者:Zen,PANews近日,美国国家橄榄球联盟球员协会 (NFLPA) 指控数字体育娱乐和游戏公司DraftKings 逃避了其 NFT 球员许可协议的付款义务。在放弃NFT业务后,涉嫌出售未注册证券而遭到集体诉讼的DraftKings又背上了一起官司。而有趣的是,在与NFLPA的纠纷中,DraftKings的立场似乎已从反驳转变为积极承认“NFT就是证券”。放弃NFT业务:驳回集体诉讼的动议遭到否决今年7月底,Draftkings在给用户的电子邮件中表示:“经过慎重考虑,DraftKings 决定终

    每日资讯 2024-09-02 12:06 1664
  • 简析两种最新比特币智能合约实现方案:OP_NET与Arch有何区别?
    简析两种最新比特币智能合约实现方案:OP_NET与Arch有何区别?

    作者:Cookie过去半个月,OP_NET 与 Arch 这两个比特币主网上的智能合约实现方案引发了较多的讨论。有意思的事情是,OP_NET 这个名字与大家熟悉的 OP_CAT 很像,都以「OP_」开头,具有很强的、让大家认为这哥俩差不多的迷惑性。所以,在开篇要和大家先提一嘴 OP_CAT。首先,OP_CAT 是比特币操作码,从去年开始有以「量子猫」Quantum Cats,也就是「大巫师」Taproot Wizards 的创始人 Udi Wertheimer 为首的社区力量一直在呼喊要「复活」OP_CA

    每日资讯 2024-09-02 12:06 1574
  • 争议不断,以太坊正在失去“万链之王”的权威
    争议不断,以太坊正在失去“万链之王”的权威

    作者:Climber,金色财经近期围绕以太坊的话题和争议越来越多,不仅 Vitalik 本人需要下场解释观点,就连以太坊基金会也要发布公告来平息社区的质疑声。在本轮牛市周期中,以太坊的表现可谓平平。而美国以太坊现货 ETF 的通过也并未让 ETH 走势如投资者期待般爆发,相反却在币价方面越走越低。这就不免让有着「万链之王」美誉的以太坊逐渐失去投资者和社区的尊重,进而质疑起有关以太坊的方方面面。争议不断,以太坊亟需重塑权威最近一段时间以来社区成员对 Vitalik 言论观点、以太坊基金会乃至以太坊生态系统的

    每日资讯 2024-09-02 12:06 1305
  • 从《黑神话:悟空》谈起,GameFi何时能取得真经?
    从《黑神话:悟空》谈起,GameFi何时能取得真经?

    作者:YBB Capital Researcher Zeke前言本文是市场垃圾时间中的一些闲聊,需要对传统游戏市场有一定程度了解。大家可以把这篇文章当作日记或者随想观看,这些只是我在游玩《黑神话:悟空》之后对GameFi的一些粗浅思考,以及对这个赛道未来的看法。一、游戏科学的九九八十一难三天全网销量破千万、Steam玩家同时在线峰值破235万、多家品牌联名周边销售爆火、国家级媒体多次采访、多个游戏取景地可凭游戏通关记录终身免费进入、86版《西游记》YouTube观看量超400万。以上,是《黑神话:悟空》上

    每日资讯 2024-09-02 12:06 948
  • Gavin Wood:如何防止女巫攻击进行有效空投?
    Gavin Wood:如何防止女巫攻击进行有效空投?

    演讲:Gavin WoodGavin 近期一直在关注的女巫攻击(civil resistance)的问题,PolkaWorld 回顾了 Gavin Wood 博士在 Polkadot Decoded 2024 上的主题演讲,想要探究 Gavin 在如何防止女巫攻击上的一些见解。什么是女巫攻击?你们可能知道,我一直在研究一些项目,我在编写灰皮书,专注于 JAM 项目,也在这个方向上做了一些代码的工作。实际上,在过去的两年时间里,我一直在思考一个非常关键的问题,这个问题在这个领域中非常重要,那就是如何防止女巫

    每日资讯 2024-09-02 12:06 1518
  • 市场热议,链抽象将成加密新叙事?
    市场热议,链抽象将成加密新叙事?

    2024年,加密货币领域的技术创新持续加速,链抽象(Chain Abstraction)逐渐成为行业内的焦点。链抽象技术的核心在于通过隐藏底层技术的复杂性,让用户能够更加便捷地在多个区块链之间进行操作。传统的区块链技术通常要求用户掌握不同链的操作流程,并需要应对跨链操作中的技术难题,这极大地吸引了新用户的进入。而链抽象的出现,则为这些问题提供了有效的解决方案,成为Web3建设不可忽视的重要一环。01、什么是链抽象及其作用链抽象能够将不同的区块链之间的差异整合在一个统一的操作界面中,使得用户只需一个账户即可

    每日资讯 2024-09-02 12:05 817
  • 今日日报|马斯克和特斯拉赢得“被指控操纵狗狗币”的诉讼;稳定币支付平台Bridge完成5800万美元融资
    今日日报|马斯克和特斯拉赢得“被指控操纵狗狗币”的诉讼;稳定币支付平台Bridge完成5800万美元融资

    今日要闻提示:马斯克和特斯拉赢得驳回指控他们操纵狗狗币的诉讼OpenAI和Anthropic已同意将其主要新AI模型在发布前共享给美国政府OKX将上线Hamster Kombat(HMSTR)现货交易X平台纽约总部将于9月13日关闭,预计将迁往得州萨尔瓦多总统布克尔成为《时代》杂志最新一期封面人物稳定币支付公司Bridge完成5800万美元融资数据:MATIC、SHIB、UNI代币头部地址持仓均超50%网龙今年上半年通过出售2.9亿元的加密货币,获利5100万元人民币监管消息美国众议院计划在9月举行多场加

    每日资讯 2024-09-02 12:05 1400