سری مقالات تخصصی ویتالیک بوترین؛ آشنایی با مفهوم آدرس مخفی (Stealth Address) در بلاک چین

آدرس مخفی در بلاک چین
پوریا دولت‌آبادی

زمان مطالعه :

12 دقیقه

در مقاله امروز یکی دیگر از مجموعه مقالات تخصصی ویتالیک بوترین، که در وبلاگ اختصاصی خود و در تاریخ ۲۰ ژانویه ۲۰۲۳ (۳۰ دی ۱۴۰۱) منتشر کرده، را ترجمه کرده‌ایم. در مطلب امروز ویتالیک از مفهوم آدرس مخفی (Stealth Address) در بلاک چین و کاربرد آن برای ما خواهد گفت.

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

  • سیستم آدرس مخفی چیست؟
  • آدرس مخفی در رمزنگاری خم بیضوی (Elliptic Curve Cryptography)
  • فی تراکنش در سیستم آدرس‌های مخفی
  • کلیدهای پرداخت و مشاهده
  • مقاومت در برابر حملات کوانتومی (نام مخوفی دارد امّا چندان پیچیده نیست!)
  • بازیابی کیف پول‌‌های L2

پیش گفتار

آیا اکوسیستم اتریوم به بهبود سیستم تراکنش‌ها کمک کرد؟ البته!
آیا می‌توان از آن به عنوان یکی از تاثیرگذارترین تکنولوژی‌ها یاد کرد؟ البته!
آیا اتریوم بی عیب و نقص بوده؟ البته که خیر!

آدرس مخفی چیست؟

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

این وضعیت قابل تغییر خواهد بود؟ می‌توان چنین مشکلاتی را برطرف کرد. این موضوع به طور گسترده‌ای مورد بحث قرار می‌گیرد.

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

آدرس مخفی چیست؟

آدرس مخفی یا Stealth Address نوعی آدرس یک بار مصرف بوده که کلید عمومی شما را مخفی می‌کند تا پس از انتقال دارایی، فردی قادر به ردیابی تراکنش‌های شما نباشد. جا دارد اشاره کنیم که این موضوع در تضاد با شفافیت (Transparency) بلاک چین نیست.

بلاک چین چیست؟ توضیح به زبان ساده

با ذکر یک مثال این موضوع را بهتر درک خواهیم کرد. فرض کنید «آلیس» قصد دارد تا مقداری ارز ETH یا یک توکن NFT را برای «باب» ارسال کند. در اینجا طبیعتا گیرنده و فرستنده نمی‌خواهند تمام کاربران شبکه اتریوم به جزئیات تراکنش‌ آن‌ها دسترسی داشته باشند.

می‌دانیم که نمی‌توان داده‌ای را از بلاک چین حذف نمود یا تغییر داد. بنابراین پنهان یا حذف کردن این تراکنش از تاریخچه شبکه امکان پذیر نیست.

شفافیت در بلاک چین

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

ENS وارد می‌شود!

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

در مقالات آتی به طور مفصل به مفهوم ENS می‌پردازیم، امّا علی الحساب به خاطر داشته باشید: Ethereum Name Service (ENS)، همانند DNS در اینترنت عمل می‌کند و آدرس‌های گیج کننده اتریوم که اعداد و حروف تصادفی را شامل می‌شوند، به عباراتی تبدیل می‌کنند که قابل یادآوری هستند.

تورنادو کش از جمله سیستم‌هایی بود که اطلاعات تراکنش‌های ERC-20 و برخی NFTها را مخفی می‌کرد. البته که این قابلیت تنها برای دارایی‌های پر استفاده مانند ETH کارایی دارد و در رابطه با توکن‌های کمتر شناخته شده، چندان کارآمد نخواهد بود.

انجام تراکنش‌هایی با آدرس مخفی

آدرس مخفی می‌تواند توسط آلیس یا باب ایجاد شود، امّا تنها گیرنده (در اینجا باب) امکان دسترسی و در ادامه کنترل آن را دارد.

کلیدهای پرداخت و آدرس‌های متا

باب یک کلید پرداخت (Spending Key) ایجاد می‌کند و با مخفی نگهداشتن آن، یک متا آدرس مخفی (Stealth Meta-Address) را به وجود خواهد آورد. سپس این آدرس را در اختیار آلیس گذاشته و یا در ENS ثبت می‌کند. از طرفی، آلیس هم می‌تواند محاسباتی را روی این متا آدرس انجام دهد تا آدرس شخصی باب را ایجاد کند.

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

