آموزش مفاهیم پایه

پروتکل MimbleWimble چیست؟ از هری پاتر تا دنیای رمزارزها

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

Mimblewimble از کجا شروع شد؟

درست در زمانی که به نظر می‌رسد تمام شاخص‌های دنیای رمزارزها شکل‌گرفته؛ ناگهان ایده یا فناوری تازه‌ای ظهور کرده و همه را شگفت‌زده می‌کند. میمبل ویمبل یکی از همین اتفاقات و نوآوری‌های تأثیرگذار است. حتی شکل‌گیری میمبل ویمبل داستان جذابی دارد. 

جولای 2016 در فضای IRC که چت روم برنامه‌نویس‌های بیت کوین، کاربری با نام مستعار تام الویس ظاهر می‌شود. تام الویس نام اصلی ولدومورت در داستان هری پاتر است. این کاربر لینک سایتی را منتشر می‌کند که فقط از طریق شبکه تور آنیون (Tor Onion) قابل‌دسترس بود.

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

داستان پیدایش میمبل ویمبل تا حد زیادی مشابه داستان پیدایش ساتوشی ناکاموتو و بیت کوین BTC است. یک کاربر ناشناس، مستنداتی را از ناکجاآباد منتشر کرده و سپس ناپدید می‌شود. هر کس به‌محض خواندن این PDF به سرعت متوجه می‌شد که این محتوا یک مسیر جدی و نوآورانه در راستای استفاده از بلاکچین است.

هرچند اگر مستقیماً به سراغ این تک صفحه توضیحات میمبل ویمبل بروید با محتوایی پیچیده روبه‌رو خواهید شد که فهم و درک کامل آن بسیار دشوار است؛ اما در همان سال 2016 کنفرانسی با حضور اندرو پلسترا (Andrew Poelstra) ، محقق و متخصص شرکت بلاک استریم، برگزار شد که توضیحات پروژه میمبل ویمبل به صورت جامع و قابل فهم و خط به خط ارائه داده است.

اگر به مباحث مرتبط با حریم خصوصی علاقمندید مقاله پرایوسی کوین چیست و کوین جوین و کوین میکسینگ چیست؟ را از دست ندهید.

Mimblewimble چیست؟

از شکل‌گیری ایده Mimblewimble مدت‌ها می‌گذرد؛ اما نام و کاربرد آن در ارزهای دیجیتال موضوعی تازه است.

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

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

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

برای درک Mimblewimble، ابتدا باید مدل UTXO (خروجی خرج نشده تراکنش‌ها) بیت کوین را درک کنید. در پرداخت با پول کاغذی، تراکنش به شکل زیر انجام می‌شود:

اگر ژیلا به کیوان 1 دلار بپردازد:

ژیلا: -1 دلار

کیوان:+1 دلار 

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

برای درک بیشتر، به مثال زیر از یک تراکنش بیت کوین توجه کنید:

ژیلا می‌خواهد 1 واحد بیت کوین برای کیوان ارسال کند. اما شبکه به جای کسر یک بیت کوین از کیف پول ژیلا، چندین ورودی از تراکنش‌های قبلی بیت کوین را که برای ژیلا ارسال‌شده است؛ جمع می‌کند تا به اندازه 1 واحد بیت کوین شود. یعنی همان میزانی که ژیلا می‌خواهد به کیوان ارسال کند. بنابراین، تراکنش موردنظر چیزی شبیه شماتیک زیر می‌شود:

ژیلا: – (0.1 + 0.25 + 0.35 + 0.3) بیت کوین (BTC)

A + B + C + D همه ورودی‌هایی هستند که با یکدیگر جمع شده‌اند تا به 1 بیت کوین برسند. در نهایت کیوان 1 واحد بیت کوین دریافت خواهد کرد:

کیوان: + 1 BTC

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

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

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

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

به علاوه این بلاکچین قابلیت فشرده شدن دارد که یعنی شما می‌توانید تمام تراکنش‌های قبلی را دور بریزید!

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

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

ویژگی‌های میمبل ویمبل

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

