تاریخ انتشار: 22 اردیبهشت 1403 | آخرین بهروزرسانی: 30 اردیبهشت 1403
زمان مطالعه:
8 دقیقه
«یک نسخهی تماماً همتا به همتا از پول نقد الکترونیکی که این امکان را فراهم میکند تا پرداختهای آنلاین بدون نیاز به گذر از یک موسسه مالی، به طور مستقیم از شخصی به (شخص) دیگری ارسال شود.»
در همین چند کلمهی ابتدایی از سپیدنامهی بیت کوین، متوجه میشویم که با یک نمونه جدید از پول نقد مواجهیم که انتظار میرود در پرداختهای روزمره مورد استفاده قرار گیرد. همانند هر پدیده نوینی که نیاز به یک گفتمان نو دارد، صحبت در اکوسیستم پولی بیت کوین مستلزم آشنایی با برخی مفاهیم جدید و همچنین بازتعریف برخی واژگان برای استفاده در این گفتمان است. با عمیقتر شدن در سپیدنامه و سایر مستندات بیت کوین، درمییابیم که بیت کوین در واقع نظام پولی جدیدیست که مفهومی به نام UTXO را به عنوان پول بیت کوینی معرفی میکند.
UTXO مخفف عبارت Unspent Transaction Output است. ترجمه تحتاللفظی و عمومی این عبارت که برابر «خروجی تراکنش خرجنشده» قرار میگیرد، چندان معنای پول را در ذهن متبادر نمیکند. این درحالیست که UTXO احتمالاً کوتاهترین و کاملترین تعریف پول در طول تاریخ تمدن بوده است. برای بررسی این ادعا باید معنای واژگان این عبارت را در گفتمان بیت کوینی بررسی کرد. به زبان سادهتر، یعنی هرکدام از کلمات این عبارت چه مفهومی در دنیای بیت کوین دارند.
به لطف شبکه بانکی مدرن، همهی ما با واژه «تراکنش» یا Transaction آشناییم؛ اما تعداد کمی از ما میتوانند آن را تعریف کنند. بنا بر تعریف فرهنگ کمبریج تراکنش «یک توافق کامل بین خریدار و فروشنده برای مبادلهی کالا و خدمات یا داراییهای مالی در ازای پول» است. این درحالیست که بسیاری از تراکنشهای بانکی روزانه، ممکن است بین حسابهای متعلق به یک فرد انجام شود، همانطور که بر بستر بلاکچین نیز افراد ممکن است بارها کوینهای خود را بین کیف پولهای مختلف متعلق به خودشان انتقال دهند.
در شبکه بیت کوین نیز هر انتقالی بر بستر بلاکچین یک «تراکنش» لحاظ میشود. در این سیستم «خرج شده» یا Spent به هر کوینی اطلاق میشود که طی یک تراکنش بر بستر بلاکچین جابجا شده باشد. فرایند هر تراکنش از سه جز کلی ورودی، پردازش و خروجی یا Output تشکیل شده است. طی انجام یک تراکنش در شبکهی بیت کوین، کوینهایی که قصد جابجایی آن را داریم، وارد تراکنش میشوند، تراکنش در بلاک قرار گرفته و سپس کوینها به مقصد میرسند. بنا بر تعریف ساتوشی ناکاموتو از شبکهی بیت کوین که در ابتدای همین مقاله نقل شد، هدف از خلقت بیت کوین ایجاد یک سیستم پرداخت است. پس انتظار میرود که هر کوین «خروجی» از یک «تراکنش»، «در آینده خرج شود».
به عبارت سادهتر هر کوین خروجی یک «خروجی تراکنش خرجنشده» یا Unspent Transaction Output یا به اختصار UTXO است. با روشنتر شدن تعریف UTXO، جهت ایضاح مطلب و تداعی کامل سیستم پولی UTXOهای بیت کوین در ذهن، میتوان آن را با سیستم پولی سکههای طلای سنتی مقایسه کرد.
پول بیت کوینی
اگر بیت کوین را همانند طلا بدانیم، UTXOها همانند سکههای طلا هستند. همانطور که در گذشته از سکههای طلا در وزن و اندازههای گوناگون در امور روزمره استفاده میشد، در شبکهی بیت کوین نیز UTXOها در ابعاد مختلف وجود دارند که در هر تراکنش خرج و بازتولید میشوند. ارزش یک UTXO ممکن است بین چند ساتوشی تا چند هزار بیت کوین باشد. در واقع ارزش هر UTXO در شبکهی بیت کوین همانند وزن (ارزش) هر سکهی طلا در سیستم طلا بوده و مجموع ارزش تمام UTXOهای شبکه دقیقاً برابر با «عرضهی در گردش» یا Circulating Supply است که در سیستم طلا معادل وزن تمام سکههای طلای موجود، میشود.
در نگاه حسابداری و مالی به نظام پولی بیت کوین، ماینرها حکم ضرابخانه را دارند. اگر در گذشته وظیفهی ذوب (Melting) و ضرب (Minting) سکههای طلا بر عهده حکومتها و پس از آن بر عهده بانکها بود، در دنیای بیت کوین وظیفهی ذوب و ضرب UTXOها بر عهدهی ماینرهاست. شرایطی را در نظر بگیرید که دقیقاً سه بیت کوین در کیف پول خود داشته و قصد ارسال همهی سه بیت کوین بر بستر بلاکچین بیت کوین را دارید. بنا بر تراکنشهای گذشتهی شما، این سه بیت کوین ممکن است در قالب یک یا چند صد UTXO در کیف پول شما وجود داشته باشد که در این مثال تعداد UTXOهای شما را ۱۰۰ در نظر میگیریم.
در طی تایید این تراکنش، ماینر UTXOهای شما را گرفته و اصطلاحاً ذوب میکند، بخشی از بیت کوینها را به عنوان کارمزد تراکنش کم کرده (مثلاً 0.1 بیت کوین) و باقی آن را در قالب یک UTXO ضرب کرده، زمان ضرب شدن را روی آن ثبت میکند و به آدرس مقصد ارسال میکند. حال آدرس مقصد حاوی یک UTXOی 2.9 بیت کوینی است. اگر این کیف پول قصد خرجکردن نیم بیت کوین از این UTXO را داشته باشد چه اتفاقی میافتد؟
دقیقاً مثل سکههای طلای ضرب شده یا مثل اسکناسهای نقدی امروزی، یک UTXO خارج از فرایند انجام تراکنش قابل خرد شدن نیست. در مثال فوق نمیتوان نیم بیت کوین از یک UTXOی 2.9 بیت کوینی را به صورت مستقیم تقسیم و ارسال کرد. در واقع زمانی که فرد قصد خرج کردن نیم بیت کوین را دارد، UTXOی 2.9 بیت کوینی او وارد فرایند تراکنش شده و توسط ماینر ذوب میشود. ماینر کارمزد تراکنش خود را برداشته، یک UTXOی نیم بیت کوینی ضرب کرده، زمان ضربشدن را روی آن ثبت میکند و به مقصد ارسال میکند و بیت کوینهای باقیمانده را نیز در قالب یک UTXOی جدید ضرب کرده، زمان ضرب جدید را روی آن ثبت کرده و به آدرس مبدا برمیگرداند.
این مثال میتوانید شبیه به خرید از فروشگاه با پول نقد در نظر بگیرید. اگر یک محصول ۷۰ تومانی خریده و یک اسکناس ۱۰۰ تومانی داشته باشیدِ، اسکناس خود را به فروشنده داده و کالا و باقیماندهی پولتان را از فروشنده دریافت میکنید.
حسابداری بیت کوین
بلاکچین بیت کوین و اطلاعاتی که در آن ثبت میشوند؛ مانند یک دفترکل (Ledger) غیرقابلویرایش، توزیع شده و غیرمتمرکز است که هر بلاک آن نقش یک صفحه از این دفتر را دارد. در هر بلاک یا صفحه علاوه بر لیست تراکنشها اطلاعاتی نظیر زمان انجام تراکنشها و هش بلاک قبلی ثبت میشود تا پیوستگی زنجیره حفظ شده و تولید هر بلاک جدید مهر تاییدی بر اصالت اطلاعات قبلی دفترکل باشد.
تمام این ویژگیهای بلاکچین بیت کوین در کنار هم موجب شفافیت اطلاعات در شبکهی بیت کوین شده، بهنحویکه هرکسی با هر هدفی امکان مشاهدهی بدون سانسور تمام اطلاعات دفترکل از بلاک پیدایش تا جدیدترین بلاک را دارد. با وجود دردسترسبودن تمام این اطلاعات، تفسیر معنیدار این دادههای خام کمی چالشبرانگیز است. همین امر موج پدید آمدن شیوهی جدیدی از تحلیل داده به نام تحلیل آنچین (On-Chain) شده است. اگر مجموع تراکنشهای بلاکچین بیت کوین را در قالب دفترکل (Ledger) حسابداری بدانیم، تحلیل آنچین مصداق تحلیل صورتهای مالی (Financial Statement) است.
در شبکهی بیت کوین به علت ثبت تراکنشها در قالب UTXO، در حسابداری این شبکه از روش «مبتنی بر UTXO» یا UTXO Based استفاده میشود. در این مدل حسابداری آنچین ما تغییرات UTXOها رو در شبکه اعم از تغییر مالکیتها، تغییر در تعداد، تغییر اندازهها و… را دنبال میکنیم و با تفسیر این دادهها به نتایجی در مورد رفتار افراد در کل شبکه، جریان نقدینگی، سلامت شبکه و حتی نحوه رفتار یک آدرس خاص میرسیم. به طور کلی مسئله اصلی حسابداری آنچین، پاسخ به این سوال است که «این پول چه کسی است؟»
اگر دفترکل در دست یک نهاد متمرکز مثل بانک بود، قطعاً نگهداری حسابها کار راحتتری میبود؛ اما به علت توزیعشدگی دفترکل شبکهی بیت کوین، نگهداشت حسابها کمی چالشبرانگیز و حساس است. چرا که در زمان اعمال تغییرات روی حسابها باید دقت کنیم که کسی پیش از ما این تغییرات را اعمال نکرده باشد. سه مکانیسم اصلی برای نگهداری حسابهای دفترکل وجود دارد: حذف کردن، اضافه کردن و بهروزرسانی.
منظور از حذف کردن، مکانیسمی است که به واسطهی آن از احتمال خرج کردن دوباره (Double Spending) موجودی یک جلوگیری میشود. به بیان دیگر اگر کسی ردیفی را از دفتر کل حذف کند، به واسطه این مکانیسم کس دیگری نمیتواند دوباره آن را حذف کند. به زبان سادهتر اگر کسی قصد خرج کردن یک UTXO را داشته باشد، در طی زمان انجام تراکنش نتواند آن UTXO را دوباره در جای دیگری خرج کند و در واقع پول او فقط یکبار از حسابش حذف شود.
مکانیسم اضافه کردن ریسک و خطری برای شبکه ندارد و هرکسی امکان اضافه کردن ردیف در دفتر کل را دارد چرا که تمام ریسکها احتمالی در سمت «حذف کردن» کنترل شده است.
دو مکانیسم فوق مکانیسمهای اصلی حسابداری مبتنی بر UTXO است. در این مدل در جریان انجام فرایند تراکنش UTXOهای ورودی از دفتر کل حذف شده، فرایند ضرب UTXOهای جدید انجام شده و از طریق اجماع به تایید کل شبکه میرسد و سپس به دفتر کل اضافه میشود. از آنجایی که فرایند انجام تراکنش به واسطهی ذوب و ضرب UTXOها، برگشتناپذیرند و کسی نمیتواند ویرایشی روی آن انجام دهد، اگر موجودی کیف پول کافی نباشد، تراکنش ناموفق میشود. این قابلیت برای حسابداری مبتنی بر UTXO مزیت پردازش موازی تراکنشها را فراهم کند
با وجود روش بدیع حسابداری مبتنی بر UTXO اما تمام دنیای غیرمتمرکز از این روش استفاده نمیکنند. شبکهی اتریوم از روش دیگر برای نگهداشت دفترکل بلاکچین خود استفاده میکند. روشی که «مبتنی بر حساب» یا Account Based نام دارد. این مدل حسابداری دقیقاً شبیه به حسابداری حسابهای بانکی است و بر اعمال تغییر روی حساب از مکانیسم بهروزرسانی استفاده میشود. مکانیسمی که ریسک تایید تراکنشهای یک حساب با ترتیبهای مختلف را دارد. فرض کنید یک حساب دو تراکنش ورودی 80 و 50 واحدی و یک تراکنش خروجی 90 واحدی داشته باشد.
اگر بهروزرسانی توسط افراد مختلفی انجام شود، ممکن است ترتیب جمع و تفریق (بهروزرسانی) حساب متفاوت با و به جوابهای مختلفی از مجموعه تراکنشهای یکسان منتج شود. پس برای تایید تراکنشها و اعمال تغییرات روی حسابها این بلاکچین نیاز به یکرویه اصولی پذیرفته شده دارد؛ لذا مدل حسابداری «مبتنی بر حساب» قدرت پردازش موازی تراکنشها را نداشته و اعمال مکانیسم بهروزرسانی توسط یک نفر چندان قطعی نیست.
تعدیل دادهها
گفتیم که در هنگام انجام تراکنش روی شبکهی بیت کوین باقیمانده UTXOهای ارسال شده به عنوان یک UTXOی جدید به کیف پول مبدا برمیگردد. از طرفی قطعاً برای هرکسی پیش آمده که موجودی یکی از کیف پول خود را به کیف پول دیگری انتقال دهد. همه اتفاقات فوق روی شبکه حکم یک تراکنش را داشته و این دادهها ممکن است مسیر تحلیل ما را منحرف کرده و به نتایجی بهدوراز واقعیت برساند. جهت جلوگیری از این امر و فیلتر کردن دادهها از روشهای مختلفی استفاده میشود که غالباً بر مبنای خوشهبندی (Clustering) آدرسها شکل گرفتهاند.
اولین روش در فیلتر دادههای شبکه تعدیل تراکنشهای باقیمانده (Change) است. از آنجایی که این تراکنشها از نظر حسابداری چندان معنادار نیستند و واقعاً خرجکردن محسوب نمیشوند، بلکه تنها «بقیه پول» تراکنش اصلی هستند در اولین گام این تراکنشها را در دادهها تعدیل میکنیم. در این روش تمام UTXOهایی که به آدرس کیف پولهای مبدا برمیگردند فیلتر میشوند. به این ترتیب دادههای تمیزتری از فعالیت واقعی روی شبکه خواهیم داشت و نتیجه تحلیل این دادهها به واقعیت نزدیکترند.
ضعف این روش زمانی آشکار میشود که برخی از کیف پولها برای افزایش حریم خصوصی، از کلید خصوصی کیف پول شما آدرس جدید تولید کرده و از آن برای دریافت UTXOی باقیمانده از تراکنش استفاده میکنند. به این ترتیب خواندن و فیلتر کردن این تراکنشها کمی دشوارتر میشوند. از طرفی ممکن است حتی تراکنش اصلی هم بین کیف پولهایی باشد که متعلق به یک شخص حقیقی (فرد) یا حقوقی (صرافی) باشند.
برای حذف اینگونه تراکنشها از روشی به نام Entity Adjustment یا «تعدیل بر مبنای شخص» استفاده میشود. البته کلمه شخص ترجمه درستی برای واژهی Entity نیست و بیشتر معادل کلمه موجودیت قرار میگیرد. اما جهت خوانش راحت متن از معادل شخص (حقیقی یا حقوقی) استفاده میکنیم. در این روش تعدیل، استفاده از الگوهای مختلف خوشهبندی آدرسها و بررسی الگوی تراکنشهای این آدرسها ممکن است به این نتیجه برسیم دو یا چند آدرس متعلق به یک نفرند و به این ترتیب با تعدیل دادهها بر مبنای شخص، نمای دقیقتری از خرجشدن واقعی UTXOها روی شبکه داشته باشیم.
دو روش فوق اصلیترین و پرکاربردترین روشهای تعدیل دادههای مربوط به خرج شدن UTXO بوده؛ اما تنها روشهای موجود نیستند و میتوانید از تعدیل آدرسهای رله (Relay addresses) برای دقیقتر کردن دادهها استفاده کنید.
بیت کوین علاوه بر مسائل فنی، بدعتگذار شیوهی جدید از نظام پولی و مالی است؛ بنابراین تحلیل دادههای آن هم نیاز به نگاهی جدید و روشهایی نوین دارد. گام اول برای آشنایی درست با این اکوسیستم، نگاه کردن از جای درست است. جای درست بهزعم بنده استفاده از گفتمان بیت کوینی برای نقد آن است. هیچکس تا کنون نتوانسته بدون ورود به گفتمان بیت کوینی تحلیل درستی از آیندهی آن ارائه دهد و بیت کوین تحلیلهای دلسردکننده بسیاری از اقتصاددانان، بانکدارها و مالیچیها را زیر سوال برده است.
در پایان؛ لطفاً برای دیدن درست فیل درون اتاق، چراغ را روشن کنید.
جواد دولتی
طرفدار سرسخت بیتکوین، آزادی و عدم تمرکزم. عاشق گجتهای هوشمند و سرچکردن و موبایل گیمینگم. بیشتر وقتم صرف رسیدن به جواب سوالام میشه و دائما در حال یادگیریم. ۵ سالی هم هست که دارم از بازارهای مالی یاد میگیرم. آرزوم اینه که سرمایهگذاری جایگزین پسانداز و بیتکوین جایگزین پول فیات بشه و «گر مراد نیابم، به قدر وسع کوشم».