انتخاب دستههایی از بیتکوین و ساخت دستههای جدید از اونا.
تراکنشهای بیتکوین دستهای از دادهها هستن.
این دادهها شامل اطلاعاتی در مورد مقدار در حال فرستادن، اینکه از چه حسابی داره فرستاده میشه، و به چه حسابی فرستاده میشه، است.
اینا اطلاعات سادن پس راحت میتونیم با یه خط داده نمایششون بدیم:
وقتی «تراکنش میزنی»، همین یه خط داده رو به شبکهی بیتکوین میفرستی.
در نهایت یکی از گرههای شبکه تراکنشت رو در یه بلوک استخراج میکنه، و این بلوک (که تراکنش تو رو داخل خودش داره) به فایل تراکنشهای پذیرفته شده (زنجیرهبلوک) افزوده میشه.
این کل تراکنش بیتکوینه - خوروندن یه خط داده به شبکهی بیتکوین و انتظار برای استخراجشدنش در زنجیرهبلوک.
یه آدرس بیتکوین مثل شمارهی حسابی میمونه که بیتکوینها در اون قرار دارن. اما زمانی که تراکنشی میزنی، اینطور نیست که مقدار دقیقی از کوینهاتون رو از یه کوزه برداری به یه کوزهی دیگه بریزی.
بجاش هر آدرس دونه دونه تراکنشهایی که دریافت کرده رو نگهداری میکنه:
:پس وقتی میخوای بیتکوین برای یکی دیگه بفرستی، مقدارهای کاملی که دریافت کردی رو برمیداری و باید باهاشون، مقادیر جدید به آدرس جدید بفرستی.
همچنین، اگه دریافتکنندت، بخواد مبلغی رو برای شخص دیگهای بفرسته، باید همینطوری مقدارهای کاملی که دریافت کرده رو مصرف کنه.
بنابراین، بیتکوین رو بهصورت دستهای دریافت میکنی، و این دستهها رو مصرف میکنی تا دستههای جدید ارسال کنی و برای بقیه بفرستی.
تراکنشها اینشکلی کار میکنن.
«اگه مجموع دستهها بیشتر از مقداری باشه که من میخوام بفرستم چی؟»
سوال خوبیه! اینجا (که بیشتر مواقع هم همینطوریه) کافیه در تراکنش، یه خروجی دیگه بذاریم و باقی پول رو به خودمون بفرستیم:»
در نگاه اول شاید این، عجیب بهنظر بیاد، میدونم، اما در پشت ماجرا با چشمانداز برنامهنویسی روش دقیقیه، پس بهش عادت کن.
- یه آدرس بیتکوین داری، که بیتکوین به شکل دستههایی از مقادیر به این آدرس ارسال میشن، که به اونها خروجی گفته میشه.
- یه تراکنش در بیتکوین، استفاده از همین خروجیها (به عنوان ورودی تراکنش) برای ساختن خروجی جدیدِ متعلق به آدرسِ یک نفر دیگر است.
- همهی اینا رو میشه در یه خط داده نشون داد.
برای درک بهتر سازوکار خروجیها به برگهی خروجیها نگاهی بندازید.
«یا به عبارت دیگه، «اگه کل تراکنش زدن فقط خوروندن یه خط داده به شبکه بیتکوینه، چرا نشه یکی دیگه یه تراکنش ساختگی بسازه که از آدرس من به آدرس خودش بیتکوین بفرسته؟ »
جوابش اینه که هر خروجی تراکنش یه قفل داره...
و اگه تراکنشی رو بدون بازکردن قفل خروجی ایجاد کنی، گرههای شبکه تراکنشت رو رد میکنن.
خوشبختانه، آدرس بیتکوینت یه کلید خصوصی هم داره.
حالا اگه بخواهی بیتکوینی رو به جایی بفرستی، با این کلید خصوصی خروجیهای قرار گرفته در آدرس خودت رو باز میکنی.
بعد از اینکه خروجیهایی که میخواستی خرج کنی رو باز کردی، تراکنش توسط گرههای شبکهی بیتکوین تأیید و منتشر میشه.
و این چگونگی عملکرد تراکنشهای بیتکوین بود.