بیتکوین (₿: Bitcoin) یک ارز رمزگذاری شده، یک شکل از اسکناس الکترونیکی است. یک ارز دیجیتالی مرکززداییشده که بدون یک بانک مرکزی یا مدیریت واحد عمل میکند. بیتکوین میتواند از سوی یک کاربر به کاربر دیگر بر روی شبکهی فرد به فرد (peer-to-peer) بیتکوین، بدون نیاز به واسطهها ارسال شود. معاملات از طریق گرههای شبکه تائید و رمزگذاری میشوند و بر روی یک دفتر کلی که به آن یک حلقه یا زنجیرهیقطعه (blockchain) گفته میشود ثبت میشوند. مخترع یا مخترعان بیتکویت از نام مستعار ساتوشی ناکاموتو برای معرفی خود استفاده کردند و نرمافزار منبع باز آن را در سال 2009 ارائه دادند. بیتکوین به عنوان جایزه برای فرایندی که تحتعنوان معدنکاوی (mining) از آن یاد میشود به وجود آمدند. بیتکوین را میتوان با ارزها، محصولات، و خدمات دیگر مبادله کرد.
در موارد زیادی بیتکوین به دلیل مورد استفاده قرار گرفتن در معاملات غیرمجاز، مصرف برق بالایی که دارد، نوسان قیمت، مورد سرقت قرار گرفتن در برخی معاملات، و این احتمال که نوعی حباب اقتصادی باشد مورد نقد قرار گرفته است. همچنین به عنوان نوعی سرمایهگذاری مورد استفاده قرار میگیرد، و این در حالی است که چندین نهاد قانونگذاری در مورد استفاده از بیتکوین هشدارهایی صادر کردهاند.
بیتکوین یک سیستم طراحی شده برای مبادلهی امن ارز دیجیتالی است. این سیستم قطعات و اجزایی دارد که در ادامه به معرفی آنها پرداخته میشود.
1- زنجیرهیقطعه
زنجیرهیقطعه (blockchain) یک دفتر عمومی است که معاملات بیتکوین در آن ثبت میشوند. این دفتر به عنوان زنجیرهای از قطعهها کاشته میشود که در آن هر قطعه خردهای از قطعهی قبل را در خود دارد و این زنجیرهی تا قطعهی پیدایش زنجیره (genesis block) به عقب بر میگردد. نگهداری از زنجیرهیقطعه توسط شبکهای از گرههای مرتبط به هم که نرمافزار بیتکوین را به کار میگیرند اجرا میشود. معاملاتی که به این صورت که پرداختکننده الف مبلغ ب بیتکوین را به دریافتکنندهی ج باشند بر روی این شبکه با به کارگیری نرمافزارهای از پیش آماده پوشش داده میشوند. گرههای شبکه میتوانند به معاملات اعتبار دهند، آنها را به رونوشتهای دفتر خود اضافه کنند، و بعد این اضافههای دفتری خود را برای گرههای دیگر مخابره کنند. برای دستیابی به تائید کردن مستقل زنجیرهی مالکیت هر یک از گرههای شبکه رونوشت خاص خودش از زنجیرهیقطعه را ذخیره میکند. هر 10 دقیقه یک بار، یک گروه جدید از معاملات تائید شده که به آن قطعه گفته میشود ساخته شده و به زنجیره اضافه میشود، و به سرعت برای تمام گرههای منتشر میشود. این به شبکهی بیتکوین امکان میدهد تا تخمین بزند فلان بیتکوین مشخص در چه زمانی خرج شده است، که برای جلوگیری از دوبارهخرجکردن (double-spending) در شبکه، بدون وجود یک نظارت مرکزی مورد نیاز است. یک دفتر حساب معمولی بیلانها و موعدهای پرداخت (سررسیدها) واقعی که بیرون از آن وجود دارند را ثبت میکند، اما زنجیرهیقطعه تنها جایی است که میتوان گفت بیتکوین در آن به صورت خروجیهای خرجنشدنی معاملات (UTXO) وجود دارد.
2- معاملات
معاملات بیتکوین از طریق یک زبان برنامهنویسی مشابه زبانهای نسلچهارم انجام میشود. این معاملات شامل یک یا چند ورودی و یک یا چند خروجی هستند. وقتی یک کاربر بیتکوین میفرستد، یک آدرس تعیین میکند و مبلغی را مشخص میکند که در یک خروجی به آن آدرس میرود. برای جلوگیری از دوباره خرج کردن، هر کدام از ورودیها باید به یکی از خروجیهای خرجنشدنی معاملات در زنجیرهیقطعه ارجاع دهد. استفاده از ورودیهای چندگانه پاسخگوی نیاز به استفاده از سکههای چندگانه در یک معاملهی نقدی است. از آنجا که معاملات میتوانند خروجیهای چندگانهای داشته باشند، کاربران میتوانند برای چندین دریافتکننده در یک معامله بیتکوین بفرستند. درست مثل یک معاملهی نقدی مجموع ورودیها (سکههایی که برای پرداخت استفاده میشود) میتواند بالغ بر جمع پرداختها باشد. در چنین موردی، اگر یک خروجی اضافی مورد استفاده قرار گرفته باشد، مابهالتفاوت به پرداختکننده باز گردانده میشود. هر ساتوشی (satoshi: کوچکترین واحد بیتکوین) ورودی که در خروجیهای معامله مورد محاسبه قرار نگیرد تبدیل به نرخ معامله میشود.
3- واحدها
واحد محاسبهی معاملات سیستم بیتکوین یک بیتکوین است. شاخصهای نمادین BTC و XBT برای اشاره به بیتکوین مورد استفاده قرار میگیرند. کاراکتر یونیکد بیتکوین ₿ است. مقدارهای کوچک بیتکوین که به عنوان آلترناتیو مورد استفاده قرار میگیرند شامل واحدهای میلیبیتکوین (mBTC) و ساتوشی (sat) میشود. کوچکترین واحد بیتکوین برای گرامیداشت بنیانگذار آن ساتوشی خوانده میشود که برابر 0.00000001 بیتکوین، یعنی یک صدمیلیونم بیتکوین است. یک میلیبیتکوین برابر 0.001 بیتکوین، یعنی یکهزارم بیتکوین یا 100.000 ساتوشی است.
4- نرخهای معامله
با وجود اینکه نرخهای معامله اختیاری هستند، کاوندگان میتوانند انتخاب کنند که کدام معاملات را جلو بیاندازند و به آنهایی که نرخ بالاتری پرداخت کنند اولویت میدهند. کاوندگان میتوانند نرخ معاملات را بر اساس نسبتی که حجم ذخیرهشان دارند انتخاب کنند و نه بر اساس مبلغ مطلق پولی که به عنوان نرخ پرداخت شود. این نرخها عموما با واحد ساتوشیدربایت (sat/b) تعیین میشوند. حجم معاملات وابسته به تعداد ورودیهایی است که برای ساختن معامله، و تعداد خروجیها مورد استفاده قرار میگیرد.
5- مالکیت
در زنجیرهیقطعه، بیتکوینها به آدرسهای بیتکوین وارد میشوند. ساختن یک آدرس بیتکوین چیزی بیشتر از برداشتن یک کلید خصوصی معتبر تصادفی و محاسبهی آدرس بیتکوین متناظر آن نیست. این محاسبه میتواند در کسری از ثانیه اتفاق بیافتد. اما بر عکس این (محاسبهی کلید خصوصی یک آدرس بیتکوین فرضی) از نظر ریاضیاتی غیراجرایی است، و به این ترتیب کاربران میتوانند یک آدرس بیتکوین را به دیگران بگویند و آن را عمومی کنند بدون اینکه کلید خصوصی متناظر آن را افشا کنند. علاوه بر این تعداد کلیدهای خصوصی چنان گسترده است که خیلی بعید است کسی بتواند یک کلید-جفت که مورد معامله است و پول در آن است را محاسبه کند. تعداد گستردهی کلیدهای خصوصی معتبر باعث میشود اعمال نیروی زور برای یافتن آن کارایی نداشته باشد. برای خرج کردن بیتکوین، مالک باید کلید خصوصی متناظر را بداند و معامله را امضای دیجیتال کند. شبکه این امضا را از طریق کلید عمومی مورد تائید قرار میدهد.
اگر کلید خصوصی گم شود شبکهی بیتکوین هیچ نوع مدرک مالکیت دیگری را به رسمیت نمیشناسد، و به این ترتیب سکهها غیرقابل استفاده، و در نتیجه گم میشوند. برای مثال در سال 2013 یکی از کاربران ادعا کرد که 7500 بیتکوین که آن زمان 7.5 میلیون دلار ارزش داشت را وقتی که اتفاقی هارددیسکی که کلیدهای خصوصیاش در آنها بوده را از دست داده گم کرده است. یک بکآپ از کلیدهای خصوصی میتوانست مانع این اتفاق شود.
این باور وجود دارد که حدود 20% از تمام بیتکوینها گم شدهاند. سکههای گم شده بر اساس قیمتها در ژولای 2018 ارزش بازاری حدود 20میلیارد دلار داشتهاند. تقریبا چیزی حدود یک میلیون بیتکوین نیز دزدیده شدهاند که مطابق قیمتهای ژولای 2018 ارزشی حدود 7 میلیارد دلار داشتهاند.
6- کاویدن
کاویدن (Mining) نوعی خدمات نگهداری ثبتها است که از طریق قدرت پردازش کامپیوتر انجام میشود. کاوندگان زنجیرهیقطعه را از طریق گروهیسازی مکرر معاملات تازه مخابره شده در یک قطعه که بعد به شبکه مخابره میشوند و از طریق گرههای دریافتکننده تائید میشوند هماهنگ، کامل، و غیرقابل تغییر میسازند. هر قطعه حاوی یک هشرمزگذاری SHA-256 است که با قطعهی قبلی رابطه برقرار میکند، و به این ترتیب آن را به قطعهی قبلی پیوند داده و به زنجیرهیقطعه نام خود را میدهد. یک قطعهی تازه برای اینکه مورد قبول باقی شبکه قرار بگیرد باید حاوی یک به اصطلاح گواهی-کار (proof-of-work) باشد.
سیستم گواهی-کار، در کنار زنجیرهسازی قطعهها، اصلاح کردن زنجیرهیقطعه ها، که چیزی است که یک مهاجم برای به دست آوردن قطعههای متوالی و پذیرفته شدن به آن نیاز دارد را به غایت سخت میکند. از آنجا که قطعههای تازه همواره مورد کاویدن قرار میگیرند دشوار و سختی اصلاح یک قطعه با گذشتن زمان و افزایش تعداد قطعههای متعاقب (که به آن تائیدسازی یک قطعه هم گفته میشود) بالاتر میرود.
7- کیف پول
اطلاعات ضروری برای انتقال و معاملهی بیتکوینها در یک کیف پول ذخیره میشود. در حالی که کیفپول معمولا به عنوان محلی برای نگهداری و ذخیرهی بیتکوین تعریف توصیف میشود، با توجه به طبیعت سیستم، بیتکوینها از دفتر معاملهی زنجیرهیقطعه تفکیکناپذیر هستند.