انتزاع حساب
کاربرانی که در تعامل با شبکۀ اتریوم هستند از استفاده میکنند. این تنها راه شروع یک تراکنش یا اجرای یک قرارداد هوشمند است. البته این امر نحوۀ تعامل کاربران با شبکۀ اتریوم را محدود میکند. برای مثال، انجام چندین تراکنش در یک آن توسط حسابهای EOA برای کاربران دشوار بوده و نیازمند آن است که کاربر همیشه به منظور تأمین گس یا همان کارمزد شبکه، موجودی ETH کافی در حسابش داشته باشد.
انتزاع حساب یک راهحل برای این دست از مشکلات بوده که به کاربران اجازه میدهد امنیت بیشتر و تجربۀ کاربری بهتری را به طور منعطف برای حسابهایشان برنامهریزی و وارد آن کنند. این هدف میتواند با ارتقای EOAها(opens in a new tab) تحقق یابد تا قابلیت کنترل توسط قراردادهای هوشمند را داشته باشند، یا با ارتقای قراردادهای هوشمند(opens in a new tab) تا بتوانند تراکنشها را انجام دهند. تحقق هر دو مورد ذکرشده در بالا نیازمند تغییراتی در پروتکل اتریوم است. همچنین مسیر سومی نیز وجود دارد که شامل اضافه نمودن یک سیستم تراکنشی جداگانه ثانویه(opens in a new tab) میشود که بهصورت موازی با پروتکل موجود اجرا میگردد. صرفنظر از مسیر انتخابی، در کل نتیجۀ این عمل دسترسی به شبکۀ اتریوم از طریق کیف پولهای قرارداد هوشمند است که یا به صورت بومی به عنوان بخشی از پروتکل موجود پشتیبانی میشوند یا از طریق اضافه نمودن یک شبکۀ تراکنشی جدید.
کیفپولهای قرارداد هوشمند مزایای بسیاری را برای کاربر فراهم میکنند، ازجمله:
- تعریف کردن قوانین امنیتی منعطف مختص خود
- بازیابی حسابتان در صورت گم کردن کلیدها
- اشتراکگذاری امنیت حسابتان با دستگاهها یا افراد قابل اعتماد
- پرداخت هزینۀ گس برای شخصی دیگر، یا درخواست از شخصی دیگر برای پرداخت هزینۀ گس شما
- انجام دستهجمعی چندین تراکنش به صورت همزمان (مثلاً تأیید و اجرای یک مبادله یا سواپ به صورت یکجا)
- ایجاد فرصتهای بیشتر برای توسعهدهندگان کیف پول یا برنامههای dapp به منظور ایجاد نوآوری در تجربههای کاربری
امروزه این مزایا به صورت بومی پشتیبانی نمیشوند به این دلیل که تنها حسابهای تحت مالکیت خارجی () میتوانند آغازگر تراکنشها باشند. EOAها به بیان ساده همان جفت کلیدهای عمومی-خصوصی هستند. عملکرد آنها به شرح زیر است:
- اگر کلید خصوصی دارید میتوانید هر کاری را در چارچوب قوانین ماشین مجازی اتریوم (EVM) انجام دهید
- اگر کلید خصوصی ندارید هیچ کاری نمیتوانید انجام دهید.
اگر کلیدهای خود را گم کنید قابل بازیابی نیستند و کلیدهای دزدیدهشده به سارقان امکان دسترسی آنی به کلیه وجوه داخل حساب را میدهند.
کیف پولهای قرارداد هوشمند راهحل مناسبی برای این قبیل مشکلات هستند، ولی امروزه برنامهنویسی آنها دشوار است چون در نهایت هر منطقی که پیادهسازی میکنند باید به مجموعهای از تراکنشهای EOA ترجمه شود تا بتواند توسط شبکه اتریوم پردازش شود. با انتزاع حساب، قراردادهای هوشمند میتوانند خودشان شروعکنندۀ تراکنشها باشند و در نتیجه هر منطقی که کاربران خواهان پیادهسازی آن هستند، میتواند در خود کیف پول قرارداد هوشمند کدگذاری شده و بر روی شبکۀ اتریوم اجرا گردد.
به طورکلی، انتزاع حساب پشتیبانی از کیف پولهای قرارداد هوشمند را ارتقا میبخشد و ساخت آنها را آسانتر و کاربریشان را ایمنتر میکند. در نهایت، با وجود انتزاع حساب، کاربران میتوانند بدون آگاهی از فناوری بهکاررفته در زیرساختهای شبکه یا توجه به آن، از تمامی مزایای موجود در شبکۀ اتریوم بهره ببرند.
فراتر از کلمات بازیابی
امنیت حسابهای امروزی با استفاده از کلیدهای خصوصی که از محاسبۀ کلمات بازیابی بدست میآیند تأمین میشود. هر فردی که به کلمات بازیابی دسترسی داشته باشد میتواند به آسانی کلید خصوصیِ محافظ حساب کاربری را بدست آورده و به تمامی داراییِ موجود در حساب دسترسی پیدا کند. اگر کلید خصوصی و کلمات بازیابی گم شوند، هرگز قابل بازیابی نخواهند بود و سرمایۀ تحت کنترل اینها برای همیشه فریز میشود. محافظت از این کلمات بازیابی برای هر فردی، حتی کاربران باتجربه، ناخوشایند و آزاردهنده است، و حملات فیشینگ به این کلمات جزء معمولترین روشهای کلاهبرداری از کاربران است.
انتزاع حساب این مشکل را با استفاده از قراردادهای هوشمند برای نگهداری از داراییها و اعطای مجوز تراکنشها حل خواهد کرد. سپس، این قراردادهای هوشمند را میتوان توسط یک منطق سفارشی با هدف ایمنسازی و مناسبسازی با نیاز کاربران از نو آراسته نمود. به طور کلی، شما همچنان برای کنترلِ دسترسی به حسابتان از کلیدهای خصوصی استفاده میکنید، اما با این تفاوت که این کار توسط نوعی شبکههای ایمنی که استفاده و مدیریت آنها را آسانتر و ایمنتر میکند انجام میگیرد.
برای مثال، کلیدهای پشتیبان میتوانند به کیفپول اضافه شوند در نتیجه اگر شما کلیدهای اصلی خود را گم کردید یا به طور اتفاقی در معرض دید سایرین قرار دادید، یک کلید جدید و ایمن میتواند با مجوز و تأیید کلیدهای پشتیبان جایگزین آن شود. شما ممکن است ایمنسازی هرکدام از کلیدها را به روشی دیگر انجام دهید یا آنها را بین چندین محافظ قابل اعتماد تقسیم کنید. این کار باعث میشود کنترل کامل وجوهتان برای سارق سختتر شود. به همین ترتیب، شما میتوانید قوانینی را به کیف پولتان اضافه کنید تا در صورت به خطر افتادن کلید اصلی، تأثیرات منفی ناشی از آن را کاهش دهد، برای مثال ممکن است اجازه دهید تراکنشهای کمارزش با تنها یک امضا تأیید شوند در حالی که تراکنشهایی با ارزش بالاتر نیاز به تأیید چندین امضاکننده داشته باشند. راههای دیگری نیز وجود دارد که کیف پولهای هوشمند میتوانند به شما در خنثی کردن سرقتها کمک کنند، برای مثال ایجاد یک لیست سفید میتواند برای مسدود نمودن هر تراکنش استفاده شود مگر اینکه آدرس تراکنش قابل اعتماد بوده و یا توسط چندین کلید از پیش تأییدشده، اعتبار آن ثابت گردد.
مثالهایی از منطق امنیت که میتواند بر روی کیف پول قرارداد هوشمند ساخته شود:
- مجوز چند امضایی: شما میتوانید اطلاعات امنیتی مجوز خود را بین چندین فرد یا دستگاه مورد اعتماد به اشتراک بگذارید. قراردادها را میتوان به گونهای پیکربندی کرد که برای تراکنشهایی با ارزشی بیشتر از حد تعیینشده، نیاز به تأیید نسبت معینی (مثلاً ۳ نفر از ۵ نفر) از طرفهای مورد اعتماد باشد. برای مثال، بسیاری از تراکنشهای دارای ارزش بالا ممکن است نیاز به تأیید از روی دستگاه موبایل و کیفپول سختافزاری یا حتی امضاهایی از حسابهای توزیعشده بین اعضای معتمد خانواده داشته باشند.
- حسابهای فریزشده: اگر دستگاه گم شد یا در معرض خطر قرار گرفت حساب موردنظر را میتوان از روی دستگاه تأییدشدۀ دیگری قفل کرد و بدین ترتیب از داراییهای کاربر محافظت نمود.
- بازیابی حساب: دستگاه را گم کرده یا گذرواژه را فراموش کردهاید؟ در پارادایم فعلی، این موضوع بدین معناست که دارایی شما برای همیشه میتواند فریز شود. با استفاده از کیف پول قرارداد هوشمند شما میتوانید لیست سفید حسابهایی را ایجاد کنید که این حسابها میتوانند دستگاههای جدیدی را تأیید و دسترسی به آنها را برایتان بازنشانی کنند.
- تعیین محدودیت تراکنش: آستانههای روزانهای برای مقدار ارزشی که میتواند در روز/هفته/ماه از حساب انتقال یابد مشخص کنید. به عبارتی، اگر یک مهاجم به نحوی به حساب شما دسترسی پیدا کرد، نمیتواند به یکباره تمامی دارایی شما را بیرون بکشد و شما این فرصت را داشته باشید تا دسترسی به حسابتان را فریز و آن را مجدداً بازنشانی کنید.
- ایجاد لیست سفید: با این کار، انجام تراکنشها را فقط به آدرسهای خاصی که میدانید امن است مجاز کنید. به عبارتی، حتی اگر کلید خصوصی دزدیده شود، مهاجم نتواند وجوهتان را به حسابهای مقصدی که خارج از لیست سفید هستند ارسال کند. این لیستهای سفید نیاز به چندین امضا برای ایجاد هرگونه تغییر دارند برای همین مهاجم یا هکر نمیتواند آدرسهای خودش را به این لیست اضافه کند مگر اینکه به چندین کلید پشتیبان شما دسترسی داشته باشد.
تجربه کاربری بهتر
انتزاع حساب به طور کلی تجربۀ کاربری بهتر و همچنین بهبود در امنیت شبکه را برای کاربرانش فراهم میکند زیرا پشتیبانی لازم را برای کیف پولهای قرارداد هوشمند در سطح پروتکل میافزاید. مهمترین دلیل برای ایجاد چنین پشتیبانی کاملی در سرتاسر شبکه این است که این ویژگی به توسعهدهندگان قراردادهای هوشمند، کیف پولها و برنامههای کاربردی، آزادی عمل بیشتری برای نوآوری در زمینه تجربه کاربری به روشهای جدید و خلاقانه ارائه میدهد. بعضی از پیشرفتهای مشهودی که همراه با انتزاع حساب بدست میآیند دستهبندی معاملات و تراکنشها برای حصول سرعت و کارایی است. برای مثال، یک مبادلۀ ساده فرآیندی است که باید با یک کلیک انجام گیرد، ولی امروزه قبل از اینکه مبادله اجرا شود، به منظور تأیید پرداخت و مصرف توکنها در این مبادله، به امضای چندین تراکنش نیاز است. انتزاع حساب این اصطکاک را با دستهبندی تراکنشها در یک مجموعه برطرف میکند. علاوهبراین، تراکنش دستهبندیشده میتواند به طور دقیق ارزش واقعی و درستی از توکنهایی را که برای هر معامله نیاز هست تأیید کرده و پس از تکمیل شدن معامله برای امنیت بیشتر، تمامی تأییدیهها را لغو کند.
مدیریت گس نیز با انتزاع حساب بهشدت بهبود مییابد. در واقع تنها برنامهها نیستند که میتوانند هزینۀ کارمزد گس کاربرانشان را بپردازند، بلکه کارمزد گس میتواند توسط به واحد توکنهایی غیر از اتریوم نیز پرداخت شود؛ این کار سبب میگردد که کاربران برای تأمین تراکنشها، لازم نباشد همیشه میزان معینی از موجودی اتریوم در حسابهایشان داشته باشند. این عمل از طریق مبادلۀ توکنهای کاربران با اتریوم در داخل یک قرارداد هوشمند و سپس استفاده از همان اتریوم برای پرداخت گس شبکه انجام میپذیرد.
تعامل یا تبادلهای اطلاعاتی قابل اعتماد میتوانند به طور بالقوهای در ایجاد تحول در رابطه با تجربههای کاربری مؤثر باشند، علیالخصوص برای برنامههایی مانند بازیها که تعداد زیادی از تراکنشهای کوچک ممکن است لازم باشد در یک بازه زمانی کوتاه تأیید شوند. تأیید هر تراکنش به صورت تکی میتواند تجربۀ بازی را از بین ببرد ولی تأیید آن به صورت دائمی هم ایمن نیست. کیف پول قرارداد هوشمند میتواند تراکنشهای مشخصی را برای یک مدتزمان ثابت، تا یک مقدار مشخص یا فقط برای آدرسی خاص تأیید کند.
همچنین جالب است بدانید که چگونه خریدها با کمک انتزاع حساب میتوانند تغییر کنند. امروزه هر تراکنش باید از طریق کیف پولی که از قبل با مقدار کافی و صحیح از توکن لازم تأمین شده است، تأیید و اجرا شود. با انتزاع حساب، این تجربه میتواند بیشتر شبیه به خریدهای آنلاین گردد به گونهای که کاربر میتواند سبد خرید را با آیتمهای مختلفی پر کرده و تنها با یکبار کلیک، تمامی آیتمها را یکجا با کل منطق لازم که توسط قرارداد، و نه کاربر، مدیریت میشود خریداری کند.
اینها فقط چند نمونه از چگونگی ارتقای تجربۀ کاربری توسط انتزاع حساب است، اما قطعاً کاربردهای انتزاع حساب بسیار بیشتر از حد تصور ماست. انتزاع حساب توسعهدهندگان را از محدودیتهای EOAهای امروزی رهایی میبخشد، و به آنها اجازه میدهد تا ویژگیها و جنبههای خوب و مفید Web2 را بدون قربانی کردن حضانت شخصی به Web3 بیاورند و به طور خلاقانهای تجربیات کاربری جدید و نوآورانهای را ابداع کنند.
انتزاع حساب چگونه اجرا خواهد شد؟
کیف پولهای قرارداد هوشمند امروزه وجود دارند، اما اجرای آنها چالشبرانگیز است زیرا EVM از آنها پشتیبانی نمیکند. در عوض، آنها بر بستهبندی کدهای نسبتاً پیچیده حول تراکنشهای استاندارد اتریوم متکی هستند. اتریوم میتواند با دادن اجازۀ شروع تراکنشها به قراردادهای هوشمند، این امر را تغییر دهد و منطق لازم را در قراردادهای هوشمند اتریوم به جای خارج از زنجیره انجام دهد. قرار دادن منطق در قراردادهای هوشمند غیرمتمرکزسازی اتریوم را نیز افزایش میدهد، زیرا نیاز به «راهانداز»هایی را که توسط توسعهدهندگان کیف پول برای ترجمه پیامهای امضاشده توسط کاربر به تراکنشهای معمولی اتریوم اجرا میشوند از بین میبرد.
پیشرفت فعلی
کیف پولهای قرارداد هوشمند درحال حاضر در دسترس هستند، ولی ارتقا و بهروزرسانیهای بیشتری لازم است تا آنها را تا حد ممکن غیرمتمرکز و بینیاز به مجوز کند. EIP-4337 یک پروپوزال کامل است که نیاز به اعمال هیچگونه تغییری بر روی پروتکل اتریوم نیست، بنابراین این امکان هست که این پروپوزال سریعتر اجرا گردد. با این حال، ارتقاهایی که پروتکل اتریوم را تغییر میدهند در حال حاضر در روند توسعۀ فعال نیستند، بنابراین اعمال تغییرات بر روی آنها ممکن است بسیار بیشتر طول بکشد. همچنین این امکان وجود دارد که انتزاع حسابی مناسب و کافی توسط EIP-4337 بدست آید و دیگر نیازی به اعمال تغییرات بر روی پروتکل نباشد.
بیشتر بخوانید
- erc4337.io(opens in a new tab)
- گفتگو پانل انتزاع حساب از Devcon Bogota(opens in a new tab)
- «چرا انتزاع حساب یک تغییردهنده بازی برای dappها است» از Devcon Bogota(opens in a new tab)
- «انتزاع حساب ELI5» از Devcon Bogota(opens in a new tab)
- یادداشتهای «راهی به انتزاع حساب» از ویتالیک(opens in a new tab)
- پست وبلاگ Vitalik با موضوع کیف پولهای بازیابی اجتماعی(opens in a new tab)
- یادداشتهای EIP-2938(opens in a new tab)
- اسناد EIP-2938(opens in a new tab)
- یادداشتهای EIP-4337(opens in a new tab)
- اسناد EIP-4337(opens in a new tab)
- اسناد EIP-2771(opens in a new tab)
- «مبانی انتزاع حساب» -- قسمت اول انتزاع حساب چیست(opens in a new tab)