کلید خصوصی، کلید عمومی و آدرس بیت کوین چه تفاوتی با هم دارند؟

کلید خصوصی، کلید عمومی و آدرس بیت کوین چه تفاوتی با هم دارند؟

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

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

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

رمزنگاری نامتقارن

رمزنگاری نامتقارن

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

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

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

برای توضیح اینکه کلید خصوصی و کلید عمومی چگونه به دست می‌آیند و وظیفه آن‌ها چیست، پروتکل بیت کوین را انتخاب می‌کنیم.

کلید خصوصی یک عدد تصادفی ۲۵۶ بیتی است. به عبارتی اگر یک سکه را ۲۵۶ بار پرتاب کنید بطوریکه شیر را ۰ و خط را ۱ در نظر بگیرید و تمامی نتایج پرتاب را به ترتیب کنار هم قرار دهید، یک عدد تصادفی ۲۵۶ بیتی تولید کرده‌اید که همان کلید خصوصی است.

برای درک تصور بزرگی این عدد بهتر است بدانید که تقریبا با تمام اتم‌های جهان هستی قابل مشاهده برابر است! با این مقایسه درباره احتمال تولید کلیدخصوصی تکراری (دست گذاشتن بر روی یک اتم خاص در جهان هستی برای دوبار!) درک بهتری خواهید داشت.

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

نحوه تولید کلید خصوصی و کلید عمومی و آدرس بیت کوین

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

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

معمولا به دلیل طولانی بودن رشته اعداد، کلید خصوصی را به صورت صفر و یک نمایش نمی‌دهند و آن را به فرمت‌های مختلفی مانند هگزادسیمال (سیستم عددنویسی مبنای ۱۶) نشان می‌دهند.

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

برای اطلاعات بیشتر درباره کلیدخصوصی مقاله «هر آنچه که باید درباره کلیدهای خصوصی بدانید» را بخوانید.

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

آدرس بیت کوین

آدرس بیت کوین در واقع رشته‌ای از اعداد و حروف است که می‌توانید آن را با بقیه به اشتراک بگذارید تا به آن بیت کوین بفرستند. آدرس‌ها از کلیدهای عمومی با استفاده از توابع هش یک‌طرفه به دست می‌آیند؛ به عبارتی امکان ایجاد کلیدهای عمومی از طریق داشتن آدرس‌ها وجود ندارد.

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

نحوه تولید آدرس بیت کوین از کلید عمومی

آدرس بیت کوین نهایی در سه فرمت مختلف P2PKH، P۲SH و bech32 نمایش داده می‌شوند.

انواع آدرس بیت کوین

  • لگاسی (P2PKH)

در صورتی که آدرس بیت کوین با عدد ۱ شروع شود، فرمت آن P2PKHخواهد بود، مانند:

۱BvBMSEYstWetqTFn۵Au۴m۴GFg۷xJaNVN۲

این اولین فرمت آدرس بیت کوین بود که هنوز هم از آن استفاده می‌شود.

این آدرس‌ها با آدرس‌های سگویت (bech32) سازگار نیستند و نمی‌توان از آدرس سگویت به آن‌ها بیت کوین ارسال کرد، اما امکان ارسال از آن‌ها به آدرس‌های bech32 وجود دارد. همچنین میانگین کارمزد تراکنش در تراکنش‌های انجام شده با این آدرس‌ها معمولا بیشتر است.

  • آدرس فشرده (P2SH)

ساختار آدرس‌های P2SH مشابه آدرس‌های P2PKH است، با این تفاوت که به جای عدد ۱ با عدد ۳ آغاز می‌شوند. این آدرس‌ها قابلیت‌های بیشتری نسبت به آدرس‌های نوع قبلی دارند و اغلب برای آدرس‌های امضای چندگانه مورد استفاده قرار می‌گیرند.

این نوع از آدرس به طور گسترده‌ای پشتیبانی می‌شود و می‌توان از آن برای ارسال ارز به هر دو آدرس P2PKH و bech32 استفاده کرد.

  • آدرس بومی سگویت (bech32)

آدرس‌های bech32 کاملا متفاوت از آدرس‌های نوع P۲ هستند.

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

برای اطلاعات بیشتر درباره سگویت، مطلب «سگویت (SegWit) چیست؟» را بخوانید. همچنین مطلب «آموزش قدم‌به‌قدم ساخت آدرس سفارشی بیت کوین» که آموزش ساخت آدرس‌های ویژه‌ای از P2PKH است را از دست ندهید.

تفاوت آدرس و کلید عمومی

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

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

guest

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

نقض قوانین ممکن است منجر به عدم تأیید دیدگاه‌ها یا مسدودسازی حساب کاربران شود.

20 دیدگاه
مهدی م
مهدی م
2 سال و 4 ماه قبل

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

میثم شریعت
میثم شریعت
2 سال و 9 ماه قبل

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

H&B
H&B
2 سال و 9 ماه قبل

