وبلاگ
vetKeys چیست؟ فناوری Internet Computer برای کلیدهای رمزنگاری
vetKeys چیست و چرا Internet Computer برای ساخت برنامههای خصوصی روی یک بلاکچین عمومی به چنین فناوریای نیاز دارد؟ یکی از تناقضهای اصلی بلاکچین این است…

vetKeys چیست و چرا Internet Computer برای ساخت برنامههای خصوصی روی یک بلاکچین عمومی به چنین فناوریای نیاز دارد؟
یکی از تناقضهای اصلی بلاکچین این است که شفافیت برای اعتماد عالی است، اما برای حریم خصوصی دردسر ایجاد میکند.
اگر اطلاعات روی یک شبکه عمومی قرار بگیرند، چگونه میتوان اسناد شخصی، پیامهای رمزگذاریشده، اطلاعات پزشکی، مزایدههای مخفی یا دادههای حساس یک برنامه را روی همان زیرساخت نگهداری کرد؟
راه ساده این است که اطلاعات را قبل از ذخیرهکردن رمزگذاری کنیم.
اما مشکل بعدی فوراً ظاهر میشود:
کلید رمزگشایی را کجا نگه داریم؟
اگر کلید روی یک سرور مرکزی باشد، دوباره به یک واسطه اعتماد کردهایم.
اگر داخل Smart Contract ذخیره شود، ممکن است نودهایی که قرارداد را اجرا میکنند به آن دسترسی پیدا کنند.
اگر فقط روی یک دستگاه کاربر باشد، بازیابی کلید، استفاده از دستگاه دوم و اشتراکگذاری امن اطلاعات دشوار میشود.
فناوری vetKeys یا Verifiably Encrypted Threshold Keys برای حل همین مسئله طراحی شده است.
در این معماری، یک کلید اصلی کامل در اختیار یک نود یا Canister قرار نمیگیرد. اطلاعات لازم برای تولید کلید میان چند نود شبکه توزیع میشود و حداقل تعداد مشخصی از آنها باید با یکدیگر همکاری کنند. کلید مشتقشده نیز قبل از خروج از زیرساخت Threshold با کلید انتقالی که خود کاربر ارائه کرده رمزگذاری میشود؛ بنابراین نه یک نود منفرد و نه خود Canister، کلید خام نهایی کاربر را مشاهده نمیکند.
اما یک اصلاح مهم:
vetKeys فناوری تازهای نیست که در سپتامبر 2026 برای اولین بار راهاندازی شده باشد.
DFINITY در ژوئیه 2025 و در milestone موسوم به Niobium اعلام کرده بود vetKeys روی Internet Computer فعال شده است. در مستندات فعلی ICP نیز API اصلی vetKD بهعنوان قابلیت فعال Mainnet معرفی شده است.
آنچه امروز اهمیت vetKeys را بیشتر میکند، بلوغ ابزارهای توسعه و افزایش کاربرد آن در رمزگذاری داده، مدیریت کلید و برنامههای حریم خصوصی است.

