بیت کوین یک سیستم پرداخت الکترونیکی است که در سال 2009 ایجاد شد. این سیستم به شما امکان میدهد برای هر کسی در جهان پول بفرستید، بدون اینکه نیاز به اجازه کسی برای افتتاح حساب داشته باشید.
بیت کوین به عنوان راه حلی برای سیستم مالی مدرن ایجاد شد. در سیستم مالی فعلی، ما تعدادی بانک بزرگ داریم که کنترل میکنند چه کسی حسابی را افتتاح میکند و چه تراکنشهایی را انجام میدهد. این بدان معناست که کنترل پول در سیستم فعلی متمرکز است و ما باید به بانکها اعتماد کنیم که مسئولانه عمل کنند.
------------------------
ما میتوانیم به بانکها اعتماد کنیم که پول ما را نگه داشته و به صورت الکترونیکی منتقل میکنند، اما مسئله اینجاست که بانکها از حسابهای اعتباری ما وامهای کلان میدهند. - ساتوشی ناکاموتو
------------------------
شاید بتوان گفت که تمرکز بانکداری و بحران مالی ناشی از آن در سال 2007 ، الهام بخش توسعه بیت کوین بود. بیت کوین یک سیستم پرداخت بدون نیاز به نهاد مرکزی یا شخص ثالث است که در سال 2009 توسط فردی ناشناس با نام مستعار ساتوشی ناکاموتو مطرح شد.
در زیر، توضیح سادهای از نحوه کار بیت کوین ارائه شده است.
بیت کوین چیست؟
بیت کوین فقط یک برنامه کامپیوتری است. میتوانید آن را دانلود کرده و بر روی کامپیوتر خود اجرا کنید.
هنگامی که برنامه را اجرا میکنید، به رایانههای دیگری که این برنامه را نیز اجرا میکنند متصل میشوید و آنها شروع به اشتراک گذاری فایل با شما میکنند. این فایل، زنجیره بلوکی یا بلاکچین نامیده میشود و اساساً یک لیست بزرگ از تراکنشها است.
هنگامی که یک تراکنش جدید وارد شبکه میشود، از رایانهای به رایانه دیگر منتقل میشود تا زمانی که همه یک کپی از تراکنش داشته باشند. تقریبا 10 دقیقه زمان میبرد تا یک رایانه (گره یا نود) تصادفی در شبکه آخرین تراکنشهایی را که دریافت کرده است به بلاک چین اضافه کند و بهروزرسانیها را با همه رایانههای دیگر در شبکه (نودهای شبکه) به اشتراک بگذارد.
در نتیجه، برنامه بیت کوین، شبکه بزرگی از رایانهها را ایجاد میکند که با یکدیگر ارتباط برقرار میکنند تا یک فایل را به اشتراک بگذارند و آن را با تراکنشهای جدید به روز کنند.
بیت کوین چه مشکلی را حل می کند؟
امکان انتقال تراکنشها در شبکهای از رایانهها قبل از بیت کوین وجود داشت. با این حال، مشکلاتی (مانند وارد کردن تراکنش های متناقض) در شبکههای قبل از بیت کوین وجود داشت. به عنوان مثال، میتوانید دو تراکنش جداگانه ایجاد کنید که یک سکه دیجیتالی مشابه را دو بار خرج میکنند و هر دوی این تراکنشها را همزمان به شبکه ارسال کنید. این مشکل به عنوان خرج مضاعف (double spending) شناخته میشود.
بیت کوین این مشکل را با مجبور کردن گرهها برای نگه داشتن تمام تراکنشهای دریافتی قبل از نوشتن در یک فایل، حل میکند. سپس، در فواصل 10 دقیقهای، یک گره تصادفی در شبکه، تراکنشها را از حافظه خود به فایل اضافه میکند.
سپس این فایل بهروزرسانی شده با شبکه به اشتراک گذاشته میشود و گرهها تراکنشهای موجود در فایل بهروزرسانیشده را بهعنوان «تراکنش درست» میپذیرند و هرگونه تراکنش متناقضی را از حافظه خود حذف میکنند. در نتیجه، هیچ تراکنش دوبار خرج هرگز روی فایل نوشته نمیشود و همه گرهها میتوانند فایلهای خود را در توافق با یکدیگر بهروزرسانی کنند.
فرآیند افزودن تراکنشها به فایل، استخراج یا ماین نامیده میشود و اساساً یک رقابت در سطح شبکه است که توسط یک گره در شبکه قابل کنترل نیست.
استخراج یا ماین بیت کوین چگونه انجام می شود؟
برای شروع، هر گره آخرین تراکنشهایی را که دریافت کرده است را در حافظه خود (حافظه موقت) ذخیره میکند، سپس هر گرهای میتواند تراکنشها را از استخر حافظه خود به فایل (بلاک چین) منتقل کند.
برای انجام این کار، یک گره تراکنشها را از استخر حافظه خود در یک بلاک جمع آوری میکند و سپس با استفاده از قدرت پردازش سعی میکند این بلاک را به بلاک چین اضافه کند.
اما این قدرت پردازش از کجا می آید؟ خوب، برای افزودن این بلوک به بلاک چین، باید بلوک تراکنشهای خود را به چیزی به نام تابع هش وارد کنید. یک تابع هش اساساً یک برنامه کامپیوتری کوچک است که هر مقدار داده را میگیرد، آن را درهم میکند و یک عدد کاملا تصادفی (و در عین حال منحصر به فرد) را بیرون میدهد.
برای اینکه بلاک شما با موفقیت به بلاک چین اضافه شود، این عدد (هش بلاک) باید مطابق با سختی شبکه باشد.
اگر هش بلوک بهدستآمده شما با سختی شبکه هماهنگ نیست، میتوانید یک تغییر کوچک روی دادههای داخل بلوک انجام دهید و دوباره آن را از طریق تابع هش قرار دهید. این کار، یک عدد کاملاً متفاوت تولید میکند که امیدواریم کمتر از هدف شبکه باشد. اگر نه، بلوک را مجددا تنظیم کرده و دوباره امتحان میکنید.
بنابراین، فرایند ماین کردن از قدرت پردازش برای انجام محاسبات هش با حداکثر سرعت ممکن تاثیر میپذیرد. نودها تلاش میکنند تا اولین کامپیوتری در شبکه باشند که هش بلوکی مطابق با سختی شبکه را به دست میآورند. اگر موفق شوند، میتوانند بلوک تراکنشهای خود را به بلاک چین اضافه کنند و آن را با بقیه شبکه به اشتراک بگذارند.
توجه: اگرچه هنوز برای هر کسی ممکن است که بلاکها را ماین کند، انجام این کار در رایانه خانگی دیگر قابل رقابت و توجیه نیست. در حال حاضر سختافزارهای تخصصی وجود دارد که برای انجام محاسبات هش با بیشترین سرعت (و تا حد امکان کارآمد) طراحی شده است، به این معنی که استخراج در حال حاضر بیشتر توسط کسانی انجام میشود که به سختافزار و برق ارزان دسترسی دارند.
بیت کوین از کجا می آید؟
ماینرها قدرت پردازش خود را برای افزودن بلوکهای جدید از تراکنشها به بلاک چین به کار می برند. برای اینکه ماینرها انگیزه ای برای این کار داشته باشند، مقداری بیتکوین جدید که قبلا وجود نداشته است، به ماینری که موفق به افزودن بلاک به زنجیره شده است، داده میشود.
این مقدار بیتکوینهای جدید، پاداش بلوک (reward) نامیده میشود و به همین دلیل است که این فرآیند «ماینینگ» نامیده میشود.
چرا این فایل "بلاک چین" نامیده می شود؟
همانطور که دیدیم، تراکنش ها به صورت جداگانه به فایل اضافه نمیشوند؛ بلکه آنها با هم جمع آوری شده و در بلوکها اضافه میشوند. هر یک از این بلوکهای جدید بر روی بلوکهای موجود ساخته میشوند. این کار از طریق افزودن هش بلاک قبلی به بلاک جدید انجام میگردد. در نتیجه، زنجیرهای از بلوکها تشکیل میشود.
نکته: هر گره در شبکه همیشه طولانیترین زنجیره بلاکهایی را که دریافت میکند بهعنوان نسخه «رسمی» بلاک چین میپذیرد. زیرا هر بلوکی که بخشی از طولانیترین زنجیره نیست توسط گرههای دیگر معتبر تلقی نمیشود.
تراکنش های بیت کوین چگونه کار می کنند؟
شما میتوانید بلاک چین را به عنوان یک مرکز ذخیرهسازی برای صندوقهای امانات، که ما آن را خروجی (Output) مینامیم، در نظر بگیرید. این خروجیها فقط کانتینرهایی هستند که مقادیر مختلفی بیت کوین را در خود جای میدهند.
هنگامی که یک تراکنش بیت کوین انجام میدهید، برخی از خروجیها را انتخاب میکنید و قفل آنها را باز میکنید، سپس خروجیهای جدید ایجاد میکنید و قفلهای جدیدی روی آنها میگذارید. بنابراین وقتی برای شخصی بیتکوین میفرستید، در واقع مقداری بیتکوین را در یک صندوق امانات جدید قرار میدهید و قفلی روی آن قرار میدهید که فقط شخصی که بیتکوینها را برایش ارسال میکنید میتواند قفل آن را باز کند.
به عنوان مثال، اگر می خواستم برای شما بیت کوین بفرستم، برخی از خروجیها را از بلاک چین انتخاب میکردم که بتوانم قفل آن را باز کنم و یک خروجی جدید از آنها ایجاد میکردم که فقط شما میتوانید قفل آن را باز کنید. همچنین، اگر نمیخواستم تمام بیتکوینهایی را که قفل کرده بودم برایتان بفرستم، یک خروجی اضافی به عنوان «تغییر» ایجاد میکردم و آن را قفل میکردم.
چگونه بیت کوین به دست آورم؟
برای اینکه بتوانید بیت کوین «دریافت» کنید، باید مجموعه ای از کلیدهای خود را داشته باشید. این مجموعه از کلیدها مانند شماره حساب و رمز عبور شما هستند که در بیت کوین به آنها کلید عمومی و کلید خصوصی میگویند. به عنوان مثال، اگر من میخواستم برای شما بیت کوین بفرستم، ابتدا باید کلید عمومی خود را به من بدهید. وقتی تراکنش را ایجاد میکنم، کلید عمومی شما را در داخل قفل خروجی (صندوق امانات) قرار میدهم. هنگامی که میخواهید بیت کوینها را برای شخص دیگری ارسال کنید، از کلید خصوصی خود برای باز کردن قفل این خروجی استفاده میکنید.
حالا سوال اینجاست که از کجا میتوان کلید عمومی و خصوصی را تهیه کرد؟ خوب، با کمک رمزنگاری میتوانید خودتان آنها را تولید کنید.
به طور خلاصه، کلید خصوصی شما فقط یک عدد تصادفی بزرگ است و کلید عمومی شما عددی است که از این کلید خصوصی محاسبه میشود. اما بخش هوشمندانه این است؛ شما میتوانید کلید عمومی خود را به شخص دیگری بدهید، اما آنها نمیتوانند کلید خصوصی را از طریق آن پیدا کنند.
اکنون، زمانی که میخواهید قفل بیتکوینهایی را که به کلید عمومی شما اختصاص داده شدهاند باز کنید، از کلید خصوصی خود استفاده میکنید (اصطلاحا امضای دیجیتال). این امضای دیجیتال ثابت میکند که شما صاحب کلید عمومی هستید و بنابراین میتوانید قفل بیت کوینها را بدون نیاز به فاش کردن کلید خصوصی خود باز کنید. این امضای دیجیتال همچنین فقط برای تراکنشی که برای آن ایجاد شده معتبر است.
این سیستم به عنوان "رمزنگاری کلید عمومی" شناخته میشود و از سال 1978 در دسترس است. بیت کوین از این سیستم استفاده میکند تا به هر کسی اجازه دهد بدون نیاز به یک نهاد مرکزی برای ایجاد حساب و رمز عبور، کلیدهایی برای ارسال و دریافت بیت کوین به صورت امن ایجاد کند.
همه مفاهیم گفته شده را در کنار هم قرار دهید
برای شروع کار با بیت کوین، کلید خصوصی و کلید عمومی خود را تولید میکنید. کلید خصوصی شما فقط یک عدد تصادفی بسیار بزرگ است و کلید عمومی شما از روی آن محاسبه میشود. این کلیدها را میتوان به راحتی در رایانه یا حتی روی چیزی به سادگی یک ماشین حساب تولید کرد. اکثر مردم از کیف پول بیت کوین برای کمک به تولید و مدیریت کلیدهای خود استفاده میکنند.
برای دریافت بیت کوین، باید کلید عمومی خود را به کسی بدهید که میخواهد مقداری بیت کوین برای شما ارسال کند. این شخص یک تراکنش ایجاد میکند که در آن قفل بیت کوینهای خود را باز کرده و یک "صندوق سپرده" جدید از بیت کوین ایجاد میکند و کلید عمومی شما را در داخل قفل قرار می دهد.
این تراکنش سپس به هر گرهای در شبکه بیت کوین ارسال میشود تا همه گرهها در شبکه یک کپی از تراکنش داشته باشند.
سپس، هر گره تلاش میکند تراکنشها را از استخر حافظه خود در یک بلوک جمعآوری کرده و به طور مکرر هش بلوک را محاسبه کند. اگر که هش بلوک مطابق با هدف شبکه نبود، تغییر جزئی در بلوک ایجاد میشود و فرایند هش کردن مجددا تکرار میشود. این فرایند آنقدر ادامه مییابد تا یکی از ماینرها، هش مورد نظر را به دست آورد. سپس، آن ماینر بلوک را به بلاک چین خود اضافه میکند و این بلوک را به گرههای دیگر شبکه پخش میکند. سایر گرههای شبکه نیز این بلوک را به بلاک چین خود اضافه کرده و هر گونه تراکنش متناقض را از استخر حافظه خود حذف میکنند. سپس، فرآیند ماین کردن بلوک بعدی مجددا آغاز میشود.
نتیجه گیری
بیت کوین یک برنامه کامپیوتری است که یک فایل امن را با رایانههای دیگر در سراسر جهان به اشتراک میگذارد. این فایل امن از تراکنشها تشکیل شده است و این تراکنشها از رمزنگاری استفاده میکنند. در نتیجه، بیت کوین سیستم پرداخت الکترونیکی را ایجاد میکند که میتواند توسط هر کسی استفاده شود، بدون اینکه نیازی به نهاد مرکزی (مانند بانک) وجود داشته باشد.
شبکه بیت کوین از زمان انتشار آن در ژانویه 2009 بدون وقفه در حال اجرا بوده است. خود برنامه بیت کوین نیز در حال توسعه فعال است و بیش از 600 نفر از زمان انتشار آن در کد سهیم هستند. این به دلیل این واقعیت است که نرم افزار "اوپن سورس یا متن باز" است، به این معنی که هر کسی میتواند کد را مشاهده کند و در بهبود آن کمک کند.
منابع بیشتر برای مطالعه:
https://developer.bitcoin.org
https://www.investopedia.com/news/how-bitcoin-works
https://learnmeabitcoin.com
ثبت دیدگاه و سوالات