A large, metallic vault door with three golden

توضیح کیف‌پول‌های چندامضایی: چگونه تأیید M از N واقعاً وجوه را جابجا می‌کند

By AI News Crypto Editorial Team9 دقیقه مطالعه

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

نکات کلیدی

سازگاری جایی است که چند امضایی اتریوم کمتر به امضاها و بیشتر به استانداردها مربوط می‌شود. بسیاری از برنامه‌ها انتظار دارند یک پیام امضا شده از یک حساب خارجی داشته باشند. یک قرارداد نمی‌تواند یک امضای ECDSA عادی تولید کند زیرا هیچ کلید خصوصی ندارد. ERC-1271 دست دادن است که این مشکل را حل می‌کند: این یک متد isValidSignature(hash, signature) را تعریف می‌کند که برنامه‌ها می‌توانند زمانی که "امضا کننده" یک قرارداد است، فراخوانی کنند و نیاز به بازگشت مقدار جادویی 0x1626ba7e دارد زمانی که اعتبارسنجی موفقیت‌آمیز است. زمانی که یک dapp از ERC-1271 پشتیبانی می‌کند، می‌تواند تأییدها از یک کیف پول قرارداد را به عنوان تأیید واقعی در نظر بگیرد. زمانی که این کار را نمی‌کند، چند امضایی می‌تواند از جریان‌های کاری که به پیام‌های امضا شده وابسته‌اند، مانند سیستم‌های سفارش خارج از زنجیره، مسدود شود.

جایی که چند امضایی استفاده می‌شود

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

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

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

یک 3 از 5 می‌تواند برای تداوم عالی باشد تا زمانی که گروه متوجه شود تأییدها اکنون نیاز به زمان‌بندی دارند.مزایای امنیت و تعادل‌های عملیاتیمزیت امنیتی چند امضایی ساده است: نفوذ به یک کلید کافی نیست تا وجوه را منتقل کند. این شعاع انفجار فیشینگ، بدافزار در یک دستگاه واحد، یا یک فرد داخلی که به طور غیرقانونی عمل می‌کند را کاهش می‌دهد.

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

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

لجستیک هزینه‌ها دام تکراری دیگری است. EIP-86 به وضوح تأکید کرد که چند امضایی می‌تواند نیاز به چندین تراکنش تأیید داشته باشد و شرکت‌کنندگان ممکن است به ETH برای هزینه‌ها نیاز داشته باشند. این یک سؤال سیاستی ایجاد می‌کند که هر گروه چند امضایی باید به آن پاسخ دهد: چه کسی مسئول نگه‌داشتن امضا کنندگان برای تأییدها است و چه اتفاقی می‌افتد وقتی که این کار انجام نشود.

رویکردهای حساب-قرارداد بخشی از انگیزه‌شان به دلیل تمایل به اینکه قرارداد ETH را نگه دارد و هزینه‌ها را پرداخت کند، به ویژه به این دلیل که "هر امضا کننده به گاز نیاز دارد" یک فرضیه عملیاتی شکننده است.

انتخاب آستانه تعادل نهایی است و با اضافه کردن امضا کنندگان بیشتر حل نمی‌شود. 2 از 2 حداکثر کنترل متقابل را به حداکثر می‌رساند اما می‌تواند وجوه را به طور دائمی قفل کند اگر یک کلید گم شود. 2 از 3 محبوب است زیرا از طریق یک کلید پشتیبان، افزونگی را در خود جای می‌دهد. 3 از 5 از نظر حکمرانی درجه‌ای است زمانی که تداوم از طریق غیبت‌ها مهم‌تر از سرعت باشد.

N بالاتر می‌تواند شکست هماهنگی را افزایش دهد، که به این معنی است که "امضا کنندگان بیشتر" می‌تواند احتمال اینکه کیف پول بتواند زمانی که نیاز دارد عمل کند را کاهش دهد.

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

چارچوب تصمیم‌گیری این نیست که "کدام یک ایمن‌تر است" به عنوان یک ادعای جهانی. بلکه این است که "چه چیزی باید بر روی زنجیره قابل اثبات باشد و چه چیزی باید سریع و از نظر عملیاتی روان باشد." اگر نیاز به حاکمیت و مسئولیت‌پذیری واضح برای تأییدها باشد، مالتی‌سگ به طور طبیعی مناسب است. اگر نیاز به توان عملیاتی در چندین زنجیره با خودکارسازی مبتنی بر سیاست باشد، MPC معمولاً بهتر مناسب است.

