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


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


معرفی ارز دیجیتال زی کش (Zcash)

معرفی ارز دیجیتال زی کش (Zcash)

ارز دیجیتال زی کش (Zcash)، در سال 2016، به‌دنبال تصمیم عده‌ای از دانشمندان مبتنی بر ارائه‌ی ارزی مشابه بیت کوین، پدید آمد. این دانشمندان، به رهبری «زوکو ویلکاکس اوهرن» (Zooko Wilcox-O'Hearn)، تصمیم گرفتند که با ارائه‌ی ZEC، ویژگی‌های بیت کوین را حفظ کرده و فواید جدیدی را به آن اضافه کنند. به‌این‌ترتیب، این ارز دیجیتال با ایجاد یک هاردفورک یا انشعاب در زنجیره بیت کوین پدید آمد. در واقع، بنیان‌گذاران این پروژه نیاز کاربران به یک سیستم مالی باز با ویژگی‌های محرمانگی را مشاهده کرده و زی کش را راه‌اندازی کردند. اگرچه درجات بالای محرمانگی و امنیت این پروژه باعث شده که ارز دیجیتال زی کش در موارد غیرقانونی زیادی مورد استفاده قرار بگیرد؛ اما موسسان این پروژه صرفاً به‌دنبال حفظ حریم خصوصی کاربران در حوزه‌ی امور مالی قانونی هستند.


این پروژه، در ابتدا، «زیرو کوین» (Zerocoin) نام داشت و پس از مدتی، به «زیرو کش» (Zerocash) تغییر نام داد. درحال‌حاضر، مجدداً نام این پروژه تغییر کرده است و امروزه، «زی کش» (Zcah) نامیده می‌شود.


خلاصه وایت پیپر زی کش (Zcash)

خلاصه وایت پیپر زی کش (Zcash)

بیت کوین (Bitcoin) اولین ارز دیجیتالی بود که به‌طور گسترده مورد استقبال قرار گرفت. بااینکه تراکنش‌های بیت کوین بین افرادی با نام‌های مستعار انجام می‌شوند؛ اما این شبکه نمی‌تواند حفظ حریم خصوصی کاربران را تضمین کند. در واقع، داده‌های مربوط به تراکنش‌های این شبکه در دفترکل توزیع‌شده ثبت می‌شوند و از این اطلاعات می‌توان نتایج زیادی را استنباط کرد. در همین راستا، زیرو کوین (Zerocoin) با جداسازی تراکنش‌ها از مبدأ پرداخت، مشکلات مربوط به حریم خصوصی را برطرف می‌کند؛ بااین‌حال، هنوز در پنهان‌سازی مقصد و مبلغ پرداخت دارای مشکل بوده و در این زمینه محدودیت‌هایی دارد.


ازاین‌رو، در این وایت پیپر، ما ارز دیجیتال زی کش (Zcash) یا زیروکش (Zerocash) را معرفی می‌کنیم که مبتنی بر دفترکل کامل (full-fledged ledger-based) با تضمین‌های قوی حفظ حریم خصوصی بنا شده است. این ارز دیجیتال حاصل پیشرفت‌های اخیر در زمینه‌ی «گواه اثبات دانش صفر غیرتعاملی» (zk-SNARKs) بوده و امکان انجام «تراکنش‌های ناشناس غیرمتمرکز» (decentralized anonymous payment schemes) یا DAP را فراهم می‌کند. یک طرح پرداخت مبتنی بر DAP، به کاربران اجازه می‌دهد که داده‌های مربوط به مبدأ، مقصد و مقدار تراکنش‌ها را پنهان کنند.


هر تراکنش زی کش کمتر از 1 کیلوبایت حجم دارد و تأیید آن کمتر از 6 میلی‌ثانیه طول می‌کشد. ازاین‌طریق، این ارز دیجیتال می‌تواند با بیت کوین رقابت کرده و از آن پیشی بگیرد.


مقدمه وایت پیپر زی کش (Zcash)

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


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


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


زیرو کوین (Zerocoin) ترکیبی غیرمتمرکز

زیرو کوین (Zerocoin)؛ ترکیبی غیرمتمرکز

در ابتدا، این پروژه زیرو کوین را برای حفظ محرمانگی پیشنهاد داد. این ارز دیجیتال، مانند بسیاری از پروتکل‌های پول نقد الکترونیکی از «اثبات‌های دانش صفر» (zero-knowledge proofs) برای جلوگیری از تجزیه‌وتحلیل نمودار تراکنش‌ها استفاده می‌کرد. بااین‌حال، بر خلاف پروتکل‌های پرداخت الکترونیکی قبلی، زیرو کوین برای اعتبارسنجی کوین‌ها به امضای دیجیتال متکی نبود و همچنین، برای جلوگیری از هزینه‌ی مضاعف، به بانک مرکزی نیاز نداشت. در عوض، این ارز دیجیتال، از تاریخچه داده‌های موجود در زنجیره بلوکی برای تأیید کوین‌ها استفاده می‌کرد.


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


به‌این‌ترتیب، زیرو کوین وابستگی زیادی به بیت کوین داشت و حتماً باید در این شبکه پردازش می‌شد؛ یعنی مکانیزم پرداخت مستقیمی برای زیرو کوین در نظر گرفته نشده بود. این مسئله باعث می‌شد که زیرو کوین فقط مبدأ تراکنش‌های بیت کوین را پنهان کند و سایر ابرداده‌های مربوط به تراکنش‌ها، در معرض دید قرار بگیرند.


راهحل زی کش (Zcash) برای محرمانگی

راه‌حل زی کش (Zcash) برای محرمانگی

برای حل مشکلات زیرو کوین، ارز دیجیتال زی کش (Zcash) پایه‌گذاری شده است. این ارز دیجیتال، به‌صورت زیر عمل می‌کند:


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

  • زی کش می‌تواند حجم تراکنش‌های مربوط به یک کوین را تا کمتر از 1 کیلوبایت کاهش دهد. زمان تأیید این تراکنش‌ها نیز کمتر از 6 میلی‌ثانیه است.

  • فرقی نمی‌کند که تراکنش‌ها با چه حجمی انجام شوند؛ بلکه همه‌ی آن‌ها ناشناس خواهند بود.

  • آزمایش‌ها نشان می‌دهند که زی کش می‌تواند به‌عنوان یک هاردفورک بیت کوین عمل کرده و تمام توانایی‌های این شبکه را نیز داشته باشد.

  • «گواه اثبات دانش صفر غیرتعاملی» (zk-SNARKs) به زی کش کمک می‌کند که ابعاد اعتبارسنجی و سرعت آن را تا حد زیادی کاهش دهد.

گواه اثبات دانش صفر غیرتعاملی (zk-SNARKs)

«گواه اثبات دانش صفر غیرتعاملی» (zk-SNARKs) روشی جدید و برآمده از «گواه اثبات صفر» (zero-knowledge proof) معمولی است. برای اینکه این روش را بهتر درک کنید، آن را با یک مثال ساده توضیح می‌دهیم. فرض کنید که آلیس دارای تعدادی بیت کوین است و می‌خواهد کوین‌های خود را به آدرسی دیگر ارسال کند. برای این کار، او باید تک‌تک کوین‌های خود را با استفاده از کلید خصوصی‌اش امضا کرده و سپس، تراکنش را انجام دهد.


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


سیستم‌های پرداخت ناشناس متمرکز

سیستم‌های پرداخت ناشناس متمرکز

پیش از اینکه به‌سراغ سیستم پرداخت ناشناس غیرمتمرکز برویم، باید ببینیم که در امور مالی متمرکز، چگونه پرداخت ناشناس امکان‌پذیر می‌شد. به‌خاطر همین، در این بخش از وایت پیپر زی کش (Zcash) به معرفی دو نمونه‌ی مهم در این زمینه می‌پردازیم که هر دو توسط یک بانک ارائه شده بودند.


پول نقد الکترونیکی ناشناس (Anonymous e-cash)

این طرح پرداخت ناشناس، یکی از اولین نمونه‌های سیستم محرمانه تراکنش مالی بود. اگر به مثال آلیس برگردیم، در پول نقد الکترونیکی ناشناس، آلیس برای ضرب کردن پول، باید یک شماره سریال مخفی تصادفی را انتخاب کند. سپس، بانک مبلغ مورد نظر را از حساب آلیس کم کرده و سریال مخفی تصادفی او را با یک امضای کور (blind signature)، تأیید می‌کند. حالا اگر آلیس بخواهید این مبلغ را به باب انتقال دهد، باید سریال خود را برای او افشا کرده و ثابت کند که بانک آن سریال را امضا کرده است. در طول انتقال، باب و بانک نمی‌توانند هویت آلیس را از سریال استخراج کنند. در این طرح، امکان خرج کردن دوباره‌ی سریال وجود ندارد؛ چون‌که بانک دیگر وجه ابتدایی را متعلق به آلیس نمی‌داند و او فقط سریال یکبارمصرف را در اختیار دارد.


پول نقد الکترونیکی غیرقابل جعل (Unforgeable e-cash)

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


حرکت به‌سوی یک سیستم پرداخت ناشناس غیرمتمرکز

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


ازآن‌جایی که زی کش از «گواه اثبات دانش صفر غیرتعاملی» (zk-SNARKs) استفاده می‌کند، اثبات دارایی‌ها با کمترین اطلاعات ممکن انجام می‌شود. ازاین‌رو، مقیاس‌پذیری زی کش پیشرفت چشمگیری خواهد داشت و نسبت به بیت کوین، تراکنش‌ها را با سرعت بسیار بالاتری پردازش می‌کند.


مقایسه zk-SNARKs با NIZKs

«گواه اثبات دانش صفر غیرتعاملی» (zk-SNARKs) به یک رمزنگاری آشنای اولیه مرتبط است که با نام «اثبات‌های دانش غیرتعاملی دانش» (NIZK) شناخته می‌شود. هر دو روش zk-SNARK و NIZK، به یک‌ بار تنظیم قابل اعتماد پارامترهای عمومی (کلیدهای اثبات و تأیید برای zk-SNARKها و یک رشته مرجع مشترک برای NIZKها) نیاز دارند. همچنین، هر دو تضمین‌های یکسانی از کامل بودن، اثبات دانش و دانش صفر ارائه می‌دهند. بااین‌حال، تفاوت آن‌ها به تضمین کارایی برمی‌گردد. در NIZK، طول اثبات و زمان تأیید به زبان سریالی که اثبات می‌شود، بستگی دارد.


در عوض، در zk-SNARK، طول اثبات فقط به پارامتر امنیتی بستگی داشته و زمان تأیید فقط به اندازه نمونه (و پارامتر امنیتی) وابسته است. بنابراین، zk-SNARKها را می‌توان به‌عنوان «NIZKهای مختصر» در نظر گرفت که دارای اثبات‌های کوتاه و زمان‌های تأیید سریع هستند. علاوه‌بر آن، ساختارهای شناخته‌شده zk-SNARK بر مفروضات قوی‌تری نسبت به NIZKها متکی هستند.


تعریف یک طرح پرداخت ناشناس غیرمتمرکز

تعریف یک طرح پرداخت ناشناس غیرمتمرکز

ما مفهوم یک طرح پرداخت ناشناس غیرمتمرکز (decentralized anonymous payment) یا DAP را معرفی می‌کنیم که مفهوم پول نقد الکترونیکی غیرمتمرکز را گسترش می‌دهد. سازوکار این طرح شامل موارد زیر است.


ساختار داده (Data structures)

در این بخش از وایت پیپر زی کش (Zcash) درباره ساختار داده‌های استفاده‌شده توسط طرح DAP صحبت می‌کنیم. بخش‌های مختلف این داده‌ها شامل موارد زیر هستند.


دفترکل بیس کوین (Basecoin ledger)

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


پارامترهای عمومی (Public parameters)

لیستی از پارامترهای عمومی در دسترس همه‌ی کاربران سیستم قرار دارد. این پارامترها توسط یک شخص مورد اعتماد در «شروع زمان» (start of time) تولید شده و توسط الگوریتم‌های سیستم مورد استفاده قرار می‌گیرند.


آدرس‌ها (Addresses)

هر کاربر حداقل یک جفت کلید آدرس را به‌صورتِ (addrpk،addrsk) تولید می‌کند. آدرس adrpk کلید عمومی است و به دیگران اجازه می‌دهد که به‌طور مستقیم به کاربر مالک این کلید، پرداخت کنند. آدرس adrsk نیز کلید مخفی بوده که برای دریافت و دسترسی به پرداخت‌های ارسال‌شده به adrpk مورد استفاده قرار می‌گیرد. همچنین، ممکن است که یک کاربر دارای چندین جفت کلید باشد.


کوین‌ها (Coins)

هر کوین یک «شی‌ء داده» (data object) است که شامل تعهد به دفترکل، مقدار، تراکنش ضرب‌شدن، سریال و آدرس می‌شود.


الگوریتم‌ها (Algorithms)

الگوریتم‌ها (Algorithms)

یک طرح DAP، چندین «الگوریتم زمان چند‌جمله‌ای» (polynomial-time algorithms) است. این الگوریتم‌ها شامل موارد زیر هستند.


راه‌اندازی سیستم (System setup)

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


ایجاد آدرس های پرداخت (Creating payment addresses)

الگوریتم CreateAddress یک جفت کلید آدرس جدید ایجاد می‌کند که مجدداً شامل ورودی‌ها و خروجی‌ها است. ورودی‌های این الگوریتم، خروجی‌های عمومی سریال هستند و جفت کلید آدرس (addrpk،addrsk) خروجی‌هایش را تشکیل می‌دهند. هر کاربر باید حداقل یک جفت کلید آدرس (addrpk،addrsk) را برای دریافت کوین تولید کند. کلید عمومی adrpk در دفترکل منتشر می‌شود و کلید مخفی adrsk برای بازخرید کوین‌های ارسال‌شده به adrpk استفاده خواهد شد. کاربران برای تولید این جفت‌ کلیدها به تعامل با هیچ شخص ثالثی نیاز ندارند.


ضرب کوین‌ها (Minting coins)

الگوریتم Mint یک کوین (با مقداری مشخص) و یک معامله‌ی ضرابخانه را تولید می‌کند. در این الگوریتم، ورودی‌ها شامل پارامترهای عمومی سریال، مقدار کوین و آدرس مقصد کلید عمومی adrpk هستند. خروجی‌ها هم شامل خود کوین مورد نظر و معامله ضرابخانه خواهند بود.


پورینگ کوین‌ها (Pouring coins)

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


تأیید تراکنشها (Verifying transactions)

تأیید تراکنش‌ها (Verifying transactions)

الگوریتم VerifyTransaction اعتبار یک تراکنش را بررسی می‌کند. در این الگوریتم، ورودی‌ها شامل پارامترهای عمومی سریال، یک معامله (ضرابخانه یا پورینگ) و وضعیت دفترکل فعلی هستند. خروجی‌ها نیز شامل مقدار «بیت» (bit) می‌شوند؛ درصورتی‌که تراکنش صحیح باشد، بیت برابر با 1 خواهد بود.


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


دریافت کوین‌ها (Receiving coins)

الگوریتم Receive دفتر‌کل را اسکن می‌کند و کوین‌های خرج‌نشده‌ای را که به یک آدرس کاربر خاص ارسال‌ شده‌اند، بازیابی خواهد کرد. در این الگوریتم، ورودی‌ها شامل جفت کلید آدرس گیرنده (addrpk،addrsk) و وضعیت فعلی دفترکل هستند. خروجی‌ها هم شامل مجموعه‌ای از کوین‌های دریافتی خرج‌نشده خواهند بود. زمانی که کاربری با جفت کلید آدرس (addrpk،addrsk)، بخواهد پرداخت‌های ارسال‌شده به adrpk را دریافت کند، از الگوریتم Receive برای اسکن دفترکل کمک می‌گیرد.


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


کامل بودن (Completeness)

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

امنیت (Security)

امنیت یک طرح DAP با سه ویژگی مشخص می شود که شامل موارد زیر هستند:


  • غیرقابل تشخیص بودن دفتر کل (ledger indistinguishability)

  • غیرقابل انعطاف بودن تراکنش (transaction non-malleability)

  • تعادل (balance)

در واقع، تنها زمانی یک طرح DAP می‌تواند ایمن باشند که بین این 3 ویژگی تعادل برقرار کند.


غیرقابل تشخیص بودن دفتر کل (ledger indistinguishability)

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


غیرقابل انعطاف بودن تراکنش (transaction non-malleability)

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


تعادل (balance)

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


ادغام زی کش (Zcash) با سایر ارزهای دیجیتال

ادغام زی کش (Zcash) با سایر ارزهای دیجیتال

زی کش یا زیرو کش را می‌توان با هر ارز دیجیتال مبتنی بر دفترکل توزیع‌شده ادغام کرد؛ حتی امکان ادغام آن با سیستم‌های بانکی وجود دارد. برای مثال، می‌توان زی کش را با بیت کوین ترکیب کرد؛ اما منظور ما ادغام دو ارز دیجیتال نیست، بلکه زی کش به پروتکل و زیرساخت‌های یک رمزارز اضافه خواهد شد.


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


  • جایگزین کردن زی کش و حذف کوین‌های بیت کوین

  • حفظ بیت کوین و ایجاد یک ارز همراه (زی کش) با ارزش برابر با بیت کوین

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


رویکردهای ادغام زی کش با بیت کوین

رویکردهای ادغام زی کش با بیت کوین

گفتیم که دو رویکرد برای ادغام زی کش (Zcash) با سایر رمزارزها وجود دارد. در این بخش از وایت پیپر زی کش، به این دو رویکرد می‌پردازیم.


جایگزینی ارز پایه (replacing the base currency)

اولین رویکرد به‌این‌صورت است که با تغییر ارز پایه، تمام تراکنش‌ها با استفاده از زی کش انجام شوند. ازاین‌طریق، رابط DAP در بیت کوین فراخوانی شده و تراکنش‌های زی کش در دفتر کل بیت کوین ثبت خواهند شد. این رویکرد برای پرداخت، ضرب کردن، تقسیم کوین‌ها و... کاربرد دارد و همه‌ی این موارد را در اختیار کاربران بیت کوین قرار می‌دهد؛ بااین‌حال، دارای چند نقص است:


  • همه‌ی تراکنش‌ها شامل هزینه مضاعفی برای zk-SNARK خواهند شد.

  • اگر بیت کوین از ویژگی‌های خاصی، مانند زبان برنامه‌نویسی، سود ببرد، این ویژگی‌ها از دست خواهند رفت.

  • امکان دسترسی به اطلاعات مربوط به کوین‌های خرج‌نشده وجود خواهد داشت.

ارز ترکیبی (hybrid currency)

رویکرد دوم استفاده از یک ارز موازی و ناشناس با عنوان زی کش است که ویژگی‌های زیر را دارد:


  • در کنار بیت کوین وجود دارد.

  • از همان دفترکل استفاده می‌کند.

  • می‌تواند آزادانه به بیت کوین تبدیل شود.

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


سخن پایانی


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