تفاوت و شباهت کیف پول غیر حضانتی و کیف پول غیر امانی و کیف پول غیر متمرکز
کیف پول غیر حضانتی، غیر امانی و غیر متمرکز چه تفاوتی دارند؟ در این راهنمای جامع، کنترل کلید خصوصی، نقش سرورها و Supabase و جایگاه کیف پول سولمینت را دقیق...
· 11 دقیقه مطالعه

در دنیای ارزهای دیجیتال اصطلاحاتی مانند **کیف پول غیر حضانتی**، **کیف پول غیر امانی** و **کیف پول غیر متمرکز** بسیار به کار میروند. شباهت ظاهری این عبارتها باعث شده گاهی هر سه اصطلاح به اشتباه یکسان در نظر گرفته شوند؛ در حالی که از نظر فنی، هرکدام به پرسش متفاوتی پاسخ میدهند.
در این مقاله تفاوت این سه مفهوم را از پایه بررسی میکنیم، ارتباط آنها با کلید خصوصی و امضای تراکنش را توضیح میدهیم و در ادامه نشان میدهیم که استفاده از سرور یا سرویسهایی مانند **Supabase** لزوماً یک کیف پول را حضانتی نمیکند. در پایان نیز جایگاه **کیف پول سولمینت** را در این مدل معماری بررسی خواهیم کرد.
کیف پول دقیقاً چه چیزی را نگهداری میکند؟
یک سوءبرداشت رایج این است که کیف پول، خودِ ارز دیجیتال را داخل گوشی یا کامپیوتر ذخیره میکند. در شبکههایی مانند سولانا، دارایی روی بلاکچین ثبت شده است؛ کیف پول بیشتر ابزار مدیریت حساب، تولید و استفاده از کلیدهای رمزنگاری و تعامل با شبکه است.
مهمترین بخش این فرایند، کلید خصوصی است. هرکس که کنترل کلید خصوصی یک حساب را در اختیار داشته باشد، در سطح رمزنگاری میتواند تراکنشهای آن حساب را امضا کند.
به همین دلیل، هنگام بررسی امنیت یک کیف پول باید به جای ظاهر برنامه، مسیر واقعی تولید، نگهداری و استفاده از کلید را بررسی کرد.
کیف پول غیر حضانتی چیست؟
**کیف پول غیر حضانتی** یا Non-Custodial Wallet کیف پولی است که در آن ارائهدهنده سرویس، متولی نگهداری کلید خصوصی کاربر نیست و کنترل کلید و اختیار امضای تراکنش در اختیار خود کاربر باقی میماند.
در یک معماری غیر حضانتی معمولاً چنین مسیری وجود دارد:
1. کیف پول روی دستگاه کاربر ایجاد میشود.
2. اطلاعات حساس مربوط به کلید در اختیار محیط کاربر قرار میگیرد.
3. تراکنش در سمت کاربر آماده میشود.
4. تراکنش با کلید خصوصی کاربر امضا میشود.
5. نسخه امضاشده برای شبکه ارسال میشود.
نکته کلیدی این است که سرور نباید برای امضای تراکنش به کلید خصوصی کاربر دسترسی داشته باشد.
مزایای کیف پول غیر حضانتی
مهمترین مزیت، کنترل مستقیمتر کاربر بر دارایی است. کاربر برای انجام هر تراکنش به تأیید یک شرکت یا صرافی به عنوان متولی کلید نیاز ندارد.
اما همین ویژگی یک مسئولیت مهم نیز ایجاد میکند: حفاظت از عبارت بازیابی و کلیدهای حساس بر عهده خود کاربر است. از دست رفتن عبارت بازیابی یا افشای آن میتواند دسترسی به دارایی را با خطر جدی مواجه کند.
کیف پول غیر امانی چیست؟
در ادبیات فارسی حوزه رمزارز، **کیف پول غیر امانی** معمولاً همان مفهومی را بیان میکند که از اصطلاح Non-Custodial Wallet برداشت میشود.
به زبان ساده:
**کیف پول غیر حضانتی = کیف پول غیر امانی**
وقتی یک سرویس شخص ثالث متولی کلید خصوصی کاربر نیست و کاربر کنترل کلید را در اختیار دارد، میتوان آن را غیر حضانتی یا غیر امانی نامید.
تفاوت این دو عبارت بیشتر در انتخاب واژه و ترجمه فارسی است، نه در مدل اصلی فنی.
کیف پول غیر متمرکز چیست؟
موضوع **کیف پول غیر متمرکز** کمی متفاوت است.
غیرمتمرکز بودن بیشتر به ساختار و معماری یک سیستم مربوط میشود: چه اجزایی متمرکز هستند، چه کسی آنها را کنترل میکند، سیستم چقدر به یک نقطه مرکزی وابسته است و در صورت اختلال یک سرویس، کدام قابلیتها همچنان در دسترس باقی میمانند.
بنابراین «غیر متمرکز» را نباید بهعنوان ترجمه دیگری از Non-Custodial در نظر گرفت.
برای نمونه، یک کیف پول میتواند کلید خصوصی را کاملاً در اختیار کاربر نگه دارد و در نتیجه غیر حضانتی باشد، اما برای قیمت ارزها، دادههای تاریخی، اطلاعات توکنها، RPC یا بعضی سرویسهای جانبی از زیرساختهای متمرکز استفاده کند.
این کیف پول همچنان میتواند غیر حضانتی باشد.
تفاوت اصلی غیر حضانتی و غیر متمرکز
برای درک سادهتر، کافی است دو سؤال بپرسیم:
**چه کسی کلید خصوصی را کنترل میکند؟**
این سؤال مستقیماً با غیر حضانتی یا حضانتی بودن ارتباط دارد.
**چه کسی زیرساخت سیستم را کنترل میکند؟**
این سؤال به تمرکز یا عدم تمرکز معماری مربوط میشود.
در نتیجه این دو مفهوم همپوشانی دارند، اما یکی نیستند.
آیا هر کیف پول غیر حضانتی، غیر متمرکز است؟
خیر.
فرض کنید کلید خصوصی همیشه روی دستگاه کاربر باقی بماند و هیچ سروری نتواند تراکنش را به جای کاربر امضا کند. این ویژگی، پایه غیر حضانتی بودن را ایجاد میکند.
اما همان کیف پول ممکن است برای اطلاعات جانبی خود به سرویسهای متمرکز متکی باشد.
برای مثال:
- دریافت قیمت SOL
- دریافت موجودی توکنها
- نمایش تاریخچه تراکنشها
- RPC
- تحلیل دادههای زنجیره
- اعلانها
- سرویسهای حساب کاربری
وابستگی به این سرویسها به خودی خود کیف پول را حضانتی نمیکند؛ زیرا معیار اصلی همچنان کنترل کلید خصوصی است.
آیا هر کیف پول غیر متمرکز، غیر حضانتی است؟
این نتیجه نیز الزامی نیست.
ممکن است زیرساخت یک سیستم از نظر معماری توزیعشده یا چندبخشی باشد، اما کلید یا اختیار عملیات مالی همچنان در اختیار یک متولی قرار داشته باشد.
بنابراین برای تشخیص Non-Custodial بودن باید مشخص شود چه کسی واقعاً کلید را کنترل میکند و چه کسی میتواند تراکنش را امضا کند.
جدول مقایسه کیف پول غیر حضانتی، غیر امانی و غیر متمرکز
| ویژگی | کیف پول غیر حضانتی | کیف پول غیر امانی | کیف پول غیر متمرکز |
|---|---|---|---|
| کنترل کلید خصوصی توسط کاربر | ویژگی اصلی | ویژگی اصلی | الزامی نیست |
| وجود متولی کلید | خیر | خیر | از این عبارت به تنهایی مشخص نمیشود |
| استفاده از سرور | ممکن است | ممکن است | ممکن است |
| استفاده از API متمرکز | ممکن است | ممکن است | ممکن است |
| متنباز بودن | الزامی نیست | الزامی نیست | الزامی نیست |
| بدون سرور بودن | الزامی نیست | الزامی نیست | الزامی نیست |
| تمرکز مفهوم | کنترل کلید | نگهداری کلید | معماری و کنترل سیستم |
آیا استفاده از Supabase یک کیف پول را حضانتی میکند؟
خیر.
این نکته در معماری محصولات Web3 اهمیت زیادی دارد.
یک محصول میتواند از **Supabase** برای بخشهایی مانند احراز هویت، مدیریت دادههای غیرمالی، تنظیمات حساب یا سایر قابلیتهای اپلیکیشن استفاده کند؛ در حالی که کلید خصوصی کیف پول بهصورت مستقل و تحت کنترل کاربر باقی بماند.
ملاک اصلی این نیست که «آیا سرور وجود دارد؟»
ملاک این است که:
**آیا سرور به کلید خصوصی دسترسی دارد یا میتواند بدون امضای کاربر تراکنش را امضا و ارسال کند؟**
اگر پاسخ منفی باشد، وجود Supabase یا هر سرویس زیرساختی دیگر به تنهایی کیف پول را حضانتی نمیکند.
حتی در یک معماری پیچیده Web3، میتوان بخش داده و حساب کاربری را از بخش کنترل کلید جدا کرد.
تفاوت احراز هویت با مالکیت کیف پول
یکی از مهمترین نکات در طراحی یک محصول Web3 این است که **حساب کاربری** و **حساب بلاکچینی** را یکی ندانیم.
کاربر ممکن است در یک وبسایت حساب داشته باشد و اطلاعاتی مانند تنظیمات، ترجیحات یا دادههای پروفایل او در یک پایگاه داده نگهداری شود.
این موضوع به معنی آن نیست که همان پایگاه داده کلید خصوصی کیف پول را نیز در اختیار دارد.
به همین دلیل میتوان یک سرویس احراز هویت را کاملاً از سیستم امضای تراکنش جدا کرد.
در چنین معماریای:
**حساب اپلیکیشن ≠ کلید خصوصی کیف پول**
این تفکیک برای امنیت و طراحی درست محصول اهمیت زیادی دارد.
کیف پول سولمینت در این معماری چه جایگاهی دارد؟
در مورد **کیف پول سولمینت** نیز باید به همین اصول نگاه کرد.
اگر کلید خصوصی و عملیات امضای تراکنش در اختیار کاربر باقی بماند، ویژگی غیر حضانتی بودن میتواند حفظ شود؛ حتی اگر بخشهایی از اکوسیستم سولمینت از سرویسهای سروری استفاده کنند.
برای مثال، میتوان معماری را به چند بخش مستقل تقسیم کرد:
لایه کیف پول
مسئول ایجاد حساب، مدیریت کلید و امضای تراکنش است.
این قسمت حساسترین بخش معماری است و نباید کلید خصوصی کاربر را برای امضای تراکنش به سرور ارسال کند.
لایه بلاکچین
برای خواندن اطلاعات شبکه و ارسال تراکنش از RPC و زیرساختهای ارتباط با شبکه استفاده میشود.
استفاده از RPC به معنی حضانتی شدن کیف پول نیست.
لایه سرویسهای اپلیکیشن
این بخش میتواند اطلاعات غیرحساس و قابلیتهایی مانند تنظیمات، احراز هویت، دادههای عمومی یا امکانات جانبی را مدیریت کند.
در این لایه میتوان از سرویسهایی مانند **Supabase** استفاده کرد، بدون اینکه این سرویس مالک کلید خصوصی کیف پول باشد.
چرا وجود سرور به معنی حضانتی بودن نیست؟
یک مثال ساده در نظر بگیرید.
کاربر در کیف پول خود یک تراکنش ایجاد میکند:
**تراکنش → امضای محلی در دستگاه → تراکنش امضاشده → شبکه**
در این حالت، سرور میتواند فقط به ارسال یا مسیریابی تراکنش کمک کند.
اما یک معماری متفاوت این است:
**کاربر → ارسال اطلاعات حساس به سرور → سرور تراکنش را امضا میکند → شبکه**
مدل دوم اساساً ویژگی متفاوتی دارد، زیرا سرور به فرایند کنترل کلید وارد شده است.
بنابراین بررسی معماری از بررسی نام محصول مهمتر است.
آیا متنباز بودن یعنی کیف پول غیر حضانتی است؟
خیر.
**Open Source**، **Non-Custodial** و **Decentralized** سه ویژگی متفاوت هستند.
متنباز بودن میتواند امکان بررسی کد را افزایش دهد، اما به تنهایی ثابت نمیکند که کلید خصوصی کاملاً در اختیار کاربر است.
همچنین یک کیف پول غیر حضانتی الزاماً نباید تمام اجزای خود را متنباز کرده باشد.
پس برای ارزیابی امنیت نباید یکی را جایگزین دیگری کرد.
اتصال به DAppها و صرافیهای غیرمتمرکز چه تأثیری دارد؟
اتصال یک کیف پول غیر حضانتی به DApp یا پروتکل DeFi آن را حضانتی نمیکند.
کاربر میتواند با کیف پول خود به یک برنامه غیرمتمرکز متصل شود، درخواست تراکنش دریافت کند و سپس تراکنش را خودش امضا کند.
در چنین مدلی، DApp درخواست انجام عملیات را ایجاد میکند، اما کنترل کلید و امضای نهایی همچنان در سمت کیف پول باقی میماند.
این مدل از تعامل، یکی از پایههای اصلی تجربه Web3 است.
مهمترین اشتباهات هنگام انتخاب کیف پول
داشتن عبارت بازیابی به تنهایی کافی نیست
وجود عبارت بازیابی به خودی خود ثابت نمیکند که یک کیف پول واقعاً غیر حضانتی است. باید مشخص شود کلید چگونه تولید، ذخیره و استفاده میشود.
استفاده از API به معنی حضانتی بودن نیست
تقریباً هر اپلیکیشن مدرن میتواند برای دادههای جانبی از API استفاده کند.
وجود سرور به معنی متمرکز یا حضانتی بودن کامل نیست
باید مشخص شود سرور دقیقاً چه چیزی را کنترل میکند.
غیرمتمرکز و غیر حضانتی مترادف نیستند
این دو اصطلاح باید جداگانه ارزیابی شوند.
هنگام انتخاب یک کیف پول چه پرسشهایی بپرسیم؟
پیش از اعتماد به یک کیف پول، این پرسشها بسیار مهمتر از شعارهای تبلیغاتی آن هستند:
1. کلید خصوصی کجا تولید میشود؟
2. آیا کلید خصوصی از دستگاه خارج میشود؟
3. آیا سرور میتواند تراکنش را به جای کاربر امضا کند؟
4. عبارت بازیابی چگونه تولید و نگهداری میشود؟
5. در صورت از کار افتادن سرور، آیا کاربر هنوز به کیف پول خود دسترسی دارد؟
6. چه دادههایی در سرور ذخیره میشوند؟
7. آیا حساب کاربری از کلید خصوصی جداست؟
8. کیف پول به چه RPCها و APIهایی وابسته است؟
9. آیا کاربر میتواند حساب خود را با عبارت بازیابی در کیف پول دیگری بازیابی کند؟
پاسخ این پرسشها تصویری بسیار دقیقتر از معماری واقعی کیف پول ارائه میکند.
جمعبندی
**کیف پول غیر حضانتی** و **کیف پول غیر امانی** در کاربرد رایج حوزه ارزهای دیجیتال تقریباً یک مفهوم هستند: کنترل کلید خصوصی و اختیار امضای تراکنش در اختیار خود کاربر باقی میماند و یک متولی شخص ثالث کلید او را نگهداری نمیکند.
اما **کیف پول غیر متمرکز** مفهوم متفاوتی دارد و بیشتر به معماری و توزیع کنترل در سیستم مربوط میشود.
به همین دلیل میتوان یک کیف پول غیر حضانتی داشت که برای برخی امکانات از سرور، RPC، API یا سرویسهایی مانند Supabase استفاده میکند.
پس این سه گزاره را نباید یکی دانست:
**Non-Custodial ≠ Decentralized**
و همچنین:
**Open Source ≠ Non-Custodial**
در نهایت، درباره **کیف پول سولمینت** نیز باید به یک معیار فنی ساده توجه کرد: چه کسی کلید خصوصی را کنترل میکند و چه کسی قادر به امضای تراکنش است؟
اگر کنترل کلید در اختیار کاربر باقی بماند و زیرساختهای سروری نتوانند بدون اختیار او تراکنش را امضا کنند، استفاده از سرویسهای جانبی مانند Supabase بهتنهایی ویژگی غیر حضانتی کیف پول را تغییر نمیدهد.
برای مطالعه بیشتر درباره معماری کیف پول و نحوه تعامل آن با dAppهای سولانا، میتوانید راهنمای **کیف پول چگونه با برنامههای شبکه سولانا تعامل میکند؟** را نیز در سولمینت مطالعه کنید.