وانفینکس

کلید خصوصی (Private Key)

26 مهر 1405

320

زمان تقریبی مطالعه: 5 دقیقه

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

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

advertise blog post start

کلید خصوصی و کلید عمومی

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

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

امضای تراکنش چگونه کار می‌کند؟

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

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

یک مثال فرضی

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

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

کاربرد و نگهداری

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

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

محدودیت‌ها و خطرها

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

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

آیا مطالعه این مقاله برای شما مفید بود؟!

advertise blog post end