هر روزه صدها کاربر درخواست ادغام توکن و زنجیرههای جدید پروژههای مختلف وب 3 را برای Tangem ارسال میکنند. قطعاً اضافه کردن یک توکن یا بلاک چین جدید به والت Tangem مستلزم طی کردن یک فرایند سیستماتیک است که نیاز به همکاری بین تحلیلگران بلاک چین و توسعه دهندگان این والت دارد.
در این مقاله، با کل این فرایند از جمله تحلیل، توسعه، تست و رفع باگها آشنا میشوید. امیدواریم که پس از مطالعه این مطلب متوجه شوید که چرا لیست شدن توکن و پروژه مورد نظرتان در Tangem ارزش انتظار را دارد.
اول به این سوال میپردازیم که Tangem چگونه درخواستهای اضافه شدن توکن جدید را قبول میکند.
به دلیل اینکه گاهی اوقات بعضی از افراد درخواستهای اسپم برای Tangem ارسال میکنند، تنجم حق تصمیم گیری برای ادغام توکنها و شبکههای مختلف را در والت خودش محفوظ میداند.
پذیرش درخواست کاربران برای ادغام توکن/شبکهها
کاربران درخواست ادغام توکنهای جدید را از طریق تلگرام، ایکس و دیسکورد برای Tangem ارسال میکنند.
با اینکه چنین مکانیزم ثبت درخواستی نسبتاً راحت به نظر میرسد، اما برای تیم پشتیبانی Tangem چالش برانگیز است چون تنجم باید درخواستهای کاربران از پلتفرمهای مختلف را در قالب یک فایل ترکیب کند.
تنجم درخواست ثبت توکنها را در این فایل بر اساس میزان تقاضای هر کدام رتبه بندی میکند. سپس مشخصات فنی بالاترین بلاک چینهای این فهرست و اکوسیستم آنها در نظر گرفته میشود از جمله:
اطلاعات کامل درباره معماری، مکانیزم اجماع، سرعت تراکنش، اندازه بلاک و سایر ویژگیهای منحصربفرد بلاک چین.
مستندات مربوط به قابلیتهای قراردادهای هوشمند، زبان اسکریپت نویسی و استانداردهای توکن پشتیبانی شده.
پروتکلهای ادغام و APIهای قابل استفاده برای اتصال به سرویسهای خارجی.
سازگاری با والتها، ابزارهای شخص ثالث و سایر سرویسهای مربوطه.
همچنین، محدوده کلی ادغام مورد نظر هم ارزیابی میشود:
وجود اهداف مشخص و تعریف شده برای ادغام؛
سرویسها یا قابلیتهای خاصی که قرار است ادغام شوند؛
الزامات شخصی سازی یا پارامترهایی خاص برای فرایند ادغام.
بخش اول: تحلیل شبکه بلاک چین
پیش از ادغام زنجیره یا توکنی که بالای فهرست قرار دارد، موارد زیر کاملاً ارزیابی میشوند:
آیا شبکه درخواستی، کپی یکی از شبکههای موجود است؟
شبکه کلون یا کپی شده، نسخه تکراری یا کپی شده از یک بلاک چین موجود است. کلون کردن به ایجاد بلاک چینی جدید با کدبیس، قوانین و ساختاری مشابه با یک بلاک چین موجود گفته میشود. میتوان از بلاک چینهای کلون شده برای ایجاد نسخهای متفاوت از پروژههای موجود استفاده کرد.
برای مثال، ممکن است تیم توسعه تصمیم به کپی کردن یک بلاک چین موفق برای ایجاد یک ارز دیجیتال جدید با یکسری اصلاحات بگیرد. این اصلاحات میتوانند شامل تغییر مکانیزم اجماع، زمان بلاک، اقتصاد توکنی یا پارامترهای دیگر باشند.
ادغام یک شبکه کلون شده نسبت به یک شبکه کاملاً جدید بسیار راحتتر است. در چنین مواردی، فرایند ادغام بسیار روانتر و راحتتر انجام میشود. اما اگر شبکه، کلون نباشد، مرحله بعدی تحلیل انجام میشود.
الگوریتم امضاء چیست؟
الگوریتم امضاء، شامل یک مجموعه فرایند و قانون برای ایجاد و اعتبارسنجی امضاهای دیجیتال است. امضاهای دیجیتال برای اطمینان از اصالت، جامعیت و عدم انکار تراکنشها به کار میروند. روند کلی الگوریتم امضاء به این شرح است:
تولید کلید: این فرایند با تولید یک جفت کلید عمومی و خصوصی شروع میشود. کلید خصوصی، مخفی نگه داشته شده و تنها برای موجودیتی که امضاء را ایجاد میکند مشخص است و کلید عمومی، با دیگران به اشتراک گذاشته میشود.
امضاء: هنگام ایجاد امضای دیجیتال، موجودیت مورد نظر از کلید خصوصی خودش برای انجام یکسری عملیات محاسباتی روی یک هش استفاده میکند (هش، رشتهای با اندازه ثابت است که از پیام امضاء شده به دست میآید).
اعتبارسنجی: هر شخصی که به کلید عمومی دسترسی دارد، میتواند امضای دیجیتال را اعتبارسنجی کرده و یک عملیات محاسباتی مشابه را روی هش به دست آمده اجرا کند. اگر نتیجه محاسبات با امضاء تطبیق داشته باشد، این یعنی تراکنش توسط مالک کلید خصوصی امضاء شده و اصالت دارد.
هشینگ: تابع هش، یک ورودی (یا پیام) را دریافت کرده و رشتهای با طول ثابت تولید میکند که به آن هش گفته میشود. هش، برای نمایش پیام اصلی به روش منحصربفرد و ناشناس استفاده میشود.
پارامترهای الگوریتم: الگوریتم امضاء، پارامترها و الگوریتمهای محاسباتی مورد استفاده برای تولید کلید، امضاء و اعتبارسنجی را تعیین میکند.
الگوریتمهای استاندارد در این حوزه عبارتند از: RSA، DSA، ECDSA و EdDSA.
الگوریتم امضای مورد استفاده در تراکنشهای بلاک چین بستگی به بلاک چین مورد نظر دارد. در صورتی که کارتهای Tangem امکان پشتیبانی از الگوریتم امضای یک شبکه را نداشته باشند، تنجم هم امکان ادغام آن شبکه را نخواهد داشت.
نقش APIهای سرویس/نودهای شبکه
API (اینترفیس برنامه نویسی اپلیکیشن) و نودها، نقش مهمی در مدیریت شبکه، اعتبارسنجی تراکنشها و تعامل اپلیکیشنهای خارجی با شبکه بلاک چین دارند.
وجود API سرویس یا نودهای عمومی از سمت توسعه دهندگان – که در شبکههای EVM بسیار متداول است – نشانه مثبت و امیدوارکنندهای محسوب میشود. معمولاً با وجود چنین امکاناتی، کاربران میتوانند به والتهای غیرمتمرکز متصل شوند. بعلاوه، این فرایند زمانی که ارایه دهندگان نود مثل GetBlock از قبل این نودها/APIها را ارایه داده باشند، راحتتر خواهد بود.
اما زمانی که قرار است که یک سرویس جدید را ثبت کرده یا نودهای خودمان را بسازیم، فرایند ادغام پیچیدهتر میشود. ما برای اطمینان بیشتر، حداقل دو ارایه دهنده نود مختلف را برای هر شبکه در نظر میگیریم تا چالشهای بالقوه ناشی از اتکا به یک منبع واحد را کاهش دهیم.
ترکیب APIها و نودها، این اطمینان را فراهم میکنند که شبکه درست کار کرده و دسترس پذیری لازم را دارد. نودها جامعیت دفتر کل توزیع شده را حفظ کرده و APIها به توسعه دهندگان کمک میکنند تا با استفاده از قابلیتهای بلاک چین، اپلیکیشن بسازند.
آیا شبکه مستندات لازم را دارد؟
توکنها و بلاک چینهای بزرگ، مستندات جامعی منتشر میکنند تا به توسعه دهندگان، کاربران و اپراتورهای نودها برای درک و تعامل کارآمدتر با آنها کمک کنند. این مستندات، شامل اطلاعات کافی درباره API، مکانیزم اجماع، قراردادهای هوشمند، پیکربندی نود، دستورالعملهای امنیتی و آپگریدها و مهاجرتها هستند.
این مرحله، مشخص کننده حجم کاری است که باید از سمت Tangem انجام شود. متأسفانه تکنولوژی بلاک چین نسبتاً جدید است و کارشناسان فنی کافی که توانایی تولید مستندات لازم را برای هر پروژه وب 3 داشته باشند، در دسترس نیستند.
معمولاً در این زمینه با یک چالش متداول روبرو میشویم یعنی کامل نبودن توضیحاتِ فرایند تعامل با API یا تولید هش برای امضاء. به همین دلیل، توسعه دهندگان Tangem باید وقت زیادی را صرف مطالعه کد پیاده سازیهای موجود کنند.
آیا کتابخانه و SDK مناسب و لازم وجود دارد؟
کیت توسعه نرمافزار (SDK) به مجموعهای از ابزارهای توسعه نرمافزار گفته میشود که به توسعه دهندگان امکان میدهند برای یک پکیج نرمافزاری، پلتفرم سختافزاری، سیستم کامپیوتری یا سیستم عامل خاص، اپلیکیشن بسازند.
SDK شامل کتابخانهها، مستندات، کدهای نمونه و یکسری ابزار دیگر از جمله دیباگر یا شبیه سازها است.
اپلیکیشن Tangem یک اپ بومی است – یعنی فقط برای یک سیستم عامل خاص (مثل iOS یا اندروید) – طراحی میشود؛ در نتیجه SDK بیشتر توسعه دهندگان معمولاً در آن موجود نیستند.
حتی SDKهای جاوا اسکریپت – که برای اپلیکیشنهای چند پلتفرمی ساخته شدهاند – معمولاً برای والتهای سرد مناسب نیستند؛ چون تابع امضاء، مستلزم دریافت کلید خصوصی است. همانطور که در جریان هستید، کلید خصوصی داخل تراشه والت Tangem تولید و ذخیره شده و هرگز از آن خارج نمیشود.
اما اگر این SDK به یک زبان برنامه نویسی مناسب نوشته باشد، باز هم امید هست. میتوان با ویرایش قطعه کدها یا استفاده از توابع کدگذاری مجزا – مثلاً برای اعتبارسنجی/محاسبه آدرس- این کاستیها را رفع کرد. در حالت دوم، وجود کتابخانههای مناسب هم میتواند مفید باشد اما باز هم مستلزم صرف زمان زیادی است.
کتابخانه، مجموعهای از کدها، روتینها، پراسیجرها و توابع آمادهای است که سایر نرمافزارها میتوانند از آن استفاده کنند.
آیا شبکه بلاک چین مورد نظر، قابلیت و ویژگی متفاوت خاصی دارد؟
بعضی از شبکههای بلاک چین، خصوصیات متمایز و خاصی دارند – مثلاً داشتن رزرو یا نیاز به مشخص کردن MEMO هنگام خرج کردن ارزها – که برای ادغام آنها، نیاز به یکسری تغییر در UI/UX اپلیکیشن تنجم وجود دارد.
گاهی اوقات، ممکن است مکانیزم دریافت کمیسیون یک شبکه بسیار پیچیده باشد. Tangem باید بین تیم توسعه خودش و تیمهای پشتیبانی، خطوط ارتباطی واضحی تعریف کند. همچنین، تنجم از یک تیم طراحی هم دعوت میکند تا UI را متناسب با سبک کلی خود تنجم ویرایش کند. این فرایندها، هزینه نیروی کار و همچنین زمان لازم برای ادغام را افزایش میدهند.
بخش دوم: ادغام شبکه بلاک چین
پس از تحلیل و تأیید شبکه یا توکن مورد نظر، تیم توسعه دهندگان تنجم فرایند ادغام را طبق مراحل زیر پیش میبرند:
1. پیدا کردن یک API مناسب
بعد از پیدا کردن یک API مناسب، Tangem بررسی میکند که آیا دادههای لازم برای ایجاد تراکنش دریافت میشوند یا خیر. از جمله ساختار دادهای که جزئیات تراکنش را شامل شده، امضاهای دیجیتال را برای اعتبارسنجی اضافه کرده و به قوانین و فرمت خاص تعیین شده توسط پروتکل بلاک چین مورد نظر پایبند است.
2. کدگذاری آدرس از روی کلید عمومی
کدگذاری آدرس از روی آدرس عمومی یعنی تبدیل کردن کلید عمومی به فرمتی خواناتر و قابل مدیریتتر که به آن آدرس گفته میشود. در بیت کوین، آدرس با کدگذاری Base58 نمایش داده میشود و در اتریوم با مبنای 16. مراحل و الگوریتمهای کدگذاری آدرس در شبکههای بلاک چین مختلف متفاوت هستند – ممکن است هر شبکهای، استانداردهای متفاوتی برای کدگذاری داشته باشد.
3. به دست آوردن دادههای لازم از API و ارسال تراکنش
علاوه بر دریافت تراکنشهایی که از قبل بازرسی شدهاند، درخواستی برای ارسال تراکنش هم اضافه میشود. دادههای مورد نیاز برای انجام این کار، شامل موجودی حساب هستند و اطلاعاتی مثل UTXO، نانس، هش بلاک جدید و اینکه آیا حساب گیرنده ایجاد شده است یا خیر که چنین دادههایی برای هر بلاک چینی خاص و متفاوت هستند. برای تراکنشهای موفق، سیستم Tangem باید دادههای لازم را به دست آورد و به این پارامترهای کلیدی خاص، توجه ویژهای دارد:
موجودی: مقدار ارز دیجیتال یا موجودی حساب کاربر. بررسی موجودی برای اطمینان از اینکه کاربر وجه لازم را جهت اجرای تراکنش دارد، انجام میشود.
UTXO (خروجی خرج نشده تراکنش): ارزهای باقیمانده از تراکنشهای قبلی که کاربر میتواند در یک تراکنش جدید خرج کند.
نانس: یک عدد منحصربفرد که به هر تراکنش اختصاص پیدا میکند. نانس به ذخیره ترتیب تراکنشها و پیشگیری از اجرای حملات بازپخش کمک میکند.
هش بلاک جدید: هش جدیدترین بلاک در بلاک چین، بین تراکنش فعلی و تاریخچه قبلی بلاک چین ارتباط ایجاد میکند تا غیرقابل دستکاری شود.
وضعیت حساب گیرنده: بررسی اینکه آیا حساب گیرنده ایجاد شده یا خیر، باعث میشود که ارزها به حسابی معتبر و فعال ارسال شوند. این مرحله، خطر ارسال موجودی را به حسابهای ناموجود یا غیرفعال از بین میبرد.
4. سرهم کردن تراکنش
منظور از اسمبل یا سرهم کردن تراکنش، سرجمع کردن اطلاعات و اجزای لازم برای ایجاد تراکنشی کامل و قابل اجرا روی بلاک چین است. این فرایند شامل جمعآوری و سازماندهی دادههایی مثل جزئیات تراکنش، اطلاعات گیرنده، کارمزدها و سایر پارامترهای مربوطه است. سرهم کردن تراکنش در هر بلاک چینی به روش خاصی انجام میشود اما طرح و فرایند کلی آن به شرح زیر است:
دریافت تراکنش امضاء نشده بر اساس دادههای دریافتی از API و وارد شده توسط کاربر (آدرس گیرنده، مبلغ، کارمزدها و غیره)؛
جمعآوری هش/هشها برای امضای این تراکنش و ارسال آن به کارت Tangem ؛
برگشت امضاها از کارت و افزودن آنها به تراکنش. تراکنش با امضاء کدگذاری شده تا از طریق API ارسال شود.
پرکردن یک حساب در تست نت و اجرای تراکنش
در مرحله بعد، یک حساب در تست نت پر شده و با آن تراکنش اجرا میشود. معمولاً تلاشهای اول با شکست روبرو شده و مثلاً وقتی تراکنش رد میشود، پیامی مثل "انتخاب الگوریتم امضای اشتباه" مشاهده میشود؛ بدون اینکه جزئیات خاصی در آن مشخص شده باشد.
برای حل این مشکل، تراکنش ناموفق با روشهایی و ابزارهایی خاص به صورت بایت به بایت تحلیل میشود.
پس از اجرای موفقیت آمیز تراکنش، محاسبات کارمزد تأیید و نهایی میشود. لازم به ذکر است که معمولاً برای اولین تلاشها، یک کارمزد ثابت در نظر گرفته میشود.
مرحله آخر، شامل پرداختن به ویژگیها و حالتهای متفاوت است. از جمله مدیریت انواع پارامترهای تراکنش، بررسی سناریوهایی مثل ارسال تراکنش به حساب خالی (که ممکن است نیاز به یک ساختار تراکنشی متفاوت داشته باشد و اغلب شامل اجرای عملیاتی برای ایجاد حساب است)، پرداختن به رزروها و غیره.
پس از آن، تیم طراحی یک بازنمایی بصری از شبکه یا توکن را در بکاند اپلیکیشن اضافه میکند.
بخش سوم: تست و راهاندازی آپدیت اپلیکیشن که شبکه جدید به آن اضافه شده است.
اوج این فرایند تست طولانی، تست آپدیت جدید است تا اطمینان حاصل شود که تغییرات اخیر، همانطور که انتظار میرود کار میکنند. در ادامه، نگاهی مختصر به این مرحله داریم:
تست واحد: با اجرای یک تست واحد کامل و جامع، اطمینان حاصل میشود که اجزای مختلف اپلیکیشن Tangem به ویژه آنهایی که مرتبط به ادغام بلاک چین جدید هستند، هر کدام به تنهایی درست کار میکنند.
تست ادغام: شیوه برقراری ارتباط والت با بلاک چین، امضای تراکنشها و همچنین مدیریت دادههای مربوط به شبکه ادغام شده بررسی میشود. اطمینان حاصل میشود که آپدیت جدید Tangem – که شامل اضافه شدن پشتیبانی از یک بلاک چین جدید است – در پلتفرمهای اندروید و iOS درست کار میکند. یکسری تست امنیتی هم انجام میشود تا هر گونه آسیب پذیری مرتبط به ادغام شناسایی شود.
تست پذیرش کاربر (UAT): زمانی که آپدیتی شامل قابلیتهای مهم شبکه جدید باشد، تست UAT هم بین گروهی از کاربران منتخب یا تیم تست اجرا میشود تا بازخوردهای لازم درباره تجربیات کاربری جمعآوری شده و هرگونه مشکلی که احتمالاً در مراحل تست نادیده گرفته شده، شناسایی شود.
رفع باگها و انشار در اپ استورها: باگها و مشکلات شناسایی شده، رفع شده و نظرات و بازخوردهای دریافت شده در مرحله تست ارزیابی میشوند. سپس تیمهای توسعه، بازاریابی و پشتیبانی آماده انتشار رسمی میشوند. اپلیکیشن آپدیت شده Tangem در اپ استورهای مربوطه (گوگل پلی یا اپ استور iOS) منتشر میشود.
نظارت و پشتیبانی: عملکرد اپلیکیشن پس از انتشار آن تحت نظارت قرار گرفته و هر گونه مشکل و ایراد احتمالی در آن رفع میشود. تیم پشتیبانی Tangem به موقع به مشکلات کاربران رسیدگی کرده و به سوالات آنها پاسخ میدهد.
جمع بندی
در این مطلب با فرایند ادغام شبکهها و توکنهای جدید در والت Tangem آشنا شدید. تنجم حالا از بیش از 30 شبکه بلاک چین و هزاران کوین و توکن جدید پشتیبانی میکند. این رقم هر ماه افزایش پیدا خواهد کرد و تنجم سعی دارد در استراتژی ادغام علاوه بر جزئیات فنی، دسترس پذیری و ویژگیهای دیگر را هم در نظر داشته باشد.
همچنین Tangem قصد دارد در آینده قابلیتهایی مثل استیکینگ و مبادله بین زنجیرهای را هم اضافه کند. در نقشه راه سال 2024 تنجم مشخص شده که چه توکنها و شبکههایی در این سال اضافه میشوند. اگر توکنی در این نقشه راه قرار نگرفته، کاربران میتوانند برای اضافه شدن آن به Tangem درخواست ارسال کنند.