https://www.paradigm.xyz/2021/10/a-guide-to-designing-effective-nft-launches/
以上の記事の翻訳です。
問題や質問がある場合はTwitterで@KentaroVadneyを連絡してください!(テクニカルなものは英語の方が良いですが日本語も OKです)
2021.10.13|Hasu, Anish Agnihotri 作
目次
ユーザー被害の例
搾取可能な公正さ
ガスオークション
高い技術力
ガスの非効率性
排他的なミント
信頼できるオペレーター
良いローンチの目標
曖昧さは悪いデザインの言い訳にはならない
NFTローンチのアンバンドリング
フェーズ1: 入札
フェーズ2:クリアリング
フェーズ3:配信
フェーズ4: メタデータの公開
当社の参考事例
結論
ブロックチェーンはオープンソースソフトウェアの資金調達に革命をもたらしましたが、最初からすべてがうまくいったわけではありません。実際、2016年から2018年の時代のICOは、製品を提供する前に創業者がキャッシュアウトできるという、恐ろしく壊れた仕組みであることが多かったのです。その後、多くの教訓が得られ、今日のプロジェクトでは、トークンをローンチする前に実用的な製品を用意し、それを配布することで利用のインセンティブを与え、ガバナンスを分散させています。
NFTは、暗号化された製品市場に適合するもう一つの明確な製品であることが証明されていますが、独自の成長の痛みを経験しています。NFTの寿命は、NFTのローンチ(ミントやドロップと呼ばれることもあります)から始まります。NFTのローンチでは、新しいコレクションが初めて作成され、販売され、購入者に配布され、購入者はそのコレクションを二次市場で保有または取引することを決定します。
NFTのローンチでは、初めて販売される商品と同様に、これまで価格が設定されていなかったものに価格を設定するという課題があります。しかし、他の多くの販売方法とは異なり、パブリック・ブロックチェーンという、経験の浅いユーザーにとっては特殊性に満ちた、非常に敵対的な環境で行われるという難題があります。そのため、開発者は、効率的かつ悪用されにくい仕組みを設計する必要があります。
この記事ではまず、経験的にユーザーを傷つけたローンチの実例を紹介し、良いローンチが満たすべきゴールを明らかにします。次に、ローンチのアイデアを個々のステップに分解し、それぞれのデザインスペースを探ります。最後に,コミュニティが使用し,構築できるような,優れたデザインの起動メカニズムの参考となる実装を提供します.
これまでの経験から、NFTのローンチにおけるある種のデザインパターンが、一貫してユーザーにとって好ましくない結果をもたらすことがわかってきました。
新しいコレクションがローンチされると、ユーザーはそのスマートコントラクトと対話して、ランダムな属性セットを持つNFTをミントすることができます。これらの属性は、異なる希少性を持つ傾向があり、ある組み合わせは他の組み合わせよりも希少で価値があります。例えば、1万人のCryptoPunksのうち9人だけが超レアな「Alien」属性を持っており、最も安いものでも35,000ETHで販売されています。
さまざまな人がさまざまな理由でミントに参加していますが、多くの人は、どんなアイテムやレア度のものが手に入るかわからないというワクワク感を楽しんでいます。その意味では、NFTのミントは、アナログ(例:トレーディングカードゲームのブースターパック)やデジタル(例:ビデオゲームのルートボックス/クレート)経済で長い間親しまれてきたガチャの仕組みを引き継いだものに過ぎません。
ガチャゲームに参加する人たちは、「アイテムのランダムな分布から抽選を行い、実際に(わずかではあるが)非常にレアなドロップを手に入れるチャンスがある」という重要な前提を置いている傾向がある。残念ながら、過去のNFTミントは、この前提を満たさず、真のランダム性を生み出すことができないことが多かった。実際には、高度な技術とモチベーションを持ったパーティがミントを悪用し、コレクションの中で最もレアなアイテムをスナイプして、誠実な参加者から奪うことが可能になっています。
このパターンでは、NFTのミントがまさにそのような方法で悪用された2つのケースを紹介します。どちらのケースも、同じ2段階のプロセスを採用しています。
エクスプローラーは、コレクションのメタデータを抽出して、すべての特徴の相対的な頻度を1つのレアリティスコアで表すことができます。このスコアを使って、コレクションの中で最も価値の高いNFTを決定します。 そして、搾取者は鋳造契約のランダム性を破り、欲しいレアで価値の高いNFTだけを鋳造する。
Lootの派生モデルとオンチェーン・メタデータ・エクスプロイト
最近、「Loot」と呼ばれるプロジェクトがNFT界に旋風を巻き起こしました。一見シンプルなこのプロジェクトでは、胸、足、手、頭、首、指輪、腰、武器など、さまざまなレアリティのアイテムが入った8000個の戦利品バッグが用意されていた。
各アイテムスロットのすべての属性が契約書に直接保存されているため、採掘者はバッグのIDをハッシュとして使用した疑似ランダムなバッグを受け取りました。イーサリアムが存在する限り、メタデータをチェーン上に保存することは永久的ですが、Lootの疑似ランダムな性質は悪用者にさらされます。彼らは、ランダム化関数をローカルにシミュレートすることで、8,000個すべてのバッグのメタデータを素早くスクレイピングし、コレクション全体の画像(および派生するレアリティ)を入手しました。これらの情報があれば、あとは契約の最後の弱点である、欲しいIDを正確にミントして、最もレアなバッグだけを盗むことができるという点を利用するだけです。
しかし、この方法は非常にシンプルであるにもかかわらず、オリジナルのLoot mintを悪用した者はいなかったと考えられます。