همراه با انتقال، آلیس یک داده با رمزنگاری اضافه (کلید عمومی موقت یا Ephemeral Public Key) را در زنجیره منتشر می‌کند تا اثبات کند که این تراکنش به باب تعلق دارد.

به بیانی دیگر: باب می‌تواند تراکنش‌ها و آدرس‌هایی را ایجاد کند، امّا ضرورتی به دخالت وی در این پروسه نخواهد بود.

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

آدرس مخفی (Stealth Address) چگونه کار می‌کند؟

باب کلید پرداخت (m) و آدرس متای مخفی (M) خود را ایجاد کرده و M را به عنوان متا آدرس مخفیانه خود در ENS ثبت می‌کند.

در ENS، آدرس با نام Bob.Eth ثبت شده و به باب تعلق دارد. با فرض این که آلیس از این موضوع اطلاع دارد، آدرس متای مخفیانه خود (M) را در ENS جستجو می کند. سپس آلیس یک کلید عمومی موقتی ایجاد می‌کند تا به آدرس مخفی اختصاصی خود دسترسی پیدا کند.

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

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

الگوریتم‌های مورد نیاز

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

تمام این موضوعات، به دو نوع الگوریتم با هدفی مشترک نیاز دارند:

  • الگوریتمی که از آدرس خصوصی آلیس (کلید موقت) و آدرس عمومی باب (آدرس متا) استفاده می‌کند.
  • مکانیزمی که عکس این سیستم عمل کند: از آدرس عمومی آلیس (کلید عمومی موقتی) و آدرس خصوصی باب (کلید پرداخت) بهره می‌برد.

این امر به شیوه‌های مختلفی محقق می‌شود که سیستم مبادله کلیدهای Diffie-Hellman را می‌توان نمونه‌ای از این روش‌ها به حساب آورد که زمینه رمزنگاری مدرن را فراهم کرد.

آدرس کلید موقت و ادرس متا

امّا این راه حل به خودی خود کافی نیست! چرا که اگر برای ایجاد یک کلید خصوصی از رمزی یکسان استفاده کنیم، هم باب و هم آلیس به این آدرس دسترسی خواهند داشت. اگرچه که می‌توانیم وظیفه ارسال وجوه را به صورت کامل به باب واگذار کنیم امّا این کار هم از امنیت مناسبی برخوردار نیست و امری بیهوده محسوب می‌شود.

همین موضوعات سبب شده تا از مکانیزم دیگری تحت عنوان Key Blinding Mechanism استفاده کنیم:

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

تمامی این امور بدون ایجاد اتصال عمومی میان آدرس مخفی و آدرس متای باب انجام می‌شود.

آدرس مخفی در رمزنگاری خم بیضوی

آدرس‌های مخفی در تکنولوژی منحنی یا خم بیضوی (Elliptic Curve Cryptography) برای نخستین بار در سال ۲۰۱۴ توسط پیتر تاد (Peter Todd) مطرح شد. در آن زمان، ماهیت این سیستم با محوریت بلاک چین بیت کوین توضیح داده شد.

در ادامه، ویتالیک به بررسی این ساز و کار می‌پردازد. امّا برای درک بهتر آن، پیش زمینه‌ای نیاز داریم که در مقاله خم بیضوی چیست؟ به آن پرداخته‌ایم.

  • باب یک کلید m ایجاد کرده و مقدار M = G * m را محاسبه می‌کند. جایی که G یک نقطه مولد مورد توافق برای منحنی بیضوی بوده و آدرس متای مخفی هم یک کد رمزنگاری شده از M به حساب می‌آید.
  • از طرفی، آلیس هم کلید موقتی r را به وجود آورده و کلید R = G * r را در شبکه منتشر می‌کند.
  • آلیس و باب می‌توانند به ترتیب رمزهای: S = M * r و S = m * R را محاسبه کنند.
  • به طور کلی، هم در بیت کوین و هم در اتریوم (از جمله سیستم‌های ERC-4337 که به درستی طراحی شده‌اند)، آدرس یک هش است که کلید عمومی را در اختیار دارد و برای تأیید تراکنش‌ها مورد استفاده قرار می‌گیرد. هش چیست؟ کاربرد هش در بلاک چین بیت کوین

بنابراین اگر کلید عمومی را محاسبه کنید، امکان محاسبه آدرس هم وجود خواهد داشت. برای محاسبه کلید عمومی، آلیس یا باب می توانند از این فرمول استفاده کنند: P = M + G * hash (S)

