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