قبلاً توضیح دادیم که تراکنشهای بیتکوین چیست و چطور میتوان آنها را ردیابی کرد. در این مطلب نحوه ردیابی آنها، و چگونگی تفسیر اطلاعات بیتکوین از اینترفیسهای تحت وب را بررسی میکنیم.
بلاک اکسپلورر (Blockexplorer)
وبسایتهای مختلفی برای مرور بر بلاکچین بیتکوین وجود دارد اما Blockexplorer محبوب ترین آنهاست.
میتوانید از مقادیر زیر استفاده کنید:
- جهت بررسی تراکنش، باید یک هش تراکنش وارد کنید، مثل این کد:
57309a5cf004fd4746ab508deb0093a5181fb93ead1fbf0b0ebf375b2e817fb6
- کلید عمومی آدرس مورد نظر برای پیدا کردن وضعیت، موجودی آدرس مورد نظر و مشاهده تراکنشهای ورودی یا خروجی آدرس مورد نظر.
- تعداد بلاکهایی که میخواهید آنها را مرور کنید تا متوجه شوید بلاک مورد نظر چه موقع ماین شده، چه دادههایی را تایید کرده و غیره.
به عنوان مثال، تراکنش قبلی را در نظر بگیرید. آدرس زیر را در فیلد وارد کرده و تایید کنید:
57309a5cf004fd4746ab508deb0093a5181fb93ead1fbf0b0ebf375b2e817fb6
این هش تایید تراکنش است. پس از تایید Blockexplorer تمام اطلاعات مربوط به آن را نمایش میدهد.
تحلیل تراکنش
قسمت بالای صفحه حاوی اطلاعات پایه تراکنش است.
این جدول، اطلاعات زیر را در اختیار ما قرار میدهد:
- میزان بزرگی تراکنش بر حسب بایت. این تراکنش 3873 بایت است. با در نظر گرفتن این واقعیت که در حال حاضر بلاکهای بیتکوین حداکثر 1 مگابایتی هستند، این یعنی یک بلاک میتواند 258 عدد از این تراکنشها را داشته باشد. با توجه به این که حدوداً در هر 10 دقیقه یک بلاک جدید ماین میشود، میتوان نتیجه گیری کرد که ظرفیت پروتکل بیتکوین 2 تا 3 تراکنش در ثانیه است که بسیار دورتر از ظرفیت چند هزار تراکنش بر ثانیهی Visa در حال حاضر است.
- نرخ کارمزد، مبلغی است که کاربر تولید کننده تراکنش برای انتشار آن در شبکه بیتکوین و تایید آن میپردازد. این مبلغ به ماینری که بلاک را ماین کرده پرداخت میشود. با رقم 0.001305959204750839 بیت کوین بر یک کیلوبایت (هر کیلوبایت معادل هزار بایت است)، این یعنی هزینه تراکنش 0.00505798 بیت کوین یا به عبارتی با نرخ فعلی 4368 دلاری بیت کوین، 22.2 دلار است.
- معمولاً Received Time و Mined Time یکسان هستند و به ترتیب مشخص میکنند بلاک مورد نظر چه موقع در بلاک چین قبول شده و چه موقع ماین شده است.
- Included in block شناسه بلاکی است که تراکنش مورد نظر در آن تایید شده است. به خاطر داشته باشید که ماینینگ یک فعالیت رقابتی است. کامپیوترهای به شدت قدرتمند در حال رقابت هستند تا زودتر از بقیه نانس (یک عدد تصادفی) را پیدا کنند چون برنده هم کارمزد تراکنش و هم بیت کوینهای تازه ماین شده را دریافت میکند. بعداً بیشتر به این موضوع میپردازیم.
جدولی که در ادامه بررسی میکنیم (که در پایین صفحه قرار گرفته و میتوان با کلیک روی Show More سایر اطلاعات آن را مشاهده کرد) حاوی تمام انتقالات بیتکوین در این یک تراکنش است.
هنگام ارسال بیتکوین میتوان چندین آدرس ورودی و چندین آدرس خروجی داشت. خیلی از والتها این فرایند را اتوماسیون میکنند و فقط یک مقدار را به کاربر نمایش میدهند اما این مقدار در اصل روی چندین آدرس بر روی یک دستگاه یا والت نرمافزاری ذخیره میشود.
وقتی کاربری قصد ارسال بیتکوین را داشته باشد، میتواند آنها را به یا چند آدرس بفرستد و با این روش در وقت و هزینهها صرفه جویی کند. بعلاوه به دلیل ناشناس نبودن بیتکوین اغلب توصیه میشود که برای هر تراکنش از یک آدرس استفاده کنید. به این آدرس، آدرس چینج (باقیمانده) گفته میشود چون حاوی مقداری پول است که از یک تراکنش به جا میماند. بنابراین آدرس قبل به صورت کامل تخلیه شده و میتوان آن را نادیده گرفت. در این مورد تراکنش توسط یک اکسچنج (Bitstamp) شروع شده و به همین دلیل تعداد آدرسهای مقصد تا این اندازه زیاد هستند.
سمت چپ جدول حاوی آدرسهای ورودی و سمت راست حاوی آدرسهای مقصد است. مشخص نیست که چه مبلغی از کدام آدرس به کدام آدرس منتقل میشود و فقط مبلغ کل و توزیع مشخص میشوند.
در سمت راست ترین ستون، یک حرف داخل پرانتز قرار دارد که حرف S اول Spent به معنای خرج شده و حرف U اول Unspent به معنای خرج نشده است و یعنی پول مورد نظر هنوز در آن آدرس قرار دارد.
می توانیم در پایین صفحه جمع صفات مختلف در این تراکنش را مشاهده کنیم.
بخصوص این آیتمها را مشاهده میکنیم:
- یک بلاک تا این لحظه چند تایید داشته است. به خاطر داشته باشید که وقتی بلاکی ماین میشود، دادهها به سایر کامپیوترهای شبکه ارسال میشود به صورتی که میتوانند به صورت پیوسته بلاکهای بلاکچین را روی یکدیگر بسازند. هر چه این عدد بزرگتر باشد، یعنی تراکنش اصطلاحاً پخته تر شده در نتیجه روی کامپیوترهای بیشتری قرار دارد و نمیتوان آن را لغو، غیرمعتبر یا خراب کرد.
- کل تعداد بیتکوینهای منتقل شده در این یک تراکنش. از آنجایی که آغازگر این تراکنش یک اکسچنج است طبیعی است که این عدد کمی بزرگتر باشد. در این مورد مشخص شده که اکسچنج مورد نظر 167312.42 دلار را با کارمزد 22.20 دلار جابجا کرده است؛ این یعنی یعنی 0.0001326859 که کمی بیشتر از یک صدم یک درصد است.
تحلیل کردن بلاک
اگر حالا روی هش بلاک در جدول اول صفحه تراکنش کلیک کنید، یا شماره بلاک را در فیلد ورودی وارد کنید (487978) میتوانید اطلاعات کامل بلاک را مشاهده کنید.
ابتدای جدول BlockHash قرار دارد که هش شناسایی برای بلاک 487978 است. هر یک از این دو مقدار را میتوان در فیلد ورودی قرار داد و هر دو منجر به ایجاد یک صفحه میشوند. برای مشاهده نحوه محاسبه این هش، این مطلب را مطالعه کنید.
در قسمت Summary این اطلاعات را مشاهده میکنید:
- تعداد تراکنشها مشخص کننده تعداد کل تراکنشهای درج شده در این بلاک است. لازم به ذکر است که معمولاً تراکنشها بسیار کوچکتر از تراکنش اصلی ما هستند بنابراین در یک بلاک 1 مگابایتی بسیار بیشتر از 258 تراکنش قابل درج است؛ در این مورد 2712 تراکنش پردازش شده است.
- Height – شماره ترتیبی بلاک
- Block reward – پاداش اهدا شده به ماینری که بلاک را ماین کرده است. این پاداش در حال حاضر 12.5 بیت کوین یا کمی بیشتر از 53 هزار دلار است. این شامل کارمزد تراکنش نیست که به این 12.5 کوین اضافه میشود.
- Timestamp زمان دقیق پیدایش هش این بلاک است.
- Mined by شناسه ماینری است که این بلاک را استخراج کرده است. برخی ماینرها از جمله ماینرهای شخصی یا شرکتهای کوچک که ترجیح میدهند ناشناس بمانند هویت خودشان را مشخص نمیکنند (اعلام هویت اختیاری است) – به همین دلیل این فیلد در اینجا خالی است. مثلاً یکی از بزرگترین ماینرهای جهان شرکت Bitmain است که ماینرهای ASIC به نام AntMiner را تولید میکند و در حوزه ماینینگ هم به همین نام شناخته میشود. اگر نگاهی به لیست بلاکهای اخیر داشته باشید، متوجه سلطه این شرکت بر فرایند ماینینگ خواهید شد.
- Merkle Root هش تمام تراکنشهای این بلاک و ترتیب آنهاست. Merkle Root هنگام اعتبارسنجی محتوای بلاک استفاده میشود نه خود تراکنشها.
- Next و Previous صفحه بلاکهای بعدی و قبلی را باز میکنند.
- Difficulty یک عدد است که نشان میدهد پیدا کردن یک هش معتبر برای این بلاک چقدر سخت است. هر 2016 بلاک سطح دشواری یک بار تنظیم میشود تا میانگین زمان تولید بلاک به اندازه 10 دقیقه حفظ شود و ماین کردن هر بلاک جدید سخت تر از بلاک قبلی باشد. گاهی اوقات مثلاً اگر ماینرها شبکه را ترک کنند ممکن است سطح دشواری کمتر شود.
- Bits یک عدد در مبنای 16 است که میزان دشواری را نشان میدهد. هر بلاکی شکل فشرده سطح دشواری را به شکل Bits ذخیره میکند که با این الگوریتم محاسبه میشود.
- Size سایز کلی بلاک را مشخص میکند. در اینجا ما بلاکی به اندازه 991124 یا کمی کمتر از یک مگابایت (0.991 مگابایت) داریم. این تقریباً یک بلاک کامل است. لازم نیست که یک بلاک برای ماین شدن در ظرفیت 100% باشد. در واقع در مواقع غیرفعال بودن شدید شبکه ممکن است بلاکهای خالی ماین شود. صرف نظر از نیازهای شبکه، ماینرها همیشه به کارشان ادامه میدهند.
- Version مجموعهای از اعداد است که نرمافزار ماینر از آن برای سیگنال دادن به سایر اعضای شبکه در رابطه با قصد خودش جهت انطباق با آپدیتهایی خاص در شبکه استفاده میکند.
- Nonce عددی تصادفی است که به ترکیب تراکنشها، دادههای آنها، ریشه درخت مرکل و اطلاعات دیگر اضافه میشود تا یک الگوریتم اثبات کار تشکیل شود که هشی منطبق با سطح دشواری ایجاد میکند. هدف نهایی، دستیابی به هشی است که کوچکتر از این دشواری باشد که معمولاً با تعداد صفرهای کد هش مشخص میشود. پس از محاسبه این هش، نانس ایجاد شده به عنوان راه حل تلقی میشود و از آن به عنوان مکانیزم تایید برای سایر نودها (ماینرها) در شبکه استفاده میشود که بعد معتبر بودن بلاک را تایید میکنند.
در جدول زیر همه اطلاعات این بلاک را مشاهده میکنید. همانطور که پیش از این اشاره شد، معمولاً تراکنشها بسیار کوچکتر از تراکنش مثال اول هستند بنابراین در اینجا میتوانیم برای یک آدرس ورودی و یک یا دو آدرس خروجی تراکنشهای زیادی را مشاهده کنیم.
تراکنش اول 29.44 بیتکوین به دو آدرس ارسال کرده است. همانطور که مشاهده میکنیم مبلغ یک عدد گرد نیست و مقدار بزرگتر قبلاً خرج شده (S) در نتیجه میتوان فرض کرد که هدف این تراکنش یک مقدار فیات بوده است. اگر تاریخ را در نظر بگیریم – دوم اکتبر – و قیمت بیتکوین در این روز را چک کنیم (4400 دلار) میتوانیم به این نتیجه برسیم که این مبلغ حدود 130 هزار دلار است. آدرس بعدی قطعاً یک آدرس چینج است.
حالا دو تراکنش بعدی را در نظر میگیریم. هر دو دارای یک آدرس ورودی مشابه هستند و هر دو بار کاربر 0.5 بیتکوین خرج کرده است.در هر دو مورد مبلغ به دو آدرس دیگر ارسال شده و به بخشهای مساوی تقسیم شده است. میتوان دید که مبلغ گرد (0.25) در نهایت خرج شده (s) و 0.2485 بیتکوین از هر تراکنش در آدرس دریافت کننده باقی مانده است. به همین دلیل 0.25 در کارمزد تراکنش در گوشه سمت چپ فریم تراکنش مشاهده نمیشود – ارسال این مبلغ برای کاربر 0.0015 بیتکوین هزینه داشته است.
تحلیل آدرس
با کلیک روی این آدرسها میتوانیم به صفحه اطلاعات آنها برویم. در ادامه نگاهی به آدرس دو تراکنش قبلی خواهیم داشت یعنی:
1ArB3Sn8kNt236fh1CHcvYaEz7RnnV9qq7
مشاهده میکنیم که از این آدرس برای انتقال 12.4 بیتکوین استفاده شده: 7.37 بیتکوین دریافت شده و 5.03 بیتکوین در 28 تراکنش مختلف خرج شده و در حال حاضر موجودی باقیمانده 2.34 است.
مالک سعی کرده این موجودی را خرج کند و در نهایت به عدد گرد 0.5 برسد او دائماً از یک آدرس چینج استفاده کرد:
1CBk5dAsbC3ZzDSLC2nBq9kYXjfvQk5WGZ
این آدرس، یکی از دو آدرس خروجی تراکنشی که قبلاً بررسی شد نیز هست پس میتوان نتیجه گرفت این همان آدرسی است که کاربر ما از آن برای ادامه فعالیت در شبکه استفاده کرده و احتمالاً بقیه، مشتریهای آن هستند.
اگر آدرسی که در حال بررسی آن هستیم را مرور کنیم متوجه میشویم که دائماً جزء چند آدرس ورودی و چند آدرس خروجی بوده که نشان میدهد این آدرس مربوط به یک اکسچنج یا tumbler است – سرویسی که از آن برای پولشویی با بیت کوین استفاده میشود. این کار با قرار دادن بیت کوین کاربران زیادی در یک استخر مشترک و ارسال آنها از استخر به یک آدرس جدید انجام میشود در نتیجه بعد از اجرای چنین تراکنش چند جهتهای هیچ کس نمیتواند مبدا و مقصد را مشخص کند.
با بررسی آدرسهای چینج متوجه میشویم که این اکانت 33.44 بیتکوین در 95 تراکنش هم در تراکنشهای تک ورودی و خروجی و هم در تراکنشهای چند ورودی چند خروجی داشته است. با توجه به اینکه هر دو طرف این تراکنش خروجی و ورودی چندگانه داشته است، احتمالاً ما با یک tumbler، اکسچنج یا والی روبرو هستیم که از یک والت چند آدرسه استفاده میکند.
گزینههای جایگزین
گزینههای جایگزین برای Blockexplorer شامل سرویسهای زیر هستند که خیلی از آنها API خاص خود را دارند:
- https://tradeblock.com
- https://insight.bitpay.com/
- https://chain.so/
- https://www.blocktrail.com/
- https://www.walletexplorer.com/
- https://bitcoinchain.com/block_explorer
- https://live.blockcypher.com/btc/
- https://bitinfocharts.com/bitcoin/explorer/
- https://www.coinprism.info/
- http://srv1.yogh.io/
- https://www.smartbit.com.au/
- http://explorer.coinpayments.net/index.php?chain=1
- https://webbtc.com/
نتیجه گیری
شاید خواندن دادههای بلاکچین در ابتدا گیج کننده و سخت به نظر برسد اما وقتی با مفهوم و کاربرد این دادهها آشنا شوید، میتوانید به راحتی این کار را انجام دهید. میتوانید با توجه به این اطلاعات و نکات مطرح شده در این مطلب، به راحتی تراکنشهای یک کاربر یا آدرس را در بلاکچین رهگیری و ثبت کنید. این کار را برای آدرسهایی که به صورت عمومی در دسترس هستند امتحان کنید – میتوانید در پلتفرمها یا انجمنهایی مثل Steemit که در آنها مردم به دنبال دریافت کمک و اهدای بیتکوین هستند، این آدرسها را پیدا کنید.