تقابل EIPها و کوانتوم

همچنین باب نیز می‌تواند به تنهایی p = m + hash(S) را محاسبه کند. در واقع تکنولوژی Elliptic Curve Cryptography این پتانسیل را دارد تا تمامی نیازمندی‌های ما را برطرف کنند.

حتی یک EIP اختصاصی هم وجود دارد که امکان آدرس مخفی را به طور اختصاصی برای اتریوم فراهم می‌کند. این EIP از رویکردی که نام بردیم پشتیبانی می‌کند و علاوه بر آن، به کاربران این اجازه را می‌دهد تا ساز و کار مورد نظر خود را پیاده سازی کنند. کلیدهای پرداختی باب و رمزنگاری ایمن در برابر کوانتوم (Quantum-Resistant Cryptography)، از جمله این روش‌ها به شمار می‌آیند.

اکنون ممکن است با خودتان بگویید که اعمال ساز و کارهایی با امکان پرداخت مالی، امری بسیار ساده خواهد بود. این موضوع در تئوری آسان به نظر می‌رسد، امّا برای ثمربخشی طبیعتا به اجرا نیاز خواهد داشت. به کارگیری آن‌ها مستلزم جزئیاتی است که پیاده سازی‌شان را با چالش‌های بزرگی همراه می‌کند.

هزینه تراکنش‌های مخفی

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

در اینجا، موجودی آدرس موقت از ۰ واحد اتر (ETH) فراتر نمی‌رود! بنابراین امکان پرداخت هزینه تراکنش وجود نداشته و حتی آدرس‌های ERC-4337 هم گره گشا نیستند. چرا که تنها برای دارایی‌های قابل تعویض (Fungible) کاربرد دارند.

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

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

یک راه «به اصطلاح آسان»، مسیر شما را کوتاه‌تر خواهد کرد: به وسیله یک ZK-SNARK، مقداری دارایی‌ را منتقل کرده و گس فی را پرداخت کنید! متاسفانه این تلاش هم چندان مقرون به صرفه نیست. چرا که به صدها هزار واحد Gas نیاز دارد. آیا پرداخت چنین هزینه‌ای، آن هم برای تنها یک تراکنش، امری منطقی است؟ البته که خیر!

بکارگیری Aggregatorها

پس چه باید کرد؟ استفاده از برخی تجمیع کننده‌های تخصصی که با نام Searchers شناخته می‌شوند، اقدامی معقول و اقتصادی خواهد بود. این تجمیع‌کننده‌ها (Aggregator)، به کاربران این امکان را می‌دهند تا مجموعه‌ای از بلیط‌ها را خریداری کنند که تنها با یک بار پرداخت، برای تراکنش‌های مختلف قابل استفاده خواهند بود.

در مثال تراکنش NFT، فرد مورد نظر ما می‌تواند یکی از بلیط‌ها را به هریک از Aggregatorها ارائه دهد که با یک طرح Chaumian کدگذاری شده است. در سیستم‌های پرداخت متمرکز E-Cash که طی دهه‌های ۱۹۸۰ و ۱۹۹۰ معرفی شدند، از چنین سیستمی استفاده می‌شد.

با استفاده از این ساز و کار، هر جستجوگر (Searcher)، یکی از بلیط‌ها را می‌پذیرد و تراکنش را به طور پیوسته در دسته‌های خود (Bundle) قرار می‌دهد. این روند تا زمانی ادامه می‌یابد که تراکنش توسط یک بلاک تایید شود.

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

کلیدهای پرداخت و مشاهده

به مثال باب باز می‌گردیم. تصور کنید باب به جای در اختیار داشتن یک کلید پرداخت (Spending Key) که می‌تواند تمامی تراکنش‌های پرداخت را پردازش کند، یک کلید مشاهده (Viewing Key) را هم به صورت جداگانه در اختیار داشته باشد. کلید مشاهده، می‌تواند تمامی تراکنش‌ها را مشاهده و بررسی کند امّا توانایی تغییر یا استفاده از آن‌ها را ندارد.

کلیدهای مختلف در بلاک چین

