GoPlausible از تیم الگوراند، حلکننده جهانی DID را به نهاد استاندارد DIF اهدا کرد
در اواسط مه، Decentralized Identity Foundation (DIF) — نهاد صنعتی که شرکتها و پروژهها در آن روی استانداردهای هویت غیرمتمرکز همکاری میکنند — در خبرنامهٔ خود این امکان ناخوشایند را مطرح کرد: ممکن است Universal Resolver دیرینهٔ آن، یعنی سرویس مرجع مشترکی که شناسههای غیرمتمرکز را به اسنادی تبدیل میکند که برنامهها بتوانند راستیآزمایی کنند، بهسادگی بازنشسته شود، «مگر اینکه روشن شود اعضای ما واقعاً به آن نیاز دارند.» از آن زمان، این پرسش با یک بازسازی پاسخ داده شده است. حساب کاربری خود DIF خوانندگان را به thisDID ارجاع داده است — «مدیریت مستقیم متدهای پشتیبانیشده و پروکسی کردن سایر درخواستها به حلکنندههای شناختهشده» — و README پروژه به صراحت میگوید که این سرویس توسط GoPlausible ساخته و به DIF اهدا شده است؛ تیمی که زیرساخت هویتی خودش روی الگوراند قرار دارد.
این اهدا فراتر از خانهتکانی استاندارد اهمیت دارد. یک حلکنندهٔ جهانی لولهکشیای است که به یک برنامهٔ بررسی اعتبارنامه اجازه میدهد شناسههای لنگر شده در هر جایی — یک دامنه، یک بلاکچین، یک سرویس نام — را بپذیرد، بدون اینکه هر منبع را جداگانه یکپارچه کند. الگوراند در حاشیه نیست: did:algo و did:nfd از جمله مدخلهای برجستهٔ این حلکننده هستند.
یک نقطه پایانی برای هر نوع هویت
یک شناسه غیرمتمرکز (DID) رشتهای است که توسط W3C، نهاد اصلی استاندارد وب، تعریف شده است: did:web:example.com، did:key:z6Mk...، did:algo:uti7paas... . هر یک به یک سند DID منتهی میشود؛ یک رکورد ماشینخوان که کلیدهای عمومی و نقاط پایانی سرویس را حمل میکند — مادهٔ خام برای بررسی امضاها و اعتبارنامههای قابلتأیید، یعنی گواهیهای امضاشدهٔ دیجیتالی. بخش متد مشخص میکند که شناسه کجا زندگی میکند و چگونه آن سند را واکشی کنیم، و برنامهای که میخواهد DIDها را از اکوسیستمهای مختلف بپذیرد، از نظر تاریخی باید منطق حل را برای هر متد جداگانه سیمکشی میکرد.
thisDID این کار را به یک تماس HTTP کاهش میدهد. صفحهٔ فرود آن «۷۰+ متد پشتیبانیشده» را تبلیغ میکند — فهرست منتشرشدهٔ خودش ۶۸ مورد را نام میبرد — که از میان آنها ۲۴ متد بهصورت داخلی از طریق برنامههای درایور مجزای TypeScript که در لبهٔ شبکهٔ Cloudflare اجرا میشوند، با محاسبات توزیعشده در مراکز دادهٔ نزدیک به کاربران (بر اساس شمارش سایت، ۴۲ منطقه)، حل میشوند و بخش دُم بلند به سمت بالادست مسیریابی میشود. هر پاسخ به یک سند سازگار با W3C که فرادادهٔ حلشدنِ امضاشده را حمل میکند، نرمالسازی میشود. API اتصال HTTP Universal Resolver DIF را پیادهسازی میکند — یک شکل توافقشدهٔ URL، GET /1.0/identifiers/{did}، که هر کلاینت سازگاری از قبل میداند چگونه آن را فراخوانی کند؛ مثال خود مستندات did:web:identity.foundation است. کشف، سلامت، تحلیلها و یک فید زندهٔ حل در کنار آن قرار دارند، بهعلاوهٔ یک نقطهپایانی /mcp که پروتکل زمینهٔ مدل را پیادهسازی میکند، استاندارد باز برای اتصال ابزارها به عاملهای هوش مصنوعی — یک عامل میتواند DIDها را در میانهٔ گردش کار، بدون نیاز به هرگونه اتصال سفارشی، حل کند.
داخل موتور مسیریابی
شعار سایت، «حلکنندهای که پیش از مسیریابی فکر میکند»، یک خط لوله چهار مرحلهای را توصیف میکند: شناسه را تجزیه و طبقهبندی کنید؛ تأخیر، اعتماد و تازگی را در یک موتور قوانین بسنجید؛ به درایور مناسب ارسال کنید، و اگر کمک میکند چندین درایور را موازی کنید؛ و نتیجه امضاشده و نرمالشده را بازگردانید.
| مفهوم | پیامد عملی |
|---|---|
| GoPlausible — اجراکنندهٔ بومی الگوراند؛ نخستین نقطهٔ ورود برای did:algo و did:nfd، با godiddy و archon بهعنوان جایگزین | شناسههای الگوراند از طریق یک درایور تخصصی بهجای یک سرویس بالادستی عمومی حل میشوند |
| Godiddy (Danube Tech) — سرویس میزبانشدهٔ Universal Resolver و API ثبتنام | بیشتر متدهایی را که به درایور بالادستی نیاز دارند پوشش میدهد |
| Archon — درایورهای iden3 و did:cid را اجرا میکند | نخستین نقطهٔ ورود برای متد zk-identity پالیگان؛ جایگزین نهایی در سایر موارد |
درایورهای جدید طبق چیزی که README آن را تضمینِ راستیآزمایی مینامد عرضه میشوند: هر جا که یک سرویس بالادستی مستقل بتواند همان متد را حل کند، هر حلکردن در موازی دوباره بررسی میشود تا نرخ تطبیق زندهٔ درایور به حد نصاب ارتقا برسد، و متدهایی که هیچ سرویس بالادستی ارائه نمیکند بهعنوان تأییدنشده علامت میخورند. فید عمومی هر دو نتیجه را نشان میدهد — یک شناسهٔ did:cheqd بهصورت محلی حل میشود و بررسی متقابل آن با علامت «مطابقت» ثبت میشود، و یک حلکردن did:ebsi با برچسب «عدم تطابق» پرچم میشود. یک کارگر پروب جداگانه هر پنج دقیقه حلکردنهای آزمایشی را علیه همه مسیرها انجام میدهد؛ در ۳۱ اوت، صفحه وضعیت همه ارائهدهندگان را فعال فهرست میکرد، با نرخ موفقیت بین ۰.۹۹۷ و ۱.۰.
مسیر ورود الگوراند
did:algo شناسههای آنچین الگوراند را حل میکند و فید زنده نشان میدهد که بهجز حسابها، داراییها را نیز پردازش میکند: شناسههایی که روی الگوی did:algo:مایننت:asa ساخته شده بودند، در سراسر پنجره نمونهگیری با موفقیت حل شدند، از جمله شناسه دارایی پشت USDC، همان استیبلکوین دلار. did:nfd نامها را از NFDomains، سرویس نام .algo الگوراند که نامهای قابلخواندن برای انسان را به آدرسهای زنجیرهای نگاشت میکند، به اسناد هویتی تبدیل میکند.
در ۳۱ اوت، شناسهٔ نمونهٔ مستندات API — did:algo:uti7paas...، یک آدرس کامل الگوراند — در ۳۳۲ میلیثانیه از طریق سرویس بالادستی GoPlausible حل شد و شناسهٔ دارایی USDC در ۴۰۰ میلیثانیه حل شد. آدرس نمونه دلبخواهی نیست: این حساب سپردهای است که پشت NFD گوپلاسیبل.الگو قرار دارد، در ژوئن ۲۰۲۳ ثبت شده و ۱,۵۴۴.۱۳ الگو و ۴۰,۲۸۳.۵۶ USDC در میان ۱۹۷ دارایی دارد. سازنده ابتدا هویت خودش را حل کرد.
یک لبهٔ زبر وجود دارد: مثال برجستهٔ did:nfd سایت، did:nfd:thisdid.algo، خطای ۴۰۴ برمیگرداند و چنین نامی در فهرست NFD وجود ندارد. نام نمایشی خود سرویس حل نمیشود.
خوانش صادقانه آمارها
صفحهٔ فرود یک میانهٔ حل زیر ۲۰۰ میلیثانیه و آپتایم جهانی ۹۹.۹۸٪ ادعا میکند. عکس فوری تحلیلی بازهٔ روزانه نیمی از این را تأیید میکند: درایورهای داخل Worker خود thisDID بهطور میانگین ۱۹۸ میلیثانیه داشتند، اما مسیرهای بالادستی کندتر بودند — ۴۷۷ میلیثانیه از طریق GoPlausible، ۴۸۸ از طریق godiddy و ۱,۴۷۱ از طریق archon — که میانگین کلی را به حدود ۷۰۰ میلیثانیه میرساند. میانه و میانگین چیزهای متفاوتی را اندازهگیری میکنند، بنابراین این ادعا مسیر سریع محلی را توصیف میکند، نه کل سرویس را. GoPlausible در همان عکس فوری بزرگترین سهم مسیریابی، یعنی ۱۷۹ حلکردن را داشت.
نرخ موفقیت نیز به باز کردن مشابهی نیاز دارد. داشبورد ۲۵۳ حلکردن موفق از ۲۸۵ (۸۸.۸٪) را گزارش میدهد، در حالی که نقطهپایانی JSON زیرین ۲۴۸ از ۲۸۰ (۸۸.۶٪) را گزارش میدهد — دو سطح کمی ناسازگارند، و داشبورد همچنین یک اطلاعیهٔ راهاندازی، «ذخیرهسازی تحلیلیها هنوز متصل نیست»، در کنار ارقام خود نمایش میدهد. بهعلاوه، بیشتر شکستها خطاهای notFound هستند: شناسههایی که به سادگی وجود ندارند، مانند شناسههای did:web برای یک یادبود آلمانی که در صدر فید خطای زنده قرار دارند. یک حلکننده که بهدرستی نبودِ یک شناسه را گزارش میدهد، همانند آن نیست که حلکننده دچار خطا شده باشد.
ترافیک واقعی است اما اندک. جدول زمانی بازهٔ روزانه بین ۱ تا ۳۹ حلکردن در روز را در سه هفتهٔ اول ژوئیه نشان میدهد و در ۷ ژوئیه با ۳۹ به اوج میرسد. یک پرسش با بازهٔ بلندتر داستان عجیبی روایت میکند: ۵۹,۴۶۸ درخواست فقط در ۱۴ اوت، که ۳۳,۲۶۲ مورد از آنها notFound بودند — نمایهٔ یک اسکن خودکار — و تقسیم کشوری به رهبری ایالات متحده (۵۲,۳۷۹) و اتریش (۱۵,۳۸۵). تحلیلیها بهطور عمدی درشتنما هستند، بدون آدرس IP، بدون کوکی، و فقط جغرافیای سطح کشور؛ و خود بازهها رفتار عجیبی دارند: جدول زمانی عکس «روزانه» از ۱ ژوئیه تا ۲۱ ژوئیه را نشان میدهد.
اهدایی همراه با یک آزمون
کد زیر سازمان GitHub خود DIF بهعنوان decentralized-identity/thisdid قرار دارد، تحت مجوز آزاد Apache-2.0، آخرین بار در ۲۸ اوت با یک کامیت که تحقیقات دربارهٔ «نامزدهای متد موج ۶» را بهروز میکرد — متدهای بیشتری در خط لوله. جذب تاکنون ناچیز است: مخزن فقط یک ستاره دارد و مشارکتکنندهٔ برتر emg110 با ۷۳ مشارکت. خبرنامهٔ ژوئن DIF «بازسازی نمونه DIF از Universal Resolver» را توصیف کرد و did:webvh و did:webplus را بهعنوان متدهای پیشنهادی نام برد؛ بهروزرسانی بیشتر برای اوت وعده داده شده بود.
آنچه بعداً رخ میدهد به متغیری بستگی دارد که خود DIF در مه شناسایی کرد: آیا اعضا ترافیک واقعی را از طریق آن هدایت خواهند کرد؟ زیرساخت فعال و قابل مشاهده است — پروبهای وضعیت، یک فید عمومی، یک API باز — و هویتهای الگوراند حالا مسیر نامگذاریشدهای دارند که به استانداردها متصل است. برای تیمی که ابتدا حساب خودش را حل کرد، نقطه عطف بعدی شناسهٔ شخص دیگری است.
منابع
- thisDID
- decentralized-identity/thisdid در GitHub
- DIF Newsletter #62
- GoPlausible
- ThisDID · DIF Universal DID Resolver
- https://thisdid.com/data
- https://thisdid.com/recent
- https://thisdid.com/1.0/identifiers/did:algo:uti7paasilrda3ishy5m7j7lnrx2aivqjwi7zkccgkvlmfd3vpr5pwsz4i
- https://thisdid.com/status
- https://thisdid.com/methods
- https://thisdid.com/1.0/identifiers/did:algo:mainnet:asa:31566704
- پست از @identity.foundation — Bluesky
- DIF Newsletter #64
- raw.githubusercontent.com
- ThisDID Directory
- did:algo — ThisDID Directory
Source: https://thisdid.com