تراکنش‌های محرمانه

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

در تراکنش محرمانه از طرح تعهد پدرسن (Pedersen Commitment scheme) استفاده می‌شود. در این طرح یک تراکنش به هیچ آدرسی نیاز ندارد. در عوض طرفین یک “عامل Blinding” را به اشتراک می‌گذارند. عامل Blinding، ورودی‌ها و خروجی‌های تراکنش را به همراه کلیدهای عمومی و خصوصی هر دو طرف، رمزگذاری می‌کند. این عامل بین دو طرف درگیر در تراکنش (فرستنده و گیرنده) به صورت مخفیانه به اشتراک گذاشته می‌شود. ازآنجایی‌که عامل Blinding، جایگزین آدرس‌ها می‌شود، تنها طرفین می‌دانند که تراکنش متعلق به آن‌هاست. این امر حریم خصوصی شبکه را تا حد زیادی بهبود می‌بخشد. 

طرح تعهد پدرسن (Pedersen Commitment scheme) به شکل زیر عمل می‌کند:

گره‌های کامل (Full nodes) مقادیر رمزگذاری شده را از ورودی و خروجی کسر می‌کنند و یک معادله ایجاد کرده که ثابت می‌کند؛ هیچ سکه‌ای بدون منشأ نیست. گره (Node) در هیچ‌یک از مراحل این فرایند، از مقدار واقعی تراکنش باخبر نمی‌شود.

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

5+5=10 — 5+5-10=0

مثال ساده فوق نشان می‌دهد که هیچ سکه جدیدی ایجاد نشده است.

5 (10) +5 (10) = 10 (10)

یک عدد مخفی (10) که در اینجا همان عامل Blinding است به این محاسبه اضافه می‌شود و در تمام متغیرها ضرب می‌شود. این مسئله مقادیر اصلی تراکنش را مخفی می‌کند.

50 + 50 = 100

در این معادله، هم عامل Blinding  که در معادله دوم عدد 10 بود و هم کل مقادیر، خصوصی باقی می‌مانند و درعین‌حال به دیگران اجازه می‌دهند که تائید کنند؛ هیچ سکه جدیدی در تراکنش ایجاد نشده است.

در Mimblewimble ، عامل Blinding ترکیبی از کلیدهای عمومی و خصوصی است. به‌این‌ترتیب، طرفین علاوه بر اثبات عدم ایجاد سکه‌ای جدید، ثابت می‌کنند که صاحب کلیدهای خود هستند.

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

فشرده‌سازی با ویژگی برش یا Cut-Through

در بحث مقیاس‌پذیری مهم‌ترین ویژگی پروتکل “میمبل ویمبل”، برش یا “Cut Through” است.

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

در اینجا یک مثال ساده وجود دارد:

ژیلا 1 BTC برای کیوان ارسال می‌کند. 

کیوان 1 BTC را برای رسام می‌فرستد.

این تراکنش‌ها در حالت عادی دارای دو ورودی و دو خروجی هستند:

زمانی که ژیلا یک بیت کوین برای کیوان ارسال می‌کند؛ خروجی تراکنش ژیلا، همان ورودی تراکنش کیوان است. درست به همین ترتیب زمانی که کیوان برای رسام یک بیت کوین می‌فرستد؛ خروجی تراکنش کیوان همان ورودی تراکنش رسام است. 

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

این کار عملاً سایز بلاکچین را فشرده می‌کند؛ بنابراین Mimblewimble از لحاظ  اشغال فضا برای ذخیره اطلاعات بسیار سبک است.

میمبل ویمبل در برابر بیت کوین یا در کنار آن؟

با مقایسه میمبل ویمبل و بیت کوین متوجه می‌شویم: 

در بلاکچین بیت کوین تمام اطلاعات مربوط به فرستنده و گیرنده و مقدار تراکنش مشخص است. به همین دلیل است که می‌توان گفت میمبل ویمبل در تحقق هدف حفظ “حریم خصوصی” موفق‌تر از بیت کوین عمل کرده است. 

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

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

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

سخن پایانی

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

نوشته های مشابه