در سیستم منحنی بیضوی، این مسئله با چند محاسبه ساده حل می‌شود:

  • آدرس متای باب (M)، اکنون به شکل (K, V) نمایان می‌شود که به رمزنگاری (G * k) و (G * v) کمک می‌کند. در این الگو، k به کلید پرداخت و v به کلید مشاهده اشاره دارد.
  • در حال حاضر، رمز ما S = V * r = v * R خواهد بود. در واقع r کلید خصوصی موقتی آلیس و R همان کلید عمومی موقتی است که آلیس آن را در بلاک چین منتشر می‌کند.
  • کلید عمومی مخصوصِ آدرس مخفی نیز، از تابع P = K + G * hash (S) و کلید خصوصی آن هم از این الگو p = k + hash(S) به دست می‌آید.

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

موارد به کار رفته، کاربرد گسترده‌ای دارند. مثلا اگر باب بخواهد POAPهایی را دریافت کند، می‌تواند Viewing Key را به کیف پول پذیرنده POAP خود واگذار کند تا با اسکن زنجیره، تمام POAPهای خود را مشاهده کند. بدون اینکه به این رابط قدرت بدهد. آن POAP ها را خرج کنید. کاربردهای بلاک چین

Proof Of Attendance Protocol (به اختصار POAP)، به نوعی از NFTهایی اطلاق می‌شوند که به شرکت کنندگانِ یک رویداد یا فعالیت خاص اعطا می‌شود. اساساً، این توکن‌ها در قالب نمادی برای قدردانی یا پاداش در اختیار افراد قرار می‌گیرند.

بررسی ساده‌تر تراکنش‌ها

به منظور تسهیل پروسه بررسی و اسکن تراکنش‌ها، می‌توان یک برچسب مشاهده (View Tag) را به هر کلید عمومی موقتی اضافه کرد. یکی از راه‌های انجام این کار در مکانیزم بالا این است که تگ view را یک بایت از رمز مشترک را به خود اختصاص دهد.

بررسی آدرس‌های مخفی

بدین ترتیب برای محاسبه هر کلید عمومی موقت، باب تنها نیاز دارد تا یک محاسبه خم بیضوی را انجام دهد. با چنین مکانیزمی، باب مجبور به انجام محاسبات پیچیده نخواهد بود. در واقع طی هر ۲۵۶ تراکنش، شاید نیاز باشد تا تنها یک تراکنش را محاسبه کند. نود (گره) چیست؟

ایمن در برابر سیستم‌های کوانتومی

طرحی که از آن گفتیم، به منحنی‌های بیضوی متکی است که در نوع خود قابلیت‌های فراوانی را داراست. با این حال، در برابر سیستم‌های کوانتومی آسیب پذیر هستند و به همین خاطر، می‌بایست به الگوریتم‌های مقاوم در برابر کوانتوم (quantum-resistant) روی آوریم. دو کاندید طبیعی برای این وجود دارد: پلتفرم‌هایی که بر پایه Isogenyها و Latticeها فعالیت می‌کنند.

تفاوت‌های خم بیضوی و خم بیضوی ایزوژنی

میان خم بیضوی که بالاتر به آن پرداختیم و ایزوژن‌های خم بیضوی (Curve Elliptic Isogenies) که اکنون درباره آن‌ گفتگو می‌کنیم، از نظر ساختار ریاضی تفاوت‌های متعددی وجود دارد. با این حال، ایزوژن‌ها می‌توانند به طرز هوشمندانه‌ای با حملات لگاریتمیِ کوانتومی مقابله کنند. در واقع سیستم‌هایی از ایزوژن‌ها استفاده می‌کنند که در برابر کامپیوترهای کوانتومی آسیب پذیر هستند.

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

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

با وجود برخی مشکلات، می‌توان از موارد زیر به عنوان مهم ترین مزایای این تکنولوژی یاد کرد:

  • حجم نسبتاً کم کلیدها
  • توانایی انتقال مستقیم روی دیگر شبکه‌های مبتنی بر Elliptic Curve
تکنولوژی Isogeny
نمونه‌ای از یک isogeny سه گانه

برخلاف ایزوژن‌ها، پلتفرم‌های مبتنی بر Lattice از ساختار رمزنگاری بسیار ساده تری بهره می‌برند. (دست کم با محاسبات ریاضی کمتری درگیر هستیم!).

ساز و کار Latticeها

لتیس‌ها توانایی انجام فعالیت‌های سنگین تری مانند ایجاد سیستم رمزنگاری یکسان (Homomorphic Cryptography) را دارا هستند. همچنین برخی آدرس‌های مخفی هم می‌توانند در لتیس‌ها تشکیل شوند که البته چالش‌هایی را به همراه دارد. به عنوان مثال برخلاف ایزوژن‌ها، کلیدهای ساختارهای مبتنی بر این سیستم از حجم بیشتری برخوردار هستند.