ミントの最後までバッグのレア度を観察すると、レアアイテムはミントの期間中に十分に分散しています。これは、目立った搾取がなかったことを示しています。
戦利品が搾取されなかった理由として、2つの可能性が考えられます。
全く新しい契約だったので、人々が悪用を発見する準備ができていなかったか、時間が足りなかった。
戦利品の価値が数日後にセカンダリ市場で爆発的に上昇したため、戦利品の鋳造にかかる費用が不明瞭だった。コレクションが完売するまでに2.5時間かかったことも、この仮説を裏付けています。
しかし、Lootの価格が上昇するにつれ、「More Loot」や「Extension Loot」といった様々な派生商品が登場し始めました。新しいコレクションはLootの脆弱性を受け継いでいますが、市場価値が高く、より多くの人の目に触れることになります。このことが、これらのミントの公正さ、あるいはその欠如に大きな違いをもたらしたのです。
More LootとOriginal Lootの鋳造時のレアアイテムの分布を比較すると、搾取の証拠が非常に明白になります。わずか数ブロックの間に、すべてのレアなNFTが鋳造されてしまい、将来の鋳造者にはわずかな残骸しか残らず、彼らは主に洗練されたユーザーがローンチを悪用したことに気づかないままでした。

下の写真 赤い線は、アニッシュが自分のレアリティスコアをツイッターで公開し、利用可能なレアバッグを獲得する競争が始まったことを示しています。

さらに、More Lootは供給量が増加しているため、悪用者は将来入手可能なバッグのスコアを事前に取得し、それを獲得するために競争すると考えるのが妥当でしょう。
More Lootと同様に、「Extension Loot」では、1つのアドレスで最も希少な10個のバッグのうち5個が鋳造されます(赤でハイライトされたすべてのミント)。ユニークなのは、これらのミントがすぐにわかるように隠されていることです。搾取者は、レアなバッグを連続して狙う前に、時間と利用可能なバッグに応じてミントを分配します。

Meebitsとオフチェーン・メタデータ・エクスプロイト
Meebitsは、CryptoPunksの制作者であるLarva Labsが開発した、2万種類のユニークな3Dキャラクターを収録した待望のNFTミントでした。
Larva Labs社は、経験豊富なユーザーがコレクションのメタデータを使ってレア度を計算し、レアなNFTを狙撃できることを知っていました。そこで、Larva Labs社は、購入者が各Meebitの完全なメタデータを見ることができるようにウェブサイトを設計しましたが、それは鋳造された後に限られます。
このサイトでは、鋳造されていないMeebitを明確に隠していましたが、ソースコードを調べたところ、LarvaLabs社がIPFSからメタデータを取得していることがわかりました。この情報をもとに、彼らはIPFSをスクレイピングして、とにかく未鋳造のMeebitsのメタデータを抽出し、最も望ましいものを特定しました。
しかし、Larvalabsは、Lootとは異なり、ユーザーが特定のMeebit IDを模倣することはできませんでした。Lootとは異なり、ユーザーは特定のMeebit IDを鋳造することができませんでした。代わりに、ハッシュとして使用されるチェーン上のランダム性(理論的にはまだ採掘者が利用可能)が、この特定のユーザーが希少なMeebitを鋳造することを難しくしていました。
しかし、悪用者は、悪い状況を最大限に利用する方法を知っていました。彼らは、Meebitを購入してそのIDを確認し、それを「リロール」する契約を書きました。具体的には、Meebitの契約書はERC721で、ランダムなMeebitのIDを返すmint()関数を備えていました。搾取者のコントラクトはmintを呼び出し、返されたMeebit IDをレアリティリストと照合し、一定のレアリティスコアを超えていなければ取引を元に戻します(サンプルコード)。このトリックを使うことで、彼らは各Meebitをそのまま購入するための約2.5ETHの代わりに、各IDをチェックするために約0.03ETHしか支払っていません。
この攻撃者は、その過程で多くの失敗した取引とガス料金を消費しましたが、約400ETHの利益を得ました。今日では、同じ攻撃者がFlashbotsバンドルを介してトランザクションを送信し、希望するIDの1つを取得した場合にのみマイナーに支払うことができ、リバートは完全に無料になります。

9月、イーサリアムのガス1本あたりの基本料金が、7つの期間で1,250グワイを超えました。驚くべきことに、この7つの出来事はすべて、待望のNFTのローンチがネットワークを混乱させたためでした。

