khanoom tootfarangi
khanoom tootfarangi
خواندن ۵ دقیقه·۵ سال پیش

Cryptocurrency به زبان خیلی ساده

زود قضاوت نکنیم!

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

داستان از کجا شروع شد؟

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

الان ما از جایی به اسم بانک برای این تراکنش ها استفاده میکنیم. یعنی که شما با کارت ملی میری بانک حساب باز میکنی و بعد ازون همه ی اطلاعات حساب شما اعم از برداشت یا گذاشتن پولتون تو حساب رو در اختیار بانک قرار میدید. بانک برای اینکه یه حساب به شما اختصاص بده از مفهوم kyc استفاده میکنه که یعنی know your client!

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

برای اینکه از شر این بانک بدجنس خلاص شیم نیاز به یه شبکه داریم که

  • اطلاعات شخصیمونو در اختیارش نذاریم
  • همه ی اطلاعات تراکنش ها یک جا جمع نشده باشه که از روی اون دیتا بتونن کاری انجام بدن
  • امن باشه و اگه ما پولی تو اون شبکه داریم خیالمون از بابتش راحت باشیم.

چطوری این شبکرو بسازیم؟

یسری پروژه های شکست خورده برای ساخت این شبکه ها وجود داشتن چون هیچ کدومشون نتونستن بدون یه سرور مرکزی یا بدون اتصال به بانک این کارو انجام بدن.

خانم/آقای ساتوشی کسی بود که ازین پروژه های شکست خورده درس گرفت و تصمیم گرفت بجای اینکه دیتا رو بصورت کلاینت-سرور نگهداری کنه بصورت peer to peer نگهداری کنه. مثل شبکه ی تورنت. یعنی همه ی اطلاعات دست همه ی کاربرا باشه بجای اینکه یک جا جمع بشه و همه درخواست ها به اون سمت بره.

حالا برای این کار اومد از مفهومی به اسم دفتر کل استفاده کرد. دفتر کل چیه؟ یه دفتر سه ستونه که

  • ستون اولش کسیه که میخواد پولی رو به حساب کسی واریز کنه.
  • ستون دوم کسیه که میخواد پول رو بگیره
  • ستون سوم مقداری که قراره جابجا بشه.

چون من اینجا توانایی کشیدن جدول براتون ندارم از کاما استفاده میکنم. مثلا فرض کنید من به همراه ۳ نفر از دوستام تصمیم میگیریم این شبکرو درست کنیم و من به عنوان سازنده ۵۰۰ تا پول دارم و میخوام به هرکسی ۱۰۰ تا بدم. نکته ای که هست اینکه همه ی ما یه نمونه ازین دفتر داریم و من به ازا هر تراکنشی که انجام میدم بلند داد میزنم که من به فلانی انقدر پول دادم و همه یادداشت میکنن. اینطوری اون مشکلی که همه ی داده ها فقط دست بانک بود حل میشه و الان همه میدونیم هرکسی چقدر پول داره و چه تراکنشی انجام داده. یه نمونه از دفتر کل میتونه اینطوری باشه.

from , to , amount

Ana , Sohi , 100

Ana , Shani, 100

Ana , Joe , 100

ما نمیدونیم Ana, Joe یا هرکسی که اسمش اینجاست کیه و شاید حتی ندیدیمش فقط میدونیم چقدر پول داره و با اون پول تو شبکه چکار کرده. در واقع ما اینجا kyc نداریم.

دفتر کل تا کجا ادامه پیدا کنه؟

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

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

اگه کسی تقلب نکرده باشه تو نوشتنش, همه ی آدما در نهایت باید به یه رشته ی ثابت برسن. پس اینطوری تضمین میکنیم که کسی تقلب نکرده و مثلا آنا به جو ۲۰۰ تا نداده و دقیقا ۱۰۰ تا داده.

حالا بلاک یا دفتر کل دوم رو باز میکنیم و مثل قبل تراکنش هارو مینویسیم و سر ده دقیقه میبندیمش. اینبار هم رمزگذاری رو انجام میدیم با این تفاوت که عددی که از بلاک قبل داشتیم بعلاوه ی رشته ی جدید میکنیم. اینطوری هم ادرس بلاک جدید رو داریم و هم ادرس بلاک قبلیو. بهش میگیم block-chain

یعنی یه عالمه بلاک که اینطوری به هم chain شدن.

Miner کیه؟

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

یه فرمول برای این ادرس داریم اونم اینطوریه که

آدرس بلاک فعلی + یه چیزی که باید به دستش بیاریم = یچیزی که مثلا با ۵ تا صفر شروع بشه.

ساده تر بگم فرض کنید شما قراره بگید چه عددی با ۳ جمع بشه که حاصل حتما با ۱ شروع بشه. در این حالت اولین جواب ۷. چون ۷+۳=۱۰ و جواب با یک شروع میشه. کار این ماینر ها اینکه اون عدد (اینجا ۷) رو پیدا کنن تا بتونن بلاک فعلیو ببندن و یدونه جدید باز کنن.

چطوری این کارو انجام میدن؟ خیلی ساده شروع میکنن از ۱ تا بی نهایت همه ی عددارو جایگذاری میکنن تا برسن به اون جوابی که میخوان و اولین کسی که به جواب برسه بلاک رو به اسم خودش امضا میکنه و جایزه میگیره. اینکار اوایل ساده بود ولی الان که شبکه پیچیده شده شما باید یه عالمه cpu تو خونه داشته باشید تا قدرت اینو داشته باشه یه عالمه عدد تولید و امتحان کنه.

کیف پول چیه؟

خب گفتیم که نمیخوایم اطلاعات شخصیمون تو شبکه باشه. پس بجای اسم خودمون که تو اون مثال من Joe, Ana,... بود یه آدرس شخصی برای هر کسی درست میکنیم که فقط خودش توسط اون میتونه به پولش دسترسی پیدا کنه و توی دفتر کلمون هم بجای اسم شخص همون ادرس رو میذاریم.

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

میشه یه مثال ببینم؟

https://www.blockchain.com/explorer

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

cryptocurrencyرمزارزبلاک چینماینربیت کوین
Backend Developer
شاید از این پست‌ها خوشتان بیاید