vetKeys مخفف چیست؟
vetKeys مخفف:
Verifiably Encrypted Threshold Keys
است.
برای فهم نام آن باید چهار بخش را جدا کنیم.
Verifiable؛ قابل راستیآزمایی
کاربر میتواند از نظر رمزنگاری بررسی کند کلیدی که دریافت کرده واقعاً بهدرستی از Master Key و ورودی تعیینشده مشتق شده و در مسیر انتقال دستکاری نشده است.
Encrypted؛ رمزگذاریشده
کلید مشتقشده قبل از رسیدن به کاربر با یک Transport Public Key متعلق به کاربر رمزگذاری میشود.
در نتیجه شبکه کلید را به شکل Plaintext برای کاربر ارسال نمیکند.
Threshold؛ آستانهای
Master Key کامل در اختیار یک نود نیست.
این کلید میان چند Node به شکل Share توزیع شده و برای انجام فرآیند باید تعداد کافی از نودها همکاری کنند.
Keys؛ کلیدها
خروجی سیستم میتواند بهعنوان ماده رمزنگاری برای مواردی مانند:
- رمزگذاری متقارن؛
- Identity-Based Encryption؛
- امضاهای BLS؛
- و مشتقکردن کلیدهای بیشتر
استفاده شود.
برای آشنایی پایهای با Public Key، Private Key و رمزگذاری متقارن و نامتقارن میتوانید راهنمای رمزنگاری و امنیت ارز دیجیتال ویکیاکسچنج را نیز مطالعه کنید.
vetKD چیست و چه فرقی با vetKeys دارد؟
این دو اصطلاح مرتبطاند، اما دقیقاً یکی نیستند.
vetKD مخفف:
Verifiably Encrypted Threshold Key Derivation
است و پروتکل رمزنگاری اصلی پشت vetKeys محسوب میشود.میتوان رابطه آنها را اینطور خلاصه کرد:
vetKD = مکانیزم
vetKey = کلیدی که از طریق این مکانیزم مشتق میشود
vetKeys = مجموعه قابلیتها و زیرساختی که این مدل را در ICP در اختیار برنامهها قرار میدهد
کار اصلی vetKD این است که یک کلید جدید را از Master Key توزیعشده مشتق کند، بدون اینکه Master Key کامل یا Key Shareهای حساس در اختیار یک طرف منفرد قرار بگیرند.
vetKeys چگونه کار میکند؟
برای سادهشدن موضوع فرض کنیم یک برنامه روی ICP اسناد رمزگذاریشده کاربران را نگهداری میکند.
کاربر میخواهد سند خودش را باز کند.
مرحله اول: کاربر یک Transport Key موقت میسازد
دستگاه کاربر یک جفت کلید موقت ایجاد میکند:
Transport Public Key
و
Transport Secret Key
کلید عمومی برای شبکه ارسال میشود، اما Secret Key روی دستگاه کاربر باقی میماند.
مرحله دوم: Canister هویت و مجوز کاربر را بررسی میکند
Canister همان Smart Contract در Internet Computer است.
برنامه میتواند بررسی کند آیا این کاربر واقعاً اجازه دسترسی به سند موردنظر را دارد یا نه.
در صورت تأیید، Canister درخواست اشتقاق Key را به سیستم vetKD ارسال میکند.
مرحله سوم: نودهای شبکه همکاری میکنند
Master Key مربوط به vetKD میان نودهای Subnet توزیع شده است.
هیچ نود بهتنهایی Master Key کامل را ندارد.
مجموعهای از نودها باید طبق Threshold تعیینشده در فرآیند شرکت کنند و Shareهای لازم برای کلید مشتقشده را تولید کنند.
ICP برای vetKeys از Distributed Key Generation استفاده میکند و مستندات فنی آن توضیح میدهند که در پیکربندی مورد استفاده، Threshold بالایی در نظر گرفته شده و حدود دو سوم نودها برای بازسازی Master Key لازماند.
مرحله چهارم: کلید قبل از ارسال رمزگذاری میشود
شبکه Key مشتقشده را با Transport Public Key کاربر رمزگذاری میکند.
در نتیجه:
نودها → کلید خام کاربر را دریافت نمیکنند
Canister → کلید خام را دریافت نمیکند
فقط دستگاهی که Transport Secret Key را دارد → میتواند نتیجه را رمزگشایی کند
مرحله پنجم: کاربر اطلاعات را رمزگشایی میکند
کاربر vetKey نهایی را روی دستگاه خودش به دست میآورد و از آن برای بازکردن اطلاعات استفاده میکند.
چرا کلیدها لازم نیست دائماً ذخیره شوند؟
یکی از ویژگیهای مهم vetKD این است که فرآیند Key Derivation Deterministic است.
کلید از ترکیبی از عوامل مانند:
Canister ID + Context + Input
مشتق میشود.
اگر همین ورودیها دوباره استفاده شوند، همان Key قابل بازیابی است.بنابراین در بسیاری از سناریوها نیازی نیست خود Decryption Key دائماً در دیتابیس ذخیره شود؛ در زمان نیاز دوباره مشتق میشود.این قابلیت برای مدیریت کلید بسیار مهم است، چون ذخیره دائمی Secret یکی از نقاط کلاسیک حمله در سیستمهای نرمافزاری محسوب میشود.
9 کاربرد مهم vetKeys چیست؟
1. ذخیره اطلاعات رمزگذاریشده روی بلاکچین
یکی از واضحترین کاربردها نگهداری اطلاعات خصوصی است.
کاربر میتواند داده را روی دستگاه خود رمزگذاری کند و فقط نسخه Ciphertext را داخل Canister قرار دهد.
در زمان نیاز، vetKey مناسب دوباره مشتق میشود.
مثلاً:
- Password Manager؛
- یادداشت خصوصی؛
- پرونده پزشکی؛
- مدارک هویتی؛
- اسناد شرکتی.
مستندات رسمی ICP نیز Encrypted Storage را یکی از کاربردهای اصلی vetKeys معرفی میکنند.
2. رمزگذاری بر اساس هویت
vetKeys از Identity-Based Encryption یا IBE پشتیبانی میکند.
در این مدل میتوان داده را مستقیماً برای یک Identity مشخص رمزگذاری کرد.
این Identity میتواند مثلاً:
- Principal در ICP؛
- Internet Identity؛
- ایمیل؛
- یا حتی یک آدرس Ethereum
باشد.
فرض کنید بخواهید پیام رمزگذاریشدهای برای کاربری بفرستید که هنوز آنلاین نیست.
لازم نیست ابتدا از او Public Key اختصاصی بگیرید.
اطلاعات میتوانند برای Identity او رمزگذاری شوند و او بعداً پس از احراز هویت Key لازم را دریافت کند.
3. پیامرسانی خصوصی روی بلاکچین
Smart Contractهای سنتی برای Secret Messaging مناسب نیستند، چون دادههای آنها معمولاً باید توسط Nodeها پردازش شوند.
vetKeys میتواند مدیریت Decryption Key را از داده رمزگذاریشده جدا کند.
نتیجه میتواند زیرساختی برای:
End-to-End Encrypted Messaging
باشد که Access Control آن توسط برنامه On-chain مدیریت میشود.
4. مزایده مخفی
در یک Auction عمومی، مشاهده پیشنهاد دیگران میتواند روی رفتار معاملهگران اثر بگذارد.
با Timelock Encryption میتوان Bidها را رمزگذاری کرد و اجازه رمزگشایی را فقط بعد از پایان مهلت مزایده داد.
مستندات ICP، Secret-Bid Auction را یکی از کاربردهای مستقیم vetKeys معرفی میکنند.
5. کاهش بعضی حملات MEV
یکی از مشکلات DeFi این است که محتوای تراکنشها میتواند قبل از نهاییشدن مشاهده شود.
این مسئله زمینه Front-running و بعضی مدلهای MEV را ایجاد میکند.
Timelock Encryption میتواند جزئیات حساس را تا زمان مشخصی پنهان نگه دارد و بعداً Key رمزگشایی را آزاد کند.
البته vetKeys بهتنهایی تمام MEV را حذف نمیکند؛ این فقط یکی از کاربردهای ممکن در طراحی پروتکل است.
6. Threshold BLS Signature
vetKeys امکان استفاده از Threshold BLS Signatures را نیز برای Canisterها فراهم میکند.
BLS مزایایی مثل Signature کوچک و قابلیت Aggregation کارآمد دارد و میتواند برای بعضی پروتکلهای Multichain یا سیستمهایی که تعداد زیادی Signature را بررسی میکنند مفید باشد.
7. Verifiable Randomness
بعضی برنامهها به عدد تصادفی نیاز دارند:
- قرعهکشی؛
- بازی؛
- انتخاب ویژگی NFT؛
- توزیع تصادفی پاداش.
اما اگر یک سرور مرکزی عدد Random تولید کند، باید به همان سرور اعتماد کرد.
vetKeys میتواند بهعنوان بخشی از یک Verifiable Random Function استفاده شود تا خروجی هم غیرقابلپیشبینی و هم قابل راستیآزمایی باشد.
8. بازیابی Key روی چند دستگاه
چون Key بهشکل Deterministic مشتق میشود، کاربر میتواند پس از احراز هویت از دستگاه دیگری نیز همان Key لازم را دریافت کند.
این مسئله یکی از مشکلات مدل «Secret فقط روی یک دستگاه» را کاهش میدهد.
9. مدیریت کلید بدون Key Management Server متمرکز
در سیستم سنتی، شرکت ممکن است یک KMS مرکزی داشته باشد که Master Key را نگه میدارد.
اگر همان سیستم Compromise شود، دامنه خسارت بسیار بالا میرود.
vetKeys سعی میکند نقش Key Authority را میان مجموعهای از نودها توزیع کند؛ یعنی یک نود منفرد نمیتواند Key را بهتنهایی مشتق کند.