علاوه بر تکنولوژی‌های عنوان شده، گواه‌های Zero-Knowledge Proof که بر پایه هش‌های بلاک چین طراحی می‌شوند و کلید عمومی رمزنگاری شده نمونه‌هایی از راه حل‌ها هستند.

پروتکل‌های Zero-Knowledge از ابزاری به نام Witness به عنوان یک ورودی استفاده می‌کنند تا اعتبار تراکنش‌ها را بسنجد. به منظور تسریع روند پردازش، این پروتکل‌ها نیازی به بررسی تمام جزئیات تراکنش‌ها ندارند.

آدرس متای باب یک کلید رمزگذاری عمومی است که هش h = hash (x) بدان اضافه می‌شود. کلید پرداخت باب هم حاصل جمع رمزنگاری متناظر و متغیر x می‌باشد.

اختیارات کاربران

از آن طرف به منظور ایجاد یک آدرس مخفی، آلیس متغیری با عنوان c ایجاد کرده و به عنوان کلید عمومی موقت، آن را منتشر می‌کند تا قابلیت خواندن اطلاعات برای باب هم فراهم شود. در اینجا، آدرس اصلی یک حساب ERC-4337 است که تراکنش‌ها توسط کدهای آن تایید می‌شوند. به عبارتی، هر تراکنش ملزم به ارائه یک گواه Zero-Knowledge خواهد بود که مالکیت مقادیر c و x را اثبات می‌کند.

جالب است بدانید که با دانستن c و x، باب این اجازه را دارد تا آدرس و کد را مجددا تغییر دهد. این در حالی است که تغییر کلیدهای حساب‌ها در بیشتر زنجیره‌ها، امری است که به سختی ممکن می‌شود.

نحوه کار آدرس‌ها

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

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

اثبات کار و اثبات سهام چیست؟ این دو مقاله را از دست ندهید

آدرس مخفی در کیف پول‌های MultiSig

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

در عنوان این قسمت از مقاله، عبارت آدرس مخفی و کیف پول‌های چند امضایی را در کنار هم آوردیم. با این حال، متاسفانه باید بگوییم که این دو مفهوم چندان با یکدیگر سازگار نخواهند بود. امّا چرا باید به چنین چیزی اشاره کنیم؟ ۲۱ کیف پول برتر بیت کوین برای کاربران ایرانی‌!

کیف پول‌های Multisig

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

علاوه بر آدرس‌های مخفی، کیف پول‌های MultiSig با پروتکل‌های لایه ۲ (Layer 2) نیز چندان سازگار نیستند.

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

امّا چاره چیست؟

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

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

Guardianها در بلاک چین
تغییر کلید در زنجیره‌ها، اقدامی آسان نخواهد بود

اگر به دنبال راه حل‌های پیچیده هستید، بهره گیری از ZK-Proofها یکی از گزینه‌های روی میز خواهد بود. طرحی که در قسمت قبل زیر ذره بین بردیم را در نظر بگیرید. این طرح هم ساز و کار نسبتا مشابهی با آن خواهد داشت. با این تفاوت که:

به‌جای اینکه یک حساب به طور مستقیم k = hash (hash (x), c) را نگهداری کند، این حساب تابع k را به طور غیرمستقیم در زنجیره ذخیره می‌کند. خرج کردن از آن حساب مستلزم ارائه یک ZK-Proof خواهد بود که ضمن فعالیت روی زنجیره، اطلاعات تراکنش را به صورت عمومی منتشر نمی‌کند.

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

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

نتیجه گیری

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

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

مقالات ویتالیک بوترین

این گونه مشکلات در طولانی مدت قابل حل خواهند بود. امّا آیا آدرس‌های مخفی می‌توانند امنیت شبکه‌های بلاک چینی را بهبود ببخشند. این موضوع تا حد زیادی به ZK-Proofها وابسته هستند.

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

مقاله ویتالیک را در بلاگ اختصاصی ویتالیک بوترین خواندیم. آیا شما هم دیدگاهی مشابه خالق اتریوم دارید و معتقدید که استفاده بیشتر از آدرس‌های مخفی موجب بهبود کیفیت و امنیت تراکنش‌ها می‌شود؟ منتظر شنیدن نظرات شما هستیم!

0
اشتراک در
اطلاع از
guest
0 تمام دیدگاه‌ها
بازخورد (Feedback) های اینلاین
مشاهده همه دیدگاه ها

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

نظر بدهید

0

2

نظر مخاطبان (0)