これらのローンチの多くは、固定価格の先着順(FCFS)の仕組みを採用していました。低価格で過剰な需要があったため、そのようなNFTを獲得するための競争は、契約販売からmempool内のガスオークションへと移行した。
その一例が「The Sevens NFT drop」で、ディストピアのキャラクターが描かれた7,000枚のプロフィール写真を集めた待望のコレクションでした。1NFTあたり0.07ETHの初値がついたため、熱心な参加者がコントラクトに殺到して鋳造を行いました。わずか6分でガス価格は12,246gweiとなり、参加者の中央値は1NFTあたり約1.49ETH、上位5%の人はガスだけで1NFTあたり2.44+ETHを支払ってコントラクトからミントを得ました。
セブンのミントの期間中、ブロック基本料金が急速にエスカレートする ガスオークションの問題点は、単に利用の難易度が高いというだけではなく、このように公共のメンプールを「悪用」することで、すべてのEthereumユーザーに負の外部性をもたらします。また、同じNFTに対して異なる金額を支払うことをユーザーに強いるため、不十分な入札による何千もの取引失敗が発生し、ユーザーを苦しめることになります。
これまで見てきたように、Ethereumは、高度で敵対的なアクターが常に目を光らせている「暗い森」です。NFTのミント、特に鋳造後に買い手が二次市場でプレミアムを得ることが期待できる希少なミントは、技術的に優れた関係者にとって、平均的な参加者を凌駕する有利な機会を提供します。
このような参加者は、ボットや自動化された戦略を通じて鋳造コントラクトと直接やりとりし、しばしばフロントエンドや時にはメンプールさえも回避します。
TIMEPiecesのNFTドロップでは、その典型的な例が見られました。高度なボットオペレーターは、鋳造プロセスの前にnft.time.comのフロントエンドのソースコードを検査しました。これにより、彼らはメインネット上に展開されたミントコントラクトを見つけ出し、数時間前にボットを構築することができました。その結果、これらのボットは、3分以内に完全に売り切れたミントの際に大きなアドバンテージとなりました。一般の参加者がウォレットを接続して取引を行ったときには、すでに手遅れになっていました。
さらに、一部の参加者はFlashbotsを使ってmempoolを回避し、直接マイナーとの取引を行っていました。TIMEPiecesの契約では、参加者は1アドレスあたり最大10NFTを鋳造することに制限されていましたが、ボットオペレーターの0x35...ce5は事前に計画を立て、5つのウォレットに資金を分割し、1つのFlashbotsバンドルで50NFTをスニッピングしました。20ETHのマイナーチップ(NFTあたりの平均ミントコストは0.5ETH)を支払った後でも、このボットオペレータは、NFTがセカンダリーマーケットに出回り始めたときに120ETH近い利益を得ることができました。

さらに、この参加者はFlashbots(失敗した取引をゼロコストで元に戻す機能)を使用していたため、前の例で説明した失敗した取引に悩まされることはありませんでした。これは、平均的なスキルを持つ10,962人近くの参加者が、100ブロック中12,743回の取り消しを行い、失敗した試みのために累積252.62ETH(約80万ドル)の取引手数料を失ったのとは異なります。
効果的なNFTの鋳造メカニズムは、すべての参加者にとって使いやすく、手順が少なく、簡単に実装できることが理想です。FCFS分配モデルに代わる仕組みを導入したミントに共通する落とし穴は、ユーザーが行わなければならないチェーン上の取引の数を増やし、複雑さをもたらしてしまうことです。
その一例が、MisoのJay Pegs Auto Mart $DONAオークションです。造幣局は、バッチオークションによるNFT分配の先駆者であり、公正なメタデータ生成の実際を効果的に紹介したが、ガスや取引の効率を犠牲にしているのだ。
造幣局のプロセスに参加するためには、ユーザーは8日間で最低4回のチェーン上の取引を行う必要がありました。
まず、ユーザーは、交換で何ドルのDONAトークンを受け取るかわからない状態で、ETHをMisoのバッチオークションに投入しました(最終的な清算価格によります)。
オークションが終了すると、ユーザーは$DONAトークンを要求しなければなりません。
この時点で、すべてのユーザーは、NFTを鋳造するには少なすぎるトークン、十分なトークン、または多すぎるトークンを持っていました。参加した1,363人の採掘者によると、少なすぎるトークンが273人、十分すぎるトークンが0人、多すぎるトークンが1,090人いました(端数が多い)。
トークンの数が少なすぎるユーザーは、Sushiswapから必要な余剰分を得るために取引をしなければなりません。
トークンが多すぎるユーザーは、$DONAトークンの取引を承認し、Sushiswap経由で余剰分を売却する取引を行うことができました。
NFTを作成するのに十分な量のDONAを持っているユーザーは、NFTの契約を承認してDONAを使用し、DONAを燃やしてNFTを作成することができました。
最後に、メタデータはNFTに一括して割り当てられ、自分のNFTを一方的に公開することはできないようになっている。
この仕組みは、公平性を追求する一方で、ユーザーの参加を困難にし、ガス効率を悪くしていた。
NFTのコレクターや愛好家がコレクションの価値を評価する方法の一つに、コミュニティの強さがある。一般的には、保有者間のトークンの集中度を測定します。理想的なコレクションは集中度が低く、多数のクジラよりも個人の参加者に有利な傾向がある。
しかし、最近のミントでは、参加者が一度の取引で複数のトークンを鋳造できるバッチミントを導入する傾向が見られます。この仕組みにより、ホエールミントは少ないガスオーバーヘッドで多くのNFTをミントするインセンティブを得ることができます。
実際の例としては、Stoner Catsのドロップがあります。これは、ミラ・クニスとその友人による短編アニメーションの制作を支援するためのコレクター向けNFTミントで、一度に最大20個のNFTをミントすることができます。この機能により、89%のNFTがバッチミント機能で鋳造され、Stoner Catsの31%近くが最大20個のNFTをまとめて鋳造されました。

