زیرو-اکس

۱۱ آذر ۱۳۹۷

arznameh- 0x
مقدمه‌ای بر پروژه
0x

مطابق آنچه در وب‌سایت این پروژه آمده، 0x یک پروتکل باز و فاقد نیاز به مجوز است که به توکن‌های ERC20 اجازه می‌دهد تا روی بلاکچین اتریوم معامله شوند و برای توانمندسازی اکسچنج غیرمتمرکز به کار گرفته شوند.

توجه: نسخه دوم (V2 0X) از توکن‌هایی به جز ERC20 نیز پشتیبانی می‌کند. در ادامه توکن‌های بیشتری نیز افزوده خواهد شد.

0x در اکتبر سال ۲۰۱۶ متولد شد. هم‌بنیان‌گذاران این پروژه یعنی ویل وارن (Will Warren) و امیر بندیلی (Amir Bandeali) چشم‌اندازی را برای خود ترسیم کرده‌اند که بر مبنای آن بتوان تمامی دارایی‌ها، سهام، رمزارزها و فلزات گران‌بها را به عنوان توکن روی یک بلاکچین معامله کرد.

 

تیم 0x

0x یکی از بهترین و متخصص‌ترین تیم‌ها را در اختیار دارد.

دو چهره اصلی این پروژه، بی‌شک، ویل وارن و امیر بندیلی، هم‌بنیان‌گذاران آن هستند. ویل وارن فیزیک کاربردی در آزمایشگاه لوس‌آلاموس و در دانشگاه سن‌دیه‌گو مهندسی مکانیک خوانده است.

امیر بندیلی هم پیش‌تر یک معامله‌گر با درآمد ثابت در DRW بوده است. او در دانشگاه ایلینویز، امور مالی خوانده است.

پروژه 0x توسط شرکت‌هایی نظیر Pantera Capital، Fintech Blockchain Group، Blockchain Capital و Jen Advisors پشتیبانی مالی می‌شود.

اکنون که با اعضای تیم آشنا شدیم، بیایید کمی وارد جزییات شویم. پیش از آن، بهتر است با اصول پایه‌ای این پروژه آشنا شویم.

 

0x و اتردلتا ؛ پر کردن فاصله‌ها

0x بسیار شبیه به اتردلتا است اما چند تفاوت با آن دارد:

  • 0x گروهی از مشارکت‌کنندگان به نام رله را در اختیار دارد که هر کدام از آن‌ها می‌توانند تبدیل به یک اکسچنج بشوند. در مقابل، اتردلتا تنها یک نهاد یکتا دارد که می‌تواند نقش یک اکسچنج را ایفا کند.
  • 0x توکن انحصاری خود را دارد (ZRX) که برای پرداخت تراکنش‌ها و کارمزدهای دولتی مورد استفاده قرار می‌گیرد.

بسیاری از کاستی‌های عمده اتردلتا پیرامون ثبت سفارش روی بلاکچین و مقیاس‌پذیری آن بروز می‌کنند. به همین دلیل، برای ایجاد چیزی شبیه به 0x، باید دست به دو نوآوری مهم زد.

۱- قراردادهای هوشمند AMM

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

تنظیم قیمت AMM تضمین می‌کند که قیمت با توجه به نقدینگی تغییر نکند. این سازوکار، محدودیت‌های خودکاری را بر سمت عرضه تحمیل می‌کند تا اطمینان حاصل شود که دارایی‌ها نسبت به نقدینگی بازار حساس نباشند.

۲- کانال‌های حالت

 

کانال حالت چیست؟

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

بنابراین الزامات لازم برای برقراری یک کانال حالت برون زنجیره‌ای چیست؟

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

 به گفته استفان تویال (Stephan Thual)، مؤسس Slock.it، کانال‌های حالت می‌توانند در نقطه‌ای که توسط مشارکت‌کنندگان  از قبل تعیین شده است، بسته شوند. این می‌تواند به این ترتیب باشد:

  • به عنوان مثال بر اساس زمان سپری شده. این مشارکت‌کنندگان می‌توانند موافقت کنند که یک کانال حالت را باز کرده و بعد از ۲ ساعت آن را ببندند.
  • این می‌تواند بر اساس کل مبلغ تراکنش‌های انجام شده باشد. پس از آنکه ارزش تراکنش‌ها به ۱۰۰ دلار رسید، زنجیره بسته شود.

