وانفینکس

نانس (Nonce)

10 آبان 1405

318

زمان تقریبی مطالعه: 3 دقیقه

نانس عددی است که در بخشی از داده‌های یک شبکه رمزارزی قرار می‌گیرد و طبق قواعد همان شبکه معنا پیدا می‌کند. در بیت‌کوین، استخراج‌کننده نانسِ سربرگ بلاک را تغییر می‌دهد تا هش تازه‌ای بسازد و ببیند آیا آن هش با شرط اثبات کار سازگار است یا نه. در اتریوم، نانسِ تراکنش شماره‌ای پی‌درپی برای تراکنش‌های یک حساب است. این دو کاربرد یک نام دارند، اما کارشان یکی نیست: اولی در جست‌وجوی یک هش معتبر به کار می‌رود و دومی به شبکه کمک می‌کند تراکنش‌های یک حساب را به ترتیب پردازش کند. برای فهم نانس باید دید این عدد در کدام بخش از بلاک چین ثبت شده است.

advertise blog post start

نانس در استخراج بیت‌کوین چگونه کار می‌کند؟

سربرگ هر بلاک بیت‌کوین اطلاعاتی مانند هش سربرگ بلاک پیشین، ریشه مرکلِ تراکنش‌ها، زمان و آستانه هدف را در خود دارد. یک بخش چهار بایتی آن به نانس اختصاص یافته است. استخراج‌کننده با تغییر این عدد، داده سربرگ را تغییر می‌دهد و هش دیگری به دست می‌آورد. اگر مقدار هش از آستانه تعیین‌شده بیشتر باشد، آن تلاش برای ساخت بلاک معتبر کافی نیست و استخراج‌کننده مقدار دیگری را امتحان می‌کند. اگر هش در محدوده مجاز قرار بگیرد، گره‌های شبکه می‌توانند اثبات کار و دیگر شرایط اعتبار بلاک را بررسی کنند.

تغییر نانس راهی برای تولید آزمون‌های تازه است؛ خودِ عدد به‌تنهایی ارزش یا معنای ویژه‌ای ندارد. چون میدان نانس بیت‌کوین اندازه محدودی دارد، استخراج‌کننده پس از آزمودن همه مقدارهای آن می‌تواند بخش‌های دیگری از داده‌های مؤثر بر سربرگ، مانند زمان یا تراکنش کوین‌بیس، را تغییر دهد و جست‌وجو را ادامه دهد. تعداد تلاش‌هایی که دستگاه‌ها در هر ثانیه انجام می‌دهند با مفهوم هش ریت بیان می‌شود. پیدا کردن نانس مناسب نیز به‌تنهایی کافی نیست؛ بلاک باید سایر قواعد شبکه را رعایت کند.

نانس تراکنش در اتریوم چه تفاوتی دارد؟

در اتریوم، تراکنشی که از یک حساب کاربری فرستاده می‌شود دارای نانس است. این عدد برای آن حساب به‌صورت پی‌درپی افزایش می‌یابد و شماره تراکنش بعدی را مشخص می‌کند. نانس به آدرس فرستنده مربوط است، نه به کل شبکه؛ بنابراین دو حساب مختلف می‌توانند تراکنش‌هایی با نانس یکسان داشته باشند. شبکه برای هر حساب فقط یک تراکنش با یک نانس مشخص را اجرا می‌کند. این قاعده جلوی اجرای دوباره همان تراکنش امضاشده را می‌گیرد و در حفظ ترتیب تراکنش‌های آن حساب نقش دارد.

کاربرد نانس تراکنش را نباید با نانس استخراج یکی دانست. فرستنده در اتریوم برای رسیدن به یک هش زیر آستانه، نانس تراکنش را بارها عوض نمی‌کند. اگر کاربر از حسابش با یک قرارداد هوشمند تعامل کند، تراکنش ارسالی همچنان نانس مربوط به همان حساب را دارد. همچنین در ساختار حساب‌های اتریوم، نانسِ یک حساب قراردادی شمارنده ایجاد قراردادها توسط آن حساب است. پس حتی در یک شبکه، معنای دقیق این فیلد به نوع حساب و عملیاتی که بررسی می‌شود بستگی دارد.

یک مثال ساده

فرض کنید حسابی در اتریوم هنوز تراکنشی نفرستاده است. نخستین تراکنش آن می‌تواند نانس صفر داشته باشد و تراکنش بعدی نانس یک. اگر نسخه‌ای از تراکنش نخست دوباره به شبکه فرستاده شود، داشتن همان نانس به معنی اجازه اجرای دوباره آن از همان حساب نیست. حالا همین واژه را در یک بلاک بیت‌کوین تصور کنید: استخراج‌کننده مقدار نانس سربرگ را از یک عدد به عددی دیگر تغییر می‌دهد و هش تازه را می‌سنجد. در مثال اتریوم، عدد جای تراکنش را در دنباله حساب نشان می‌دهد؛ در مثال بیت‌کوین، یکی از داده‌هایی است که برای آزمودن هش تغییر می‌کند.

کاربردهای عملی نانس

نانس در اثبات کار به استخراج‌کنندگان امکان می‌دهد بدون انتظار برای تراکنش تازه، مقدارهای متفاوتی از هش سربرگ را امتحان کنند. بررسی‌کننده بلاک نیز می‌تواند هش سربرگ ارائه‌شده را محاسبه کند و بسنجد که شرط آستانه برقرار است یا نه. این فرایند بخشی از مکانیزم اجماع بیت‌کوین است و همراه با بررسی دیگر قواعد بلاک معنا دارد.

برای کاربر اتریوم، نانس هنگام بررسی ترتیب تراکنش‌های ارسالی از یک آدرس مفید است. اگر چند تراکنش پشت سر هم ارسال شده باشند، شماره‌هایشان نشان می‌دهد هرکدام در چه جایگاهی از دنباله همان حساب قرار دارد. ابزارهای ساخت و ارسال تراکنش نیز برای تعیین نانس بعدی به وضعیت حساب توجه می‌کنند. بااین‌حال، دیدن یک نانس به‌تنهایی نشان نمی‌دهد تراکنش موفق بوده، چه کاری انجام داده یا چه زمانی در بلاک ثبت شده است.

محدودیت‌ها و برداشت‌های نادرست

نانس یک شناسه یکتای جهانی برای بلاک‌ها یا تراکنش‌ها نیست. مقدار یکسان ممکن است در سربرگ بلاک‌های مختلف بیت‌کوین یا در تراکنش‌های حساب‌های متفاوت اتریوم دیده شود. برای شناسایی یک تراکنش یا بلاک باید از داده‌های مناسب همان شبکه استفاده کرد. همچنین نانسِ سربرگ بیت‌کوین را نباید با شماره تراکنش یک حساب اتریومی مقایسه کرد؛ شکل و کاربردشان متفاوت است.

نانس به‌تنهایی امنیت کل شبکه را تضمین نمی‌کند. اعتبار یک بلاک بیت‌کوین به هش و سایر قواعد آن وابسته است و اعتبار تراکنش اتریوم نیز فقط با بررسی نانس تعیین نمی‌شود. در کار با کیف پول یا ابزارهای فنی، معنای نانس را از نوع شبکه و محل نمایش آن تشخیص دهید. این کار کمک می‌کند یک عدد مربوط به جست‌وجوی اثبات کار را با عدد مربوط به ترتیب تراکنش‌ها اشتباه نگیرید.

آیا مطالعه این مقاله برای شما مفید بود؟!

advertise blog post end