شاید هنگام اجرای تراکنشها توجهتان به گزینههای تایید (Approve) یا امضا (Sign) در مراحل آخر ارسال تراکنش جلب شده باشد. هر بار که تراکنشی از قبیل تبادل جفت ارزها در یک پلتفرم DeFi را آغاز میکنید، لازم است تا قرارداد هوشمند مربوط به آن فرایند را به امضا برسانید و متامسک نمونهای از کیف پولهایی است که اجازه دسترسی داشتن به محتوا و اطلاعات کیف پول شما را درخواست میکند. تایید تراکنش در متامسک به واسطه این قراردادها صورت میگیرد اما لازم است تا تعداد توکنها و سطح دسترسی که به سایتها میدهید را مورد بررسی دقیق قرار دهید. برای آشنایی با نحوه تایید تراکنش در متامسک با میهن بلاکچین همراه باشید.
تایید تراکنش در متامسک
یکی از دستاوردهای وب ۳ فراهم کردن امکان کنترل کامل روی حریم خصوصی و شیوه تعامل با پلتفرمهای این بستر است. بنابراین، لازم است تا بدانید هنگام تایید تراکنش در متامسک چه چیزهایی را امضا و تایید میکنید.
حتی اگر دانش شما در زمینه بلاک چینهایی مثل اتریوم به ارسال تراکنشهای ساده بین کیف پولها محدود میشود هم تراکنشها را تایید کرده و امضا میکنید. به بیان ساده این امر بدان معنی است که شما ارسال آن تراکنش به بلاکچین را تایید میکنید.
روند همسان و مشابهی نیز در زمینه تعامل داشتن با برنامههای غیرمتمرکز درون وب ۳ شکل میگیرد: رضایتنامههای زیادی در این بستر وجود دارند که انتظار تایید و اجازه از سوی شما را میکشند. اما واقعا چه چیزی در بطن تاییدیههای متامسک (MetaMask) نهفته است؟ برای پاسخدهی به این سوال لازم است تا آن را به زیرمجموعههای زیر تقسیم کنیم و در ابتدا برخی از جنبههای اصلی رمزنگاری را پوشش دهیم.
کلیدها و رمزنگاری: تایید تراکنش در متامسک به چه معناست؟
تمامی فعالیتهای شما در زمینه رمزارز مبتنی بر رمزنگاری کلید عمومی هستند. هنگام ساخت حساب کاربری هر یک از کیف پولها، کلید عمومی و خصوصی مختص آن کیف پول نیز تولید میشود. دری را تصور کنید که برای باز کردن آن لازم است تا ابتدا یک پیچ را باز کرده و سپس چفت را بچرخانید و وارد شوید و برای هر یک از این فرایندها یک کلید جداگانه دارید. در اختیار داشتن یک کلید تنها شما را به هیچ هدفی نمیرساند و برای تکمیل این فرایند به یک جفت کلید نیاز دارید.
با وجود اینکه این مثال بیش از اندازه سادهسازی شده است، تئوری مورد استفاده در چالش این در فرضی را به کیف پول رمزارز شما بسط میدهیم. هر دو کلید خصوصی و کلید عمومی شما برای به انجام رساندن تراکنشها مورد نیاز هستند. کلید خصوصی مورد نیاز شما است تا بتوانید نشان دهید که فرایند ارسال تراکنش را آغاز کردهاید و کلید عمومی نیز مورد نیاز کیف پول دریافتکننده است تا مبدا خود را تایید کند. در ادامه به شیوه کارکرد این فرایند میپردازیم:
۱- تصمیم میگیرید تا توکنهایی را برای مخاطب خود ارسال کنید.
۲- دانستن آدرس کیف پول مقصد یا فرد دریافتکننده در واقع کلید عمومی را در دست دارید که نسخه هش شده (رمزنگاری شده) از کلید خصوصی است. کلید عمومی در راستای رمزنگاری کردن تراکنش مورد نظر مورد استفاده قرار میگیرد.
۳- دریافتکننده تراکنش یا دارنده کلید خصوصی توکنها را دریافت میکند. با توجه به اینکه این کلیدها به یکدیگر تعلق دارند، تنها کلید خصوصی مرتبط با آن است که میتواند تراکنش ارسال شده توسط کلید عمومی را رمزگشایی کند.
تا به اینجا، شیوه تعامل جفت کلید عمومی و خصوصی با تراکنشهای بلاک چین زیرساخت را یاد گرفتیم. با وجود این تفاسیر، برای بسط دادن این دانش به تایید تراکنش در متامسک و امضاها، نقش این کلیدها جابهجا میکنیم: در عوض، فرستنده پیام ارسالی خود را به واسطه کلید خصوصی رمزنگاری میکند. از آنجا که سایرین به آسانی میتوانند کلید عمومی فرستنده (و آدرس کیف پول او) بیابند، میتوان با ترکیب این کلیدها پیام ارسال شده را رمزگشایی و هویت فرستنده را تایید کرد. تنها جفت متناسبی از کلیدها میتوانند محتوای پیام را فاش کنند و این بدان معناست که هیچ کس نمیتواند درباره منشا آن تردید کند.
درج نوعی از امضا بر روی هر یک از تراکنشها، ثبات را تضمین میکند به شکلی که هیچ کس به جز شما، یعنی صاحب کلید خصوصی، قادر به تقلید از عملکرد شما نخواهد بود.
مجوزهای برنامه غیرمتمرکز
یکی از دو نوع تایید تراکنش در متامسک که با آن مواجه هستید متصل کردن کیف پولتان به یک برنامه غیرمتمرکز برای اولین بار است. به عنوان مثال این برنامه غیرمتمرکز میتواند یک برنامه مبتنی بر امور مالی غیرمتمرکز (DeFi)، خدماتی مانند اتراسکن (Etherscan) و یا یک بازار توکن بیهمتا (NFT) باشد.
این فرایند روند صدور مجوز برای بازیابی آدرس کیف پول شما را شامل میشود و پیش نیازی برای تعامل داشتن با پلتفرم است. در ادامه متوجه میشوید که چرا به این روند «یک مجوز» و یا «سلسلهای از مجوزها» گفته میشود. اینها در حقیقت اسمهایی هستند که دقیقا شیوه عملکرد شما را توضیح میدهند. در برخی از موارد، برنامههای غیرمتمرکز از شما میخواهند تا به صورت خودکار مجوز را صادر کنید. این در حالی است که برخی دیگر از انواع این برنامهها از شما میخواهند تا روی دکمهای به عنوان «اتصال» یا «Connect» و عناوین مشابه کلیک کنید.
اجازه دادن با انجام فرایند توسط این برنامهها به نوعی مشابه شکل زیر است:
تاییدیه توکن
فارغ از اینکه یک فرد باتجربه در کریپتو هستید و یا تنها یک تازهکار محسوب میشوید، برای تعامل داشتن با هر یک از قراردادهای هوشمند اجراکننده برنامههای غیرمتمرکز (شامل دیفای، گیمینگ مبتنی بر بلاک چین، خرید توکن بیهمتا) لازم است تا اجازه دسترسی داشتن آن به توکنهای خود را صادر کنید.
چنین روند تحت عنوان تاییدیه توکن (Token Approval) شناخته میشود. چیزی که لازم است تا در این نقطه به انجام برسانید به این صورت است:
۱- اجازه دادن به قرارداد هوشمند برای دسترسی داشتن به موجودی توکنهایتان. به این مرحله در قالب «مرحله قرارداد هوشمند» نگاه کنید. متامسک در این نقطه به وضوح نشان میدهد که میزانی از قابلیت دسترسی را در اختیار برنامه مورد نظر قرار میدهید: ممکن است برخی از برنامههای غیرمتمرکز تعداد محدودی از توکنها را برای شما مشخص کنند و این درحالی است که برخی دیگر از آنها درخواست دسترسی به میزان نامحدودی از آنها را طلب میکنند.
۲- تایید اینکه قصد دارید تا تراکنش مورد پرسش را تکمیل کرده و به انجام برسانید. این مرحله تحت عنوان «مرحله بلاک چین» شناخته میشود. در این بخش به قرارداد هوشمند اجازه میدهید تا تراکنش مورد نظر را از جانب شما به شبکه ارسال کند.
فرض کنید میخواهید فرایند تعویض توکن را در یونیسواپ، بزرگترین صرافی غیرمتمرکز (DEX) از نظر حجم معاملات، به انجام برسانید. هنگامی که فرایند تبادل جفت توکن مورد نظرتان را برای اولین بار آغاز میکنید، از شما در خواست میشود تا قراردادهای هوشمند توکنهای erc20 مورد معامله خود را تایید کنید. (اگرچه برای خود اتر نیازی به تایید ندارد). این فرایند تنها برای اولین باری که این جفت توکن را معامله میکنید صورت میگیرد و این در حالی است که مرحله بعدی یا مرحله دوم که در بالا ذکر شد، اجرا میشود. این بدان معناست که پروتکلهای یونیسواپ معاملات شما را در صورت درخواست بر درخواست به انجام میرسانند.
این روند به این شکل صورت میگیرد:
- در ابتدا توسط پلتفرم از شما درخواست میشود تا برای توکن مورد نظر مجوز صادر کنید. تنها کافی است روی این درخواستنامه کلیک کنید و در این نقطه متامسک وارد عمل میشود.
- متامسک آدرس قرارداد توکن را به شما نشان میدهد و این به معنای تایید تقاضای این کیف پول برای قابلیت دسترسی داشتن به داراییها و انتقال منابع مالی شماست. برای اطمینان حاصل کردن از اینکه به قرارداد صحیحی اجازه دسترسی میدهید، خالی از لطف نیست که آدرس توکن را با آدرسی که در وبسایت برنامه غیرمتمرکز لیست شده است تطبیق دهید. چنین اطلاعاتی معمولا در داخل مرکز کمکرسانی (Help Center) این بستر به کاربران خود یافت میشود که مبتنی بر دانش و یا مبتنی بر اسناد هستند. حتی از این حق برخوردار هستید که مرز و میزان دسترسی داشتن این مجوز را نیز مشخص کنید و برای این کار کافیست تا بر روی «Edit Permission» کلیک کنید.
- این گزینه به شما اجازه میدهد تا میزان دسترسی مورد تایید خود را بررسی کنید. در این مورد خاص، یونیسواپ از شما میخواهد تا به میزان نامحدودی از stETH به میزان ۱.۱۶ به توان ۵۹ توکن دسترسی داشته باشد اما ما میتوانیم در صورت نیاز محدودیت مورد نظر خود را برای این مجوز مشخص کنیم. این محدودیت توسط بستر «Custom Spend Limit» اعمال میشود.
متامسک به بهرهگیری از این خصوصیت به شما اجازه میدهد تا کنترل تاییدیه توکن خود را در دست داشته باشید. هیچگاه لازم نیست تا به یک برنامه غیرمتمرکز بیش از حد مورد نظر خود اجازه دسترسی داده و یا ریسک نامطلوبی برای امتحان کردن یک پلتفرم جدید را متحمل شوید.
خود درخواست معامله زمانی مطرح میشود که جفت کلید شما وارد عمل شوند: تراکنش مورد نظر را با استفاده از کلید خصوصی خود امضا میکنید. این فرایند شبیه به امضا کردن یک برگه با استفاده از خودکار است با این تفاوت که رمزنگاری کلید عمومی شما خطر کلاهبرداری با استفاده از جعل هویت را از بین میبرد. در مثال ما، رضایتنامههای مورد بحث بدین معنا هستند که شما به یک قرارداد هوشمند یونیسواپ اجازه دادهاید تا توکن مورد نظر را از جانب شما به و از کیف پولتان انتقال دهد. هر بار که شما یک فرایند تبادل را آغاز میکنید، قرارداد هوشمند میتواند «پیام» ارسال شده شما را بررسی کند و این در حقیقت بخشی از دستورالعمل اجرای معاوضه است و تایید میکند که شما در قالب یک فرد مبتکر عمل (آغازکننده فرایند) تنها فردی هستید که به کلید خصوصی خود دسترسی دارید.
شیوه مدیریت کردن تاییدیهها و مجوزها
یکی از شاخصههای اصلی وب ۳ ارائه کردن قابلیت کنترل کامل روی حریم خصوصی و شیوه تعامل داشتن به پلتفرمهای مبتنی بر این بستر است. طراحی غیر حضانتی متامسک نیز تصدیقی بر این موضوع است. با این حال، اصول این بستر به خصوصیتهای گستردهتری بسط پیدا میکند. قابلیت بررسی و مدیریت کردن فرایند تایید تراکنش در متامسک و صدور مجوز برای یک برنامه غیرمتمرکز و قرارداد هوشمند نیز در بطن این بستر نهفته است.
بررسی سایتهای متصل در متامسک
متامسک دارای یک امکان داخلی برای بررسی کردن سایتهایی است که کیف پول شما به آنها متصل هستند. این قابلیت تحت عنوان «Connected Sites» یا سایتهای متصل نامیده میشود. خلاصه بگوییم که در این بخش میتوانید برخی از این سایتها را از لیست خود حذف کنید.
بررسی تاییدیه توکنها
اخیرا اتراسکن قابلیت چک کردن تاییدیه توکنها را پیادهسازی کرده است که به شما امکان بررسی و فراخوانی تاییدیه توکنها را میدهد.
به محض اینکه متامسک خود را متصل کنید و به اتراسکن اجازه دهید تا کیف پول شما را بررسی کند، لیستی از تاییدیه توکنها برایتان نمایش داده میشود. آیا این روند برای شما آشنا است؟ سپس میتوانید آزادانه ارتباط مداوم آنها را بررسی کرده و بر همین اساس نیز تاییدیهها را لغو کنید. علاوه بر این، میتوانید داراییهای خاص مرتبط، افرادی که تایید کردهاید (به عنوان مثال برنامه غیرمتمرکز مورد نظر که نامش در لیست نوشته شده است) و تعداد توکنهایی که دسترسی داشتن به آنها را تایید کردهاید را مشاهده کنید.
چندین نمونه جایگزین نیز شامل Approved.zone، Revoke و Token Allowance Checker (TAC) در این حیطه وجود دارد.
اجتناب از نابودی داراییها
مدیریت یک کیف پول غیر حضانتی مثل متامسک، یک شمشیر دو لبه محسوب میشود. همانطور که حفظ امنیت عبارت بازیابی سری بخشی از مسئولیت شماست و نیاز دارید تا در برابر کلاهبرداران هوشیار باشید، شما تنها کسی هستید که میتوانید مجوزهای برنامه غیرمتمرکز و تاییدیههای قرارداد هوشمند را مدیریت کنید. این فرایند را در کنار میزان آسان بودن ساخت یک توکن ERC-20 جدید در نظر بگیرید، در حال حاضر تقریبا ۴۸۵٫۰۰۰ توکن، هنگام نوشتن این مقاله وجود دارد و خطرهای زیادی نیز در این زمینه به صورت آشکار وجود دارند. با وجود اینکه تمامی این توکنها با هدف خوب و مثبت ساخته میشوند، هر یک از آنها نیز قابل تولید شدن توسط فعالان بدطینتی است که مقاصد شومی در سر میپرورانند.
تاییدیه توکنها در دسته حملات رایج کلاهبرداران محسوب میشوند و تنها کافیست تا Rekt.news و بخش Finematics این مقاله را برای لمس کردن سطح و مقیاس این حیطه بررسی کنید. همانطور که پیش از این نیز بیان کردیم، لازم است تا برنامههای غیرمتمرکز تعداد توکنی که قصد دسترسی به آنها را دارند را مطرح کنند. متامسک به عنوان یک نمونه، از نشان داده شدن این اطلاعات در صفحه تاییدیه و پیش از صدور مجوز تایید تراکنش در متامسک توسط شما اطمینان حاصل میکند. این امر به شما اجازه میدهد تا تصویر صحیحی از چیزی که در حال امضا کردن آن هستید داشته باشید.
درخواست دسترسی به توکنهای شما از جانب برنامههای غیرمتمرکز میتواند میزان مشخص و یا محدودی از توکنها را تا میزان نامحدودی از آنها را شامل شود و قرارداد هوشمند نیز میتواند به هر مقدار که میخواهد از کیف پول شما برداشت کند. از نظر بنیادین، دسترسی نامحدود به خودی خود یک خط قرمز و نشانه خطر محسوب نمیشود، بسیاری از پلتفرمها با سابقه درخشان از قبیل صرافیهای غیرمتمرکز نیز در صورتی که به تعداد دفعات زیادی از برنامه غیرمتمرکز مورد نظر استفاده کنید چنین اجازهای را برای آسانتر شدن روند کاریتان از شما درخواست میکنند. مشکل اصلی به DAppهایی برمیگردد که درخواست دسترسی داشتن به منابع نامحدودی از توکنهای شما با مقاصد سرقت آنها را در سر میپرورانند.
پیش از اینکه دسترسی داشتن قرارداد هوشمند به هر میزانی از توکنهای خود را صادر کنید، لازم است تا میزان ریسک محتمل را بررسی کنید. ممکن است عبارت مخفف «DYOR» را در منابع آنلاین دیده باشید: تحقیقات خود را انجام دهید، پیش از اینکه اجازه دسترسی را صادر کنید، عادت خوبیست که باید آن را فرابگیرید. به عنوان مثال:
- پروژه مورد نظر تا چه حدی شناخته شده است؟
- چه مدتی است که این پروژه وجود دارد؟
- آیا این پروژه کانال و جامعه فعالی در دیسکورد، تلگرام و یا توییتر دارد؟
- آیا توسعهدهندگان و یا صاحبان برنامه غیرمتمرکز مورد نظر از شفافیت مورد نظر برخوردار بوده و به صورت عمومی (مثلا از طریق دیسکورد و یا توییتر) در دسترس هستند؟
- آیا اخیرا سابقه تهدید امنیتی داشته است؟ میتوانید این مورد را در این لینک مشاهده کنید.
- آیا این پروژه مورد حسابرسی قرارداد هوشند شخص ثالث قرار گرفته است؟
- آدرس قرارداد مورد نظر را در مرورگر بلاک چک کنید. برخی از مرورگرها، مثل اتراسکن، دارای مکانیزم گزارشی مبتنی بر کاربر هستند که به واسطه آن میتوان آدرسهای مشکوک به کلابرداری (قراردادها و یا کیف پولها) را مشخص کرد. حتی اگر این آدرسها معین نشوند، فعالیتهای مشکوک مثل جریانهای بزرگ درونی و بیرونی پول نقد در بازههای زمانی کوتاه را بررسی کنید.
سخن پایانی
توکنها تنها در قالب داراییهایی نیستند که با افزایش قیمت موجب رضایت شما شوند و تاییدیه توکن نیز جنبهای رایج و ضروری در تعامل داشتن با وب ۳ است. کلید عمومی در راستای احراز اجازه شما هنگام تعامل داشتن با برنامههای غیرمتمرکز مورد استفاده قرار میگیرند. مجوزهای صادر شده برای DApp نیز به این برنامهها اجازه میدهند تا موجودی حساب کاربری شما را ببینند. تاییدیه توکن اجازه دادن به یک قرارداد هوشمند برای دسترسی داشتن و انتقال توکن مشخصی در کیف پول شما را شامل میشود. بنابراین، پیش از فرایند تایید تراکنش در متامسک و روندهای دنباله آن همواره سعی کنید تا میزان اعتبار یک برنامه غیرمتمرکز را بررسی کنید و پیش از تایید قرارداد هوشمند مربوطه از معتمد بودن آن اطمینان حاصل کنید.
آیا تا به امروز از محتوای قرارداد هوشمندی که در متامسک امضا میکردید اطلاع داشتید؟ تا چه حدی در مورد پروژههای مختلف این حیطه تحقیق میکنید؟