AT ProtocolでのDIDと要件


Blueskyが発表した分散SNSのプロトコルAT Protocolでの識別子であるDIDについて、Soapbox/Rebasedの著者のAlex Gleasonが見解を投稿していたので紹介します。



Alex Gleason (’s status on Friday, 28-Oct-2022 06:50:02 JSTAlex GleasonAlex Gleason

I’m reading about ATProtocol so you don’t have to.

Instead of ActivityPub IDs (which are URLs like, they use DIDs (“decentalized ID”). What’s a DID? Absolutely nothing – it’s an 87 page document describing the format of a string that starts with did: and no implementation details.

The implementation is up to you. Well, there are some already. We have did:etho:Ac9aB5Fc04Dc1cB1789Af75b523Bd23C70B2D717 for Ethereum addresses, for domain names, and there’s even one called did?xxx for MasterCard’s proprietary/centralized(!) ID network. DIDs are in the format did:<method>:<id>, where the method can be a known method enshrined by the w3c, or a custom one.

So what’s ATProtocol using? A custom “work in progress” DID method called “placeholder” (did:plc:<id>) that… seems to talk to a centralized server?

Remember when Bluesky was under development for 2 years because they couldn’t figure out how to do decentralized identity. So what did they do? THEY JUST GAVE UP?

The did:plc spec is a vague “work in progress”:

We cheekily titled the method “Placeholder”, because we don’t want it to stick around. We’re actively hoping to replace it with something less centralized.

So they still haven’t actually solved the core problem they set out to solve… are they going to resolve DIDs by talking to a centralized service? I suppose they thought since DID has the word “decentralized” in it, that’s good enough to move forward.

This is not inspiring confidence.

AT Protocolでは、ActivityPub ID ( のような URL形式) の代わりに、DID (Decentralized Identifierer) をIDに使用します。DIDの仕様は「DID Placeholder (did:plc) | AT Protocol」と「Decentralized Identifiers (DIDs) v1.0」にあります。

DIDは [did:] で始まる文字列で、その書式は以下のABNF記法で定義されます。

did                = "did:" method-name ":" method-specific-id
method-name        = 1*method-char
method-char        = %x61-7A / DIGIT
method-specific-id = *( *idchar ":" ) 1*idchar
idchar             = ALPHA / DIGIT / "." / "-" / "_" / pct-encoded
pct-encoded        = "%" HEXDIG HEXDIG

例えば、イーサリアム アドレスには did:etho:Ac9aB5Fc04Dc1cB1789Af75b523Bd23C70B2D717 を、ドメイン名には did:dns:alexgleason.meという形式です。method-nameにはW3Cの既知のメソッドとカスタムメソッドを使用できるそうです。既存のDIDメソッドは「DID Specification Registries」に一覧があります。

それで、AT Protocolでは、既存のDIDメソッドに満足できなかったので、method-nameにPlaceholderを意味するplcのカスタムメソッドを採用しています。ただし、現在は中央集権的なPLCサーバーとの通信を想定しているようで、将来分散的なサーバーを想定したものにこのメソッド名ごと置換することを想定しているようです。

AT Protocolを他の分散SNSも採用する場合は、[did:ap:] のようにDIDメソッドにActivityPubを意味するapメソッドを用いて併用することになるようです。

ただし、DIDを採用する場合、DIDの名前解決するresolverサーバーが必要になります。ActivityPub IDはURLなので、IDだけで既存のサーバー・技術で名前解決できていました。

Identity | AT Protocol」にあるとおり、AT Protocolでは、DIDを用いて1ユーザー1ドメイン相当で表現するようです。具体的には、以下は全て同じ意味のユーザーIDになるそうです。




会員登録 (About Member)


Ads Blocker Image Powered by Code Help Pro

広告ブロッカー検知/Ads Blocker Detected

このサイトは会費と広告で運営されています。[Bronze=月220円以上に登録] するか、広告ブロッカーを無効にしてください。

This site is operated by membership and advertise. Please [register at least Bronze=220 JPY/month], or disable ads blocker.

Copied title and URL