CryptoPunk cryptopunk不仅是顶级蓝筹NFT项目,也是后续ERC721标准协议的灵感来源。
NFT交易市场是整个区块链行业除以太坊本身之外收入最高的赛道,而OpenSea、x2y2、LooksRare是目前排名前3的平台,其总交易量占比超过99%。

今天我们将解读CryptoPunk的230行源代码,其订单模型的实现和交易流程,探讨其内置专用NFT交易市场的优缺点,为后续的NFT三大交易市场合约模型的分步源代码分析奠定基础。
如果你想知道未来谁会赢得大蛋糕,不妨从我的源代码开始。
CryptoPunk的内置交易市场
如果细心的同学可以发现,如果要在OpenSea上购买Punk,会在其属性页上发现,所用标准的描述并不是ERC721或者1155,而是独有的cryptoPunks。作为2017年最早推出的NFT协议,它不仅实现了目前721标准的大部分功能,还内置了完全去中心化的交易服务市场,实现了三种交易拍卖模式!
阅读:【来源解读】你买的NFT到底是什么?
实际上,对于最底层的NFT来说,交易流程是最基本的功能。无非是要求双方都用tansfer。卖方给买方NFT,买方给卖方ETH。一手交钱,一手发货。但是当面交易还是担心对方不给钱。因此,原子性是实现信任的必要因素,基于不可变特征进行链式交易是最佳解决方案。
1.朋克的美好秩序模式
回想一下,现实中我们是如何买卖商品的?大概有三类。
卖家报价,买家付款→等于超市购买。
买方报价,卖方同意→等于在菜市口砍价。
线下议价,线上交易→等于线下公证拍卖。
无论哪种方式,最终的交易都需要交换,既阻止了卖家给货,也阻止了买家给钱。
区块链科技虽然完美解决了万一不给钱的问题,但也带来了议价难的痛点。毕竟“砍一刀的价格”是要链的,肯定不能用拼多多的方法砍小数点后6位。
朋克的市场同时支持这三种类型的交易,可以是卖家报价,也可以是买家报价,也可以是合约帮你议价后成交。全程没有提成扣除,230行的短代码也杜绝了后门的可能。
他的订单结构很简单,分为两种:卖方报价要约和买方出价。
1.1.卖方报价
像标准的NFT一样,每个朋克都有一个唯一的ID,所以每个朋克都有一个专属的优惠订单簿。这种排他性意味着,如果我重新报价,无论是涨价还是降价,之前的都将被取代。
这里标记的是是否为ForSale,指定买家标记的是onlySellTo,用于执行下行议价的链条中的成交功能。
我们可以明显感觉到,订单模式非常简单,连普通订单都没有有效期。只要挂单卖家不主动取消,买家以这个价格买入总是有可能的。
注意:虽然这类似于opensea的长期授权卖单,但不会出现价格异常交易,因为朋克在转让时会取消历史报价记录。
1.2、买方的投标报价
招标形式也很简单,基本等于四元组。
除了等待购买的卖家价格表形式,任何人都可以通过提交出价表来声明我愿意用X的金额购买哪个朋克。这里还提供了hasBid变量来反映当前的投标表单是否有效。
买家可以随时取消之前的出价,但如果没有更高的价格覆盖范围,将保持原出价。这是一个信息共享的设计,以帮助其他买家在他们的出价定价。
投标的时候,钱在哪里?马鞭实际上,它已经在朋克合同里了
买家要提交的出价是通过其Punk合约的enterBidForPunk方法输入的,传入的是punkID参数和当前交易的值,也就是说买家报价时要购买的钱已经转入Punk合约了。
1.3、总结
在了解了核心订单书结构后,他抓住了老鼠的尾巴。他对应的方法其实都是审核当前交易是否合理合法,确认合法后再对订单数据进行增删查。
比如卖家成交后,会修改balanceOf中记录的用户累积朋克总量,还会修改核心punkIndexToAddress的信息,里面记录了哪个punkid的主人是哪个。
标准协议的底层数据的含义可以扩展以便阅读。
NFT租赁提案EIP-5006进入最后审查!让改变海外大游戏的链条成为可能。
简而言之,订单服务于交易模式,朋克内置了三种交易方式。
2.朋克支持三种交易模式。
2.1.卖家先报价,买家再出价。
如果我想把朋克作为持有朋克的尊贵用户之一来销售,需要3个步骤。
卖方报价->买方提交付款->卖方提取收入