درود خسته نباشید
لطفا میشه جواب بدید و کمکم کنید
میشه از ادرس بیت کوین با فرمت ۱ به ادرس بیت کوین با فرمت ۳ ، انتقال داد یا نه؟

نیما ملک پور
نیما ملک پور
2 سال و 2 ماه قبل
پاسخ  H&B

سلام
بله مشکلی از این بابت وجود نداره.

رحیم خیرگو
رحیم خیرگو
2 سال و 10 ماه قبل

سلام
یه سوال داشتم اینکه هر کلید خصوصی فقط یک کلید عمومی داره یا هربار که اقدام به تولید کلید میکنیم کلید عمومی جدیدی میده همچنین در مورد ساخت آدرس از روی کلید عمومی هر کلید میتونه چند آدرس داشته باشه و ساخت اکانت همان آدرس هست؟
ممنون میشم جواب بدین

نیما ملک پور
نیما ملک پور
2 سال و 2 ماه قبل

سلام
از روی هر کلید خصوصی همیشه به کلید عمومی مشابهی می‌رسید و امکان تولید کلید عمومی جدید از روی کلید خصوصی قبلی وجود نداره.
در صورتی که Master Public Key داشته باشید طبق استاندارد HD Walletها امکان ایجاد تعداد بسیار زیادی کلید عمومی به صورت درختی (و به تبع آدرس از روی کلید عمومی) وجود خواهد داشت.
معمولا در سرویس‌ها منظور از اصطلاح ساخت اکانت همون ساخت آدرس جدید هست.

رحیم خیرگو
رحیم خیرگو
2 سال و 2 ماه قبل

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

Artin
Artin
3 سال قبل

سلام،متاسفانه من مقداری بیت کوین کش را به آدرس بیت کوین ارسال کردم،آدرس بیت کوین سگویت بود،هم صرافی هم والت گفتن بازیابی نمیشه،اما بی تی سی دات کام را معرفی کردن اونها قول دادن که بازیابیش کنن،الان از من درخواست کلید عمومی کرده اند(Public key of the SegWit BTC address)،با والت تماس گرفتم میگن نمیتونیم کلید خصوصی را به شما بدیم در حالی که آنها درخواست کلید عمومی کرده اند،حالا من موندم این کلید عمومی را از کجا بیارم،

امین
امین
3 سال و 1 ماه قبل

سلام آیا از آدرس کیف پول که با ۱ شروع میشه میتوانیم به آدرس که با ۳ شروع میشه بیت کوین ارسال و دریافت کنیم آیا زمان تراکنش طولانی میشود من مقداری بیت کوین به این طریق به صرافی hotbitمنتقل کردم اما با توجه به تایید شبکه هنوز به حسابم نیامده لطفا راهنمایی بفرمایید
با تشکر
351c29489654d34f3b9d14b6efc3c7152b7c541f32dc82ac2d2b07ca1e6f4474

حاجلی
حاجلی
3 سال و 3 ماه قبل

من چطور میتونم از ادرس بیت کوین به کیف پول والت بیت کوین بریزم. ادرسو دارم، والتوهم دارم

عیسی
عیسی
3 سال و 7 ماه قبل

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

حسین آقایی
حسین آقایی
3 سال و 9 ماه قبل

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

سجاد مقصودی
سجاد مقصودی
3 سال و 9 ماه قبل

سلام دوست عزیز
این مطلب تالیفیه و براساس وایت پیپر بیت کوین و با بررسی شبکه نوشته شده.
http://bitcoin.org/bitcoin.pdf

امید
امید
4 سال و 8 ماه قبل

ببخشید زیاد سوال میپرسم. فرضا الان کلمات یادآوری که از کوینومی دارم توی یه کیف دیگه بزنم بیت کوینام میره به اون کیف پول و کوینومیم خالی میشه؟ یا هر ۲ کیف بهش دسترسی دارن؟
( من فارم دارم و مسائل مربوط به فارم رو مسلط و خودکفا هستم ولی در مورد کیف پول و کلید خصوصی این مسایل داغونم. درکش نمیکنم.میترسم هم کاری کنم به فنا برم واسه همین مثل بچه آدم فقط استخراج میکنم میریزم کوینومی، به بقیه چیزاش کار ندارم.لازمه اینارو یاد بگیریم یا داشتن همون کلمات یادآوری کفایت میکنه؟)

نیما ملک پور
نیما ملک پور
4 سال و 8 ماه قبل
پاسخ  امید

نپرسیدن سوال عیبه نه پرسیدنش :)
بله کلمات رو روی کیف پول‌های دیگه‌ای که از ارز مورد نظرتون پشتیبانی کنه بالا بیارید، میتونین بهش دسترسی از دوتا کیف پول دسترسی داشته باشین. تا زمانی که تراکنش انجام ندین، بیت کوینا هم از آدرس کیف پول تکون نمیخورن