تفاوت vetKeys و MPC چیست؟
این سؤال مهم است؛ مخصوصاً چون هر دو از Threshold Cryptography استفاده میکنند.
در مقاله کیف پول MPC چیست؟ ویکیاکسچنج توضیح دادهایم که MPC Wallet معمولاً اختیار امضای تراکنش را میان چند Key Share تقسیم میکند.
اما vetKeys هدف متفاوتی دارد.
| ویژگی | MPC Wallet | vetKeys |
|---|---|---|
| هدف رایج | کنترل و امضای دارایی | مشتقکردن و تحویل امن کلید |
| ساختار | چند Key Share | Master Key آستانهای در Subnet |
| کاربرد اصلی | Wallet/Custody | Encryption، IBE، Timelock، BLS |
| کلید کامل | در طراحی مناسب بازسازی نمیشود | Master Key در اختیار یک Node نیست |
| نقش Blockchain | ممکن است فقط محل دارایی باشد | خود ICP سرویس Key Derivation را اجرا میکند |
| استفاده توسط برنامه | وابسته به Provider | از طریق API سیستمی ICP |
پس:
vetKeys یک MPC Wallet نیست.هرچند هر دو از ایده توزیع اعتماد و Threshold Cryptography استفاده میکنند.
آیا vetKeys کلید خصوصی را داخل بلاکچین ذخیره میکند؟
خیر؛ ایده اصلی دقیقاً جلوگیری از همین اتفاق است.
Master Secret به شکل Share میان نودهای Subnet توزیع میشود.
Key مشتقشده نیز قبل از خروج از زیرساخت برای Transport Key کاربر رمزگذاری میشود.
مستندات ICP تأکید میکنند که هیچ Node، Subnet یا Canister منفردی Raw Derived Key کاربر را در اختیار ندارد.
آیا vetKeys همه اطلاعات Canister را خصوصی میکند؟
خیر. این یکی از مهمترین سوءبرداشتهاست.
vetKeys یک لایه مدیریت و مشتقکردن Key است؛ نه یک «حالت مخفی» برای تمام Smart Contract.مستندات امنیتی ICP صراحتاً میگویند روی Application Subnetهای معمولی، Canister Memory بهصورت پیشفرض محرمانه نیست و اپراتور Node ممکن است بتواند Memory را مشاهده کند. ICP در حال گسترش استفاده از سختافزارهای Confidential Computing برای کاهش این ریسک است، اما توصیه فعلی این است که Secretهایی مانند Private Key، Password یا API Token بهصورت Plaintext در Canister State ذخیره نشوند.
برای استفاده صحیح از vetKeys:
اطلاعات حساس باید قبل از ذخیرهشدن رمزگذاری شوند.
مثلاً Canister باید Ciphertext را ذخیره کند، نه متن اصلی پزشکی کاربر.
آیا Canister میتواند vetKey کاربر را بدزدد؟
در طراحی اصلی، Canister Raw Key را دریافت نمیکند؛ خروجی vetKD با Transport Public Key کاربر رمزگذاری شده است.
اما این به معنی حذف تمام ریسکهای برنامه نیست.
Canister مسئول Access Control است.
اگر توسعهدهنده Authentication را اشتباه پیادهسازی کند و به کاربر غیرمجاز اجازه درخواست Key بدهد، مشکل امنیتی ایجاد میشود.
خود مستندات امنیت ICP نیز هشدار میدهند که شبکه بهطور خودکار Access Control برنامه شما را درست نمیکند؛ توسعهدهنده باید Caller را بررسی کند.
بنابراین:
Cryptography قوی ≠ Application بدون باگ
امنیت vetKeys چقدر بررسی شده است؟
در سال 2025، Cryptography Services شرکت NCC Group یک Security Review روی vetKeys انجام داد.
طبق خلاصه منتشرشده توسط تیم Internet Computer:
- آسیبپذیری Critical: صفر
- High: صفر
- Medium: صفر
- Low: دو مورد
- Informational: سه مورد
و اعلام شد موارد یافتشده اصلاح و دوباره بررسی شدهاند.
این Audit یک نکته مثبت است، اما مانند هر بررسی امنیتی دیگری تضمین نمیکند هیچ باگی در آینده پیدا نخواهد شد.
یک ریسک مهم: Canister ID را از دست ندهید
یکی از نکات فنی مهم vetKeys این است که Key Derivation به Canister ID وابسته است.
اگر برنامه به روش اشتباه به یک Canister جدید با ID متفاوت منتقل شود، Keyهای مشتقشده نیز تغییر میکنند.
مستندات ICP هشدار میدهند اگر State یک Canister دارای داده رمزگذاریشده به ID جدید منتقل شود، Key قبلی دیگر قابل مشتقکردن نیست و داده ممکن است غیرقابل دسترس شود.
بنابراین Backup و Migration برنامههای مبتنی بر vetKeys باید با دقت بیشتری طراحی شود.
هزینه استفاده از vetKeys چقدر است؟
در زمان نگارش این مقاله، ICP دو Key اصلی برای vetKD معرفی میکند:
| کلید | کاربرد | هزینه تقریبی هر Key Derivation |
|---|---|---|
| test_key_1 | توسعه و آزمایش | حدود 10 میلیارد Cycles |
| key_1 | Production | حدود 26.15 میلیارد Cycles |
طبق جدول هزینه فعلی ICP، اشتقاق Key تولیدی تقریباً 0.036 دلار هزینه Cycle دارد. این مقدار میتواند با تغییر پارامترهای شبکه تغییر کند.
آیا vetKeys میتواند روی قیمت ICP اثر بگذارد؟
بهصورت مستقیم نمیتوان چنین نتیجهای گرفت.
استفاده از vetKeys نیازمند Cycles است و برنامههای ICP برای محاسبات شبکه Cycles مصرف میکنند.از طرف دیگر ICP میتواند برای تولید Cycles تبدیل و در این فرآیند سوزانده شود. بنابراین اگر استفاده واقعی از برنامههای مبتنی بر vetKeys در مقیاس بالا رشد کند، میتواند بخشی از تقاضای محاسبات شبکه را افزایش دهد.
اما این زنجیره:
vetKeys → استفاده بیشتر از ICP → رشد قیمت ICP
تضمینی نیست.
قیمت ICP علاوه بر مصرف Cycles به عواملی مانند:
- شرایط کلی بازار؛
- عرضه و پاداشهای شبکه؛
- مقدار ICP قفلشده؛
- پذیرش توسعهدهندگان؛
- رقابت بلاکچینها؛
- و تقاضای سرمایهگذاری
وابسته است.
پس vetKeys را باید ابتدا بهعنوان فناوری شبکه ارزیابی کرد، نه سیگنال خرید ICP.
تفاوت vetKeys با رمزنگاری معمولی چیست؟
رمزگذاری معمولی بهخودیخود مشکلی ندارد.مشکل اصلی مدیریت Key است.
اگر فایل با AES رمزگذاری شود اما Key آن داخل همان Database ذخیره شود، مهاجمی که Database را سرقت کند ممکن است هم Ciphertext و هم Key را به دست بیاورد.
vetKeys تلاش میکند Key Management را از ذخیره داده جدا کند:
Data → رمزگذاریشده ذخیره میشود
Key → در زمان نیاز، به شکل Threshold مشتق میشود
تحویل Key → برای دستگاه مجاز رمزگذاری میشود
این همان جایی است که vetKeys از «فقط Encryption» فراتر میرود.
vetKeys چه ارتباطی با Chain-Key Cryptography دارد؟
vetKeys بخشی از خانواده بزرگتر فناوریهای Chain-Key Cryptography در Internet Computer است.
ICP پیش از آن از Threshold ECDSA و Threshold Schnorr برای امضای تراکنشهای شبکههای خارجی استفاده کرده است.
برای مثال Canister میتواند در بعضی معماریها تراکنش Bitcoin یا Ethereum را از طریق Threshold Signature امضا کند، بدون اینکه یک Private Key کامل در اختیار یک سرور باشد.
vetKeys این ایده Threshold را به حوزه Key Derivation و Encryption گسترش میدهد.

