نام در حال حاضر استفاده شده است

  • 2022-03-29

یک برچسب از قبل با نام شعبه ارائه شده وجود دارد. بسیاری از دستورات Git هر دو نام برچسب و شاخه را می پذیرند، بنابراین ایجاد این شاخه ممکن است باعث رفتار غیرمنتظره شود. آیا مطمئن هستید که می خواهید این شعبه را ایجاد کنید؟

docs / docs / en-us / basic / concept / wallets. md

  • به فایل T بروید
  • به خط L بروید
  • مسیر کپی
  • پیوند ثابت را کپی کنید

این commit به هیچ شعبه ای در این مخزن تعلق ندارد و ممکن است به یک فورک خارج از مخزن تعلق داشته باشد.

  • با دسکتاپ باز کنید
  • مشاهده خام
  • کپی مطالب خام کپی مطالب خام

مطالب خام را کپی کنید

مطالب خام را کپی کنید

کیف پول ها اجزای اصلی نئو و پل هایی برای دسترسی کاربران به شبکه نئو هستند. آنها مسئول عملیات معاملاتی مانند انتقال، استقرار قرارداد، ثبت دارایی و غیره هستند.

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

در نئو، حساب قرارداد هوشمند است و آدرس نشان دهنده یک اسکریپت قرارداد است. نمودار جریان زیر نحوه استخراج کلید عمومی از کلید خصوصی و سپس به آدرس را نشان می دهد:

کلید خصوصی یک مقدار تصادفی است که بین 1 و n ایجاد می شود (n یک ثابت است، کمی کمتر از 2^256)، و به طور کلی با یک عدد 256 بیتی (32 بایت) نشان داده می شود.

دو فرمت اصلی رمزگذاری برای کلیدهای خصوصی در نئو وجود دارد:

قالب hexstring رشته ای است که از کاراکترهای هگزا دسیمال برای نمایش آرایه بایت استفاده می کند.

فرمت wif به این صورت است که پیشوند 0x80 و پسوند 0x01 را در داده های اصلی 32 بایتی اضافه می کند و رشته را پس از رمزگذاری Base58Check دریافت می کند.

قالب ارزش
بایت[] ‎, 0x36, 0x3c, 0x4c, 0xc0, 0x2a, 0x69, 0x62]
hexstring c7134d6fd8e73d819e82755c64c93788d8db0961929e025a53363c4cc02a6962
همسر L3tgppXLgdaeqSGSFw1Go3skBiy8vQAM7YMXvTHsKQtE16PBncSU

کلید عمومی یک نقطه (X, Y) است که از طریق الگوریتم ECC با کلید خصوصی محاسبه می شود. مختصات X، Y را می توان با داده های 32 بایتی نشان داد. متفاوت از بیت کوین، Neo secp256r1 را به عنوان منحنی الگوریتم ECC انتخاب می کند. دو فرمت کلید عمومی در نئو وجود دارد:

کلید عمومی فشرده نشده

0x04 + X (32 بایت) + Y (32 بایت)

کلید عمومی فشرده

0x02/0x03 + X (32 بایت)

قالب ارزش
کلید خصوصی c7134d6fd8e73d819e82755c64c93788d8db0961929e025a53363c4cc02a6962
کلید عمومی (فشرده شده) 035a928f201639204e06b4368b1a93365462a8ebbff0b8818151b74faab3a2b61a
کلید عمومی (غیر فشرده) آدرس مجموعه ای از اعداد و نامه ها پس از یک سری از تحولات کلید عمومی است. در این بخش مراحل تبدیل از یک کلید عمومی به یک آدرس در نئو شرح داده شده است.

[! توجه داشته باشید]

اسکریپت آدرس در NEO N3 با استفاده از Opcode. checksig و opcode تغییر نکرده است.

با کلید عمومی یک اسکریپت checksig بسازید و قالب به شرح زیر است:

هش اسکریپت قرارداد را محاسبه کنید (20 بایت ، یک بار SHA256 و RIPEMD160 فیلمنامه را انجام دهید).

پیشوند نسخه را در هش اضافه کنید (در حال حاضر ، نسخه پروتکل NEO 53 و بایت مربوطه 0x35 است).

رمزگذاری Base58 را برای داده های بایت فوق ایجاد کنید.

قالب

