شبکه بیت کوین چگونه کار میکند و تراکنش های آن چگونه انجام میشود؟

فهرست مطالب [مخفی]
- 1. شبکه بیت کوین چگونه کار میکند و تراکنش های آن چگونه انجام میشود؟
- 2. دقیقاً بیت کوین چیست؟
- 3. زمانی که بیت کوین ارسال میکنید چه اتفاقی رخ میدهد؟
- 4. امضای دیجیتال و کلیدهای عمومی و خصوصی
- 5. موجودی هر کیف پول چگونه مشخص میشود؟
- 6. بینهایت آدرس
- 7. بلاک و بلاک چین
- 8. ماینینگ بیت کوین
- 8.1 سختی استخراج
- 8.2 استخر استخراج
- 8.3 استخراج دو بلاک همزمان
- 9. جمع بندی
شبکه بیت کوین چگونه کار میکند و تراکنش های آن چگونه انجام میشود؟
شبکه بیت کوین چگونه کار میکند؟ تراکنش های بیت کوین چگونه انجام میشوند؟ وقتی یک تراکنش ارسال میکنید، چه اتفاقی در پشت پرده رخ میدهد؟
ماینینگ بیت کوین چیست؟ داشتن بیت کوین دقیقاً به چه معناست؟ در این مطلب قصد داریم با نگاهی عمیق به شبکه بیت کوین، نحوه کار شبکه بیت کوین را با جزئیات فنی توضیح دهیم.
قبل از هر چیز، باید بدانید که برای استفاده از بیت کوین نیازی به داشتن دانش فنی نیست، همانطور که برای استفاده از اینترنت نیاز نیست بدانید اینترنت چگونه کار میکند.
اگر دوست ندارید خیلی درگیر مبانی فنی شوید، میتوانید به مقاله «بیت کوین چیست» مراجعه کنید و از نظر تئوری درباره چگونگی کار بیت کوین بخوانید.
همچنین لازم به ذکر است که این مقاله، بیت کوین را نه کاملاً فنی بلکه بهنوعی «نیمه فنی» توضیح میدهد. شبکه بیت کوین دارای اجزای بسیار پیچیدهای است که پرداختن به همه آنها با جزئیات کامل، نیاز به نگارش یک کتاب قطور دارد.
با این حال، در این مقاله سعی شده است که تا جای ممکن به سؤالات متداول مربوط به چگونگی کار شبکه بیت کوین پاسخ داده شود.
اکنون که کیف پول بیت کوین خود را راهاندازی کرده و آمادهٔ انجام اولین تراکنش خود هستید، بیایید نگاهی بهنحوهٔ کار تراکنش های بیت کوین بیندازیم.
در تراکنش های بیت کوین سه متغیر کلیدی وجود دارد: مقدار، ورودی و خروجی. یک ورودی همان آدرسی است که پول از طرف آن ارسال شده است.
خروجی، آدرسی است که وجوه را دریافت میکند. از آنجایی که یک کیف پول میتواند محتوی چندین آدرس ورودی باشد، شما میتوانید پول را از یک یا چند ورودی به یک یا چند خروجی ارسال کنید.
همچنین در تراکنش های بیت کوین یک بخش برای نگهداری از دادهها وجود داشته که اجازهٔ ثبت بدون تغییر دادهها را در بلاک چین میدهد.
برای کسب اطلاعات بیشتر در مورد کیف پول بیت کوین میتوانید از مطلب آموزشی «کیف پول بیت کوین» دیدن نمایید.
ولی نکتهٔ منحصربهفرد در مورد تراکنش های بیت کوین این است که اگر شما یک تراکنش یا معامله را که ارزش آن کمتر از کل مقدار موجود در ورودی شما است آغاز کنید، باقیماندهٔ موجودی شما به خروجی اصلی شما بازگردانده نمیشود.
در واقع، این باقیمانده از طریق یک آدرس ثالث جدید در اختیار شما قرار خواهد گرفت. این موضوع بدین معنا است که کیف پول شما عموماً محتوی چندین آدرس بوده و شما میتوانید وجوه خود را از طریق این آدرسها جابهجا کرده و از آن برای انجام معاملات خود استفاده کنید.
تاکنون آموختهاید که چگونه بیت کوین بخرید و چگونه آن را ذخیره کنید. بنابراین میدانید که کلیدهای خصوصی و عمومی چه هستند و همچنین میدانید که برای انجام تراکنش های خود به آنها نیاز دارید.
برای انجام یک تراکنش، کلید خصوصی، مقدار بیت کوینی که قصد ارسال آن را دارید و آدرس خروجی را بر روی نرمافزار بیت کوین موجود در کامپیوتر یا گوشی هوشمند خود وارد کنید.
چگونه بیت کوین خود را ذخیره کنیم؟
در مرحلهٔ بعد، نرمافزار، امضای ایجاد شده از طرف کلید خصوصی شما را تولید کرده تا این تراکنش را جهت اعتبارسنجی و تأیید به شبکه اعلام کند.
باید این موضوع برای شبکه اثبات شود که بیت کوین منتقل شده به شما تعلق داشته و تاکنون آن را خرج نکردهاید.
برای اینکه این دو مورد اثبات شود، شبکه تمام تراکنش های قبلی را که بهصورت عمومی بر روی شبکه قرار دارند بررسی میکند.
زمانی که شبکه بیت کوین صحت تناسب کلید خصوصی شما را با کلید عمومی ارائه شده اثبات کند – بدون دانستن اینکه کلید خصوصی شما چیست – تراکنش شما تأیید میشود.
اکنون این تراکنش در یک “بلاک” گنجانده شده و به بلاک قبلی ضمیمه میشود و در نهایت تراکنش به بلاک چین افزوده میشود.
هر تراکنش به یک شناساگر منحصربهفرد به نام شناسه تراکنش (txid) متصل است. این شناساگر شبیه به یک رشته 64 کاراکتری از اعداد و حروف تصادفی است.
شما میتوانید با وارد کردن شناسهٔ تراکنش بر روی نوار جستجوی اکسپلورر بلاک چین به ردیابی و جستجوی یک تراکنش مشخص بپردازید.
تراکنشها نمیتوانند ناتمام بمانند و یا نمیتوان در آنها مداخله کرد، زیرا اگر چنین شود میبایست تمام بلوکهای وارد شده به بلاک چین را مجدداً وارد شبکه کرد.
فرآیند انجام تراکنش یک فرآیند آنی و فوری نیست. از آنجایی که بلاک چین بیت کوین یک شبکه نسبتاً بزرگ است و تراکنش های بسیار زیادی در آن در حال انجام است، زمان زیادی صرف پردازش یک تراکنش در شبکه بلاک چین میشود.
زمان لازم برای تأیید تراکنش های بیت کوین متفاوت بوده و بسته به ترافیک بلاک چین و اندازهٔ تراکنش شما بین چند دقیقه تا چند روز به طول میانجامد.
ماینرها تمایل دارند تا تراکنش های بزرگتر با هزینهٔ بیشتر را سریعتر از تراکنش های کوچکتر انجام دهند. زمانی که تراکنش شما تأیید شد، این تراکنش بهطور تغییرناپذیر و برای همیشه ثبت میشود.
اگر تمایل به مشاهدهٔ تراکنش های بیت کوین در شبکه دارید میتوانید به سایت Blockchain.info مراجعه کنید.
دقیقاً بیت کوین چیست؟
از اساسیترین نگاه، بیت کوین یک برنامه کامپیوتری است. بخش بزرگی از این برنامه یک فایل دیجیتال است.
این فایل دیجیتال که دفتر کل (ledger) نام دارد، شبیه به دفتر حسابوکتاب سنتی عمل کرده و حسابها و موجودی هر نفر را در خود ثبت میکند.
یکی از چیزهایی که بیت کوین را از سیستمهای متمرکز متمایز میکند، نحوه نگهداری و بهروزرسانی دفتر کل است.
در بیت کوین بهجای یک نهاد مرکزی، دفتر کل بهصورت گروهی و اشتراکی توسط اعضای شبکه نگهداری میشود.
این یعنی هرکسی میتواند از دفتر کل نگهداری کرده و آن را بهروز کند. به هر کامپیوتری که بهطور مستقیم به شبکه متصل شود و دفتر کل را دریافت کند، نود (Node) گفته میشود.
در سیستمهای متمرکز شما مجبور به اعتماد کورکورانه هستید. وقتی در سیستم بانکی برای کسی پول واریز میکنید، درواقع به بانک اعتماد کردهاید که پول را به حساب فرد واریز خواهد کرد و پول شما بلوکه نخواهد شد.
اما در بیت کوین با ریاضیات، منطق و رمزنگاری نیاز به اعتماد از بین میرود. درواقع بهجای اعتماد به یک نهاد متمرکز که میتواند مرتکب خطای عمدی یا غیرعمدی شود، به منطق و ریاضیات اعتماد میکنید.
تمام چیزی که در بیت کوین با آن سروکار داریم را میتوان در این یکی دو جمله خلاصه کرد: سیستمی که به همه (کامپیوترها) اجازه میدهد در نگهداری سابقه تراکنشها سهیم باشند + ویژگیهای امنیتی برای جلوگیری از تقلب و حمله به شبکه.
زمانی که بیت کوین ارسال میکنید چه اتفاقی رخ میدهد؟
گفتیم که همه افراد میتوانند در حفظ و نگهداری دفتر کل بیت کوین سهیم باشند. در سادهترین توضیح، هنگام ارسال بیت کوین به شبکه اعلام میکنید که مقداری از حساب شما کسر شود و به حساب گیرنده واریز شود.
نودها یا همان کامپیوترهای موجود در شبکه بیت کوین، پیام شما را دریافت کرده و آن را در دفترهای خود اعمال میکنند. سپس پیام را به دیگر نودها پاس میدهند.
بانکها هم یک دفتر کل دیجیتال دارند که تراکنشها و دارایی مشتریان در آن ثبت شده است. مثلاً دیوید 10 میلیون تومان پول دارد و مایکل ۵ میلیون تومان؛ این اطلاعات روی دفتر کل بانکها ثبت میشود.
وقتی دیوید ۵ میلیون تومان برای مایکل میفرستد، در دفتر کل موجود در بانک، ۵ میلیون تومان از حساب دیوید کسر میشود و به حساب مایکل واریز میشود.
در هنگام انجام تراکنش بانکی، پول فیزیکی منتقل نمیشود، بلکه فقط مالکیت پول تغییر میکند.
در بیت کوین، اگر بهنام بخواهد برای شهرام ۵ بیت کوین ارسال کند، باید درخواستش را به شبکه اعلام کند که «۵ بیت کوین از من کم کن و ۵ بیت کوین به شهرام اضافه کن.»
هر نود در شبکه، پیام را دریافت کرده و کپیِ دفتر حسابوکتاب خود را طبق این درخواست بهروز میکند. همه این فرایند بهصورت دیجیتالی انجام میشود.
امضای دیجیتال و کلیدهای عمومی و خصوصی
همانطور که اشاره شد، درخواست تراکنش از سوی یک کاربر به شبکه ارسال میشود و کامپیوترهای فعال در شبکه آن را اعمال میکنند.
اما آنها چگونه مطمئن میشوند که این درخواست معتبر است؟ اگر کسی که این پیام را فرستاده است، واقعاً بیت کوین نداشته باشد چه؟
وقتی یک چک را برای نقد کردن به بانک میبرید، اولین چیزی که کارمند بانک برای انجام درخواست شما بررسی میکند چیست؟ درست حدس زدید: امضای فرد دارنده دسته چک.
در شبکه بیت کوین هم هر پیامِ تراکنش باید امضای معتبر داشته باشد تا قبول شود، اما نه امضای دستنویس؛ امضایی از جنس دیجیتال، چیزی که نتوان آن را جعل کرد.
در درون هر کیف پول بیت کوین، دو رشته متنی وجود دارد که مجزا هستند، اما با هم ارتباط مکمل دارند: کلید عمومی (Public Key) و کلید خصوصی (Private Key).
امین برای ارسال بیت کوین باید پیام تراکنش را با کلید خصوصی کیف پولش امضا و به شبکه ارسال کند. به این شکل، بدون اینکه نیاز به استفاده از نام و مشخصات هویتی در شبکه بیت کوین باشد، مشخص میشود که بیت کوینها دقیقاً از طریق کیف پول امین ارسال شدهاند و فرد دیگری به دروغ این پیام را به شبکه نفرستاده است.
داشتن کلید خصوصی به منزله داشتن داراییها است. برای همین گفته میشود که هرگز نباید کلید خصوصی کیف پول خود را در اختیار فرد دیگری قرار بدهید.
هر نود، امضای تراکنش امین را بررسی میکند تا از درستی آن مطمئن شود. اما چگونه شبکه میتواند بدون داشتن کلید خصوصی، از اعتبار امضای دیجیتال اطمینان حاصل کند؟
اینجاست که کلید عمومی بهکار میآید. با استفاده از کلید عمومی که افشای آن هیچ مشکلی ندارد، نودها میتوانند بدون دیدن کلید خصوصی، از اعتبار امضای تراکنش اطمینان حاصل کنند.
امضای دیجیتال برای هر تراکنش منحصر بهفرد است و با هرگونه تغییر در درخواست تراکنش، امضا بهطور کامل تغییر میکند. به این ترتیب، نمیتوان پیامهای درخواست تراکنش را تغییر داد.
موجودی هر کیف پول چگونه مشخص میشود؟
سیستم بیت کوین میزان موجودی حسابها را ذخیره نمیکند و اصلاً در بطن این شبکه چیزی بهنام «حساب» تعریف نشده است.
در بیت کوین تنها چیزی که ثبت میشود تاریخچه تراکنشها است. دفتر کل بیت کوین فقط سوابق تراکنشها را ذخیره میکند و بنابراین، بهجای ذخیره موجودی حسابها، مالکیت در بیت کوین براساس تراکنش های قبلی تعیین میشود.
تا به اینجا میدانیم که با الزام امضای دیجیتال در تراکنش های بیت کوین، کسی نمیتواند پیام غیرمعتبر خود را در شبکه اعمال کند، اما فرض کنیم که مالک یک کلید خصوصی هستید و با امضای معتبر تراکنش را ارسال میکنید، شبکه چگونه متوجه میشود که موجودی کافی دارید؟
اگر بهعنوان مثال، 0.1 بیت کوین موجودی داشته باشید، اما بخواهید 1 بیت کوین برای کسی ارسال کنید، شبکه چگونه متوجه این ایراد میشود؟
اگر فردی قصد ارسال 10 بیت کوین را داشته باشد، درخواست تراکنش او دارای پیوندهایی به تراکنش های ورودی قبلی است که جمع میزان آنها باید حداقل 10 بیت کوین باشد تا تراکنش انجام شود.
به این پیوندها اصطلاحاً «اینپوت» (input) یا ورودی میگویند.
به بیان ساده، وقتی قصد ارسال بیت کوین دارید، به شبکه بیت کوین تراکنش های قبلی خود را نشان میدهید و میگویید اینها مدارکی هستند که نشان میدهند شما این میزان بیت کوین را دارید.
نودهای شبکه مقدار را بررسی کرده و مطمئن میشوند که موجودی کافی است. در حقیقت یک بار خود برنامه کیف پول مقدار موجودی شما را بررسی میکند و یک بار نودهای شبکه این کار را با استفاده از اطلاعات تراکنش های قبلی انجام میدهند.
این فرایند موجب میشود که دوبار خرج کردن (خرج کردن دوباره بیت کوین) امکانپذیر نباشد.
برای درک بهتر، بیایید یک تراکنش واقعی بیت کوین را بررسی کنیم. تصویر زیر اطلاعات درون یک تراکنش واقعی بیت کوین را نشان میدهد:
(عکس)
این تراکنش به 6 ورودی اشاره دارد که مجموعشان 139.6 واحد بیت کوین میشود. در بخش خروجی (Recipients یا همان output)، دو خط به چشم میخورد. اولین خط، مقدار بیت کوینی است که پس از انجام تراکنش به آدرس فرستنده برگشت داده شده است.
این مانند این است که به یک فروشنده برای خرید یک قهوه 9 هزار تومانی یک اسکناس 10 هزار تومانی پرداخت کنید و هزار تومان پس بگیرید.
روند کار اینگونه است که هر ورودی باید بهطور کامل در یک تراکنش مصرف شود. بنابراین، اگر یک ورودی نداشته باشید که دقیقاً برابر با مقدار تراکنش شما باشد (که در اغلب مواقع همینطور است)، از ورودیهای دیگر استفاده میکنید و مقدار باقیمانده به خودتان بازمیگردد.
داشتن بیت کوین بدان معناست که در شبکه بیت کوین تراکنش هایی دارید که خرج نشدهاند.
بینهایت آدرس
هر کس میتواند بدون نیاز به وارد کردن نام یا مشخصات خود به شبکه بیت کوین متصل شود. شبکه بیت کوین اجازه ساخت هر تعداد کیف پولی را به کاربران میدهد و هر کیف پول یک کلید خصوصی خاص خودش را دارد.
شاید فکر کنید که تولید یک کلید عمومی برای ساخت آدرس کیف پول، بهمعنای مشخص شدن هویت شخصی شما باشد، اما این قدم هم ناشناس است و حتی میتواند بدون نیاز به اینترنت انجام شود. بهسادگی و با یک کلیک میتوانید در کیف پول خود کلیدهای جدید بسازید.
اما یک مسئله: در هنگام ساخت کیف پول امکان بررسی تکراری بودن یا نبودن آدرس یا کلید نیست.
برای اینکه جمله بالا را بهتر درک کنید، فرایند ساخت ایمیل را در نظر بگیرید. هنگامی که قصد ساخت ایمیل دارید، سرویس ایمیل دهی (مثل جیمیل) از شما میخواهد که یک آدرس ایمیل برای خود مشخص کنید.
شما آدرس دلخواه خود را وارد میکنید، اما سیستم به شما میگوید که این آدرس ثبت شده است و نمیتوانید آن را برای خود بردارید.
در بیت کوین اینگونه نیست. بنابراین، اگر بتوانید کلید خصوصی یک نفر را حدس بزنید، به داراییهای او دسترسی خواهید داشت. اما حدس کلید خصوصی تقریباً محال است. چرا؟
حداکثر تعداد آدرسهای احتمالی بیت کوین دو به توان صد است یعنی ۱۴۶۱۵۰۱۶۳۷۳۳۰۹۰۲۹۱۸۲۰۳۶۸۴۸۳۲۷۱۶۲۸۳۰۱۹۶۵۵۹۳۲۵۴۲۹۷۶ احتمال برای آدرسهای بیت کوین وجود دارد.
برای اینکه بزرگی این عدد را خوب درک کنید به این مثال توجه کنید:
تخمین زده میشود که تعداد دانههای شن و ماسه در دنیا تقریبا 7.5 میلیون تریلیون باشد. حالا فرض کنید هر دانه شن یک کره زمین باشد و با احتساب شنهای این کرههای زمین، بازهم رقمی که بهدست میآید خیلی پایینتر از احتمال آدرسهای بیت کوین است.
این موضوع باعث میشود تا هک یا حملات سایبری با استفاده از حدس زدن کلیدها غیرممکن باشد.
بلاک و بلاک چین
تا اینجا به لطف امضای دیجیتال و مفهوم ورودی و خروجی در تراکنشها، مطمئن هستیم که کسی نمیتواند تراکنش غیرمعتبر ارسال کند یا بیشتر از موجودی خود انتقال دهد. اما بازهم امنیت بهشکل کامل در شبکه بیت کوین برقرار نشده است.
همانطور که بالاتر گفته شد، تراکنشها پس از ارسال به شبکه، از نودی به نود دیگر منتقل میشوند. بنابراین ترتیب رسیدن دو تراکنش مختلف به یک نود میتواند متفاوت باشد.
یک کاربر خرابکار میتواند به فرد دیگری بیت کوین بفرستد و بعد از اینکه آن فرد کالا یا پول بیت کوین را داد، تراکنشی مخالف تراکنش قبلی بفرستد و در این صورت، بهدلیل عدم وجود ترتیب زمانی، نودها ممکن است تراکنش دوم را زودتر دریافت کنند و عملاً بیت کوینها دوبار خرج شود.
بنابراین چگونه میتوان فهمید که چه تراکنشی زودتر ارسال شده است؟
برای حل این مشکل، در شبکه بیت کوین سیستم بلاک چینی در نظر گرفته شده است. شبکه بیت کوین تراکنشها را با گذاشتن آنها در بستههایی بهنام «بلاک» (Block) مرتب میکند.
حداکثر حجم بلاک بیت کوین حدود 1 مگابایت است و در هر بلاک بیت کوین بهطور میانگین حداکثر 2.5 هزار تراکنش جای میگیرد.
بلاکهای بیت کوین بهطور میانگین هر ده دقیقه یکبار طی فرایند ماینینگ ایجاد میشوند که در ادامه درباره آن میخوانید.
هر بلاک یک هش (بخوانید شناسه منحصر بهفرد) و هش بلاک قبلی را در خود دارد. در واقع بلاکها به ترتیب به یکدیگر متصل هستند و یک زنجیره را شکل دادهاند.
اگر چیزی داخل یک بلاک تغییر کند، هش بلاک هم تغییر میکند و به این ترتیب بلاکهای دیگر غیرمعتبر میشوند. از این رو گفته میشود بلاک چین تغییرناپذیر است.
تمام تراکنش هایی که در یک بلاک خاص قرار دارند، بهعنوان تراکنش های ارسالشده در یک زمان در نظر گرفته میشوند و تراکنش هایی که هنوز در بلاک وارد نشده باشند، بهعنوان تأییدنشده یا آنکانفرم (unconfirmed) برچسب میخورند.
زمانی که تراکنش در بلاک ثبت شود و آن بلاک به شبکه ارسال شود، تراکنش یک تأیید (confirm) میخورد. زمانی که بلاکهای جدیدی روی بلاک تراکنش قبلی ثبت شوند، تعداد تأیید هم به همان میزان بالا میرود.
ماینینگ بیت کوین
ماینینگ (mining) اصلیترین چیزی است که امنیت شبکه بیت کوین را تأمین میکند. هر نود میتواند تراکنشها را در یک بلاک قرار دهد و آنها را به دیگر نودها مخابره کند، اما برای جلوگیری از ایجاد بلاکهای متعدد، دستکاری بلاک چین و حمله به بیت کوین، برای ساخت بلاک یک شرط وجود دارد و آن این است که نود باید ماینر یا استخراجکننده باشد.
برای اینکه بلاکها به بلاک چین اضافه شوند، هر بلاک باید دارای جواب یک مسئله ریاضی پیچیده باشد. با بهرهمندی از فناوری «تابع هش رمزنگاری»، تنها راهِ حل کردن مسئله ریاضی، حدس زدن اعداد است.
بهعمل پیدا کردن معادله بلاکها، «استخراج» یا همان ماینینگ میگویند. حدس زدن مداوم اعداد هم فقط با سختافزارهای کامپیوتری که قدرت پردازش دارند، قابل انجام است و این فرایند برق مصرف میکند.
نام علمی ماینینگ، «اثبات کار» (Proof Of Work) است. درواقع استخراجکنندگان با قدرت پردازش سختافزارهای خود اثبات میکنند که به پروتکل بیت کوین پایبند هستند.
اگر کسی بخواهد به شبکه بیت کوین حمله کند، مجبور است بیش از 50 درصد از قدرت پردازش بیت کوین را از آن خود کند. با توجه به گسترش شبکه بیت کوین، این کار بسیار هزینهبر است و از نظر منطقی توجیه ندارد.
برای ایجاد انگیزه در ماینرها در افزایش امنیت شبکه و همچنین تولید واحدهای بیت کوین جدید بهصورت غیرمتمرکز، برای پیدا کردن جواب معادله بلاکها پاداش در نظر گرفته شده است.
پاداش بلاک بیت کوین ابتدا 50 واحد بیت کوین بود، اما این پاداش پس از هر 2000,000 بلاک (تقریباً هر چهار سال یکبار) نصف میشود. در حال حاضر پاداش بلاک بیت کوین 6.25 واحد است.
همچنین تراکنش های بیت کوین دارای کارمزد هستند. ماینرها اغلب تراکنش هایی را داخل بلاک قرار میدهند که کارمزد بهتری دارند و بنابراین تراکنش هایی که کارمزد بالاتر دارند، زودتر تأیید خواهند شد.
کاربر خودش حق دارد که کارمزد تراکنشش را مشخص کند، اما اگر برای تراکنش خود کارمزد مناسب مشخص نکنید، تأیید تراکنش میتواند تا چند روز طول بکشد یا اصلاً تایید نشود. علاوه بر پاداش بلاک، میزان کل کارمزد تراکنش های یک بلاک هم به ماینر تعلق میگیرد.
سختی استخراج
بهدلیل اینکه زمان بلاک بیت کوین 10 دقیقه است، تقریباً هر ده دقیقه بیت کوینهای جدید تولید میشوند و به یک ماینر تعلق میگیرند.
حالا ممکن است که یک ماینر بسیار قدرتمند بتواند جواب معادله را مثلاً در 5 دقیقه پیدا کند. این باعث اختلال در کار شبکه و استخراج سریع تمام واحدهای بیت کوین خواهد شد. به همین منظور، چیزی بهنام سختی شبکه در بیت کوین تعبیه شده است.
شبکه بهطور خودکار نسبت به قدرت پردازش موجود، سختی پیدا کردن پاسخ معادلات را کم و زیاد میکند تا ماینرها بتوانند بهطور میانگین در ده دقیقه به جواب برسند، نه بیشتر نه کمتر.
با اضافه شدن قدرت پردازش ماینرها، سختی افزایش مییابد و با کم شدن آن، سختی هم کمتر میشود. در شبکه بیت کوین، سختی شبکه بعد از هر 2,016 بلاک (تقریباً هر دو هفته یکبار) تنظیم میشود.
استخر استخراج
بهدلیل بالا رفتن سختی شبکه بیت کوین و سخت بودن انجام عمل ماینینگ بهصورت فردی، ماینرها بهصورت گروهی در محلی مجازی به نام استخر استخراج (mining pool) جمع میشوند تا از قدرت پردازش جمعی برای استخراج استفاده کنند.
به عبارت دیگر، ماینرهای سراسر دنیا دستگاههای استخراج خود را به استخرهای استخراج معتبر متصل میکنند و استخر استخراج به نمایندگی از همه و با مجموع قدرت پردازشی که دارد، برای ماینینگ و بهدست آوردن پاداش بلاک تلاش میکند.
در این روش، هر استخراجکننده معمولاً براساس توان پردازشی خود سود میبرد، اما پاداش بلاک اصلی به استخر استخراج تعلق میگیرد.
در صورت اقدام به استخراج مستقیم بیت کوین از طرف یک ماینر عادی، شانس حل کردن معادله بلاک نزدیک به صفر خواهد بود.
استخراج دو بلاک همزمان
اگر به فرض محال دو نود (ماینر) همزمان معادله را حل کنند و باهم بلاکهای خود را به شبکه بفرستند چه؟
در این مورد، هر دو بلاک به شبکه اعلام میشوند و هر نود، بلاکی را که اول دریافت کرده است، در بلاک چین خود قرار میدهد.
اما طبق قوانین بیت کوین، هر نود باید بلندترین زنجیره موجود از بلاک چین را دنبال کند. بنابراین، اگر بر سر آخرین بلاک توافق حاصل نشود، بهمحض اینکه معادله آخرین بلاک حل شد، همه نودها بلندترین زنجیره را خواهند پذیرفت.
عدم توافق بر سر آخرین بلاک در زنجیره میتواند باعث تقلب و دوبار خرج کردن شود. اگر یک تراکنش در بلاک زنجیره کوتاهتر باشد، زمانی که بلاک بعدی استخراج شود، این تراکنش و تمام تراکنش های آن بلاک دوباره بهصورت تأیید نشده (آنکانفرم) در میآیند.
فرض کنید که فرد خرابکاری میخواهد از فرد دیگری با بیت کوین، یک فایل بخرد. خرابکار بیت کوین را به قربانی میفرستد و قربانی پس از دیدن اولین تأیید (کانفرم)، فایل را به خرابکار میدهد.
حالا اگر خرابکار بتواند در شبکه بیت کوین زنجیرهای طولانیتر بسازد که تراکنش برگشت داخل آن باشد، میتواند پول خود را برگشت بزند و در عمل بیت کوین را دوبار خرج کند.
اما این تا چه حد عملی است؟ در صورتی که یک ماینر خرابکار بیش از 50٪ قدرت پردازش شبکه را داشته باشد و بهعبارتی حمله 51 درصد به شبکه انجام دهد.
او برای انجام این کار باید با کامپیوترهای زیادی که در حال رقابت برای یافتن جواب معادله بلاک هستند، مسابقه دهد.
حتی اگر بر فرض محال او بتواند یک بلاک را پیش از بقیه حل کند، احتمال حل شدن بلاکهای دوم، سوم، چهارم و … بهشدت پایین است و هر چه جلوتر میرویم پایینتر میآید.
اگر یک خرابکار بیش از 50 درصد قدرت شبکه را در اختیار داشته باشد، شانس او برای حل کردن بلاک بیش از 50 درصد خواهد بود، اما برای حل کردن دو بلاک متوالی او فقط 25 درصد شانس خواهد داشت و هرچه تعداد بلاکها بیشتر میشوند شانس خرابکار کمتر و کمتر خواهد شد تا به نزدیک صفر برسد.
بههمین خاطر است که فروشندگان و صرافیها برای تأیید تراکنش و ارائه خدمات، حداقل دو الی 6 تأیید (کانفرم – Confirm) را ضروری میدانند. 6 کانفرم امنترین حالت ممکن برای تراکنش است و بعد از آن تراکنش دیگر مشکلی نخواهد داشت.
جمع بندی
اگرچه درک کامل بیت کوین و نحوه کار آن در ابتدا کمی مشکل بهنظر میرسد، این به شما کمک خواهد کرد تا علاوهبر فهمیدن کامل ایده بیت کوین، با مفاهیمی چون بلاک چین و ماینینگ که در دهها رمز ارز دیگر هم وجود دارد، آشنا شوید.
البته همانطور که در ابتدای مقاله هم اشاره شد، برای استفاده از پادشاه رمز ارزها نیاز به وارد شدن به مسائل فنی نیست و امروزه بهلطف نرمافزارهای متعدد، کار کردن با بیت کوین بهسادگی ارسال یک پیامک است.
اگر علاقه مند به یادگیری بیشتر در این حوزه هستید میتوانید از نقشه راهنمای دیجی کوینر به نام «درخت یادگیری» دیدن نمایید که از نقطه ابتدایی تا انتهای مسیر را ریل گذاری کرده است.
شما با مطالعه درخت یادگیری تا حد مطلوبی دانش خود را افزایش دادهاید اما برای حرفه ای شدن و انجام معاملات در این بازار نیاز به یک راهنمای مجرب و با تجربه دارید.
مجموعه دیجی کوینر بر آن است که با برگزاری کلاسهای آموزشی تجریبات چند ساله خود را در اختیار هم وطنان عزیز قرار دهد تا در این بحران اقتصادی بتوانند در آمد دلاری کسب نمایند. (تاریخ برگزاری کلاسها متعاقبا از طریق وبسایت اعلام خواهد شد.)
تیم تحریریه دیجی کوینر
این مقاله به کوشش هیئت تحریریه دیجی کوینر تولید شده است. تک تک ما امیدواریم که با تلاش خود، تاثیری هر چند کوچک در آگاه سازی فعالان حوزه رمز ارزها و بازارهای مالی داشته باشیم.
نوشته های بیشتر از دیجی کوینر