مزایا و محدودیتهای vetKeys
| مزیت | محدودیت |
|---|---|
| حذف یک Key Authority منفرد | پیچیدگی رمزنگاری بیشتر |
| Raw Key در اختیار Canister قرار نمیگیرد | Access Control برنامه همچنان حیاتی است |
| بازیابی Deterministic کلید | وابستگی مشتق کلید به Canister ID |
| امکان Encrypted Storage | داده باید واقعاً Encrypt شود |
| پشتیبانی از IBE | بهتنهایی Confidential Compute نیست |
| Timelock Encryption | همه MEV را حذف نمیکند |
| Threshold BLS | نیازمند هزینه Cycles |
| عدم اعتماد به یک Node | همچنان به مدل امنیت Subnet وابسته است |
آیا vetKeys میتواند آینده برنامههای خصوصی روی بلاکچین باشد؟
vetKeys یک مشکل واقعی را هدف گرفته است:
بلاکچین بدون Cryptographic Key Management مناسب نمیتواند بهسادگی اطلاعات محرمانه نگه دارد.
اگر برنامههایی مانند:
- پیامرسان خصوصی؛
- Data Vault؛
- پرونده پزشکی؛
- مدیریت هویت؛
- Password Manager؛
- مزایده محرمانه؛
- بازیهای مبتنی بر Randomness؛
- یا بعضی برنامههای DeFi
قرار باشد بخش بیشتری از Backend خود را روی Blockchain اجرا کنند، مدیریت کلید باید بدون یک Secret Server مرکزی انجام شود.vetKeys یکی از رویکردهای جدی برای حل همین مسئله است.
اما نباید آن را با عباراتی مثل:
«بلاکچین کاملاً خصوصی شد»
یا:
«دیگر هیچکس به داده دسترسی ندارد»
توصیف کرد.
حریم خصوصی نهایی هنوز به طراحی Application، رمزگذاری Client-side، Authentication، Access Control، Security Device و مدل اجرای Canister وابسته است.
جمعبندی؛ vetKeys چیست؟
vetKeys زیرساخت رمزنگاری Internet Computer برای مشتقکردن و تحویل امن کلیدهای رمزنگاری با استفاده از Threshold Cryptography است.
در قلب آن پروتکل vetKD قرار دارد.
Master Key میان Nodeهای Subnet توزیع میشود و هیچ Node منفردی Master Secret کامل را در اختیار ندارد.
وقتی کاربر به Key نیاز دارد:
- دستگاه او Transport Key موقت ایجاد میکند.
- Canister مجوز کاربر را بررسی میکند.
- تعداد کافی از Nodeها برای Key Derivation همکاری میکنند.
- Key مشتقشده قبل از خروج برای Transport Public Key کاربر رمزگذاری میشود.
- فقط دستگاه کاربر میتواند vetKey را به شکل خام دریافت کند.
این معماری کاربردهایی مانند Encrypted Storage، Identity-Based Encryption، Timelock Encryption، Threshold BLS و Verifiable Randomness را ممکن میکند.
بااینحال vetKeys جایگزین امنیت Application نیست.
اگر Access Control اشتباه باشد، داده قبل از ذخیره رمزگذاری نشده باشد یا Migration Canister نادرست انجام شود، رمزنگاری Threshold بهتنهایی مشکل را حل نمیکند.
بنابراین اهمیت اصلی vetKeys در یک جمله خلاصه میشود:
Internet Computer تلاش میکند مدیریت کلید رمزنگاری را از یک Secret مرکزی به یک سرویس Threshold در سطح خود شبکه تبدیل کند.
برای آشنایی بیشتر با شبکه میزبان این فناوری میتوانید صفحه Internet Computer ICP ویکیاکسچنج را مطالعه کنید.
⚠️ این مقاله صرفاً آموزشی است و بررسی فناوری vetKeys یا Internet Computer به معنی توصیه خرید یا فروش ICP نیست.
منابع اصلی مقاله
مستندات رسمی ICP — VetKeys مرجع فعلی نحوه کار vetKD، Key Derivation، کاربردها و وضعیت Mainnet. VetKeys | ICP Developer Docs
NCC Group Security Review خلاصه بررسی امنیتی رمزنگاری vetKeys و وضعیت Findingهای شناساییشده. VetKeys Cryptography Review



گفتوگو
اولین دیدگاه را شما بنویسید