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

اگر با دنیای رمزارزها آشنایی داشته باشین، به احتمال زیاد تا به حال عباراتی مثل کلید خصوصی (private key)، کلید عمومی (public key) و آدرس کیف پول (wallet address) رو شنیدین. چیزی که شاید کمتر شنیده باشین، موردیه به اسم Seed Phrase یا همون “عبارت بازیابی”. اما این چهار مورد دقیقا چی هستن، چه فرق یا تشابهی با هم دیگه دارن و کاربرد هر کدوم از اونها توی دنیای رمزارزها چیه؟ پیج و خم های دنیای رمزارزها گاهی انقدر زیاده و مفاهیم گنگ به نظر می رسن که خیلی ها از ورود به این بازار منصرف میشن. توی این مطلب سعی می کنیم مفاهیم اشاره شده به ساده ترین شکل توضیح بدیم.

1- کلید خصوصی و کلید عمومی (private key & public key)

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

کلید خصوصی (private key) چیه؟

رمز عبور یا همون کلید خصوصی، درواقع یک عدده که به صورت رندوم یا تصادفی تولید شده و در حالت ابتدایی، شکلی شبیه به این داره:

108165236279178312660610114131826512483935470542850824183737259708197206310322

اما توی دنیای رمزارزها، معمولا کلید خصوصی رو به شکل یک عبارت مشتکل از اعداد و ارقام نشون میدن – که به این سبک از نمایش اعداد میگن hexadecimal (اعداد بر مبنای 16 نوشته میشن):

ef235aacf90d9f4aadd8c92e4b2562e1d9eb97f0df9ba3b508258739cb013db2

این عبارت در واقع همون عدد بالاست، فقط سبک نوشتاری اون فرق میکنه و به فرمت hexadecimal تبدیل شده.

کلید عمومی (public key) چیه؟

شماره حساب یا کلید عمومی، نتیجه ی انجام یک سری اعمال ریاضی (به اسم Elliptic Curve Multiplication) روی کلید خصوصیه. این اعمال ریاضی یک طرفه هستن؛ یعنی با استفاده از اونها میشه از کلید خصوصی به کلید عمومی رسید، اما عکس این کار ممکن نیست و کسی با داشتن کلید عمومی، نمیتونه کلید خصوصی رو بدست بیاره، چون برای این کار توان پردازش کامپیوتری نیازه که بشر به این زودی ها  نمی تونه اون رو بسازه.

یک کلید عمومی معمولا چیزی شبیه به اینه:

02b4632d08485ff1df2db55b9dafd23347d1c47a457072a1e87be26896549a8737

این کلید درست مثل کلید خصوصی، به فرمت hexadecimal یا همون مبنای 16 نوشته میشه و همونطور که گفتیم، از لحاظ ریاضی با کلید خصوصی ارتباط داره.

خب، حالا کلید خصوصی و عمومی به چه دردی می خورن؟

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

فرض کنیم شما یک کیف پول دیجیتالی یا همون والت (wallet) دارید. با یک نفر معامله ای می کنید و قرار میذارید که اون فرد برای شما مقداری بیت کوین ارسال کنه. حالا برای اینکه اون فرد بتونه بیت کوین رو به کیف پول شما بفرسته، درست مثل حساب بانکی، باید شماره حساب یا همون کلید عمومی (public key) خودتون رو بهش بدین. این کلید عمومی، درگاهی برای ورود رمزارز به کیف پول شماست و هر کسی که اون رو داشته باشه، می تونه براتون بیت کوین بفرسته.

حالا فرض کنیم خود شما قصد دارین مقداری بیت کوین رو به فرد دیگه ای بفرستین. برای فرستادن رمزارز، باید وارد کیف پول خودتون بشید و برای این کار هم کلید خصوصی (private key) رو لازم دارین. مثل حساب ایمیل که از شما رمز عبور درخواست می کنه، وارد شدن به والت هم نیازمند داشتن کلید خصوصیه. وقتی که وارد شدید، کلید عمومی فرد مورد نظر رو وارد می کنید و بیت کوین ها رو براش ارسال می کنید؛ شبکه ی بلاک چین هم بدون اعلام کردن کلید خصوصی شما به فرد دیگه ای، ازش استفاده می کنه و تراکنش شما رو امضا می کنه و به نوعی تایید میکنه که شما صلاحیت و اجازه ی ارسال اون بیت کوین ها رو دارید، و درواقع بیت کوین ها مال شما هستن.

2-آدرس کیف پول (Wallet Address)

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

درسته که کلید عمومی (public key) مثل شماره حساب بانکی  شماست، اما چون این شماره حساب خیلی طولانیه و از اعداد و ارقام مختلف تشکیل شده، کار کردن باهاش سخته. (مثلا حرف آی (I) بزرگ و کوچک انگلیسی، حرف O و همنیطور عدد 0، می تونن آدم رو به اشتباه بندازن). بنابراین، با استفاده از یک سری تبدیل های ریاضی، کلید عمومی رو فشرده تر و کوتاه تر می کنن و چیزی به اسم آدرس کیف پول تولید میشه، که شکلی شبیه به این داره:

1EUXSxuUVy2PC5enGXR1a3yxbEjNWMHuem

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

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

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

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

3- Seed Phrase یا عبارت بازیابی

Seed Phrase یا عبارت بازیابی، یه عبارت 12 الی 24 کلمه ای تولید شده به صورت رندوم هست که برای بازیابی کیف پول رمزارزی میشه ازش استفاده کرد. این عبارت از طریق استانداردی به اسم BIP39  درست میشه که از یک دیکشنری انگلیسی استفاده می کنه. ترتیب کلمات توی این عبارت مهمه و هر کلمه با یک عدد نظیر میشه. این اعداد بعدا برای بازیابی کردن کیف پول استفاده میشن.

شما برای هر کدوم از رمزارزهای مختلفی که توی کیف پولتون هست (مثلا BTC, ETH, XRP) یک کلید عمومی و یک کلید خصوصی دارین، اما seed phrase تمام اینها رو توی خودش داره. بیشتر کیف پول ها این قابلیت رو دارن که seed phrase برای کاربر تولید کنن و کاربر باید اون عبارت رو جای امنی یادداشت و نگهداری کنه. یک seed phrase بیست و چهار کلمه ای معمولا این شکلیه:

gravity trophy shrimp suspect sheriff

avocado label trust dove tragic pitch title

network myself spell task protect smooth

sword diary brain blossom under bulb

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

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

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

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

خلاصه اینکه…

با انجام یک سری عملیات ریاضی روی کلید خصوصی(private key) میشه کلید عمومی (public key) رو تولید کرد، و از کلید عمومی هم میشه برای تولید آدرس کیف پول استفاده کرد، اما عکس این روندها ممکن نیست. عبارت بازیابی می تونه در صورت گم شدن کیف پول یا قطع شدن دسترسی به اون، به شما کمک کنه که تمام کلیدهای خصوصی و عمومی و دارایی های رمزارزی خودتون رو پس بگیرید. کلید خصوصی و عبارت بازیابی (seed phrase)  خودتون رو به هیچ کس ندید و برای هر تراکنشی، از یک آدرس کیف پول جدید استفاده کنید.

منابع:

Bitcoin Wiki

Bitcoin.com

wikipedia

investopedia

learnmeabitcoin

Stackoverflow

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

*