سخت افزارمناسب برای ایجاد گواه اثبات دانش صفر
یکی از راهکارهای حفظ حریم خصوصی و محرمانگی کاربران در بلاک چین،روش اثبات با دانش صفر (Zero Knowledge Proof) است. در صورت بهره بردن از این روش اثبات، میتوانیم بخش یا حتی کل تراکنش خود را از چشم دیگران پنهان کرده و درستی انجا محاسبات را بدون افشای محتویات آن، اثبات کنیم. با وجود تمام این تفاسیر، ZKPها بسیار کند هستند و برای توسعه کاربرد آنها به تسریع پیشرفت سخت افزارها نیاز داریم.
قابلیتهای روش اثبات با دانش صفر
رمزنگاری دانش صفر یکی از قابل توجهترین نوآوریهای ۵۰ سال گذشته در زمینه علوم کامپیوتر بوده است. روشهای اثبات دانش صفر (ZKPs) امکانات منحصر به فردی را ارائه میکنند که موجب تبدیل شدن آنها به اجزای ضروری مقیاس پذیری بلاک چین و راهکارهای حفظ حریم خصوصی میشود. از این روش در رولآپهای ZK همچون استارک نت (StarkNet)، رولآپهای خصوصی دانش صفر مثل آزتک (Aztec) و زنجیرههای لایه ۱ مثل مینا (Mina)، فایل کوین (Filecoin) و آلیو (Aleo) به طور گسترده استفاده میشود.
با توجه به تعدد عملیات ریاضی گران قیمت مورد نیاز در این زمینه، تولید شیوههای اثبات دانش صفر بسیار کند و هزینهبر هستند. با این حال، با استفاده از سخت افزارهای تخصصی مانند آرایههای درگاه قابل برنامهریزی میدانی (FPGAs) و مدارهای مجتمع با کاربرد خاص (ASICs)، میتوان سرعت تولید این شیوههای اثبات را از ۱۰ تا ۱۰۰۰ برابر افزایش داد.
با توجه به اینکه کاربران به دنبال محاسبات واضح، کاربردی و خصوصی هستند، پیچیدگی عباراتی که توسط شیوههای اثبات دانش صفر به اثبات میرسند افزایش پیدا میکنند. این امر به کندتر شدن روند تولید اثبات منجر شده و الزام استفاده از سخت افزار تخصصی برای دست یافتن به شیوههای اثبات قابل تولید در بازه زمانی مشخص را پررنگتر میکند.
لازم است تا اپراتورهای سخت افزار نیز مانند ماینرهای بیت کوین در ازای کار خود پاداش دریافت کنند. در نهایت این امر، یک صنعت کامل استخراج و شیوه اثبات دانش صفر پدید خواهد آمد؛ سپس علاقهمندانی این مسیر را آغاز میکنند که به تولید این شیوههای اثبات با استفاده از CPUها، GPUها و در ادامه با FPGAهای خود میپردازند. در تضاد با بیت کوین، پیشبینی میکنیم که ممکن است زمان زیادی طول بکشد تا ASICها مورد پذیرش عمومی قرار بگیرند و این احتمال وجود دارد که حتی این اتفاق نیافتد.
اهمیت اثبات با دانش صفر
روشهای اثبات دانش صفر دارای دو کاربرد اصلی هستند؛ محاسبات قابل تایید برونسپاری شده و محاسبات خصوصی. در ادامه درباره هر کدام توضیحاتی ارائه میکنیم.
محاسبات قابل تایید برونسپاری شده
فرض کنید که لازم است تا محاسباتی را انجام دهید که یا بسیار هزینهبر هستند یا به دلیل محدودیتهای پلتفرمی که استفاده میکنید (مانند لپتاپ، رزبری پای یا حتی اتریوم)، غیرقابل انجام هستند.
به جای اجرای این محاسبات بر روی پلتفرم خود میتوانید آنها را بر روی سرویس شخص ثالثی انجام دهید که میتوانند به صورت ارزان قیمت و سریع نتیجه این محاسبات را به شما بازگردانند. از جمله این خدمات میتوان به AWS Lambda و یا یک ارائهدهنده خدمات اوراکل مثل چین لینک (Chainlink) اشاره کرد.
به صورت معمول، لازم است تا به صحیح اجرا شدن این محاسبات اعتماد کنید. این امر به ارائهدهنده چنین خدماتی این امکان را میدهد تا نتایج غیرمعتبر همراه با عواقب فاجعهبار محتملی را به شما ارائه کنند.
روشهای اثبات دانش صفر به یک ارائهدهنده خدمات شخص ثالث اجازه میدهند تا گواه اثبات محاسبات مجتمع را نیز به شما ارائه کنند که تضمینکننده دریافت نتیجه صحیح از این مجموعه خدمات خواهد بود.
محاسبات خصوصی
اگر بخواهیم محاسباتی را به انجام برسانیم که هزینهبر نبوده و ترجیح میدهیم که بخشهایی از آن را از چشم دیگران پنهان کنیم، آن وقت این ماجرا به چه صورتی پیش میرود؟ به عنوان مثال، فرض کنید که قصد داریم تا هزارمین عدد دنباله فیبوناچی را بدون فاش کردن آن عدد برای کسی ارسال کنیم یا فردی را متقاعد کنیم که پرداختی را بدون افشا کردن مبلغ و یا هویت پرداختکننده به انجام رساندهایم. ZPKها به شما اجازه میدهند تا به صورت انتخابی و دلخواه، کل و یا بخشهایی از یک عبارت محاسباتی را پنهان کنید.
هر دوی کاربردهایی که مطرح کردیم در صنعت کریپتو به شکل عوامل متعددی خود را نشان میدهند (البته کاربردهای بسیار بیشتری از چیزی که تا به اینجا مطرح کردیم در این عرصه وجود دارد):
افزایش مقیاسپذیری در لایه ۲: محاسبات قابل تاییدی که به واسطه روش اثبات با دانش صفر به انجام میرسند این امکان را برای بلاک چینهای لایه ۱ فراهم میکنند تا پردازش تراکنشها را به سیستمهایی با کارایی بالا (که تحت عنوان لایه ۲ شناخته میشوند) و به صورت آفچین یا بیرون زنجیرهای برونسپاری کنند. این امر به مقیاس پذیری بلاکچین بدون به خطر افتادن امنیت منجر میشود. به عنوان مثال، StarkWare در حال ساخت یک پلتفرم مقیاسپذیر قرارداد هوشمند تحت عنوان استارک نت است که از ماشین مجازی باه هدف خاصی بهره میبرد که کدهای سازگار با دانش صفر را اجرا میکند. آزتک نیز برنامههای لایه ۲ خود را برای اجرای پلتفرم به صورت خصوصی و بدون افشای اطلاعات تراکنشهای کاربران راهاندازی کرده است.
لایه ۱ های خصوصی: زنجیرههای لایه ۱ از قبیل آلیو، مینا و زی کش (Zcash) به تراکنشکنندگان اجازه میدهند تا با استفاده از ZKPها هویت ارسالکنندگان، دریافتکنندگان و یا مبالغ تراکنشها را مخفی کنند. این کار یا به شکل پیشفرض (Aleo) و یا در صورت درخواست و موافقت کاربر (Mina و Zcash) به انجام میرسد.
ذخیرهسازی غیرمتمرکز: فایل کوین با استفاده از روشهای اثبات دانش صفر (که بر روی GPU یا پردازنده گرافیکی اجرا میشوند) اثبات میکند که نودهای درون شبکه به صورت صحیح دادهها را ذخیرهسازی میکنند.
فشردهسازی بلاک چین: مینا و سلو (Celo) با استفاده از ZKPها، دادههای مورد نیاز برای همگامسازی با حالت نهایی زنجیره را فشردهسازی میکنند و آن را به یک گواه کوچک تبدیل میکنند.
با در نظر داشتن مواردی که در بخش قبل توضیح دادیم میتوان گفت که با افزایش میزان پذیرش عمومی رمزارزها، روشهای اثبات دانش صفر نیز بیش از پیش برای مرتفع کردن تقاضای در حال افزایش برای کارایی بالاتر و حریم خصوصی مورد نیاز خواهند بود. علاوه بر این، انواع جدیدی از برنامهها و پروتکلها نیز مورد تقاضای کاربران زیادی قرار گرفتهاند و وجود نیاز به ZKPها در این بستر نیز به صورت کامل حس میشود.
روشهای اثبات دانش صفر به صورت بنیادین بستر مورد نیاز برای رشد پلتفرمهای پرداخت و قراردادهای هوشمند خصوصی و مقیاسپذیر را فراهم میکنند اما سربارهای بزرگ و غیر پیش پا افتادهای را با خود به همراه دارند که به صورت تاریخی موجب عدم پذیرش عمومی آنها شده است.
چرا ZKPها کند هستند و چگونه میتوانیم سرعت آنها را افزایش دهیم؟
اثبات انجام محاسبات در ابتدا نیازمند تبدیل آن محاسبه از یک برنامه کلاسیک به یک فرمت سازگار با ZK است. این امر با بازنویسی دستی کد مورد نظر برای استفاده از یک کتابخانه سطح پایین مثل ArkWorks، و یا با استفاده از یک زبان مختص دامنه مثل Cairo و یا Circom که کد شما را به پیشنیاز مورد نیاز کامپایل میکند به انجام میرسد.
استفاده از عملیات گران قیمتتر و پیچیدهتر به افزایش میزان زمان تولید روش اثبات شما منجر میشود. جالب است بدانید که برخی از عملیات این عرصه در دسته اعمال سازگار با اثبات دانش صفر نبوده (مثل عملیات بیتی مورد استفاده در توابع SHA یا Keccak) و به طولانی شدن مدت زمان تولید گواه اثبات منجر میشوند. این در حالیست که ممکن است بتوان چنین عملیاتی را به صورت ارزان قیمتی در یک کامپیوتر کلاسیک به انجام برسانیم.
به محض اینکه محاسبات شما به حالت سازگار با روش اثبات با دانش صفر تبدیل شدند، ورودیهای مورد نظر خود را انتخاب میکنید و آن را به یک سیستم اثبات ارسال میکنید. سیستمهای اثبات زیادی وجود دارند و برخی از آنها به افتخار نویسندگان وایت پیپر خود نامگذاری شدهاند (مثل Groth16 و GM17) و نمونههایی نیز وجود دارند که نامهای خلاقانهتری به آنها اختصاص داده شده است (مثل PLONK، Spartan و STARK). چیزی که بین تمامی این سیستمها مشترک است بدین صورت است که محاسبات تعریف شده در فرمت سازگار با ZK را همراه با تعدادی ورودی دریافت میکنند و روش اثبات مورد نظر را در قالب خروجی به ما تحویل میدهند.
بسته به نوع سیستم اثبات، ممکن است روند تولید روش اثبات تغییر کند اما تنگناهایی که در این مسیر با آنها مواجه میشویم همواره یکی از دو مورد زیر خواهند بود:
۱. ضرب اعمال شده بر بردارهای بزرگ اعداد (به شکل میدان و یا اعضایی از گروه)، به ویژه ضربهای چنداسکالری مبتنی بر متغیر و یا مبتنی بر پایه ثابت (MSM).
۲. تبدیل فوریه سریع (Fast Fourier Transforms) و تبدیل فوریه معکوس (با این حال، تکنیکهایی برای سیستمهای بدون نیاز بهFFT نیز وجود دارند).
در سیستمهایی که هر دو بستر MSM و FFT وجود دارند، در ۷۰ درصد مواقع فرایند تولید روش اثبات با دانش صفر صرف MSM شده و مابقی به FFT اختصاص پیدا میکند.
هر دو رویکرد MSM و FFT کند هستند اما راههایی برای بهبود کارایی خود در اختیار دارند:
MSMها به صورت شرمآوری موازی (مفهومی در رایانش موازی که به فرایندهایی اطلاق میشود که به راحتی قابل موازیسازی بوده و میزان ثابت p در قانون آمدال برای آنها یک یا عددی نزدیک به آن است) بوده و میتوان به واسطه اجرای آنها بر روی رشتههای متعدد موجب افزایش سرعتشان شد. با این حال، حتی در صورت پردازش بر روی صدها هسته نیز، اگر هر یک از بردارهای عناصر به میزان ۲ به توان ۲۵ واحد طول داشته باشد (که شامل ۳۳ میلیون عنصر بوده و تخمین محافظهکارانهای برای برنامههایی مانند ZKEVM محسوب میشود)، ضرب مورد نظر ما باز هم مدت زمان زیادی را به خود اختصاص میدهد. این امر به معنای تکرار عملیات یکسان به صورت چندباره و اشغال کردن بیشتر حافظه موجود در دستگاه است. به صورت خلاصه، MSMها به میزان حافظه زیادی نیاز دارند و حتی در صورت اجرای موازی آنها به صورت عمیق، باز هم با سرعت پایینی اجرا میشوند.
FFTها به شدت به تلفیق متناوب دادهها در حین اجرای الگوریتم متکی هستند. همانطور که در DIZK نیز قابل مشاهده است، این امر به دشوار شدن افزایش سرعت تبدیل فوریه سریع با توزیع بار در یک خوشه محاسباتی منجر میشود. علاوه بر این، FFTها به پهنای باند زیادی در هنگام اجرا بر روی سخت افزار احتیاج دارند. منظور از تلفیق دادهها این است که نیاز داریم تا «به صورت تصادفی» عناصر را از یک مجموعه داده بیش از ۱۰۰ گیگابایتی در یک تراشه سخت افزاری با ۱۶ گیگابایت حافظه یا کمتر، بارگیری و تخلیه کنیم. با وجود اینکه انجام عملیات محاسباتی بر روی یک سخت افزار با سرعت بالایی به انجام میرسد، زمان مورد نیاز برای بارگیری و تخلیه دادهها از طریق سیم منجر به کاهش سرعت عملیات تا حد قابل توجهی میشود.
به صورت خلاصه:
MSMها دارای دسترسیهای قابل پیشبینی به حافظه هستند که امکان موازیسازی عملیات در سطح بالا را فراهم میکند. با این حال، هزینه این عملیات به دلیل نیاز به حجم خام محاسباتی و حافظه مورد نیاز، هنوز هم بسیار بالا است.
FFTها دارای دسترسیهای تصادفی به حافظه هستند که موجب عدم سازگاری آنها با سخت افزار میشود. علاوه بر این، اجرای تبدیل فوریه سریع در زیرساختهای توزیع شده بسیار دشوار است.
نویدبخشترین دستاوردی که در راستای رفع کردن مشکل کند بودن MSMها و FFTهای بزرگ مشاهده کردهایم PipeZK نام دارد. در مقاله مربوط به این دستاورد، نویسندگان روشی را برای کاهش هزینه MSMها با استفاده از الگوریتم Pippenger برای صرف نظر کردن از محاسبات تکراری توصیف کردهاند. همچنین روشی را برای «باز کردن» FFTها توصیف میکنند که طی آن میتوان این تبدیلها را بدون نیاز به تلفیق قابل توجه به انجام رساند. این امر به دلیل الگوهای دسترسی به حافظه که در حال حاضر قابل پیشبینی هستند، امکان بهبود سرعت سخت افزار را فراهم میکند.
با فرض بر اینکه روشهای معرفی شده در این بخش به رفع مشکلات مطرح شده در زمینه تولید روش اثبات با دانش صفر هر یک از الگوریتمها منجر میشوند، این سوال مطرح میشود که: بهترین سخت افزار برای استفاده از الگوریتمهای MSM و FFT بهینهسازی شده برای تسریع تولید ZKP چیست؟
اهمیت سخت افزار در تولید روش اثبات با دانش صفر
تکنیکهای تسریع تولید گواه اثبات دانش صفر که در بخشهای قبلی مطرح شدند، قابل پیادهسازی بر روی تکنولوژیهای به کار رفته در سخت افزارهای متعددی هستند: GPUها، FPGAها و یا ASICها. اما کدام یک از آنها بهترین انتخاب ما میتواند باشد؟
برای پاسخ دادن به این سوال، در ابتدا لازم است تا این موضوع را در نظر داشته باشیم که انواع روش اثبات با دانش صفر در ابتدای مسیر توسعه خود قرار دارند. هنوز هم استانداردسازی کمی در رابطه با مولفهها (مثل پهنای FFT و یا اندازه بیتی عناصر) یا انتخاب سیستم اثبات انجام پذیرفته است.
با توجه به این عوامل، دو ویژگی اصلی در رابطه با FPGAها وجود دارد که موجب ترجیح داده شدن آنها در زمینه دانش صفر نسبت به ASICها میشود:
«قابلیت نوشتن چندباره» در تقابل با «قابلیت نوشتن یکباره»:
منطق ASIC حول محور یک بار نوشتن محتوای کد است. اگر هر یک از منطقهای مورد استفاده در روش اثبات با دانش صفر در این بخش تغییر پیدا کند، لازم است تا دوباره و از مراحل ابتدایی کار خود را از سر بگیرید. این در حالیست که FPGAها قابلیت فلش شدن و بازنویسی شدن به صورت نامحدود و در کمتر از ۱ ثانیه را دارا هستند. این بدان معناست که FPGAها میتوانند سخت افزار واحدی را در زنجیرههای متعدد با روشهای اثبات ناسازگار (زیرا قصد استخراج MEV در سراسر زنجیره را دارند) مورد استفاده قرار دهند. تمام این فرایند در حالتی شکل میگیرد که FPGAها با سرعت بالایی در هنگام تغییر «متا (روند کلی حاکم بر حوزهای)» مربوط به ZK، خود را با شرایط جدید تطبیق میدهند.
زنجیره تامین سالمتر:
طراحی، فرایند ساخت و پیادهسازی ASIC معمولا از ۱۲ تا ۱۸ ماه و یا حتی بیشتر طول میکشد. در نقطه مقابل، زنجیرههای تامین FPGA سالم بوده و با ارائهدهندگان پیشگامی مانند Xilinx همراه هستند که امکان سفارشهای خرد انبوه از وبسایتها (بدون نیاز به هیچ نقطه ارتباطی) را در اختیار ما قرار میدهند که در طول ۱۶ هفته به دست ما میرسند. این امر به عملیات FPGA محور اجازه میدهد تا بازخورد مستحکمتری روی محصول خود داشته باشند و با خرید و استقرار FPGAهای بیشتر، عملیات خود را به مقیاس بزرگتری گسترش دهند.
علاوه بر این، انتظار داریم تا FPGAها به دلایل مشابهی که در فراگیری ماشین و چشمانداز کامپیوتر پیشرفت داشتهاند، نسبت به پردازندههای گرافیکی یا GPUها نیز عملکرد بهتری داشته باشند:
هزینه سخت افزار: یک FPGA درجه یک (از نظر پیشرو بودن نود پردازش، سرعت کلاک، بهرهوری انرژی و پهنای باند حافظه) حدود ۳ برابر ارزان قیمتتر از یک پردازنده گرافیکی درجه یک است. میزان تقاضای جهانی برای خرید GPUها نیز نقشی اساسی در تشدید این موضوع داشته است.
بازده انرژی: FPGAها میتوانند تا ۱۰ برابر کارایی بیشتری از نظر بازده انرژی نسبت به پردازندههای گرافیکی داشته باشند. دلیل اصلی این امر به این موضوع برمیگردد که GPUها نیازمند اتصال به یک دستگاه میزبان هستند، که معمولا انرژی زیادی را مصرف میکند.
با توجه به این موارد، انتظار داریم فعالان برنده در این بازار آن دسته از شرکتهایی باشند که به جای ASICها و GPUها بر روی FPGAها تمرکز دارند. اگر به هر نحوی، یک یا چند شبکه لایه ۱ یا لایه ۲ اثبات با دانش صفر با نوع خاصی از روش بکارگیری، بر بازار تسلط یابند، احتمال پیروزی ASICها بر FPGAها بیشتر خواهد شد. در صورت اتفاق افتادن چنین امری نیز باید بدانیم که چندین سال با وقوع این سناریو فاصله داریم.
دیدگاهتان را بنویسید