پرش به محتوا
پروژه نمایشیبلاکچین و Web3
  • 223 تست
  • پوشش 100%
  • تحلیل‌شده با Slither

Milestone Escrow

امانی (Escrow) مبتنی بر مرحله برای کارهای فریلنسری و آژانسی — با ETH یا هر ERC-20 استاندارد

Solidity 0.8.28OpenZeppelin v5ETH / ERC-20Foundry

چیست

MilestoneEscrow یک قرارداد امانی (escrow) منفرد روی زنجیره است که هر تعداد کار مستقل را نگه می‌دارد. مشتری هنگام ایجاد کار، کل بودجه را — تقسیم‌شده به حداکثر 50 مرحله — تأمین می‌کند تا فریلنسر پیش از شروع کار ببیند پول آنجاست.

وجوه فقط زمانی جابه‌جا می‌شوند که مشتری یک مرحله را آزاد کند، یا داور خنثی اختلاف را با تقسیم وجوه آزادنشده به بیس‌پوینت حل کند، یا کار لغو شود و مبلغ به مشتری بازگردد. کارمزد اندک پروتکل (با سقف قطعی 5% و اسنپ‌شات‌شده برای هر کار) از پرداخت‌های فریلنسر کسر می‌شود؛ بازپرداخت‌ها هرگز مشمول کارمزد نمی‌شوند.

مسئله کسب‌وکاری

کار از راه دور میان طرف‌هایی که یکدیگر را نمی‌شناسند به شکاف اعتماد می‌خورد: مشتری‌ها نمی‌خواهند پیش‌پرداخت کنند و فریلنسرها نمی‌خواهند پیش از دریافت پول تحویل دهند. پلتفرم‌ها این شکاف را می‌بندند، اما کارمزدهای قابل‌توجه می‌گیرند، می‌توانند حساب‌ها را مسدود کنند و اختلاف‌ها را به شیوه‌هایی که طرف‌ها نمی‌بینند حل‌وفصل می‌کنند.

چگونه کار می‌کند

  1. 1

    ایجاد: مشتری createJob(freelancer, arbiter, token, amounts[]) را صدا می‌زند و کل مبلغ را با ETH یا یک ERC-20 تأمین می‌کند. کارمزد فعلی در کار اسنپ‌شات می‌شود.

  2. 2

    تحویل: فریلنسر requestRelease(jobId, i) را صدا می‌زند تا اعلام کند مرحله i تمام شده است.

  3. 3

    آزادسازی: مشتری releaseMilestone(jobId, i) را صدا می‌زند. فریلنسر مبلغ منهای کارمزد را دریافت می‌کند؛ با آزاد شدن همه مراحل، کار تکمیل می‌شود.

  4. 4

    اختلاف (اختیاری): هر یک از طرف‌ها می‌تواند اختلاف ایجاد کند که کار را منجمد می‌کند. داور هر مرحله آزادنشده را به نسبت بیس‌پوینت بین فریلنسر و مشتری تقسیم می‌کند.

  5. 5

    لغو (اختیاری): مشتری می‌تواند پیش از درخواست یا آزاد شدن هر کاری، با بازپرداخت کامل لغو کند؛ داور می‌تواند تا وقتی کار باز است لغو کند.

اقدامات امنیتی

  • nonReentrant روی هر تابع منتقل‌کننده ارزش؛ وضعیت پیش از فراخوان‌های خارجی نهایی می‌شود (checks-effects-interactions)
  • پرداخت‌های ETH مقاوم در برابر griefing: پرداخت‌های push ناموفق برای برداشت بعدی اعتبار داده می‌شوند
  • توکن‌های fee-on-transfer با بررسی موجودی پیش/پس رد می‌شوند
  • سقف کارمزد (5%) و اسنپ‌شات کارمزد برای هر کار: مالک نمی‌تواند کارمزد کارهای تأمین‌شده را افزایش دهد
  • حلقه‌های کران‌دار (حداکثر 50 مرحله) و سه نقش متمایز
  • Ownable2Step؛ ادمین هرگز نمی‌تواند به وجوه کارها دست بزند
  • اینورینت توانگری fuzzشده: موجودی قرارداد برابر مجموع مراحل آزادنشده است

قابلیت‌ها

  • هر تعداد کار در یک قرارداد
  • تأمین مالی با ETH یا ERC-20
  • تا 50 مرحله برای هر کار
  • درخواست آزادسازی و اختلاف با تقسیم داور به بیس‌پوینت
  • لغو و بازپرداخت
  • اسنپ‌شات کارمزد پروتکل با سقف 5%

موارد استفاده رایج

  • بازارهای فریلنس و پلتفرم‌های آژانسی با پرداخت‌های غیرحضانتی
  • قراردادهای خدماتی B2B با صورت‌حساب مرحله‌ای
  • برنامه‌های گرنت با پرداخت قسطی و کمیته به‌عنوان داور

محدودیت‌های شناخته‌شده

داور به خنثی بودن معتمد است؛ در پروداکشن این نقش یک multisig، DAO یا دادگاه غیرمتمرکز است. توکن‌های rebasing پشتیبانی نمی‌شوند.

سایر قراردادهای نمایشی

نمایشی

Token + Vesting + Staking

ERC-20 با سقف عرضه و تأییدهای بدون gas، جدول‌های vesting با cliff برای تیم و سرمایه‌گذاران و پاداش‌های staking به سبک Synthetix.

ERC-20EIP-2612OpenZeppelin v5

223 تست · پوشش 100% · تحلیل‌شده با Slither

نمایشی

SigmaNFT Collection

عرضه NFT منصفانه: فازهای لیست سفید و عمومی، سقف برای هر کیف پول، حداکثر عرضه تغییرناپذیر، حق امتیاز ERC-2981 و افشای تأخیری.

ERC-721ERC-2981Merkle proofs

223 تست · پوشش 100% · تحلیل‌شده با Slither

نمایشی

Gold-Backed Token (RWA)

پشتوانه به پیش‌شرط ضرب تبدیل می‌شود: توکن‌ها فقط در صورتی ضرب می‌شوند که ذخیره طلای گزارش‌شده عرضه کل جدید را پوشش دهد.

ERC-20AccessControlProof of reserve

223 تست · پوشش 100% · تحلیل‌شده با Slither

استانداردها: Solidity 0.8.x، OpenZeppelin، تست‌های Foundry با فازینگ، تحلیل ایستا Slither، سورس وریفای‌شده. 223 تست · پوشش 100% · تحلیل‌شده با Slither.

پروژه‌ای در ذهن دارید؟

بگویید چه می‌سازید. یک مهندس ارشد در روزهای کاری ظرف یک ساعت پاسخ می‌دهد — سپس یک ارزیابی صادقانه، دامنه مشخص و پیشنهاد با قیمت ثابت یا مرحله‌ای دریافت می‌کنید، معمولاً ظرف چند روز کاری.

ترجیح می‌دهید اول بنویسید؟ برایمان بنویسید

مستقیم با Ing. Ismet Mesic، سرپرست فنی، صحبت خواهید کرد.