展开。
卖家报价:卖家通过设置offerPunkForSale愿意以某个价格卖出一个nft,然后下单书如下
买家:执行buyPunk方法,当传入的交易值大于卖家的minValue时,购买就成功了。**
卖家这次需要再次调用提现来提现自己的收益,但是可以实现低价交易的应用场景,比如定向质押,防止被低价截留使用。
3.如何评价朋克的交易市场?
乍一看是一个非常标准的最小NFT交易模型,能够真正实现准确、稳定、可靠的交易核心环节,但有得有失。他有什么优点,缺什么?
3.1、燃气成本低
由于链中只存储了报价和出价两个简单的订单簿,而且只保存了最新和最高的价格,所以一些细节可以在下文最后以太坊黄皮书定义的燃气计算分析中找到:【源代码解读】你买的NFT是什么?
所以朋克市场整体用气量不高,所以笔者算了一下买卖全过程,用气量大致在30W。
按气排序:朋克<远海<宝石<精灵< x2y2 < looksrere
3.2.不需要手续费。
目前链家朋克有21W交易。如果五笔交易中有一笔可以成交,那么就会有4W转会。对于这样一个市值几十亿的顶级蓝筹股,不收版税简直离谱。
当然,将这种内置交易服务与全职交易市场相提并论是不公平的,但正是因为朋克的内置交易功能远不是一个完善的功能体系,所以才有了各种广阔市场的机会。
并按手续费排序:朋克< X2Y2 < Looksrare < OS
3.3.评估该机制的缺点
结论:买卖机制不利于流动性池。
就NFT而言,流动性至关重要,对每一个报价显然都是一盆冷水。卖家不缺钱就不愿意动,买家也很难成交,缺乏动力。所以向要约人收费,要求其将资产锁定朋克,不会导致抵扣失败,但也会导致购买者资产的时间价值损失。
在这一点上,后来Os等平台采用签名的方式匹配链下购买意向,报价几乎不需要gas在链上登记订单结果来执行转账。
这个打击就是集权与分权的效率之争。显然,目前的市场仍然需要效率
2.订单模式不利于批量操作。
朋克的订单模式的简单,是交易模式的典范。但是,批量交易的需求呢?
卖家:拿到每一个身份证和每一份申报单,确认交易。
买家:获取每个id的每个出价,等待交易。
虽然收益资金可以分批积累提取,但这不是重点。
而批量报价现在是NFT市场的必争之地。
X2y2和Looksrare都在这一点上发力,作为对os的攻城战,甚至拉Gem等聚合器来打通流量池的限制。os最新的SeaPort协议还实现了捆绑交易的新订单模式,让任意组合可以直接实现任意组合对应的市场交易。
但是Punk的源代码太先进了,缺乏预扣授权的功能,已经无法进行批量交易。
结论:单一拍卖流程不利于撮合交易和定价。
交易需要妥协,NFT目前的价值也需要通过交易来发挥。如何给NFT定价一直是个大问题。
因此,有四种拍卖机制:
英国拍卖。公开竞价提高价格,出价最高者得
荷兰式拍卖。价格由高到低,第一个出价者得到。
第一价格拍卖。拍卖单独封存,其他竞拍者出价不详。
第二价格拍卖。同样,区别在于出价最高者胜出,但只支付第二高的价格。
这些拍卖机制是Opensea的基本功能,有利于促进交易和定价。
英式拍卖:限时拍卖,即不占用高价值蓝筹股的资金成本,也有时间缓冲来契合各个群体的博弈结果。

荷拍:能有效降低报价过高、流动性低、无成交的问题,让价值时刻随市场变化。
最后的
虽然我吐槽很多,但是这么精简漂亮的NFT协议+NFT交易市场,在2017年只用了230行代码就实现了,演变成了目前世界上最有价值的蓝筹NFT之一,是值得研究的产品。
未来,不仅交易市场将占据主导地位,更多的垂直品类也将在其NFT中内置StepN、Axie Infinity、NBA Top Shot等交易功能。但Seaport开放开放后,内置市场未必是功能集中版的背书。
在加密行业,要想抓住下一个牛市机会,就得有一个高质量的圈子,让大家都保持温暖,保持洞察力。如果你是一个人,环顾四周,找不到一个人,在这个行业坚持下去,其实是很难的。如果你想保暖,或者有疑惑,欢迎加入!感谢您的阅读。喜欢的朋友可以喜欢关注一下。下次见!