قالب ارزش
کلید خصوصی کلید عمومی (فشرده شده)
کلید عمومی (فشرده شده) فیلم نامه
0C2103CDB067D930FD5ADAA6C68545016044AADDEC64BA39E548250EAEA51172E535C4156E7B327 نشانی
nnli44djnxtdnsbkofb48atvytb1zzrnes یک اسکریپت N-O-M-MultIsig را با آدرس های متعدد بسازید. قالب اسکریپت به شرح زیر است:

هش اسکریپت قرارداد را محاسبه کنید (20 بایت ، یک بار SHA256 و RIPEMD160 فیلمنامه را انجام دهید).

پیشوند نسخه را در هش اضافه کنید (در حال حاضر ، نسخه پروتکل NEO 53 و بایت مربوطه 0x35 است).

رمزگذاری Base58 را برای داده های بایت فوق ایجاد کنید.

قالب

قالب ارزش
کلید خصوصی کلید عمومی (فشرده شده)
کلید عمومی (فشرده شده) 110C21036C8431CCC78B33177A60BCC02BAF60D05FEE5038E739D3A688E394C2CBD8430C210321515215152151521521521521521521521521521521521542154545454545454545215452154545421545454545454545454545454545454545215215215215215215215215454215454215454215454215454215454215454215454215454215454545454545454545454545215215
0C2103CDB067D930FD5ADAA6C68545016044AADDEC64BA39E548250EAEA51172E535C4156E7B327 nz3pqnc1hmn8ehw55zncnu8b2wooxjhcyr
nnli44djnxtdnsbkofb48atvytb1zzrnes لطفاً برای استفاده از emitpush (شماره) به فاصله شماره توجه کنید. در اینجا مثالی در مورد شماره biginteger ، جایی که داده = number. tobytearray () وجود دارد:

اسکریپت آدرس در NEO N3 با استفاده از Opcode. checksig و opcode تغییر نکرده است.

انتشار Opcode

ارزش -1 ارزش
0x10 + شمارهdata. l طول == 1 opcode. pushint8 + داده ها
0x00 + داده data. l طول == 2 opcode. pushint16 + داده ها
0x01 + داده داده ها. طول opcode. pushint32 + داده ها
0x02 + Padright (داده ، 4)داده ها. طول opcode. pushint64 + داده ها
0x02 + Padright (داده ، 4)داده ها. طول opcode. pushint128 + داده ها
0x02 + Padright (داده ، 4)داده ها. طول opcode. pushint256 + داده ها
0x02 + Padright (داده ، 4)آدرس کیف پول اسکریپتاش هنگام ایجاد کیف پول در blockchain Neo ، کلید خصوصی ، کلید عمومی ، آدرس کیف پول و اسکریپت های مرتبط با آن تولید می شود.

بیایید به یک آدرس کیف پول استاندارد و رشته های ScriptHash مربوطه در قالب های بزرگ و کوچک Endian در زیر نگاه کنیم.

قالب

رشته

قالب nunlwxalk2g6gya7radplriqyunzhnncxg
اسکریپته بزرگ اندی 0xed7cc6f2dd842d384f254bc0c2d58fb69a4761
اسکریپتراش کوچک اندی 61479AB68FD5C2C04B254F382D84DDF2F5C67CED
base64 scripthash yueato/vwsblju84lytd8vxgfo0 =
برای تبدیل بین آدرس کیف پول و اسکریپتاش ، یا بین سفارش بایت بزرگ Endian و Little Endian ، از مبدل داده ابزار استفاده کنید. کیف پول DB3 معمولاً در کیف پول مبادله برای تسهیل مقدار زیادی از ذخیره اطلاعات حساب و نمایش داده های بازیابی استفاده می شود.

یک پرونده کیف پول DB3 از SQLite برای ذخیره داده ها استفاده می کند و پسوند نام پرونده . db3 است. چهار جدول در پرونده DB3 ایجاد شده است

در جدول کلیدی , عمدتا ویژگی های AES256 را ذخیره می کند:

PasswordHash: Hash of the Passowrd ، با استفاده از عملیات Hash Sha256.

IV: یک بردار اولیه AES ، به طور تصادفی تولید می شود.

MasterKey: یک رمزنگاری رمزگذاری شده ، با رمزگذاری کلید خصوصی با استفاده از الگوریتم AES256 با رمز عبور ، پارامترهای IV بدست می آید.

نسخه: نسخه کیف پول

کیف پول DB3 از AES (رمزگذاری متقارن) به عنوان روش رمزگذاری و رمزگشایی آن استفاده می کند.