در تصویر بالا، ما یک اتومبیل داریم که به طور مستقیم با شارژر در ارتباط است و در مجموع، تراکنش‌هایی به ارزش ۳۹.۱۹ دلار را تکمیل می‌کند. در نهایت، پس از تکمیل مجموعه‌ای از تراکنش‌ها، تمامی تراکنش‌ها به بلاکچین افزوده می‌شوند. تصور کنید اگر قرار بود هر تراکنش به طور مجزا از طریق بلاکچین انجام شود، چقدر زمان صرف می‌شد.

در 0x تصمیم بر آن شده که یک پیاده‌سازی ترکیبی با عنوان “رله سفارش برون زنجیره‌ای با تسویه درون زنجیره‌ای” انجام شود. در این روش، کارایی کانال‌های حالت با نزدیک‌ترین تسویه ثبت سفارش برون زنجیره‌ای ترکیب می‌شود.

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

این روش هزینه‌های گاز را به میزان قابل‌توجهی برای بازارگردانان کاهش می‌دهد.

اما چگونه؟

بیشتر کارهایی که آن‌ها نیاز دارند انجام بدهند، به طور کامل خارج از زنجیره است. از آنجا هم که نیازی نیست آن‌ها مدت زیادی را با بلاکچین سر و کله بزنند، هزینه‌های گاز آن‌ها به طور محسوسی کاهش پیدا می‌کند.

 

بررسی فرآیند

نمودار بالا معماری کلی پروتکل 0x را نشان می‌دهد. بیایید ببینیم که این فرآیند چگونه کار می‌کند. فرض کنید بازارگردان می‌خواهد توکن A خود را با توکن B معامله کند.

  • بازارگردان در ابتدا با قرارداد هوشمند DEX موافقت می‌کند.
  • بازارگردان با تصریح نرخ تبادل مطلوب خود و زمان انقضا سفارش خود را برای مبادله توکن A با توکن B ایجاد و تمام آن را با کلیدهای خصوصی‌اش امضا می‌کند.
  • بازارگردان سفارش خود را پخش می‌کند.
  • پذیرنده، سفارش را قطع می‌کند و تصمیم می‌گیرد که آن را انتخاب کند یا خیر.
  • پذیرنده، سفارش بازارگردان را در DEX ثبت می‌کند که عمل تایید امضا را انجام می‌دهد.
  • انتقال بین بازارگردان و پذیرنده در یک نرخ تبادلی مشخص انجام می‌شود.

انواع سفارش‌ها

دو نوع سفارش در 0x وجود دارد:

  • نقطه‌به‌نقطه
  • پخشی

سفارش‌های نقطه‌به‌نقطه

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

سفارش‌های پخشی

نوع دوم سفارش‌ها در پروتکل 0x سفارش‌های پخشی است. این نوع سفارش‌ها، رایج‌ترین نوع در میان سفارش‌های اکسچنج هستند. برای اینکه هر اکسچنج بتواند کار کند، بایستی یک کتاب سفارش همگانی داشته باشد که در آن خریداران و فروشندگان بتوانند سفارش‌های خود را ارسال کنند. در پروتکل 0x، نهادهایی به نام رله وجود دارند که سیگنالینگ بین مشارکت‌کنندگان بازار را به واسطه میزبانی و انتظار یک کتاب سفارش حاوی پیام‌های عمومی تسهیل می‌کنند.

رله‌ها هیچ نوع معامله‌ای را اجرا نمی‌کنند و صرفاً دادوستد میان بازارگردان و پذیرنده را تسهیل می‌نمایند. می‌توانید آن را به عنوان گروهی از مشارکت‌کنندگان تصور کنید که هر یک از آن‌ها می‌تواند نقش یک اکسچنج را ایفا کند.

قالب پیام سفارش‌های پخشی دو تغییر عمده در مقایسه با پیام‌های نقطه‌به‌نقطه ساده دارد.

  • سفارش‌های پخشی آدرس پذیرنده را مشخص نمی‌کنند. این بدان معنی است که هر کسی که سفارش را قطع می‌کند، می‌تواند آن را تکمیل کند.
  • در ثانی، سفارش‌های پخشی شامل پارامترهای feeA (کارمزد بازارگردان)، feeB (کارمزد پذیرنده) و feeRecipient (آدرس رله) است. این پارامترها مجموع کارمزدهایی را که رله بعد از انجام تراکنش در آدرس خود دریافت می‌کند، محاسبه می‌کنند.