さらに、固定価格で販売されているすべてのNFTは、個人が清算価格以下で参加することを暗黙のうちに妨げている。これにより、分配の公平性が損なわれ、ウォレットの大きい人が有利になります。
ガス戦争を防ぐために中央集権的なラッフルを導入する場合でも、公平性を高めるためにチェーンリンクを導入する場合でも、共通のトレードオフは第三者への信頼の前提を導入することです。NFTの造幣局がオフチェーンのインフラに依存すればするほど、ユーザーは中央集権的なオフチェーンのエンティティに対してより多くの信頼を寄せなければなりません。
これらのローンチを見て、人々が実際に抱えていた問題を分析した結果、NFTローンチの望ましい特性として6つの項目を導き出すことができました。このリストは完全なものを目指しているわけではありませんが、これがスタートです。
**不可解なまでの公平性。**ローンチには真のランダム性が必要であり、略奪的なユーザーが、洗練されていないユーザーの犠牲の上に、最もレアなアイテムを盗むことができないようにする。
**レースコンディションの禁止。**NFT(あるいはその他の商品)が適正な市場価格を下回る価格で販売されると、Vitalik Buterin氏が「オークション・バイ・アナザー・ミーンズ」と呼んだ状態になります。実際には、買い手は自分の取引をできるだけ早く採掘してもらおうと競争したり、採掘者にインセンティブを与えるために多額の賄賂を渡したりします。オークション・バイ・アナザー・ミーンズは、ブロックチェーンに関する深い知識を持ち、ボットやFlashbots、Edenなどのプライベートリレー、あるいはマイナーへの直接アクセスなどのパワーツールにアクセスできる人に有利です。
時間帯にとらわれない。一般的に、FCFSのローンチは特定のブロックハイトで発表され、短期間で完売してしまいます。どのようなブロックの高さを選んでも、他の時間帯のユーザーが寝ていたり、仕事をしていたりすると不利になってしまいます。そのため、普段の生活を変えずに参加できるように、発売時間はあまり短くしないようにしています。
**ガス効率。**チェーン(特にEthereum)上での取引にはコストがかかるため、優れたローンチでは、ユーザーが行うべき取引の数を最小限に抑えるよう努めるべきです。
**包括性と耐シビル性。**多くの場合、NFTの創設者にとっては、最初に市場が多少下がることになっても、ローンチを多様な保有者に開放することが最善の利益となります。それは、活気あるコミュニティこそが、最終的に二次市場でのコレクションの価値を高めるからです。
信頼性の高さ もちろん、そうは言っても、ローンチメカニズムは、基盤となるブロックチェーンの特性を維持するように機能しなければなりません。つまり、カストディアンになったり、運営者に過剰な信頼の前提を求めたりすることなく、前述のメリットを享受できなければならないのです。
ほとんどのローンチは、理論的には前述の問題の1つまたはいくつかを抱えていますが、実際にはこれらの問題が現れるほどの十分な需要がありません。これは "Security by Obscurity "の一例です。
例えば、新しいコレクションの知覚される市場価値が低い場合、mempoolでの入札合戦につながる競争条件がなく、優先ブロックスペースを購入する必要もなく、略奪的なユーザーがそれを利用するインセンティブもないかもしれません。同様に、新しいコレクションの需要が多すぎると、そのコレクションがあっという間に売り切れてしまい、そのコレクションのためにカスタムソフトウェアを書いたり、その公平性を利用したりする時間がなくなってしまうかもしれません。
需要が少なすぎても多すぎても困ることはありませんが、私たちは、あらゆる市場環境に対応できるようにローンチを設計すべきであり、特に、コレクションを悪用から守る手段として、コレクションがすぐに売り切れることに頼るべきではないと考えています。
良いローンチに求められるものはわかったものの、そこに至るまでの道のりはまだわかっていません。その道筋(あるいは、これから説明するように、さまざまな道筋)は、ボンネットの中で実際に起こっていることをアンバンドリングすることで、少しずつ明らかにしていくことができます。
NFTのローンチは、基本的に4つのステップで構成されています。
**入札。**販売が開始され、ユーザーは入札をオペレーター(スマートコントラクトでも可)に提出します。
**クリアリング。**運営者は、集まった入札を残りの供給量と照合し、クリアリング価格を決定し、落札者を選定します。
**配布。**落札者は、新たに獲得したNFTを請求することができる(または運営者から受け取ることができる)。
**メタデータの公開。**オペレーターがNFTの特性を明らかにする。
例えば、Lootを見てみましょう。Lootは、FCFSセールにおいてブロック13,108,877で販売されました。コレクションの作成者であるドムは、スマートコントラクトで販売価格をゼロに設定していましたが、ユーザーはガスで入札する必要がありました。ブロックごとにマイナーが新しい入札を残りの供給量と照合し、落札者と落札者を決定しました。入札が成立すると、ユーザーは同じ取引でアイテムを受け取ることができた。
ほとんどのユーザーは、アイテムを受け取った後に、そのアイテムの属性を知ることができた。しかし実際には、洗練されたユーザーであれば、ミントの前にスマートコントラクトからアイテムの属性を読み取ることができ、それによってコレクションの中で最も希少なアイテムを狙撃することができました。このことから、他のステップが逐次的に起こるか、連続的に起こるかにかかわらず、メタデータは、アイテムが購入されて結論的に決済された後にのみ明らかにされなければならないことがわかります。
次に、4つのステップのそれぞれにおいて、NFT開発者が持つ選択肢を探ります。それぞれの選択肢が望ましい特性に与える影響を議論し、設計上の良い選択と悪い選択を選別します。
この段階では、事業者はユーザーから入札(購入要求)を集めます。
まず、入札とクリアリングを同じフェーズで連続して行うか、重複しない2つのフェーズで行うかを決めなければなりません。
FCFS(固定価格販売)は、連続クリアリングの一例である(これまでのNFTのほとんどがそうである)。ブロックごとにマイナーが入札を見て、残りの供給量に対してクリアする。この仕組みにはいくつかの問題がある。運営者がNFTの清算価格を過大評価した場合、商品が高すぎて売り切れない可能性がある。運営者がNFTの清算価格を過小評価すると、アイテムが安すぎるため、ユーザーはスピード(誰が最もブロックスペースに直接アクセスできるか)やガス価格(誰が最も採掘者に取引代金を支払えるか)で競い合うことになります。議論されているように、これは失敗した取引による大規模なデッドロスにつながり、より熟練した参加者が大きく有利になります。どうしても必要であれば、前者については、すべてのユーザートランザクションをFlashbots RPCにルーティングし、失敗したトランザクションにコストがかからない環境でオークションを行わせることで軽減することができます。
2つ目の方法をとる場合、入札と清算は重ならない2つのフェーズで行われます。実際には、運営者がまずすべての入札を集め、それを利用可能な供給量と照合し、公正な価格で市場をクリアします。このアプローチには、バッチ式オークションやラッフルなどのメカニズムが含まれます。Jay Pegs Auto Martの例では、ユーザーに1週間の入札期間を与えてから市場をクリアしています。
逐次的なアプローチには、我々が掲げる目標に沿ったいくつかの利点があります。
**競争状態にならない。**ユーザーには入札のための時間が十分にあり、結果はユーザーの速さやスキルではなく、ユーザーがいくら支払うかで決まる。
**タイムゾーンにとらわれない:**他のタイムゾーンで働いている人や住んでいる人にも配慮したアプローチです。 また、ガスオークションを行わないため、他のネットワーク利用者への負の外部性がありません。
しかし、このアプローチには、(オークションのデザインにもよりますが)より多くのオンチェーン取引を必要としたり、より長く待たなければならなくなった参加者の楽しみが減るなどのマイナス面もあります。後者の懸念を軽減するために、入札期間をあまり長くしないことをお勧めします(48時間以内)。
連続クリアリングか逐次クリアリングかを決めた後の次の選択は、ユーザーが入札をオンチェーンで行うかオフチェーンで行うかです。
後述するように、今日のローンチでは、オンチェーンで入札を集めるのが最も簡単であるため、事実上、マイナーに落札された入札をクリアさせ、それ以外の入札は失敗させています。ネットワーク自体が検閲されていないと仮定すると、有効な入札が売却から漏れることはないという強力な保証もあります。
しかし、チェーン外で入札を集めることも同様に可能である。このプロセスでは、ユーザーは、自分のオンチェーン・アドレス、購入したいトークンやチケットの数、上限価格などの情報を含むメッセージに、自分の秘密鍵で署名します。ユーザーは、このメッセージをオンチェーンで実行することなく、自分の署名を使ってその有効性を証明するために運営者に送信します。
オペレーターは、これらの入札を利用して、オフチェーンで市場を清算するか、落札された入札を束ねてコントラクトに提出し、オンチェーンで実行させることができます。いずれの方法でも、オペレータが正しい入札を実行するためには、ある程度の信頼性が必要です。
この最後の方法は、オフチェーンでの入札収集とオンチェーンでの落札者選定を組み合わせたもので、強固でガス効率が良く、柔軟性のある方法です。ユーザーが信頼しなければならないのは、オペレータがオンチェーンで入札を行う際に入札を省略していないことだけであり、これは比較的弱い仮定であると言えます。
3つ目の決定事項は、誰がどれくらい入札できるかということです。包括性とシビル耐性の目標で述べたように、プロジェクトは多様なユーザーがアイテムを購入できるようにしたいと考えるかもしれない。そのためには、特定の特徴を持つユーザーが購入できるようにアイテム数を制限したり、既存のNFTコミュニティの保有者専用にアイテムを確保したりすることが考えられます。
入札がオフチェーンで行われる場合、このようなKYCルールは簡単に実装できます。ユーザーが署名をサーバーに提出する前に、一定の情報を証明するように求めるだけです。オンチェーンでのKYCはより複雑ですが、Gitcoinのプライバシー保護を目的としたProof of Personhoodのような取り組みが進んでいます。
プロジェクトがKYCを必要としない場合でも、大規模なユーザーも小規模なユーザーも、1ドルで同じ量のトークンを購入できるような対策をとることができます。この原則は、契約によってユーザーが同じ取引で多くのNFTを購入または請求できるようになっている場合に、しばしば破られます。なぜならば、クジラはガス料金をより多くのトークンで償却することができるため、小規模なユーザーよりもトークンあたりの支払いが少なくなるからです。これを緩和するためには、1アドレスまたは1トランザクションあたりのトークン数に上限を設けるのが良いでしょう。
さらに運営者は、ユーザーがいつトークンの代金を支払わなければならないのかを決めなければなりません。それは、入札時に一緒に支払うのか、それとも市場が清算された後に支払うのかです。
後者の場合、ユーザーは入札の段階でトークンを予約し、市場がクリアになった後、一定の時間内に購入を完了することができます。この方法とオフチェーン入札を併用したプロジェクトが「Parallel」です。このモデルは、静かな市場ではうまく機能していましたが、需要が非常に高くなると、ユーザーがコストをかけずにできるだけ多くのトークンを予約しようとする競争状態になってしまいます。
競走状態の問題を軽減するためには、入札自体にコストを関連付ける必要があります。ここでの最善の解決策は、ユーザーが同じアドレスからスマートコントラクトで資金をロックした後にのみ入札を行うようにすることです。運営者は、入札が失敗した場合に資金を返却するか(取引所の指値注文に似ている)、入札を維持するか(ペイアウトされなかった抽選券に似ている)を決定することができます。
最後に、ユーザーにどの程度の粒度で入札を表明してもらうかを決めなければならない。需要が供給を上回るために)負けの入札がある場合、勝者と敗者の意味をさらに決めなければなりません。ここでは3つの有効な選択肢を紹介します。
"Dumb" batched auction: 人々は、それ以上の指示なしにETHの量をコミットします。クリアリングフェーズでは、アイテムの数をコミットした全体のETHで割り、全員がERC-20の形で端数のトークンを受け取り、後でERC-721 NFTに交換することができます。Jay Pegs Auto Martではこの方法を採用しており、負け札が出ないというメリットがあります。しかし、チェーン上で3つの余分な取引が必要になるというデメリットがあります。2つの取引は、有用な量(例えば、1つの「完全な」ERC-20)に達するためのトークンの売り買いであり、1つはNFTとの交換です。最も重要なことは、この方法では、買い手が一定量のトークンを求める価格を表明することができないことです。
「スマート・バッチ・オークション」: 類似した、しかし間違いなくより良いアプローチは、数年前にSpankChainがICOで使用したものです。Jay Pegとは異なり、SpankChainはトークンの数量とトークンあたりの価格を指定して入札を集めました。入札フェーズの後、彼らはオフチェーンでストライクプライスを計算し、それを落札価格とともにスマートコントラクトに提出し、人々は落札した場合はSPANKを、落札しなかった場合はETHを引き出すことができました。この方法の欠点は、すべての入札をマッチングさせるための計算量が非常に大きく、オフチェーンでしか行えないため、運営者をある程度信頼する必要があることです。
**ラッフル。**最後に、ユーザーがチケットや予約を購入して入札を行うラッフルやロッタリーを実行することができます。当選者は、すべてのチケットのプールから無作為に選ばれます。この方法では、ユーザーは完全なトークンを受け取るか、あるいは何も受け取らないかのどちらかで、Jay Pegの$DONAが必要とした3つの余分なトランザクションを省くことができます。また、フルのNFTを1つ買うことができないような小規模なウォレットにも対応しています。しかし、この方法では販売にランダム性が生じるため、好むユーザーと好まないユーザーがいます。
この段階では、運営者(または運営者を代行する者)が、入札を利用可能な供給量と照合し、アイテムを購入できる人とできない人を決定します。
最後の大きな分岐点は、すべての入札のプールから勝者を選ぶのは誰かということです。FCFSモデルでは、これはマイナーが行いますが、これにはいくつかの問題があることを示しました。
Jay Pegのクリアリングメカニズムでは、完全に信頼できる方法でオンチェーンで行うのに十分な計算量になっています。
SpankChainのモデルでは、勝者は完全にオフチェーンで選ばれます。入札者は希望する価格以上にフィルされることはないが(スマートコントラクトがこれを保証する)、分散型取引所に対するサンドイッチ攻撃の仕組みと同様に、最大のフィル価格まで押し込まないように運営者を信頼しなければならないのだ。
ラッフルアプローチは、必要なのは1つの乱数(例えば、Chainlink VRFから)だけなので、最も簡単にクリアできます。しかし、乱数を必要とすることで、別の信頼の前提が導入されます。乱数を生成する人は、他の人よりも自分の入札を優先する可能性があります。一方、落札価格が単に最も高いものである場合には、このようなことは起こりえない。
マーケットがクリアされた後、オペレーターはトークンを鋳造してユーザーに渡し、もしユーザーがそのモデルを選んだのであれば、負けた入札額を返却しなければなりません。この段階では、ガスの効率化と競争状態の防止が重要となります。
オペレーターが、ユーザーが一斉に請求してガス料金が高騰するのを防ぎたい場合は、決済プロセスと同じランダム性を再利用して、ユーザーが一括して請求できるようにすることができます。この場合、ユーザーは一斉に請求しない方が良いので、集団行動の問題が解決されます。しかし、自分のメタデータを知りたい、セカンダリーマーケットでいち早く売りたいという好奇心は、いずれにしても競争状態を生み出すかもしれません。とはいえ、間隔を空けて決済すると、ユーザーの待ち時間も長くなります。
配布の際に他に言及すべきことは、ユーザーが自分でトークンを請求しなければならないのか、それとも運営者が時間をかけてトークンを送るだけでよいのかということです。後者は、間隔を空けて決済する方法のバリエーションですが、ユーザーが何もしなくていいというメリットがあります。先に紹介したパラレルローンチでは、この方法をうまく利用し、ユーザーが最初にNFTの代金を支払う際に「配送料」を追加するだけで済むようにした。
最後に、トークンが配布されると、そのメタデータが公開されます。このステップは、NFT導入の4つのフェーズのうち、最後に行わなければなりません。また、最後のステップを共有することもできません(例えば、Meebitが行ったように、支払い、配布、公開を同じトランザクションにまとめて行うなど)。再ロールを不可能にするためには、支払いと公開の間に少なくとも1ブロックのギャップがなければなりませんが、再ロールから守るためにこのギャップを増やすこともできます。
NFTの鋳造とメタデータの公開は同じトランザクション内では行われないことがわかりました。これは公平性だけでなく、ユーザーエクスペリエンスやガス効率の観点からも重要です。一般的には、3つの選択肢があります。
**フルコレクションの公開。**フルコレクション公開では、オペレーターは、コレクションのすべてのNFTがミントされるまで待ってからメタデータを公開します。この方法はガス効率が高く、必要なのは乱数1つだけで、あとはユーザーが何もしなくてもチケットIDのメタデータをシャッフルすることができます。
しかし、この方法には大きな欠点があります。すなわち、ユーザーは自分のトークンのメタデータを見るために、すべてのNFTが鋳造されるまで待たなければならない。メタデータを公開する時間に上限を設けると(例えば24時間)、一部のユーザーが鋳造に間に合わず、結果的にコレクションが完売しない可能性があります。
NFTごとの公開。フルコレクション公開のUXを向上させるために、運営者はユーザーがNFT単位でランダムに公開できるようにすることもできます。これは、ユーザーがアイテムを購入後すぐに「開封」できるため、より魅力的です。また、「未開封」のアイテムを二次市場で取引することも可能になります(MTGなどのトレーディングカードゲームでは人気があります)。
しかし、この方法では、Chainlink VRFへの電話やNFTへの乱数の適用など、ユーザーがチェーン上で追加の取引をしなければならないという負担があります。これは、公開の必要性を特に感じていないユーザーや、未開封のアイテムを取引することに興味がないユーザーにとっても避けられないことです。
**一括公開。**中間的な方法として、私たちは「バッチ式公開」というコンセプトを提案します。この方法では、ユーザーは無期限にアイテムを公開することができますが、公開したい場合は次のブロックで公開することもできます。新しい乱数が要求されるたびに、自動的にすべてのミントされたアイテムと割り当て保留中のアイテムのメタデータが公開され、実質的に同じ一定のコストで公開されます。
その結果、時間優先度の高いユーザーは、メタデータを公開するための余分なオンチェーン・トランザクションにお金を払うという選択肢を持つことができ、それが彼ら以前のすべてのユーザーに利益をもたらすことになります。ユーザーがメタデータの公開を選択しなかった場合、オペレータは、例えば毎正時などのスケジュールに従ってメタデータの公開を行うことができます。
いつ公開するかを決めた後に残る問題は、どこでランダム性を得るかということです。ここでは、Chainlink VRFを使用する方法と、commit-reveal方式を使用する方法の2つを提案します。
Chainlink VRFを使用すると、検証可能なランダム性のソースにオンチェーンでオンデマンドでアクセスできます。任意の公開メカニズムを使用して、Chainlinkを呼び出してランダム性を要求し、それが満たされると、ランダムに生成された数字をメタデータの計算の入力として使用することができます。これにより、各NFTに対して確実にランダム化されます。
後者の場合、オペレーターは販売前に1つの乱数(フル公開の場合)または複数の乱数(NFT毎またはバッチ公開の場合)を作成し、そのハッシュを事前にコミットすることができます。NFTが鋳造されると、事業者はこれらの数字を公開し、誰もがハッシュによってその真偽を確認することができます。しかし、この方法では、オペレータが乱数に対する特権的な洞察力を利用して最高のNFTを鋳造しないようにするために、オペレータをある程度信頼する必要があります。信頼の必要性を最小限にするために、我々は、鋳造順序の独立した乱数化を行うことを推奨します。
さらに、オフチェーン・メタデータについては、乱数をコミットする代わりに、オペレータは完全なメタデータ(すべてのNFTのid-attribute)のハッシュをコミットすることができます。これにより、メタデータは事前に決められたものであり、ミント処理の最中や後に変更されることはありません。ただし,オペレータが順序や属性に関する知識を悪用することを防ぐために,ミントの順序には独立したランダム化が必要です。
すべての特性のバランスが取れており、理解しやすく、調整しやすいと思われる参考実装を用意しました。
**入札。**我々の実装では、ユーザーはくじのチケットを購入することで入札することができます。くじ引きの期間は運営者が決定します(24〜48時間を推奨します)。チケット1枚あたりの価格は、ガス代と、運営者が指定したNFTあたりの価格で構成されています。後者は「保証金」の役割を果たし、市場を清算した後、すべての負けたチケットに返金されます。Sybilの耐性は、1取引あたりのガス、ロックされた資金の資本コスト、1アドレスあたりの最大チケット数の3つの方法で作られます。
**クリアリング。**入札期間が終了すると、利用可能なNFTの数に等しい数の勝者が、すべてのチケットのプールから抽選されなければならない。まず,誰でもcollectEntropy()を呼び出して,Chainlink VRFから乱数を得ることができる.この乱数は,Fisher-Yatesシャッフルを実装した「shuffleEntries()」で使用される.誰でもこの関数を呼び出すことができるので,有効性が保証され,ガスコストが社会的に利用できるようになります(例えば,クジラが利用できます)。
**配布。**すべての当選者が抽選された後、ユーザーは、当選したチケットからNFTを請求し、落選したチケットから払い戻しを受けるための無期限の期間を持つ。どちらも同じトランザクション内で行われます。オペレーターは、当選チケットからの収益の引き出しを開始することができます。
**メタデータの公開。**ユーザーは、NFTを請求してから1ブロック後に、そのNFTのメタデータを公開することができます。誰でも新しい乱数を要求することができ、それによって自動的に鋳造され、割り当てが保留されているすべてのアイテムのメタデータが公開されます。これにより、時間的な優先順位が高いユーザーは、お金を払ってすぐに明らかにすることができますが、すべてのユーザーに利益をもたらします。
本記事では、実例を挙げて、NFTのローンチの設計が不十分だと、ユーザーにとって最適ではない結果になることを紹介しました。しかし、自分の目標を明確に定義し、ローンチが実際にどのようなステップを踏むのかを時間をかけて分解すると、多くのデザインが可能になります。そして、ほとんどすべてのデザインが、私たちが今日慣れ親しんでいる、固定価格、先着順、ネットワーク混雑型の販売よりも優れています。
この記事から何かを得るとしたら、この3つのルールを挙げることができるでしょう。
**搾取できないほどの公正さは、ランダムなメタデータを用いたNFTの最も重要な特性である。**堅牢なランダムを使用し、購入して決済する前にNFTのメタデータを明らかにしてはならない。 **レース状態は、ミントに参加する人もしない人も含めて、ユーザーを傷つけます。**この問題を解決するために、逐次的な入札とクリアリング(例:ラッフルやバッチオークション)を使用する。 **最初から費用対効果を考える。**現在、オンチェーンで行われている手順をオフチェーンでも行うことで、ユーザーのコストを削減できないかを考えてみましょう。オフチェーンのステップには、入札だけでなく、ユーザーがオペレーターにある程度の信頼を置けることを前提とした市場清算も含まれます。公開段階では、バッチ処理を検討してください。 私たちは、NFTの開発者がこれらのアイデアを実験的に取り入れ、よりバラエティに富んだサービスを提供することを期待しています。最後に、NFTコミュニティでアドバイスを共有し、ローンチの質の向上に貢献している方々を紹介したいと思います。
Vitalik-FCFS固定価格販売の問題点を解説していただきました。 FairDrop:公正なくじの概念実証のデザインを共有していただきました。 dotta-堅牢なフロントエンドの構築についてアドバイスをいただきました。 Jay Pegs Auto Mart and SpankChain-新しいオークションのアプローチをデモしていただきました。 Parallel-オフチェーンラッフルのベストプラクティスを紹介してください。 0xmons-フェアローンチの設計に関するアドバイスとツールの提供
他にも良いスレッドやコンセプト、発表を見逃していませんか?Twitterで@hasuflと@_anishagnihotriにご連絡いただければ、一緒にこのリソースを強化していきましょう。
感謝の意を表します。Robert Miller (Flashbots), Dom Hofmann
執筆者
Hasu
アニッシュ・アグニホトリ
Anish Agnihotriは、Paradigmのリサーチアソシエイトです。以前はPolychain Capitalのリサーチチームに所属し、アーリーステージの投資をサポートしていました。学士号[→]を取得中。
免責事項:本記事は一般的な情報提供のみを目的としています。本記事は、投資アドバイスや投資の売買の推奨・勧誘を目的としたものではなく、投資判断を行う際のメリットの評価に利用すべきではありません。また、会計、法律、税務に関するアドバイスや投資の推奨を目的として依拠することはできません。この投稿は、執筆者の現在の意見を反映したものであり、Paradigmやその関連会社を代表して作成されたものではなく、必ずしもParadigmやその関連会社、Paradigmに関連する個人の意見を反映したものではありません。ここに反映されている意見は、更新されることなく変更されることがあります。