یک پرونده کیف پول NEP6 با استاندارد NEP6 مطابقت دارد و پسوند نام پرونده . json است. قالب JSON به شرح زیر است:

در این مثال رمز عبور 1 است

رشته

شرح

نام برچسب که کاربر به پرونده کیف پول وصل می کند
نسخه در حال حاضر 3. 0 است
scrypt (n/r/p (N/R/P) پارامترهایی برای الگوریتم Scrypt است که برای رمزگذاری و رمزگشایی کلیدهای خصوصی در کیف پول استفاده می شود
حساب ها مجموعه ای از اشیاء حساب که جزئیات هر حساب را در کیف پول توصیف می کند
حساب آدرس حساب
حساب برچسب حساب ، به طور پیش فرض تهی
حساب. isdefault آیا حساب پیش فرض کیف پول است
حساب آیا حساب قفل شده است
حساب. کلید صادرات NEP2Key از PrivateKey
حساب. قرارداد قرارداد فیلمنامه
حساب. contract. Script خطاب
حساب. contract. Parameters لیست پارامتر برای قرارداد اسکریپت آدرس
حساب. contract. parameter. name نام پارامتر برای قرارداد اسکریپت آدرس
Account. contract. Parameter. type نام پارامتر برای قرارداد اسکریپت آدرس
account. contract. depoled نام پارامتر برای قرارداد اسکریپت آدرس
حساب. ویژگی های اضافی حساب ، به طور پیش فرض تهی
اضافی ویژگی های اضافی کیف پول ، به طور پیش فرض تهی
یک کیف پول NEP6 از الگوریتم Scrypt به عنوان روش اصلی رمزگذاری کیف پول و رمزگشایی استفاده می کند. آدرس از کلید عمومی گرفته شده است ، و هش آدرس چهار بایت اول SHA256 (SHA256 (آدرس)) است

یک کلید مشتق شده توسط الگوریتم Scrypt را محاسبه کنید و داده های 64 بایت را به دو نیمه تقسیم کنید زیرا DeristedHalf1 و Scrypt DerivedHalf2 از پارامترهای زیر استفاده می کنند:

Ciphertext: رمز ورود وارد شده (فرمت UTF-8)

نمک: هش آدرس

  • N: 16384
  • طول: 64
  • آیا عملکرد XOR را روی کلید خصوصی و DerivedHalf1 انجام دهید ، و سپس با استفاده از AES256 برای رمزگذاری آن با DeristedHalf2 رمزگذاری کنید
  • r: 8
  • p: 8
  • داده ها را با توجه به قالب زیر جمع کنید و NEP2Key را با استفاده از رمزگذاری Base58Check از آن بدست آورید

0x01 + 0x42 + 0xe0 + آدرس Hash + EncryptedKey

مراحل رمزگشایی

رمزگشایی NEP2Key با استفاده از رمزگشایی Base58Check

بررسی کنید که آیا طول داده های رمزگشایی 39 بایت است و سه بایت اول (داده [0-2]) 0x01 ، 0x42 و 0xe0 هستند

داده [3-6] را به عنوان آدرس hash بگیرید

رمز عبور و آدرس HASH را در الگوریتم Scrypt قرار دهید. طول نتیجه را تا 64 مشخص کنید. سپس کلید مشتق شده را دریافت کنید

کلید مشتق شده [0-31] را به عنوان مشتق از 1 ، و کلید مشتق شده [32-63] به عنوان DeristedHalf2 بگیرید

داده ها [7-38] را به عنوان EncryptedKey (32 بایت) بگیرید و آن را با استفاده از AES256 با DeristedHalf2 به عنوان بردار اولیه رمزگشایی کنید

آیا عملکرد XOR را در داده های رمزگشایی انجام دهید و برای به دست آوردن کلید خصوصی به دست آمده است

با الگوریتم ECC ، کلید عمومی را از کلید خصوصی دریافت کنید و سپس آدرس را دریافت کنید. بررسی کنید که آیا چهار بایت اول نتیجه SHA256 (SHA256 (آدرس)) برابر با آدرس HASH است. اگر همینطور است ، پس کلید خصوصی صحیح را دریافت می کنید

جزئیات بیشتر در مورد پیشنهادات NEP2 و NEP6 در سند NEO است.

NEO از الگوریتم ECDSA برای امضای معامله از طریق مؤلفه کیف پول استفاده می کند و NISTP256 یا SECP256R1 را به عنوان منحنی ECC و SHA256 به عنوان الگوریتم هش در نظر می گیرد.

قالب

ارزش

قالب ارزش
کلید خصوصی F72B8FAB85FDCC1BDDDDDDDDDDD207E5DA1AB4713487BC88FC53B5B134F5EDDEA1A19
کلید عمومی 031F64DA8A38E6C1E5423A72DDD6D4FC4A777ABE537E5CB5AA0425685CDA8E063B
امضاء نام عملکرد
شرح وارد کردن پرونده کیف پول

اطلاعات حساب را از فایل کیف پول مشخص شده وارد کنید برچسب که کاربر به پرونده کیف پول وصل می کند
اطلاعات حساب (شامل کلید خصوصی، رمز عبور، آدرس و غیره) را در فایل کیف پول مشخص شده مانند فایل کیف پول db3، فایل nep6 json ذخیره کنید. باز کردن قفل کیف پول
رمز عبور کاربر را برای جلوگیری از نشت تأیید کنید کلید خصوصی ایجاد کنید
ژنراتور تصادفی ایمن را توصیه کنید وارد کردن کلید خصوصی
کلید خصوصی جدید را با فرمت wif یا گواهی دیجیتال به کیف پول اضافه کنید صادرات کلید خصوصی
صادرات کلید خصوصی حساب ها ایجاد کلید عمومی
کلید عمومی را با الگوریتم ECC با کلید خصوصی دریافت کنید ایجاد آدرس
ایجاد آدرس بر اساس کلید خصوصی آدرس وارد کنید
آدرس جدید را به کیف پول اضافه کنید آدرس صادرات
آدرس حساب‌های صادراتی وارد کردن داده های آفلاین
برای کاهش زمان همگام سازی، داده های بلوک را در فایل chain. acc بارگیری کنید صادرات داده های آفلاین
داده های بلوک را در فایل chain. acc صادر کنید همگام سازی داده های بلوک
انتقال انتقال به آدرس های دیگر
امضا کردن
داده ها را امضا کنید، مانند تراکنش ها ادعای گاز
گاز تازه تخصیص یافته را از نئو که در حساب نگهداری می شود مطالبه کنید تعادل را بدست آورید
موجودی کیف پول فعلی را نشان دهید معامله را دریافت کنید
نمایش سابقه تراکنش کیف پول فعلی قرارداد چند امضایی بسازید
قرارداد چند امضایی بسازید توسعه دادن، گسترش
قرارداد هوشمند مستقر کنید قرارداد هوشمند مستقر کنید
تست قرارداد هوشمند
تست قرارداد هوشمند تست قرارداد هوشمند
Neo-CLI و Neo-GUI همگی کیف پول فول نود هستند. برای اطلاعات بیشتر به Neo node مراجعه کنید. Neo-CLI و Neo-GUI همگی کیف پول فول نود هستند. برای اطلاعات بیشتر به Neo node مراجعه کنید.

برای توسعه کیف پول SPV، به رابط پروتکل شبکه NEO مراجعه کنید.

کیف پول SPV یک فیلتر بلوم را به گره کامل می فرستد و گره کامل فیلتر بلوم را بارگیری می کند.

کیف پول SPV پارامترهای فیلتر بلوم را به گره کامل ارسال می کند و گره کامل پارامترها را بارگذاری می کند.(اختیاری)

کیف پول SPV تراکنش ها را از گره کامل جستجو می کند و گره کامل پس از فیلتر کردن با فیلتر شکوفه و مسیر درخت مرکل ساخته شده، داده های تراکنش را برمی گرداند.

کیف پول SPV از مسیر درخت مرکل برای تأیید داده های تراکنش استفاده می کند.

کیف پول SPV دستورالعمل فیلتر شکوفه را به گره کامل ارسال می کند و گره کامل آن را پاک می کند.

ثبت دیدگاه

مجموع دیدگاهها : 0در انتظار بررسی : 0انتشار یافته : ۰
قوانین ارسال دیدگاه
  • دیدگاه های ارسال شده توسط شما، پس از تایید توسط تیم مدیریت در وب منتشر خواهد شد.
  • پیام هایی که حاوی تهمت یا افترا باشد منتشر نخواهد شد.
  • پیام هایی که به غیر از زبان فارسی یا غیر مرتبط باشد منتشر نخواهد شد.