تیم Algorandی GoPlausible حلکنندهٔ جهانی DID را به نهاد استانداردها، DIF، اهدا کرد
GoPlausible سرویس thisDID را ساخته است؛ حلکنندهای جهانی که هر شناسهٔ غیرمتمرکز W3C را به یک سند منطبق تبدیل میکند و به Decentralized Identity Foundation اهدا شده است. did:algo و did:nfd در Algorand نخستین گام بومی خود را به دست میآورند. سرویس فعال است، اما ترافیکش اندک.
در میانهٔ ماه مه، Decentralized Identity Foundation1 (DIF) — همان نهاد صنفی که شرکتها و پروژهها در آن بر سر استانداردهای هویت غیرمتمرکز همکاری میکنند — در خبرنامهٔ خود احتمال ناخوشایندی را روی میز گذاشت: شاید Universal Resolver دیرینهاش، آن سرویس مرجع مشترکی که شناسههای غیرمتمرکز را به اسنادی تبدیل میکند که اپلیکیشنها میتوانند راستیآزمایی کنند، بهسادگی بازنشسته شود، «مگر آنکه روشن شود اعضای ما واقعاً به آن نیاز دارند». از آن زمان، پاسخ این پرسش با یک بازسازی داده شده است. حساب خودِ DIF خوانندگان را به thisDID2 ارجاع داده — با این توضیح که «روشهای پشتیبانیشده را مستقیم پردازش میکند و سایر درخواستها را به حلکنندههای شناختهشده پروکسی میکند» — و README پروژه صریح میگوید که آن را GoPlausible3 ساخته و به DIF اهدا کرده است؛ تیمی که زیرساخت هویتی خودش روی Algorand زندگی میکند.
اهمیت این اهدا فراتر از کارهای اداری استانداردهاست. حلکنندهٔ جهانی همان لولهکشیای است که به یک اپلیکیشن بررسیکنندهٔ اعتبارنامه اجازه میدهد شناسههای لنگرانداخته در هر جا — یک دامنه، یک بلاکچین، یک سرویس نام — را بپذیرد، بیآنکه هر منبع را جداگانه یکپارچه کند. Algorand تماشاچی نیست: did:algo و did:nfd از جمله ورودیهای شاخص همین حلکنندهاند.
یک نقطهٔ پایانی برای هر نوع هویت
DID یا شناسهٔ غیرمتمرکز، رشتهای است که World Wide Web Consortium (W3C)، نهاد اصلی استانداردهای وب، تعریف کرده است: did:web:example.com، did:key:z6Mk...، did:algo:uti7paas... هر یک از اینها به یک سند DID میرسد؛ سابقهای ماشینخوان که کلیدهای عمومی و نقاط پایانی سرویس را در خود دارد — همان مادهٔ خام برای بررسی امضاها و اعتبارنامههای قابلراستیآزمایی، یعنی تصدیقنامههای دارای امضای دیجیتال. بخش روش (method) میگوید شناسه کجا زندگی میکند و آن سند را چگونه باید واکشی کرد، و اپلیکیشنی که میخواست DIDها را از چند زیستبوم بپذیرد، پیشتر ناچار بود منطق حلوفصل هر روش را جداگانه سیمکشی کند.
thisDID همهٔ این کار را در یک فراخوان HTTP فشرده میکند. صفحهٔ فرودش از پشتیبانی «۷۰4+» روش خبر میدهد — فهرست منتشرشدهٔ خودش ۶۸ مورد را نام میبرد — که ۲۴ تای آنها درون خود سرویس و از طریق برنامههای درایور TypeScript جداسازیشده حل میشوند؛ برنامههایی که در لبهٔ شبکهٔ Cloudflare و روی رایانش توزیعشده در مراکز دادهٔ نزدیک به کاربران اجرا میشوند (به شمارش سایت، ۴۲5 منطقه)، و دنبالهٔ بلند روشها به سرویسهای بالادستی هدایت میشود. هر پاسخ به سندی یکدست و منطبق با W3C تبدیل میشود که فرادادهٔ امضاشدهٔ حلوفصل را همراه دارد. این API پیوند HTTP مربوط به Universal Resolver را پیاده میکند — همان قالب توافقشدهٔ URL، یعنی GET /1.0/identifiers/{did}، که هر کلاینت منطبق از پیش میداند چگونه فراخوانیاش کند؛ نمونهٔ خود مستندات did:web:identity.foundation است. در کنار آن، کشف، سلامت، تحلیلها و جریانی زندهٔ حلوفصل قرار دارد، بههمراه نقطهای /mcp که Model Context Protocol را پیاده میکند — استاندارد باز برای وصلکردن ابزارها به عاملهای هوش مصنوعی — تا یک عامل بتواند در میانهٔ گردش کار، DIDها را بدون چسب سفارشی حل کند.
درون موتور مسیریابی
شعار سایت، «حلکنندهٔ جهانی که پیش از مسیریابی فکر میکند»، یک خط لولهٔ چهارمرحلهای را توصیف میکند: تجزیه و دستهبندی شناسه؛ سنجش تأخیر، اعتماد و تازگی در یک موتور قواعد؛ ارسال به درایور متناظر، و در جایی که مفید باشد چند درایور بهصورت موازی؛ و بازگرداندن نتیجهٔ امضاشده و یکدستشده.
| مفهوم | پیامد در دنیای واقعی |
|---|---|
| GoPlausible — کارگر بومی Algorand؛ نخستین گام برای did:algo و did:nfd، با godiddy و archon بهعنوان جایگزین | شناسههای Algorand از مسیر یک درایور تخصصی حل میشوند، نه یک بالادست همهکاره |
| Godiddy6 (Danube Tech) — Universal Resolver و API ثبتکنندهٔ میزبانیشده | بیشتر روشهایی را که به درایور بالادستی نیاز دارند جذب میکند |
| Archon7 — درایورهای iden3 و did:cid را اجرا میکند | نخستین گام برای روش هویت دانشصفر iden3 در پالیگان؛ در جاهای دیگر آخرین جایگزین |
درایورهای تازه با آنچه README «تضمین راستیآزمایی» مینامد عرضه میشوند: هر جا یک بالادست مستقل بتواند همان روش را حل کند، هر حلوفصل بهصورت موازی بازبینی دوباره میشود تا نرخ تطابق زندهٔ درایور حق فارغالتحصیلی بگیرد، و روشهایی که هیچ بالادستی ارائهشان نمیدهد، «تأییدنشده» مهر میخورند. جریان عمومی هر دو نتیجه را نشان میدهد — یک شناسهٔ did:cheqd که بهصورت محلی حل شده و بازبینی متقابلش «match» علامت خورده، و یک حلوفصل did:ebsi که پرچم «mismatch» گرفته است. یک کارگر کاوش جداگانه هر پنج دقیقه حلوفصلهای کاناری را روی همهٔ مسیرها اجرا میکند؛ در ۳۱ اوت، صفحهٔ وضعیت همهٔ ارائهدهندگان را فعال نشان میداد، با نرخهای موفقیت بین ۰.۹۹۷ و ۱.۰.
ورودی Algorand
did:algo شناسههای آنچین الگورند را حل میکند و جریان زنده نشان میدهد که داراییها را هم بهاندازهٔ حسابها مدیریت میکند: شناسههایی که بر پایهٔ الگوی did:algo:mainnet:asa: ساخته شدهاند، در سراسر بازهٔ نمونهگیری با موفقیت حل شدند، از جمله شناسهٔ دارایی پشت USDC8، همان استیبلکوین دلاری. did:nfd نیز نامها را از NFDomains، سرویس نام .algo الگورند که نامهای قابلخواندن برای انسان را به آدرسهای زنجیره نگاشت میکند، به اسناد هویت تبدیل میکند.
در آزمون ۳۱ اوت، شناسهٔ نمونهٔ مستندات API — یعنی did:algo:uti7paas...، یک آدرس کامل Algorand — در ۳۳۲ میلیثانیه از طریق بالادست GoPlausible حل شد و شناسهٔ دارایی USDC در ۴۰۰ میلیثانیه. آن آدرس نمونه اتفاقی نیست: همان حساب واریزی پشت NFD با نام goplausible.algo است که در ژوئن ۲۰۲۳ ثبت شده و ۱,۵۴۴.۱۳ ALGO و ۴۰,۲۸۳.۵۶ USDC در میان ۱۹۷ دارایی دارد. این سازنده نخست هویت خودش را حل کرد.
یک گوشهٔ ناهموار هم هست: نمونهٔ شاخص did:nfd در سایت، یعنی did:nfd:thisdid.algo، کد ۴۰۴ برمیگرداند و چنین نامی در فهرست NFD وجود ندارد. نام ویترینی خودِ سرویس حل نمیشود.
خواندن صادقانهٔ سنجهها
صفحهٔ فرود ادعا میکند میانهٔ زمان حلوفصل زیر ۲۰۰ میلیثانیه و آپتایم جهانی ۹۹.۹۸% است. تصویر تحلیلی بازهٔ یکروزه نیمی از این ادعا را تأیید میکند: درایورهای درونکارگر خود thisDID میانگین ۱۹۸ میلیثانیه داشتند، اما مسیرهای بالادستی کندتر بودند — ۴۷۷ میلیثانیه از طریق GoPlausible، ۴۸۸ از godiddy و ۱,۴۷۱ از archon — و همین میانگین کلی را به حدود ۷۰۰ میلیثانیه میکشاند. میانه و میانگین دو چیز متفاوت را میسنجند، پس این ادعا مسیر سریع محلی را توصیف میکند، نه کل سرویس را. GoPlausible در همان تصویر بزرگترین سهم مسیریشده را به دوش کشید: ۱۷۹ حلوفصل.
نرخهای موفقیت هم نیاز به شکافتن دارند. داشبورد ۲۵۳ حلوفصل موفق از ۲۸۵ (۸۸.۸%) گزارش میدهد، در حالی که نقطهٔ پایانی JSON زیربنایی ۲۴۸ از ۲۸۰ (۸۸.۶%) را نشان میدهد — دو سطح کمی ناهمخواناند، و داشبورد در کنار همین اعداد پیام راهاندازی «Analytics storage isn't bound yet» را هم نمایش میدهد. از این گذشته، بیشتر شکستها خطاهای notFound هستند: DIDهایی که بهسادگی وجود ندارند، مثل شناسههای did:web یک سایت یادبود آلمانی که صدرنشین جریان زندهٔ خطاها هستند. حلکنندهای که درست گزارش میدهد شناسهای وجود ندارد، با حلکنندهای که شکست خورده یکی نیست.
ترافیک واقعی است اما اندک. خط زمانی بازهٔ یکروزه در سه هفتهٔ نخست ژوئیه بین ۱ و ۳۹ حلوفصل در روز نشان میدهد که در ۷ ژوئیه به اوج ۳۹ میرسد. یک پرسوجوی بازهٔ بلندتر روایت غریبی دارد: ۵۹,۴۶۸9 درخواست فقط در ۱۴ اوت، که ۳۳,۲۶۲ تای آن notFound بود — پروفایل یک اسکن خودکار — و تفکیک کشوری که آمریکا (۵۲,۳۷۹) و اتریش (۱۵,۳۸۵) در صدر آناند. این تحلیلها بهعمد درشتاند: بدون IP، بدون کوکی و فقط با جغرافیای سطح کشور، و خود بازهها هم رفتار عجیبی دارند: خط زمانی تصویر «روز» از ۱ ژوئیه تا ۲۱ ژوئیه کشیده شده است.
اهدایی که یک آزمون هم دارد
کد در سازمان GitHub خودِ DIF و زیر نشانی decentralized-identity/thisdid10 زندگی میکند، با مجوز فراگیر Apache-2.0، و آخرین بار در ۲۸ اوت با کامیتی ارسال شده که پژوهش دربارهٔ «نامزدهای روش در موج ۶» را بهروزرسانی میکند — یعنی روشهای بیشتری در خط لوله است. تا اینجا جذب کاربر نازک است: مخزن فقط یک ستاره دارد و مشارکتکنندهٔ اصلی، emg110، ۷۳ مشارکت را به نام خود ثبت کرده است. خبرنامهٔ ژوئن DIF از «بازنگری گستردهٔ نسخهٔ DIF از Universal Resolver» سخن گفت و did:webvh و did:webplus را بهعنوان روشهای توصیهشده نام برد؛ بهروزرسانی دیگری هم برای اوت وعده داده شد.
آنچه بعد رخ میدهد به همان متغیری بند است که خودِ DIF در ماه مه مشخص کرد: اینکه اعضا ترافیک واقعی را از این مسیر عبور دهند یا نه. زیرساخت زنده و قابلرصد است — کاوشهای وضعیت، یک جریان عمومی، یک API باز — و هویتهای Algorand حالا مسیری نامدار و لنگرانداخته در استانداردها به آن دارند. برای تیمی که نخست حساب خودش را حل کرد، نقطهعطف بعدی شناسهٔ کس دیگری است.
منبع
- thisDID2
- decentralized-identity/thisdid در GitHub10
- خبرنامهٔ شمارهٔ ۶۲ DIF11
- GoPlausible3
- ThisDID · DIF Universal DID Resolver2
- https://thisdid.com/data12
- https://thisdid.com/recent13
- https://thisdid.com/1.0/identifiers/did:algo:uti7paasilrda3ishy5m7j7lnrx2aivqjwi7zkccgkvlmfd3vpr5pwsz4i14
- https://thisdid.com/status15
- https://thisdid.com/methods16
- https://thisdid.com/1.0/identifiers/did:algo:mainnet:asa:۳۱۵۶۶۷۰۴1718
- پست @identity.foundation — Bluesky19
- خبرنامهٔ شمارهٔ ۶۴ DIF20
- raw.githubusercontent.com21
- دایرکتوری ThisDID22
- did:algo — دایرکتوری ThisDID23
۴ رقم این گزارش بررسی شده است.دیدن همهٔ بررسیها
منابع
- 1Decentralized Identity Foundation identity.foundation↩
- 2thisDID thisdid.com↩
- 3GoPlausible goplausible.com↩
- 6Godiddy api.godiddy.com↩
- 7Archon resolver.archon.technology↩
- 8USDC centre.io↩
- 10decentralized-identity/thisdid github.com↩
- 11خبرنامهٔ شمارهٔ ۶۲ DIF blog.identity.foundation↩
- 12thisdid.com/data thisdid.com↩
- 13thisdid.com/recent thisdid.com↩
- 14thisdid.com/1.0/identifiers/did:algo:uti7paasilrda3ishy5m7j7lnrx2aivqjwi7zkccgkvlmfd3vpr5pwsz4i thisdid.com↩
- 15thisdid.com/status thisdid.com↩
- 16thisdid.com/methods thisdid.com↩
- 17thisdid.com/1.0/identifiers/did:algo:mainnet:asa:31566704 thisdid.com↩
- 19پست @identity.foundation — Bluesky bsky.app↩
- 20خبرنامهٔ شمارهٔ ۶۴ DIF blog.identity.foundation↩
- 21raw.githubusercontent.com/decentralized-identity/thisdid/main/README.md raw.githubusercontent.com↩
- 22دایرکتوری ThisDID thisdid.com↩
- 23did:algo — دایرکتوری ThisDID thisdid.com↩