プレイブック
BareNFTReserve: エスクロー、RandomBuy、弱い RNG (Barenftreserve Randombuy Rng)
オーナー専用の createNewListing、buy および randomBuy — keccak256(revealNonce, block.difficulty, msg.sender) % 3. オーナー運営のマーケットプレイス ADR および緊急送金。
Bare Crypto Solidity マーケットプレイス プロトコル
一部 3 の 5
Remix IDE および OpenZeppelin v4.1 を使用した Hardhat/Foundry なしの BareNFT GitHub インポート、リザーブ、英国オークション、および NFT ゲートの BareToken エミッション アーキテクチャ。 ADR、弱い RNG、緊急権限のトレードオフ。
エスクローの信頼、サイコロの出目の不安
BareNFTReserve は NFT を契約にエスクローし、所有者専用の createNewListing で価格をオープンします。購入すると、支払いとともに固定リストが閉じられます。 randomBuy keccak256(revealNonce, block.difficulty, msg.sender) は、3% で 3 つの「ランダム」候補インデックスを生成します。これは、意図的に弱いオンチェーン エントロピーです。これは、Bare Crypto のオーナー運営のマーケットプレイス ADR の核心です。信頼はオペレーターにあり、運はオペレーターが許容する UX キャンディーです。```text Owner ──transfer NFT──> BareNFTReserve (escrow) createNewListing(tokenId, price) | +── buy(tokenId) ──ETH──> seller, NFT──> buyer | +── randomBuy() ── keccak(nonce, difficulty, sender) % 3 | +── emergency: transferNft / transferFunds
## 最初に説明した概念```text
📦 Escrow listing
NFT once kontrata transfer edilir; listing ancak ownerOf(contract) iken acilir.
📦 Owner-operated marketplace
Listing acma ve acil cikislar tek owner'a bagli; permissionless seller degil.
📦 Weak on-chain RNG
block.difficulty + nonce + sender ile uretilen, miner/caller etkisine acik 'rastgelelik'.
📦 Emergency exit
transferNft / transferFunds ile owner'in escrow'u bypass etmesi.
```オーナー運営のエスクローは、OpenSea のような許可のないマーケットプレイスとは異なる形式の製品 ADR です。 randomBuy はこのモデルに運の層を追加しますが、信頼性は変わりません。
## ADR: オーナー運営のリザーブ
決定: createNewListing 所有者のみ。 NFTは事前にコントラクトに転送されている必要があります。理論的根拠: Bare Crypto は単一のオペレーターによって店頭在庫を管理し、販売者の許可のないモデルを回避することで偽の出品やラグのリスクを軽減します。価格: 中央オペレーター。リストのオープン/クローズ、価格設定、クローズリストは完全に所有者です。これは「オペレーター ショーケース エスクロー」ADR であり、「プロトコル マーケットプレイス」ではありません。
## buy、randomBuy、およびエントロピー図
buy は tokenIdToListing 履歴の最後のレコードを取得し、msg.value >= Price を要求し、seller.transfer とsafeTransferFrom を実行します。価格に必要なランダム購入コメント。 randomId は 3 つのインデックスを 3% で凍結し、最初の販売が成功するまで試行します。エントロピーのソースは予測可能であるか、マイナーの影響を受けています。公平なランダム性ではありませんが、「ミステリー ボックス」の UX を示しています。```text
revealNonce ++
keccak256(nonce, block.difficulty, msg.sender)
|
v
index = hash % 3
[i, i+1, i+2] mod 3
|
v
try listings until sold
```## 失敗: RNG が弱い、再入可能、および緊急
seller.transfer msg.value による即時支払いは、buy/randomBuy におけるチェック効果インタラクションの規律が弱い領域です。悪意のある販売者は、契約を再入しようとする可能性があります。 RNG の弱点: 同じブロック内で、呼び出し元はシミュレーションを通じて、どの 3% スライスに該当するかを確認できます。緊急転送Nft/transferFunds はインシデント回復のためにありますが、所有者キーが漏洩した場合にはすべてのエスクローが無効になります。パフォーマンス: tokenIdToListing 配列が大きくなるにつれて、getLastListingByTokenId ガスと履歴の複雑さが増加します。
## このエピソードで最も混乱を招く対戦```text
❌ block.difficulty ile random adil NFT dagitimi yapar
✓ Bu zayif RNG'dir; mystery UX olabilir, adil mint/raffle olamaz
❌ Escrow'da NFT varsa pazar permissionless'tir
✓ Listing yaratma owner-only ise urun operator vitrinidir
❌ Emergency transfer sadece guvenlik artirir
✓ Ayni kapı, compromise'te rug vektorudur; timelock/multisig olmadan tek nokta riskidir
独自のシステムのチェックリスト
- createNewListing を利用できるのは誰ですか?所有者または販売者ですか?
- コードまたはコメントで、randomBuy 価格チェックがアクティブになっていますか? 3.緊急転送Nft/transferFundsを保持しているウォレットはどれですか?マルチシグはありますか?
- 同じブロック内の呼び出し元は、randomBuy の結果を予測できますか?
- リスト履歴 (tokenIdToListing) UI で「現在」とみなされているレコードはどれですか?
このセクションで覚えておくべきこと
- BareNFTReserve はオーナー運営のエスクロー ショーケース ADR です。これは許可のないマーケットプレイスではありません。 2.randomBuy のエントロピーは意図的に弱い — UX キャンディーであり、公平なチャンスではありません。
- 緊急電源は同じキーでレスキューとラグを開きます。
エスクローの信頼がオペレーターにある場合、サイコロを振ることはプロトコルではなく装飾です。
FAQ
よくある質問
エスクロー上場とは何ですか?
NFT は最初にコントラクトに転送されます。リストは、ownerOf(contract) の場合にのみ開くことができます。
オーナー運営のマーケットプレイスとは何ですか?
開口部と非常口のリストは 1 人の所有者に限定されます。許可のない販売者ではありません。
「block.difficultyでランダム公平なNFT配布が行われる」って本当ですか?
これは不適切な RNG です。フェアミント/抽選ではなく、ミステリー UX になる可能性があります
このセクションでは何を修正しますか?
このセクションでは、予備エスクロー モデル、弱い RNG、および緊急電力のトレードオフを修正します。 BareNFTReserve は NFT を契約にエスクローし、所有者専用の createNewListing で価格をオープンします。購入すると、支払いとともに固定リストが閉じられます。 randomBuy keccak256(revealNonce, block.difficulty, msg.sender) は、3% で 3 つの「ランダム」候補インデックスを生成します。これは、意図的に弱いオンチェーン エントロピーです。これは、Bare Crypto のオーナー運営のマーケットプレイス ADR の核心です。信頼はオペレーターにあり、運はオペレーターが許容する UX キャンディーです。
学んだエンジニアリング原則
- マーケットプレイス ADR では、許可のない販売者とオペレーターの店頭を明確に区別する必要があります。
- オンチェーン RNG が使用される場合、「弱い/不公平」を明確に文書化する必要があります。
- 緊急出力は、マルチシグまたはタイムロックなしで単独で保管しないでください。
続きを読む
続きを読む
シリーズの次のシリーズ
BareNFTAuction: 請求、返金および緊急権限
英国のオークション: 入札、請求、キャンセル、保留中の返品、および所有者の緊急送金Nft/transferFundsのトレードオフ。
シリーズの次のシリーズ
BareNFT: ロール、一時停止可能、およびトークン URI
BareNFT は、ERC721 Enumerable/Burnable/Pausable および AccessControl を備えたロールゲート型 mint(to,id,uri) を提供します。トークンごとの URI と一時停止のトレードオフ。
同じシリーズ
リミックス + OpenZeppelin: ヘルメットなしでの配信
Bare Crypto プロトコルは、Hardhat/Foundry を使用せずに、Remix IDE と OpenZeppelin v4.1 GitHub インポートを使用してどのようにコンパイルおよびデプロイされましたか? ADR とトレードオフ。