بلاک چین بیت کوین SV یا بیت کوین ساتوشی ویژن (Bitcoin Satoshi Vision) یکی از فورکهای فرعی بیت کوین و در واقع هارد فورک بیت کوین کش (یکی از فورکهای بیت کوین) است. بررسی فورکهای بیت کوین از این نظر حائز اهمیت است که میتوان به آنها بهعنوان «سناریوهای جایگزین یا احتمالی» و یا یک آزمایش نگاه کرد. با بررسی فورکهای بیت کوین میتوانیم ببینیم که اگر اکوسیستم بیت کوین راه دیگری را برای توسعه انتخاب میکرد، چه اتفاقی برای بلاک چین آن رخ میداد. در این مقاله از میهن بلاکچین به بررسی مقیاس پذیری بیت کوین SV و وضعیت فعلی شبکه آن خواهیم پرداخت.
بررسی شبکه و مقیاسپذیری بیت کوین SV
از زمان آغاز جنگ و کشمکش فورکها در سالهای ۲۰۱۷ و ۲۰۱۸، فورکهای بیت کوین چندان برای علاقهمندان این حوزه جذاب نبودند. فورکهای بیت کوین کش و بیت کوین SV، هر دو ادعا میکردند که بهدنبال رسیدن به مقیاسپذیری بسیار بالایی هستند؛ اما از زمان راهاندازی آنها، بلاکهای این شبکهها همچنان از بلاکهای شبکه بیت کوین کوچکتر بود.
اخیرا تغییر مثبتی در بلاک چین بیت کوین SV رخ داد و در تابستان ۲۰۲۱، حجم بلاکهای این شبکه بهشدت افزایش یافت. در حال حاضر، سایز بلاکهای بیت کوین SV به ۳ ترابایت رسیده است که ۸ برابر سایز بلاک چین بیت کوین است. در نتیجه، بررسی بلاک چین بیت کوین SV و عملکرد شبکه آن در این شرایط، خالی از لطف نخواهد بود.
ادامه مقاله را از زبان نویسنده مقاله جیمسون لوپ (Jameson Lopp)، میخوانید که یک نود بیت کوین SV را به صورت آزمایشی راهاندازی کرده و توضیحات لازم را ارائه داده است.
آزمایش نود بیت کوین SV
با استفاده از یک سیستم و با bitcoin sv 1.0.10 یک گره یا نود (Node) در شبکه بیت کوین SV راهاندازی کردم. از آنجایی که هارد درایو این سیستم ۱ ترابایت است، مقدار Prune نود را به گونهای تنظیم کردم که دادههای قدیمیتر از ۴۰۰ گیگابایت اخیر را حذف کند. در همان ابتدای راهاندازی، نود متوقف شد و خطایی مبنی بر تنظیم نبودن پارامترها نشان داده شد، متن خطای دریافتی به شرح زیر است:
Mandatory consensus parameter is not set. In order to start bitcoind you must set the following consensus parameters: “excessiveblocksize” and “maxstackmemoryusageconsensus”. In order to start bitcoind with no limits you can set both of these parameters to 0 however it is strongly recommended to ensure you understand the implications of this setting.
به نظرم تنظیم کردن پارامترهای اجماع به صورت دستی، کار بسیار بیهودهای است.
عبارت “Excessiveblocksize” مفهومی است که توسط سیستم Bitcoin Unlimited معرفی شده است که در واقع یک پروژه نرمافزاری بیت کوین کش است. مقالات بسیاری درباره این مفهوم نوشته شده است.
ظاهرا شبکه بیت کوین SV برای محدودیت حافظه استک (Stack)، یک پارامتر دستی دیگر نیز به آن اضافه کرده است. Bitcoin.conf من برای این آزمایش به شکل زیر است:
assumevalid=0 dbcache=24000 excessiveblocksize=4000000000 maxstackmemoryusageconsensus=100000000 prune=400000
در اقدام اول، نود بیت کوین SV با ارتفاع بلاک ۵۲۸۵۱۹ سینک شد و پس از ذخیره شدن ۷۰۰ گیگابایت از بلاکها، به دلیل کمبود فضای دیسک متوقف شد. در حالی که نود تنها برای ذخیره ۴۰۰ گیگابایت تنظیم شده بود.
سپس مقدار Prune را از ۴۰۰ گیگابایت به ۴۰ گیگابایت تغییر دادم و دوباره امتحان کردم. اما باز هم پس از اتمام فضای دیسک، نود متوقف شد. زمانی که Prune را تنها روی ۴ گیگابایت تنظیم کردم، باز هم این اتفاق افتاد.
در اقدام چهارم، سعی کردم با بررسی دقیقتر، دلیل مشکل را پیدا کنم. مشخص شد زمانی که فهرست دادههای بیت کوین به نزدیکی ۷۰۰ گیگابایت میرسد، راس زنجیره تنها در بلاک ۴۴۴,۰۰۰ قرار دارد.
$ ./bitcoin-cli getinfo { "version": 101001000, "protocolversion": 70016, "blocks": 444690, "timeoffset": 0, "connections": 8, "proxy": "", "difficulty": 310153855703.4333, "testnet": false, "stn": false, "relayfee": 0.00000250, "errors": "Warning: The network does not appear to fully agree! Some miners appear to be experiencing issues. A large valid fork has been detected. We are in the startup process (e.g. Initial block download or reindex), this might be reason for disagreement.", "maxblocksize": 4000000000, "maxminedblocksize": 128000000, "maxstackmemoryusagepolicy": 100000000, "maxstackmemoryusageconsensus": 100000000
و بهطرز عیجی، در محدوده ۷۰۰,۰۰۰ چند نود همتای دیگر، بلاکهای معلقی داشتند که در حال دانلود توسط نود من بودند.
$ ./bitcoin-cli getpeerinfo [ { "id": 0, "version": 70016, "subver": "/Bitcoin SV:1.0.10/", "startingheight": 724807, "synced_headers": 724851, "synced_blocks": 702745, "inflight": [ 703005, 703006, 703007, 703008, 703009, 703038, 703090, 703091, 703092, 703093, 703094, 703095, 703096, 703118, 703119 ] }
و نود با چند راس زنجیره مختلف روبهرو میشد.
$ ./bitcoin-cli getchaintips [ { "height": 724851, "hash": "000000000000000007140a4554c6136e3284be8a14b71dcc3ec20c65a6670aa0", "branchlen": 279763, "status": "headers-only" }, { "height": 724835, "hash": "0000000000000000052c393c19802ab687c38e22332ce918d14e9d4fcd142cfc", "branchlen": 279747, "status": "headers-only" }, { "height": 592656, "hash": "00000000000000000cd2c787d48b7e71eedf0725888a5daae9655b8993ddee2e", "branchlen": 147568, "status": "valid-headers" }, { "height": 445088, "hash": "000000000000000000d92f75a25752aff14f38cbea150b44a91f651f833660f1", "branchlen": 0, "status": "active" } ]
با بررسی فایلهای بلاکها مشخص شد که برخی از آنها پاک شده بودند. قدیمی ترین فایل، blk00725.dat بود.
در این حالت سعی کردم نود را متوقف کرده و ریاستارت کنم. متوجه شدم که نود من دیگر بلاکهای جدید دانلود نمیکند. در عوض با استفاده از پردازنده، در حال تایید بلاکهای دانلودشده است.
پس از پردازش تمام بلاکهای دانلود شده، بلافاصه شروع به سبک کردن و حذف فایلهای قدیمی کرد و فضای دیسک در محدوده ۴۰۰ گیگابایت باقی ماند.
ظاهرا یک باگ در منطق همگامسازی بیت کوین SV وجود دارد و این باگ احتمالا در داخل Net_processing.cpp است. در واقع این نود بدون توجه به ارتفاع بلاک تاییدشده اخیر ، همچنان به دانلود بلاکها ادامه میدهد. چون تا زمانی که دادهها تایید نشدهاند، نود نمیتواند آنها را حذف کند و با پرشدن فضای دیسک نود متوقف میشود. احتمالا من اولین کسی هستم که این مشکل را کشف کرد، چون هیچ کس به خودش زحمت نمیدهد نودهای بیت کوین SV را راهاندازی کند.
نتایج عملکرد همگامسازی نود
یک جنبه مثبت همگامسازی نود بیت کوین SV این است که یک سرعت دانلود ثابت بین ۵۰ الی ۸۰ مگابایت بر ثانیه ارائه میدهد. این سرعت احتمالا به این خاطر است که تمام نودهای قابل دسترس بیت کوین SV، در دیتاسنترها بر روی فیبر گیگابایتی اجرا میشوند.
همگامسازی کامل بیت کوین کور (Bitcoin Core) تا بلاک ۷۲۲,۰۰۰ در سیستم من ۳۹۶ دقیقه طول میکشد. در حالی که همگامسازی بیت کوین SV تا ارتفاع بلاک ۷۲۰,۰۰۰ حدود ۱,۳۱۳ دقیقه طول میکشد. در نتیجه اگرچه بلاک چین بیت کوین SV هشت برابر بزرگتر است، اما تایید آن تنها ۳.۳ برابر بیشتر طول میکشد. آیا میتوان گفت که عملکرد بیت کوین SV بهبود یافته است؟
میبینیم که با افزایش پذیرش در طول سالها، تا بلاک ۴۷۸,۵۵۸، جایی که بیت کوین کش از بیت کوین فورک شد و بلاکها از یک مگابایت به صفر میرسند، منحنی عملکرد بیت کوین SV همان مسیر هموار بیت کوین را طی میکند. سپس در بلاک ۵۵۶,۷۶۶ که بیت کوین SV از بیت کوین کش فورک شد، میبینیم که کاهش چشمگیر نرخ پذیرش باعث کاهش حجم تراکنشها میشود و به دلیل کمبود داده برای تایید، سرعت همگامسازی افزایش مییابد.
حدود یک سال بعد (تقریبا ۵۰,۰۰۰ بلاک)، میبینم که فعالیت افزایش مییابد و در تابستان ۲۰۲۱ به نزدیکی ۷۰۰,۰۰۰ میرسد و عملکرد همگامسازی به میزان چشمگیری کاهش مییابد.
اگر کمترین میانگین فعالیت هفتگی را که تاکنون ادامه یافته در نظر بگیریم، هر هفته یک ساعت و هر سال ۲ روز به زمان همگامسازی اضافه خواهد شد که آمار بدی نیست.
اما به نظر من نمیتوان مقیاسپذیری آینده را به این سادگیها پیشبینی کرد. برای مثال، در نتایج ثبتشده خودم میبینم که ۱ گیگابایت بلاک در ارتفاع ۶۹۹۱۵۴، ۱۰ ثانیه طول کشیده است. اگر تمام بلاکها به این صورت عمل کند، در هر هفته به زمان بلاک چین ۳ ساعت و در هر سال به زمان بلاک چین ۶ روز به مدت همگامسازی اضافه میشود. این آمار نیز بسیار خوشبینانه است. برای درک چرایی این مسئله، باید مفاهیم را عمیقتر بررسی کنیم.
مشخصات تراکنش بیت کوین SV
علاوه بر حجم داده تراکنش در بلاک، متغیرهای دیگری نیز در منابع مورد نیاز اعتبارسنجی اثر دارند.
بیشتر منابع محاسباتی نود برای تایید معتبر بودن ورودیهای تراکنش صرف میشود تا اطمینان حاصل شود که دوبار خرج کردن (Double-spending) رخ نداده است. این موضوع را از این لحاظ مطرح میکنم که اکثر فضای بلاک بیت کوین SV توسط دیتاهایی که در حال تایید هستند پر نمیشود.
بلاک ۱ گیگابایت که قبلتر به آن اشاره شد، دارای ۱۴,۵۶۶ ورودی تراکنش است. هر بلاک ۱.۵ مگابایت بیت کوین نیز دارای ۷,۰۰۰ ورودی تراکنش است. اگر یک بلاک بیت کوین SV پر از تراکنشهای خردمانند بود، میتوان انتظار داشت که یک بلاک ۱ گیگابایتی دارای ۴,۵۰۰,۰۰۰ ورودی تراکنش باشد و ۶۰۰ برابر منابع بیشتری برای تایید نیاز داشته باشد.
در بررسی دادههای بلاک ۶۳۵۱۴۱ که ۱۷۰ مگابایت است میبینیم که دارای ۱,۴۹۸,۸۱۶ ورودی تراکنش است. تایید این بلاک در سیستم من ۱۳ دقیقه طول کشید. در نتیجه، میتوان انتظار داشت که تایید بلاک ۱ گیگابایتی با ۴,۵۰۰,۰۰۰ ورودی تراکنش در سیستم من حداقل ۳۶ دقیقه زمان ببرد.
چرا تراکنشهای بیت کوین SV فضای بلاک زیادی را اشغال میکنند؟ چون این تراکنشها توسط OP_RETURN برای ذخیره داده استفاده میشوند. OP_RETURN یک آپکد اسکریپت است که برای علامتگذاری ورودیهای نامعتبر تراکنش استفاده میشود. دادههای ورودی تنها زمانی تایید میشوند که اطمینان حاصل شود از ۸۰ بایت فراتر نخواهند رفت. در بیت کوین کور ورژن ۰.۹.۰، درباره OP_RETURN نوشته شده است:
این تغییر تاییدی بر ذخیره دادهها در بلاک چین نیست. OP_RETURN یک خروجی قابل Prune ایجاد میکند تا از طرحهای ذخیرهسازی داده که دادههای دلخواه مانند تصاویر را بهعنوان خروجیهای TX غیرقابل مصرف ذخیره میکردند و پایگاه داده UTXO بیت کوین را پر میکردند، جلوگیری شود.
ذخیرهسازی داده اختیاری در بلاک چین ایده خوبی نیست. در عوض، ذخیره کردن بخش اعظمی از دادهها در جای دیگر، هم باصرفهتر و هم کارآمدتر است.
در این لینک، میتوانید مشاهده کنید که بیت کوین SV بررسی “Max size” را برای ورودیهای تراکنش “Data carrier” AKA OP_RETURN به طور کامل حذف کرده است. در حالی که نودهای بیت کوین کور، تراکنشهای دارای ورودی OP_RETURN بزرگتر از ۸۰ بایت را رد میکند. در نمودار زیر میبینیم که بیش از ۹۵ درصد تراکنشهای شبکه بیت کوین SV نه برای پرداختها و انتقال ارزش، بلکه برای ذخیره داده استفاده میشود. از آنجایی که خروجیهای OP_RETURN غیرقابل استفاده هستند (هر ارزشی که به آنها ارسال میشود از بین میرود)، صحت این موضوع ثابت میشود.
البته این مسئله را در سال ۲۰۱۹ نیز مطرح کرده بودم.
اما تغییراتی صورت گرفته است و برنامه WeatherSV دیگر دادههای مرتبط با آب و هوا را در بلاک چین منتشر نمیکند. شاید مدل کسب و کار آن سودآور نبود.
به هر حال سرویسهای دیگری مانند Bitcoin Files وجود دارد که امکان انتشار دادهها بر روی بلاک چین را به شما میدهد.
بر اساس دادههای Whatsonchain، رایجترین نوع تراکنش OP_RETURN در ۶ ماه اخیر برای پروتکل “Run” بوده است که حجم تراکنشهای آن به حدود ۵۰ میلیون تراکنش در هفته رسیده است.
به نظر میرسد Run یک زبان قرارداد هوشمند است که امکان ساخت توکنها، قراردادها و دیگر داراییهای دیجیتال را فراهم میکند و افراد میتوانند با استفاده از آن، برای داراییهای خود کد بنویسند و از طریق OP_RETURN این کد را مستقیما در بلاک چین منتشر کنند.
بر اساس دادههای BSVData، اپلیکیشنی که اخیرا بیشترین داده را به بلاک چین اضافه میکند (حدود ۳ گیگابایت در روز)، اپلیکیشن CryptoFights است که از پروتکل Run استفاده میکند.
تذویر و فریب اذهان
طرح بازاریابی بیت کوین SV میخواهد شما را به این باور برساند که نرمافزار آنها عملکرد بسیار خوبی دارد و میتواند با پردازش حجم قابلتوجهی از تراکنشهای درونشبکه، کل نیاز جهان را در این حوزه برطرف کند. رهبران بیت کوین SV ادعا میکنند که توان پردازش داده شبکه آنها ۱,۰۰۰ برابر بیشتر از شبکه بیت کوین است، اما همه این ادعاها بیهوده است؛ چون دادهها به شیوهای در این بلاکها تولید میشوند که نیازی به تایید نباشد.
نتیجه چنین شیطنتهایی این است که امروزه میانگین میزان انتقال ارزش در شبکه بیت کوین SV حدودا صفر است.
هیچ پیشرفت فنی در شبکه و عملکرد نرمافزار نود بیت کوین SV رخ نداده است. اگر طبق ادعاها، شبکه بیت کوین SV قابلیت پردازش حجم بالایی از تراکنشها را داشت، در حال حاضر این شبکه باید تحت فشار تقاضای محاسباتی قرار میگرفت. همانطور که قبلتر اشاره شد، ساخت و تایید یک بلاک ۱ گیگابایتی که (به جای تراکنشهای ذخیره داده) از تراکنشهای انتقال ارزش تشکیل شده است، ۳ برابر بیشتر طول میکشد. یعنی زمان تایید ۱ ساله برای بلاکها، در سیستم من ۳ سال طول خواهد کشید.
عوامل بیت کوین SV هم ادعا میکنند که توسعهها و پیشرفتها در پروژه Teranode انجام میگیرد. اگر اینطور است، کد را به من نشان بدهید تا آن را تست کنم! کریگ رایت (Craig Wright) چهار سال است که درباره Teranode وعده میدهد. Steve Shadders هم یک سال قبل وعده شبکه اصلی Teranode را داد. این وعده و ادعاها دیگر موثر نیست. حتی اگر Teranode راهاندازی شود، فقط تقاضای کل منبع برای راهاندازی نود بیت کوین SV را افزایش خواهد داد و درنتیجه شبکه را کوچکتر و متمرکزتر خواهد کرد.
این ایده Craig Wright که شبکه بیت کوین SV میتواند از کلاینتهای SPV پشتیبانی کند، کاملا مضحک است. اگر فقط ۲۷ گره قابل دسترس وجود داشته باشد، یعنی در کل ۳۰۰۰ اسلات اتصال برای کلاینتهای SPV وجود دارد.
آینده بیت کوین SV
به مقیاسپذیری این شبکه توجه کنید:
0.000000003 BSV per byte
X 1000000000 bytes per gigabyte
X $100 per BSV
= برای هر ۱ گیگابایت دادهای که به بلاک چین بیت کوین SV اضافه میشود، ۳۰۰ دلار کارمزد پرداخت میشود.
آیا این مقیاسپذیری پایدار است؟
اگر حداکثر حجم بلاک ۴ گیگابایت باشد و تمام بلاکها پر باشند، کل ماینرهای شبکه بیت کوین SV (که اکثرا متعلق به Calvin Ayre هستند) در بهترین حالت روزانه ۱۷۳,۰۰۰ دلار درآمد دارند. به نظر من ممکن است سازمانهایی که کارمزد تراکنشها را پرداخت میکنند هم مال Ayre باشند و درواقع او دارد پول خود را از یک دست به دست دیگرش میدهد.
در حالی که شبکه بیت کوین با ۰.۰۵ درصد تقاضای منبع داده، در سال گذشته برای کارمزد تراکنشها روزانه بین ۵۰۰,۰۰۰ تا ۱۵,۰۰۰,۰۰۰ دلار پرداخت کرده است. این یعنی ۳ تا ۸۷ برابر ارزش بر هر بایت. احتمالا عوامل بیت کوین SV این تفاوت را با ادعای ارزان بودن شبکه یا قابلاستفاده بودن برای همه توجیه خواهند کرد، اما نمیتوان این حقیقت را نادیده گرفت که این مشکل به انگیزه مربوط میشود و هر شبکهای باید بتواند هزینه امنیت خود را تامین کند.
حذف شدن بیت کوین SV از لیست صرافیهای ارز دیجیتال بزرگ باعث کاهش شدید نقدینگی آن شده و حتی تامین هزینه امنیت شبکه از طریق هزینه بلاک نیز برای شبکه سختتر شده است.
نکته دیگری که حین تحقیق درباره بیت کوین SV متوجه شدم این است که پلتفرم coin.dance آمار فورکهای اصلی دیگر بیت کوین را نشان میدهد، اما آمار بیت کوین SV را نشان نمیدهد. شاید به این دلیل باشد که شبکه نمیتواند از پس حجم دادهها بربیاید. از ماه آوریل ۲۰۲۱، صفحه آمار بیت کوین SV در این سایت، به پیام زیر تغییر یافت:
این مشکل در برخی از سرویسهای تحلیلی دیگر هم وجود دارد. مثلا پلتفرم Coinstats.app برای دادههای درونشبکه بیت کوین SV پیام زیر را نشان میدهد:
تحمیل هزینه بالا برای سرویسهایی که به راهاندازی نود نیازمند هستند، پایدار نیست.
در زمان تدوین این مقاله، تنها ۳۵ نود قابل دسترس وجود دارد و فقط ۱۹ واحد از آنها در میان ۵,۰۰۰ بلاک راس زنجیره قرار دارند و این نشانه یک شبکه سالم و غیرمتمرکز نیست.
و نهایتا، روند قیمتی کاملا واضح است. ارزش بیت کوین SV حتی به ۱ درصد از ارزش بیت کوین هم نرسیده و در حال نزدیک شدن به صفر است.
جمعبندی
بیت کوین SV یکی از فورکهای فرعی بیت کوین است که تا کنون عملکرد جالب و راضیکنندهای نداشته است. به تازگی حجم بلاک چین بیت کوین SV به ۳ ترابایت رسید و این سوال برای علاقهمندان ایجاد شد که آیا این شبکه بالاخره توانسته است مشکلات و چالشهای مربوط به مقیاسپذیری درونشبکه را حل کند؟ در این مقاله، نویسنده با راهاندازی و آزمایش یک نود بیت کوین SV، به بررسی مقیاسپذیری بیت کوین SV پرداخته و توضیحات لازم را ارائه کرده است. آيا روی این رمزارز سرمایهگذاری کردهاید؟ چنانچه شما نیز نظری درباره این پروژه دارید، آن را با ما به اشتراک بگذارید.