اکنون بیایید کل فرآیند را با هم مرور کنیم:

  • رله‌ها کارمزدها و آدرسی که برای جمع‌آوری کارمزدها استفاده می‌کنند را اعلام می‌کنند.
  • بازارگردان با تنظیم مقادیر پارامترهای feeA و feeB سفارش را ایجاد می‌کند. مقدار پارامتر feeRecipient به آدرس رله تنظیم می‌شود.
  • سپس بازارگردان سفارش امضا شده را به رله ارسال می‌کند.
  • رله این سفارش را اعتبارسنجی می‌کند. اگر رضایت‌بخش نباشد، سفارش رد می‌شود. اما اگر رضایت‌بخش باشد، رله سفارش را ثبت می‌کند.
  • در ادامه پذیرنده یک نسخه به‌روز شده از ثبت سفارش دریافت می‌کند که محتوی سفارش بازارگردان است.
  • در انتها پذیرنده سفارش بازارگردان را تکمیل می‌کند.

قرارداد هوشمند 0x

کل قرارداد هوشمند 0x شامل تقریباً ۱۰۰ خط کد است و به طور تقریبی برای تکمیل هر سفارش، ۹۰ هزار گاز هزینه برمی‌دارد. این قرارداد شامل چهار مؤلفه اصلی است:

  • احراز هویت امضا
  • تکمیل و تکمیل پاره‌ای
  • زمان انقضا
  • سفارشات لغو

احراز هویت امضا

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

  • هش را می‌گیرد و امضای آن را به عنوان آرگومان می‌گیرد.
  • کلید عمومی را که امضا را تولید کرده برمی‌گرداند.
  • اگر کلید عمومی بازگردانده شده برابر با آدرس بازارگردان باشد، امضا معتبر است.

تکمیل و تکمیل پاره‌ای

به منظور ممانعت از تکرار سفارش‌ها، قرارداد هوشمند برای هر سفارش تکمیل شده قبلی یک مرجع ذخیره می‌کند. این منابع به عنوان یک هش SHA 3 Keccak ذخیره می‌شوند. از آنجا که این هش برای هر ورودی خاص، یکتا است، تضمین می‌کند که سفارش‌های تکراری تکمیل نشوند.

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

 

زمان انقضا

هر سفارش در 0xProtocol یک تاریخ انقضا دارد که توسط بازارگردان در زمان امضای سفارش مشخص می‌شود. ارزش زمان انقضا پس از امضا غیرقابل تغییر است.

 

لغو سفارش

یک سفارش تکمیل نشده می‌تواند پیش از تاریخ انقضای آن توسط بازارگردان مرتبط از طریق تابع لغو، ملغی شود. لغو یک سفارش هزینه (گاز)‌ در پی دارد، بنابراین تابع لغو صرفاً به عنوان یک مکانیسم عقب‌گرد در نظر گرفته شده است. به طور معمول، انتظار می‌رود که بازارگردانان با تنظیم تاریخ انقضای سفارش خود برای تطابق با فرکانس مدنظرشان برای بارگذاری سفارش‌ها، از تراکنش‌های درون زنجیره‌ای اجتناب کنند.

اوراق سفید 0x یک مورد را خاطرنشان کرده که در آن تابع لغو ممکن است مسئله‌ساز شود:

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

 

حکمرانی در پروتکل 0x

یکی از بزرگ‌ترین مشکلات اتردلتا وقوع خرابی در هنگام ارتقا است. تقریباً امکان ارتقا بدون ایراد آسیب به مشارکت‌کنندگان غیرممکن است. 0x قصد دارد که از توکن‌های ZRX خود برای ارتقای ایمن استفاده کند. به علاوه، مشاهده اینکه حکمرانی چگونه از اهمیت بسزایی برای نهادی همچون 0x برخوردار است، برای یادگیری دقیق نحوه کار آن در سیستم، بسیار حیاتی است.

0x به عنوان خط لوله قراردادهای هوشمند در نظر گرفته می‌شود که در آن می‌توان هر قطعه لوله را بدون متوقف کردن سیستم، خارج کرد و ارتقا داد.

