حساب انتزاعی ایجاد یک شبکه امنیتی قدرتمند در دنیای ارزهای دیجیتال
انتزاع حساب قابلیتی است که دنیای ارزهای دیجیتال و بلاک چین را به پارادایم جدیدی تبدیل می کند که در آن می توان یک حساب را بر اساس نیازهای شخصی طراحی کرد. وضعیت فعلی شبکه بلاک چین به گونه ای است که کاربران تنها با یک اشتباه کوچک می توانند تمام اطلاعات خود را از دست بدهند. انتزاع حساب به کاربران اجازه می دهد تا یک شبکه امنیتی قوی بسازند و در نتیجه احتمال از دست دادن اطلاعات امنیتی یا هک شدن را به حداقل برسانند.
به عنوان مثال، شبکه اتریوم دارای دو نوع حساب به نامهای مالکیت خارجی (EOA) و حسابهای قراردادی (CA) است. EOA ها حساب هایی هستند که به کاربران عادی تعلق دارند، در حالی که CA متعلق به پروتکل های DeFi و DApps هستند. کاربرانی که از حسابهای EOA استفاده میکنند برای اثبات مالکیت آن حسابها به کلیدهای خصوصی نیاز دارند که از طریق فرآیند انتزاع حساب انجام میشود. در گذشته به دلیل نبود این پروتکل امنیتی، پول و اطلاعات زیادی از حساب ها به سرقت رفته یا گم می شد.
سابقه استفاده انتزاعی حساب را مشاهده کنید
حساب انتزاعی در ابتدا به عنوان EIP-86 در سال 2017 برای پیاده سازی “انتزاع مبدأ معامله و امضا” پیشنهاد شد. اما منشأ اولیه این ایده به اوایل سال 2016 برمیگردد، زمانی که پیشنهاد شد به جای یک پروتکل داخلی، مکانیزمی که در آن ECDSA و طرح پیشفرض nonce به عنوان تنها مسیر استاندارد برای مسائل امنیتی حساب کاربری استفاده شود که در طولانی مدت اجرای تمام حساب های کاربری قراردادی خواهد بود. از این حساب های قراردادی می توان برای پرداخت هزینه گاز استفاده کرد و از طرف دیگر کاربران می توانند آزادانه یک مدل امنیتی برای خود تعریف کنند.
حساب انتزاعی چگونه کار می کند؟
حساب انتزاعی امضا کننده را از حساب جدا می کند و حساب های کاربری را به قراردادهای هوشمند تبدیل می کند. حساب های کاربری مکانیزم خاصی دارند که نحوه انجام تراکنش معتبر را تعیین می کند. با استفاده از حساب انتزاعی می توان هر هفته امضا کننده حساب را تنها با تغییر کد قرارداد هوشمند تغییر داد. همچنین، با استفاده از انتزاع حساب، میتوانیم عملکرد کیف پول دیجیتال خود را به گونهای تغییر دهیم که از بیش از یک کلید خصوصی برای مجاز کردن تراکنشها استفاده کند. کاربران به راحتی می توانند طرح امضای تراکنش ECDSA را به هر شکلی که می خواهند تغییر دهند.
چگونه کاربران می توانند مالکیت حساب کاربری خود را اثبات کنند؟
هر حساب کاربری در شبکه اتریوم با یک نهاد رمزنگاری به نام امضا کننده مرتبط است. در این مکانیزم دو نوع کلید امنیتی به نام های کلید خصوصی و کلید عمومی داریم. کلید خصوصی را می توان برای امضای پیام های دیجیتال استفاده کرد و کلید عمومی می تواند به هر کسی اجازه دهد تا تأیید کند که یک امضا توسط کلید خصوصی مربوطه امضا شده است.
تمام الگوریتم های ریاضی درگیر در رمزنگاری به کاربران تضمین می کنند که هیچ راهی برای به دست آوردن کلید خصوصی وجود نخواهد داشت. اگر پیام امضای کاربری با همان کلید خصوصی به دست کاربر دیگری بیفتد، تنها کاربر اول میتواند امضای دیجیتال حساب را داشته باشد. از سوی دیگر، روش های مختلفی برای تولید امضای رمزنگاری بر اساس جفت کلید وجود دارد. به عنوان مثال، اتریوم از یک طرح امضای ویژه به نام ECDSA روی یک منحنی بیضی خاص به نام Secp256k1 استفاده می کند.
روش های استفاده از حساب انتزاعی از نظر بنیانگذاران اتریوم
روش های مختلفی برای استفاده از حساب انتزاعی وجود دارد که توسط Vitalik Buterin، یکی از بنیانگذاران اتریوم توضیح داده شده است. به عنوان مثال، انتزاع کامل تنبل تنها یک نوع حساب قرارداد است. در این روش یک نوع تراکنش وجود دارد که دارای فیلدهایی مانند gas، addr، data است. تراکنش در این روش شامل پیامی به نام msg.sender است. در این روش، از کاربران انتظار می رود که وجوه خود را در حساب های قراردادی ذخیره کنند، جایی که کد قرارداد داده ارائه شده به صورت nonce، signature، gasprice، value، رمزگذاری داده تفسیر می شود.
از مزایای این روش می توان به ساده سازی اجرای پروتکل اشاره کرد. این روش به کدهای نسبتاً پیچیده در هر حساب کاربری برای تأیید غیر مستقیم، امضا و همچنین پرداخت گاز نیاز دارد. از سوی دیگر، انتزاع کامل تنبل، به کدهای پیچیده در ماینر نیاز دارد تا مشخص شود کدام تراکنش ها برای پرداخت گاز تضمین شده است. در نهایت، این روش به شما این امکان را می دهد که چندین بار با هش یکسان با حساب های ایجاد شده به روش غیر استاندارد تراکنش انجام دهید.
حذف غیر انتزاعی
همان روش قبلی است. تنها تفاوت این است که تراکنش به یک فیلد nonce نیاز دارد. در روش غیر انتزاعی حذف یک قانون مهم وجود دارد. و آن این است که nonce تراکنش باید با nonce حساب کاربری یکی باشد. همچنین، می توان با هر تراکنش موفق، nonce را افزایش داد. این روش امکان ظاهر شدن یک تراکنش در چندین نقطه را از بین می برد.
کد BREAKPOINT اضافه کنید
با روش افزودن کد REFRESH POINT، فقط باید یک کد REFRESH POINT به تراکنش اضافه کنید. اگر تراکنش پس از یک نقطه شکست شروع شود، کد BREAKPOINT این قابلیت را دارد که دوباره به نقطه شکست بازگردد. این روش تشخیص اینکه آیا تراکنش پرداخت شده است یا خیر، برای ماینر بسیار آسان تر می کند.
چرا حساب انتزاعی در شبکه اتریوم بسیار مهم است؟
حساب انتزاعی به کیف پول های چند منظوره اجازه می دهد تا منطق پیچیده تری را پیاده سازی کنند. برای مثال می توان به تایید امضا، پرداخت گاز و همچنین حفاظت از پروتکل اصلی و انتقال آن به EVM اشاره کرد. ما با ذکر یک مثال روشن می کنیم تا ببینیم چگونه انتزاع حساب می تواند کل وضعیت را تغییر دهد.
فرض کنید تمام توکن های خود را در یک کیف پول جدید جمع کرده اید. در این بین، ممکن است به طور تصادفی تمام اتریوم خود را به کیف پول جدید ارسال کرده باشید. در این شرایط، بدون اتریوم برای پرداخت هزینه گاز، نمیتوانید تراکنش موفقی داشته باشید و همچنین نمیتوانید توکنهای باقیمانده را انتقال دهید.
خوشبختانه، در این شرایط، می توانید به سادگی مقداری اتریوم را به آدرس قبلی برگردانید. با این حال، در برخی شرایط ممکن است نتوانیم این خطا را به راحتی برطرف کنیم. در چنین شرایطی، حساب انتزاعی میتواند این امکان را برای شما فراهم کند که به راحتی با استفاده از توکنهای باقیمانده، مانند برخی کیف پولهای قرارداد هوشمند، هزینه گاز را پرداخت کنید.
حساب انتزاعی به شما امکانات جدیدی می دهد
بسیاری از شبکهها یا برنامههایی که از شبکه اتریوم طراحی و ساخته شدهاند، برای ارسال تراکنشهای کاربر به بلاک چین در ازای پرداخت هزینه، نیاز به رله دارند. با این حال، یک کیف پول پیچیده یا حساب قراردادی این پتانسیل را دارد که به راحتی رله ها را منسوخ کند.
به عنوان مثال تورنادو کش را در نظر بگیرید. به جای استفاده از رله، کاربری که وجوه خود را با یک حساب انتزاعی ترکیب میکند، میتواند با استفاده از کد عملیاتی به نام PAYGAS، هزینه برداشت خود را پرداخت کند. هنگامی که شبکه اتریوم به عنوان رله شما عمل می کند، دیگر نیازی به رله نداریم. با وجود قبض انتزاعی، نیازی به پرداخت هزینه اضافی بر اساس درصد مازاد گاز نداریم.
کاربردهای حساب انتزاعی چیست؟
حساب انتزاعی در مبحث کیف پول دیجیتال، کیف پول و قرارداد EOA و به طور کلی کیف پول EOA کاربرد وسیعی دارد. کیف پول های قراردادی کیف پول هایی هستند که با استفاده از قراردادهای هوشمند به صورت زنجیره ای مستقر می شوند. در صورت وجود هرگونه خطا در کدگذاری قراردادهای هوشمند، کیف پول قراردادها در معرض خطر امنیتی قرار خواهند گرفت. این خطرات را می توان با تست های امنیتی و بررسی های انجام شده توسط ارائه دهنده کیف پول به حداقل رساند.
با این حال، در کیف پول های EOA، تهدید امنیتی مستقیماً متوجه کاربر کیف پول دیجیتال است. پیاده سازی حساب انتزاعی به EOA ها اجازه می دهد تا به عنوان کیف پول قرارداد هوشمند عمل کنند. از جمله کیف پول های قرارداد هوشمند می توان به Argent، Dapper، Gnosis Safe و Monolith اشاره کرد.
تراکنش متا در کیف پول های EOA
یک کاربر بلاک چین اتریوم به یک کیف پول EOA با Gas نیاز دارد تا با آنها ارتباط برقرار کند یا به ارائهدهنده کیف پول اعتماد کند تا با استفاده از رلههای ارائهدهنده یا شبکههای رله شخص ثالث، تراکنشهای متا را تسهیل کند. در روش اول که مبتنی بر اتریوم است، معمولاً پس از KYC در صرافی های متمرکز خریداری می شود.
روش دوم همچنین به دنبال به حداقل رساندن اصطکاک UX با انتقال مسئولیت کاربر به رله ها با هزینه ای است که توسط ارائه دهنده کیف پول داخلی یا خارج از زنجیره پرداخت می شود. تراکنش متا کاربر خارج از زنجیره، تراکنشی است که حاوی پیامی به همراه برخی دادهها است که توسط شخصی که میخواهد تراکنش را اجرا کند امضا میشود.
تصحیح عیب معماری های مبتنی بر رله با استفاده از محاسبات انتزاعی
ما می توانیم معماری های مبتنی بر رله را به عنوان واسطه های متمرکز با ظرفیت سرکوب تراکنش ها در نظر بگیریم. این رله ها هم از نظر فنی و هم از نظر اقتصادی ناکارآمد هستند. حساب انتزاعی به کیفهایی که سازوکارشان مبتنی بر قراردادهای هوشمند است، اجازه میدهد تا تراکنشهای متا را بدون گاز از سوی کاربران بپذیرند و به راحتی هزینههای گاز خود را بدون اتکا به ضمانتهای شبکه رله پرداخت کنند، UX چنین پلتفرمهایی را بهطور چشمگیری افزایش میدهد.
تراکنش های حمایت شده
به معاملاتی که شرکت یا هر یک از شرکت های تابعه آن مربوط می شود، معاملات حمایت شده گفته می شود. ما به برخی از موارد استفاده برای این تراکنش ها نگاه خواهیم کرد. تراکنشهای حمایتشده، که از طریق یک حساب انتزاعی ایجاد میشوند، به توسعهدهندگان اپلیکیشن اجازه میدهند تا از طرف کاربران پرداختها را انجام دهند. این ویژگی همچنین به کاربران امکان پرداخت در توکن های ERC20 را می دهد. همچنین از قراردادی استفاده می کند که به عنوان مجموعه ERC20 و پلت فرم پرداخت اتریوم عمل می کند.
رابطه بین سرویس پرداخت و حساب انتزاعی
سرویس پرداخت تأیید میکند که امضای حامی در دادههای سرپرست گنجانده شده است، که نشان میدهد حامی مایل به پرداخت برای گزینههای کاربر است. در صورت معتبر بودن امضا، شما به عنوان پرداخت کننده پذیرفته می شوید و هزینه های مربوط به گزینه های کاربر از سهم اسپانسر کسر می شود. از طرف دیگر، سرپرست بررسی می کند که آیا کیف پول فرستنده موجودی ERC20 کافی برای پرداخت هزینه UserOperation دارد یا خیر.
رفع مشکلات حریم خصوصی قرارداد تورنادو نقدی
سیاست حفظ حریم خصوصی Tornado Cash زمانی اعمال می شود که کاربران برداشت کنند. تورنادو کش می تواند ثابت کند که این مبلغ از یک سپرده منحصر به فرد است، اما در واقع هیچ کس جز کاربر نمی داند که از کدام سپرده برداشت شده است. اما حساب انتزاعی چه راه حلی برای حل مسائل حریم خصوصی TornadoCash دارد؟ کاربر می تواند یک تراشه AA را با هدف قرارداد Tornado Cash ارسال کند. این به برداشت کننده اجازه می دهد تا هزینه های گاز را مستقیماً از سکه های ارسال شده به آدرس برداشت خود پرداخت کند.
آخرین کلمه
حساب انتزاعی گزینه های زیادی را در اختیار کاربران قرار می دهد. با حساب انتزاعی، شبکه ارز دیجیتال پیشرفت فنی قابل توجهی خواهد داشت. از سوی دیگر، کاربران بیشتری تمایل به روی آوردن به ارزهای دیجیتال و بلاک چین دارند. زیرا دیگر نگرانی بابت مسائل امنیتی وجود نخواهد داشت. به عنوان مثال، کیف پول دیجیتال Argent یکی از کیف پول های رمزنگاری پیشرو است که از یک حساب انتزاعی استفاده می کند که از این فناوری استفاده می کند.
یکی از جنبههای کلیدی مالکیت پروتکل اتریوم این است که فقط حسابهای تحت مالکیت خارجی میتوانند هزینههای گاز را پرداخت کنند و تراکنشها را آغاز کنند. زیرا حساب های قراردادی نمی توانند این کار را انجام دهند. انتزاع حساب به حساب های قرارداد اجازه می دهد تا اعتبار نوع تراکنش AA جدیدی داشته باشند.