این همچنین جایی است که جزئیات پیاده‌سازی اهمیت دارد. یک مالتی‌سگ در یک زنجیره با پشتیبانی بومی به طور متفاوتی رفتار می‌کند نسبت به یک مالتی‌سگ مبتنی بر قرارداد که به سازگاری ERC-1271 برای جریان‌های کاری پیام‌های امضا شده وابسته است. این تفاوت بخشی از انواع کیف پول توضیح داده شده است و به همین دلیل است که دو محصول می‌توانند هر دو "مالتی‌سگ" نامیده شوند در حالی که به طور کاملاً متفاوتی شکست می‌خورند.

نتیجه‌گیری

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

بلکه روزی است که یک امضاکننده در حال سفر است، یک دستگاه خراب شده و گروه متوجه می‌شود که آستانه‌ای که انتخاب کرده‌اند به معنای یک بودجه واقعی از زمان خاموشی است.موضع تمیز این است که مالتی‌سگ را مانند یک سیستم کنترل میز طراحی کنید: پیشنهاد، بررسی، امضاها، بررسی آستانه، پخش، با مالکیت برای تأمین هزینه و برنامه‌ای برای ناپدید شدن امضاکنندگان. ۲ از ۲ حداکثر کنترل و مستعد یخ زدن است، ۲ از ۳ پیش‌فرض عملی است زیرا یک مسیر بازیابی دارد و ۳ از ۵ زمانی استفاده می‌شود که تداوم بیشتر از سرعت اهمیت دارد. تعداد امضاکنندگان ویژگی نیست. مدل عملیاتی است.منابع

Cobo

پیشنهادات بهبود اتریوم

پیشنهادات بهبود اتریوم

مدیوم

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

[@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop
  • [@portabletext/react] Unknown block type "span", specify a component for it in the `components.types` prop

پرسش‌های متداول

2 از 3 چند امضایی به چه معناست؟

یک چند امضایی 2 از 3 به این معناست که سه کلید مجاز (N=3) وجود دارد و هر دو از آن‌ها (M=2) باید برای اجرای یک تراکنش تأیید کنند. این روش محبوب است زیرا یک کلید گم‌شده یا مفقود را تحمل می‌کند و در عین حال کنترل یک‌جانبه را جلوگیری می‌کند. بسیاری از تیم‌ها از کلید سوم به عنوان یک نسخه پشتیبان که به طور جداگانه ذخیره می‌شود، استفاده می‌کنند.

آیا کیف پول چند امضایی غیر امانی است؟

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

تفاوت بین کیف پول چند امضایی و کیف پول MPC چیست؟

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

چرا ERC-1271 برای یک کیف پول چند امضایی در اتریوم مهم است؟

بسیاری از برنامه‌های اتریوم انتظار دارند که یک پیام امضا شده از یک حساب خارجی داشته باشند، اما یک کیف پول قراردادی نمی‌تواند یک امضای ECDSA معمولی تولید کند. ERC-1271 تابع isValidSignature(hash, signature) را تعریف می‌کند تا برنامه‌ها بتوانند از یک کیف پول قراردادی بپرسند که آیا یک امضا باید به عنوان معتبر تلقی شود یا خیر. این استاندارد نیاز دارد که در صورت موفقیت اعتبارسنجی، 0x1626ba7e برگردانده شود.

روش‌های اصلی گیر کردن کیف پول‌های چند امضایی چیست؟

شایع‌ترین علل، در دسترس بودن امضا کنندگان و لجستیک هزینه‌ها هستند. اگر آستانه به امضا کنندگانی نیاز داشته باشد که نتوانند به موقع پاسخ دهند، تأییدها متوقف می‌شوند. EIP-86 همچنین به این نکته اشاره کرد که چند امضایی می‌تواند شامل چندین تراکنش تأیید باشد و اینکه شرکت‌کنندگان ممکن است برای پرداخت هزینه‌ها به ETH نیاز داشته باشند.