تیم 0x خواسته است که یک سیستم حکمرانی ایجاد کند که:

  • برای رأی گیری با توکن‌های ZRX گره خورده است.
  • مکانیک حکمرانی مناسبی داشته باشد.

برای ایجاد یک سیستم که در آن همه ذینفعان 0x به طور عادلانه و مساوی نمایندگی شوند، یک نقشه راه اجرایی ترسیم شده است.

برای این سیستم حکمرانی سه فاز اصلی وجود دارد:

  • رجیستری توکن مدیریت شده جامعه کاربری
  • قدرت وتوی جامعه کاربری
  • دموکراسی سیال

 

رجیستری توکن مدیریت شده توسط جامعه کاربری

0x از یک قرارداد رجیستری توکن برای ذخیره فهرستی از توکن‌های ERC20 با متادیتای مرتبط استفاده می‌کند. این رجیستری اساساً یک مرجع درون زنجیره‌ای رسمی است که ممکن است توسط مشارکت‌کنندگان برای تأیید آدرس‌های توکن و نرخ‌های تبادل پیش از انجام معامله استفاده شود.

این رجیستری در حال حاضر توسط تیم مرکزی 0x به طور متمرکز کنترل می‌شود؛‌ با این حال، آن‌ها قصد دارند که آن را به یک رجیستری درون زنجیره‌ای مدیریت‌شده توسط جامعه کاربری تبدیل کنند. این اولین فاز این سیستم حکمرانی است.

 

قدرت وتوی جامعه کاربری

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

 

دموکراسی سیال

فاز نهایی، دموکراسی سیال است.

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

  • مردم می‌توانند به سیاست‌های تیم مرکزی به طور مستقیم رأی بدهند.
  • مردم می‌توانند مسئولیت آرای خود را به یک نماینده واگذار کنند.
  • نمایندگان نیز به نوبه خود می‌توانند مسئولیت آرای خود را به نمایندگان دیگری محول کنند. به این ویژگی که هر نماینده می‌تواند نماینده خودش را منصوب کند، انتقال‌پذیری یا transitivity می‌گویند.
  • اگر رأی نماینده‌ای مطلوب فردی که او را به نمایندگی برگزیده نباشد، آن فرد می‌تواند حق رأی خود را پس گرفته و بنا بر مصالح خود رأی بدهد.

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

نتیجه‌گیری

چندان دور از انتظار نیست که پروتکل 0x بتواند آینده اکسچنج‌های ارزهای رمزپایه باشد. بخش فریبنده این پروژه انعطاف‌پذیری قابل توجه آن است. مدیران این پروژه قصد دارند به‌زودی نسخه دوم آن را عرضه کنند:

  • تمام استانداردهای توکنی پشتیبانی خواهد شد. در حال حاضر، 0x تنها از توکن‌های ERC20 پشتیبانی می‌کند. بنابراین شما با پیاده‌سازی v2 می‌توانید یک cryptokitty را با توکن ZRX مبادله کنید.
  • نوشتن قرارداد هوشمند خارجی متصل به 0x انحصاری خودتان برایتان ساده‌تر می‌شود. برای مثال، همین الان می‌توانید یک فهرست سفید از افرادی تهیه کنید که می‌توانند روی اکسچنج شما مبادله انجام دهند.
  • پیاده‌سازی EIP 712 باعث می‌شود که کاربران کمتر در معرض طرح‌های کلاه‌برداری و تقلب قرار بگیرند.
  • پشتیبانی از انواع امضا از کیف پول سخت‌افزاری Trezor
  • پشتیبانی از افزودن چندین سفارش در کنار هم

بی‌شک به نظاره نشستن چگونگی موفقیت این پروژه در آینده، بسیار جذاب خواهد بود.

 

اخبار مرتبط

خبرخوان: بنیاد Hydro قصد دارد 0x را فورک کند. این بنیاد از این رمزارز در اکسچنج غیرمتمرکز خود به نام DDEX استفاده می‌کند. وجود اشکالات متعدد در این رمزارز را دلیل این فورک دانسته‌اند وهیدرو آن را برای استفاده به عنوان ساختار اصلی اکسچنج نامناسب دانست. قرار است کل برنامه این رمزارز دوباره بازبینی شده و اشکالات آن برطرف شود. احتمال دارد که این اکسچنج به دنبال ایجاد انشعاب در این رمزارز باشد.