در اقتصاد دیجیتالی امروز، رمزارزهایی مانند بیتکوین، نحوه درک و استفاده از سیستمهای مالی را متحول کردهاند. فناوری زیربنایی این ارزها، یعنی بلاکچین، با فراهم کردن شفافیت و امنیت، نقشی اساسی در این تحول دارد. با این حال، برای کاربرانی که از دستگاههای موبایل یا راهحلهای سبکتر استفاده میکنند، اجرای یک نود کامل به دلیل محدودیتهای ذخیرهسازی عملی نیست. اینجاست که Simplified Payment Verification (SPV) وارد میدان میشود. SPV به کاربران امکان میدهد تراکنشها را بدون نیاز به دانلود کل بلاکچین تأیید کنند. در این مقاله، به بررسی نحوه عملکرد نودهای سبک، نقش SPV و مزایا و محدودیتهای استفاده از این فناوری میپردازیم.
برای درک نحوه کار SPV، باید تفاوت بین نودهای کامل و نودهای سبک را بفهمیم. نود کامل کل بلاکچین را ذخیره میکند که در زمان نگارش این مقاله، حجم آن میتواند بیش از ۱۵۰ گیگابایت باشد. این بدان معناست که نود کامل نه تنها یک نسخه از تمام تراکنشهای انجامشده را نگه میدارد، بلکه پایگاه داده Unspent Transaction Output (UTXO) و Mempool که تراکنشهای در حال انتظار را ذخیره میکند، نیز حفظ میکند. نودهای سبک یا SPV، به این دلیل متفاوت هستند که تمام بلاکچین را ذخیره نمیکنند.
برای کاربران موبایل، داشتن چنین پایگاه داده بزرگی در دستگاههایشان به دلیل محدودیت فضای ذخیرهسازی عملی نیست. حتی نودهای Pruned که فقط بخشی از بلاکچین را نگه میدارند، اغلب برای دستگاههای موبایل نیز بسیار بزرگ هستند. در نتیجه، نودهای سبک یک جایگزین کارآمدتر ارائه میدهند.
نحوه کار SPV:
نودهای SPV توانایی اعتبارسنجی بلاکها را به همان روش نودهای کامل ندارند. در عوض، آنها به Block Headers که بسیار کوچکتر هستند (حدود ۸۰ بایت در مقایسه با کل بلاک) متکی هستند. هدر بلاک شامل خلاصه رمزنگاریشده کل بلاک است که به آن Merkle Root میگویند و به نودهای سبک کمک میکند بدون نیاز به دانلود کل بلاک، تأیید کنند که آیا تراکنشی در یک بلاک وجود دارد یا خیر.
وقتی کاربری مثل باب که از نود SPV استفاده میکند، میخواهد تراکنشی را تأیید کند، به یک نود کامل مانند نود سارا متصل میشود. نود کامل سارا تمام دادههای لازم از جمله کل بلاکچین و پایگاه داده UTXO را دارد، بنابراین میتواند بلاکها را اعتبارسنجی کند. از طرف دیگر، باب فقط هدرهای بلاک را از سارا دریافت میکند. برای تأیید اینکه تراکنش خاصی در یک بلاک قرار دارد، باب از سارا درخواست Merkle Proof میکند.
اثبات مرکل و امنیت:
پس از اینکه سارا اثبات مرکل را فراهم کرد، باب میتواند از آن استفاده کند تا مطمئن شود که تراکنش واقعاً در بلاک قرار دارد. ساختار Merkle Tree به باب اجازه میدهد این کار را بهصورت کارآمد انجام دهد، بهطوریکه فقط چند هش را بررسی کند و نیازی به بررسی کل بلاک نیست. با این حال، یک سوال مهم مطرح میشود: اگر سارا بخواهد با ارائه اطلاعات نادرست، باب را فریب دهد، چه؟
برای رفع این مشکل، نودهای SPV معمولاً بهطور همزمان به چندین نود کامل متصل میشوند. بهعنوان مثال، باب میتواند به نود کامل دیگری مانند نود آدام نیز متصل شود تا اثبات مرکل را بررسی کند. اگر اثباتهای ارائهشده توسط سارا و آدام مطابقت داشته باشد، باب میتواند مطمئن باشد که تراکنش معتبر است. این فرایند باعث میشود که نودهای SPV، اگرچه به اندازه نودهای کامل قوی نیستند، اما همچنان سطح قابلقبولی از امنیت را فراهم کنند.
در مجموع، نودهای سبک یا SPV برای کاربرانی که نمیتوانند یا نمیخواهند کل بلاکچین را ذخیره کنند، گزینهای مناسب به شمار میآیند. این نودها با استفاده از Merkle Proof، به کاربران امکان میدهند تراکنشها را بدون نیاز به بارگیری کل بلاکچین تأیید کنند. در حالی که SPV به طور مستقیم نمیتواند بلاکها را اعتبارسنجی کند، اتصال به چندین نود کامل به کاربران این اطمینان را میدهد که اطلاعات دریافتی دقیق و معتبر است. این راهکار، هرچند از نظر امنیت به اندازه نودهای کامل قوی نیست، اما برای دستگاههای سبک مانند موبایلها، روشی کارآمد و بهینه ارائه میدهد.