کلید عمومی و کلید خصوصی هردو برای تراکنش ارز دیجیتال ضروری است.
کلیدها تشکیل از یک سری حرفها و ارقامی است که: در جریان ساخت کیف پول یا والت با استفاده از رمزنگاری ایجاد میگردد. به این سری حرفها کلید میگویند چون داشتن آنها برای باز کردن بعضی اطلاعات ضروری است.
کلید عمومی در دسترس همه (کمپیوترهای شبکه) و کلید خصوصی در دسترس دارنده ارز دیجیتال است.
در این پُست ابتدا کلید خصوصی بعد کلید عمومی و در آخر چگونگی ایجاد آن را بیان میکنیم.
کلید خصوصی چیست؟
کلید خصوصی، خصوصی است. فقط و فقط باید در اختیار شما باشند. این کلید با استفاده از عبارت بازیابی در جریان ساخت والت ساخته میشود.
برای نمونه؛ این یک کلید خصوصی است: F987SC79Z6C87VX0VY6G57786KK89I445K21KK0SDA61I20VC67YZ233CC33262
( یک کلید خصوصی را حتا کمپیوترهای شبکه در اختیار ندارد)
وظیفه کلید خصوصی در اکثریت بلاکچینها امضا کردن و ایجاد کلید عمومی است. زمانی که شما ارز دیجیتال ارسال میکنید، این کلید با استفاده از تابع هش تراکنش را امضا کرده و در ممپول بلاکچین ارسال میکند.
در بعضی بلاکچین مانند زِکش (Zcash) وظیفه رمزگشایی پیامها را نیز دارد. اما؛ در بیتکوین و اتریوم و اکثریت دیگر بلاکچینها وظیفه آن به امضا و ساخت کلید عمومی خلاصه میشود.
کلید خصوصی مانند عبارت بازیابی در بسیاری موارد شبیه هم عمل میکند. اگر فردی کلید خصوصی شما را داشته باشند، تمام دارایی شما را میتواند در اختیار داشته باشند.
کلید عمومی چیست؟
کلید عمومی از کلید خصوصی بوجود میآید. وظیفه آن تایید امضا توسط کلید خصوصی است.
برای مثال این نمونه کلید عمومی است: 00DB13GBBE8FBC8DBAF3362E9229F0182F47C7422652CB01030300003048024100CA12FBCF8EEC2CEFD8FD3099B8C4FCC68448137D89DFD9EB3199A9E06AEA95FC225E38BC8DBAF3F0182F47C7422652CB018D8ABD9EB9G4B0193G58D8433754DB02
کلید عمومی و کلید خصوصی باهم رابطه یک طرفه دارند. یعنی کلید عمومی از کلید خصوصی بوجود میآید و برعکس آن ممکن نیست.
در واقع این همان نقطهای است که کلید خصوصی را از دید عموم — حتا کمپیوترهای شبکه محفوظ نگهمیدارد.
طوری که از نام آن پیدا است این کلید برای عموم اعضای شبکه قابل دید است.
منظور مان از عموم در اینجا کمپیوترهای شبکه است که با استفاده از کلید عمومی امضا کلید خصوصی را تایید میکند. معمولا کیف پولها و کاوشگران بلاکچین این کلید را به دارنده ارز دیجیتال نیز نشان نمیدهد. اگر شما بخواهید آن را ببینید؛ باید به عنوان توسعه دهنده (Developer) مراحلِ را طی کرده و آن را ببیند.
این کلید بدون خطر به شما اجازه میدهد با دنیای ارز دیجیتال ارتباط برقرار کرده و آن را در میان بگذارید. زمانی که شما این کلید را به کسی میفرستید، او فقط میتواند که بالانس و تراکنشهای شما را دنبال کند. از هویت شما آگاهی پیدا نکرده و کنترل ارز شما در دستان شما باقی میماند.
کلید عمومی و آدرس عمومی یکی نیست!
بعضیها کلید عمومی و کلید خصوصی را از هم اشتباه میگیرند.
در واقع آدرس عمومی (آدرس کیف پول) از کلید عمومی بوجود میآید.
برای نمونه آدرس عمومی شبیه این است: 1BvBMSEYstWetqTFn5Au4m4GFg7xJaNVN2
زمانی که شما ارز دریافت میکنید؛ آدرس عمومی خود را میفرستید، نه کلید عمومی.
کلید عمومی یک سری حرفها و ارقام طولانی است و به همیندلیل از آدرس عمومی که کوتاهتر است برای استفاده روزمره ایجاد میکند.
از کلید عمومی شما شبکه برای تایید تراکنش شما و در بعضی بلاکچینها مانند زِکش (Zcash) و مونیرو (Monero) پیامهای متنی را نیز رمزنگاری میکند. در حالیکه آدرس عمومی صرف برای دریافت ارز و کاوشگری در کاوشگر استفاده میشود.
کلید عموی و خصوصی چگونه بوجود میآید؟
برای ساخت کلید عمومی و کلید خصوصی نرم افزار والت باید مراحلِ را طی کند. در این مراحل با از استفاده از الگوریتم های هش یکطرفه یکی پس از دیگری را میسازد.
[هش یک طرفه به این معنا است که دادههای ورودی به خروجی تبدیل شده و تبدیل خروجی به وروی (برعکس) ممکن نیست]
ابتدا؛ یک نرمافزار والت (مانند ترست والت) در جریان ساخت کیف پول شما بار اول بهصورت تصادفی عبارت بازیابی را انتخاب میکند. چگونه؟ با پیروی از استندرد BIP-39 12 واژه یا 24 واژه را انتخاب کرده و نقش شاه کلید را بازی میکنید.
در قدم دوم نوبت به ساخت کلید خصوصی میرسد. نرم افزار والت عبارت بازیابی را با استاده از الگوریتم HMAC-SHA512 کلید خصوصی را میسازد. یعنی در این قدم؛ ورودی عبارت بازیابی و خروجی کلید خصوصی است.
در قدم سوم؛ با استفاده از الگوریتم Elliptic Curve Multiplication و کلید خصوصی — کلید عمومی ساخته میشود. یعنی کلید خصوصی وردی و کلید عمومی خروجی است.
در قدم چهارم یعنی آخری؛ آدرس عمومی با استفاده از الگریتم SHA-256 و دیگر توابع و کلید عمومی ساخته میشود.
کارکرد کلید خصوصی و عمومی در یک مثال
حالا که کلید خصوصی و کلید عمومی را فهمیدید، برای شما کاربرد آن را در یک مثال شرح میدهیم.
فرض کنید که اسم شما عیسی و اسم دوست شما موسی است. شما برای موسی رفیق تان بیتکوین ارسال میکنید.
شما مقدار بیتکوین را مشخص میکنید. مثلا پولدار هستید و چهار بیتکوین میفرستید.
سپس؛ با استفاده از کلید خصوصی خود شما تراکنش را امضا میکنید. امضا با استفاده از یک الگوریتم بنام SHA-256 (در بیتکوین) با هش کردن آن اجرا میگردد.
در مراحل ساخت یک بلاک؛ با استفاده از کلید عمومی سازنده بلاک و تاییدکنندگان بلاک امضا کلید عمومی را بررسی و تایید میکند.
در صورت که امضا درست بود؛ تراکنش شما وارد بلاک شده و در شبکه همراه با دیگر تراکنشها برای تایید پخش میگردد.
خلاصه متن
کلید عمومی و کلید خصوصی برای ارسال و دریافت دارایی در دنیای ار دیجیتال استفاده میشود. در بعضی بلاکچینها مانند مونیرو حتا پیامها را نیز رمزگذاری و رمزگشایی میکند.
کلید عمومی در دید عموم کمپیوترهای شبکه بوده و با استفاده از آن کیف پول آدرس عمومی و نودها امضا کلید خصوصی را تایید میکند.
کلید خصوصی وظیفه امضا تراکنشها را دارد. در بعضی شبکهها مانند مونیرو میتواند پیامها را نیز رمزگشایی کند. این کلید خصوصی است و باید در معرض دید دیگران قرار نگیرند. دارنده آن میتواند دارایی دیجتالی شما بطور کامل — فقط با یک امضا — بردارند.

