peaceBridge: اتصال میان اتریوم و اتریوم کلاسیک

peaceBridge بر پایه ساخت پل بیت کوین_اتریوم Loi Luu با توصیف “واردکردن بیت کوین به اتریوم”، یک پل اتریوم کلاسیک_اتریوم است که با استفاده از زنجیره‌های مالکیت امضای مشترک، تراکنش‌های میان دو زنجیره را تایید می‌کند. این طراحی با معرفی یک بازی چالشی و اعمال الزامات سپرده گذاری، به مسائل مربوط به هزینه‌ی بالای gas پرداخته و یک کاستدی trustless را بکار می‌گیرد.

0 94

peaceBridge از طریق یک نمونه به‌خوبی نشان داده شده است. یک انتقال را در جهت ETCETH در نظر داشته باشید:

 

سپرده گذاری (Staking)، استخراج (minting) و ذخیره‌سازی (depositing) در peaceBridge. آلیس TETC-A را در زنجیره اتریوم خارجی استخراج می‌کند و مبلغ معادل اتریوم کلاسیک واقعی را در زنجیره خانگی اتریوم کلاسیک خود ذخیره می‌کند.

سپرده گذاری (Staking)، استخراج (minting) و ذخیره‌سازی (depositing)

peaceBridge با یک کاستدین (Custodian) آغاز می‌شود که قرارداد سپرده (DepositContract) را در زنجیره خانگی خود (در اینجا اتریوم کلاسیک) و قرارداد توکن (TokenContract) را در زنجیره خارجی تنظیم می‌کند.

1. الف. کاستدین اتریوم کلاسیک، α  را در قرارداد سپرده‌ی زنجیره اتریوم کلاسیک سپرده گذاری می‌کند. کاربران در قرارداد سپرده، ارز خانگی (در اینجا اتریوم کلاسیک) را به‌منظور مبادله درزنجیره خارجی ذخیره می‌کنند. α میزان depositCap را تعیین می‌کند که محدودیتی در مقدار اتریوم کلاسیک است که می‌توان در قرارداد سپرده آن را ذخیره کرد.

1. ب. کاستدین قراردادتوکن را در زنجیره اتریوم تنظیم می‌کند که در آن کاربران می‌توانند توکن های اتریوم کلاسیک ERC721 را استخراج کنند. هر استخراج به‌صورت جداگانه یک توکن ERC721 را با یک tokenId منحصربه‌فرد غیرقابل تقسیم تولید خواهد کرد.

به‌محض اینکه قرارداد توکن و قرارداد سپرده تنظیم و depositCap ایجاد شود، مبادلات از اتریوم کلاسیک به TETC می‌توانند آغاز شوند.

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

2. الف. آلیس مایل است اتریوم کلاسیک X را برای توکن های TETC به‌منظور استفاده در زنجیره اصلی اتریوم مبادله کند. او برای انجام این کار X TETC-A  را در قرارداد توکن (در زنجیره اتریوم) استخراج می‌کند. توجه داشته باشید که TETC-A  یک توکن ERC721 است که دارای یک tokenId منحصربه‌فرد و غیرقابل تقسیم است.

2. ب. آلیس اتریوم کلاسیک X (در زنجیره اتریوم) را در قرارداد سپرده خود ذخیره می‌کند.

peaceBridge انتقال، امضای مشترک و زنجیره‌ی مالکیت. هر توکنی که در peaceBridge انتقال داده می‌شود با یک نانس شماره‌گذاری شده و نیازمند دو امضای کاستدین و انتقال‌دهنده و درنتیجه ایجاد یک زنجیره مالکیت برای هر توکن است.

انتقال، امضای مشترک و زنجیره‌ مالکیت

  1. آلیس به‌منظور انتقال توکن TETC-A  خود به باب با declaredNonce = 1 یک تقاضا در قراردادتوکن قرار می‌دهد. اگر انتقال او تائید شود آنگاه نانسانتقال TETC-A  از صفر به یک آپدیت می‌شود. نانس انتقال توکن A در زمان استخراج با صفر شروع می‌شود و با هر تائید انتقال یک عدد به آن اضافه‌شده و درنتیجه زمان‌بندی زنجیره مالکیت را ایجاد می‌کند.
  2. کاستدین با تقاضای انتقال آلیس با امضای مشترک TETC-A و با نانس انتقال=1 موافقت می‌کند.
  3. مالکیت TETC-A  با موفقیت به باب منتقل می‌شود. نانس انتقال TETC-A  به 1 افزایش پیدا می‌کند بدین معنا که TETC-A  تحت یک انتقال قرارگرفته است. قبل از اینکه کاستدین درخواست انتقال آلیس را تائید کند آلیس آزاد است که معامله را به عقب برگرداند، شاید باید عقیده‌اش را در مورد انتقال TETC-A  خود به باب تغییر دهد.

برداشت و چالش

peaceBridge

یک برداشت باید سپرده گذاری شده و یک دوره چالش را باز کند.

یک برداشت کننده می‌تواند ازTETC-A   برای برداشت قرارداد سپرده (به‌طور مثال برداشت سپرده‌ی اتریوم اصلی آلیس) استفاده کند. او این کار را با ارسال اطلاعات زیر برای قرارداد سپرده انجام می‌دهد:

  • uint256 _tokenId، tokenId منحصربه‌فرد توکن TETC-A است که او سعی در بازخرید آن دارد.
  • bytes32[]_rawTxBundle، بسته نرم‌افزاری حاوی اطلاعات در مورد_withdrawalTx, _lastTx, _custodianTx
  • bytes32[] _txMsgHashes، هش های مقادیر در _rawTxBundle
  • uint256 _declaredNonce، تعداد انتقال‌های TETC-A

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

ما می‌توانیم درمورد احتمال برداشت‌های جعلی و پاسخ‌های چالش متقابل آن‌ها با در نظر گرفتن زمان‌سنجی declaredNonce برداشت، دلیل بیاوریم:

peaceBridge

برداشت جعلی و پاسخ چالش

یک چلنجر برای شروع چالش نیازمند سپرده گذاری یک مقدار برابر با 20 درصد از سهم برداشت کننده است تا هزینه‌های gas سوخت شده توسط برداشت کننده در پاسخ به چالش را پوشش دهد. این مسئله از حملات گریفینگ (griefing attacks) و چالش‌های تریگرهپی(trigger-happy challenges) که باعث کاهش سرعت پل می‌شوند جلوگیری می‌کند.

در هر مرحله وجود بیش از یک تراکنش با امضای کاستدین با یک نانس مشابه و برای یک توکن مشابه می‌تواند دو امضایی کردن غیرقانونی کاستدین را به DepositContractto اثبات کند. مجازات این‌چنین است:

ما برای یک توکن همچون TETC-A با سپرده‌ی مربوطه‌ی X، سپرده‌ی TETC-A و نیز اتریوم معادل X را از سهم کاستدین کم می‌کنیم. در اینجا مجازات کاستدین با کشف موارد دو امضایی به‌صورت یک تابع خطی افزایش پیدا می‌کند، بدین ترتیب او را از دو امضایی کردن منع می‌کند.

شاید از این مطالب هم خوشتان بیاید.

ارسال پاسخ

آدرس ایمیل شما منتشر نخواهد شد.