Aracı nasıl çalışır.
Bir gönderici, mesajı alıcıya şifreler, ardından bu şifreli metni aracıya adreslenmiş bir iletme zarfına sarar. Aracı yalnızca dış zarfı açar — alıcıya kilitli kalan iç şifreli metin asla açığa çıkmaz. Aşağıda tüm sıra yer alıyor: yönlendirmeyi kurmak için CoordinateMediation 2.0, iletmek için Routing, toplamak için Pickup 3.0 — Solidus'un standart bir aracıdan ayrıştığı noktalarda zincire bağlı ve kimlik bilgisi geçitli.
Her adım, adıyla.
mediate-request'ten purge'a kadar — birebir DIDComm v2 mesajları; zincire bağlı çözümleme ve kimlik bilgisi geçidinin uygulandığı yerler işaretlenmiştir.
mediate-request
CoordinateMediation 2.0
Alıcının kendi ajanı, teslimatı kendi adına koordine etmesi için aracıdan talepte bulunur.
mediate-grant
CoordinateMediation 2.0
Aracı aracılığı onaylar ve alıcının kendi did:solidus belgesinde yayımlayacağı bir yönlendirme anahtarı döndürür.
keylist-update
CoordinateMediation 2.0
Alıcı, bu aracı üzerinden yönlendirilmesini istediği DID anahtarlarını kaydeder.
forward
Routing
Gönderici, yönlendirme anahtarını ve aracı uç noktasını bulmak için alıcının did:solidus belgesini zincir üzerinde çözümler, JWE ile şifrelenmiş mesajını bir iletme zarfına sarar ve aracıya gönderir.
delivery-request · live-delivery
Pickup 3.0
Alıcı, delivery-request ile bekleyen mesajları sorar — ya da halihazırda açık bir live-delivery bağlantısı varsa, aracı yeni mesajları geldikçe otomatik olarak iletir.
messages-received
Pickup 3.0
Alıcı teslim alındığını onaylar; aracı bu mesajları teslim edildi olarak işaretler.
purge
Saklama politikası · 14d, purge-on-ack
Onaylanan şifreli metin bu takvime göre silinir — relay, artık tutması gerekmeyen mesajları saklamaz.
Üç protokol, hiçbiri tescilli değil.
Devrede olan DIDComm v2 protokolleri CoordinateMediation 2.0, Pickup Protocol 3.0 ve Routing'dir — relay, standardı uygular; onun bir çatalını değil.
| Protokol | Tanımladığı mesajlar | Relay'in yaptığı |
|---|---|---|
| CoordinateMediation 2.0 | mediate-requestmediate-grantkeylist-updatekeylist-query | Aracılığı onaylar veya reddeder, bir yönlendirme anahtarı verir ve relay'in mesaj ileteceği DID'lerin anahtar listesini tutar. |
| Pickup Protocol 3.0 | status-requestdelivery-requestmessages-receivedlive-delivery | Çevrimdışı bir alıcı için mesajları tutar ve talep üzerine teslim eder, ya da açık bir live-delivery bağlantısı üzerinden anında akış olarak iletir. |
| Routing | forward | Bir sonraki adımı bulmak için yalnızca dış iletme zarfını açar. Alıcıya şifreli kalmaya devam eden iç şifreli metin asla açığa çıkmaz. |
Yönlendirme anahtarları zincir üzerinde çözümlenir, bloğa referansla.
Standart bir aracı, yönlendirme anahtarını ve uç noktasını zincir dışında barındırılan bir DID belgesinde yayımlar — bir did:web dosyası, bir kayıt defteri veya bir operatörün kontrol ettiği bir veritabanı satırı. Bunu değiştirdiğinizde, her gönderici sessizce yeni bir hedefe güvenmeye başlar.
Bir did:solidus belgesi zincirden çözümlenir. Göndericinin geri okuduğu yönlendirme anahtarı ve servis uç noktası, belirli ve atıf yapılabilir bir blokta yazılı olanlardır — bir operatörün sunucusunun bugün döndürdüğü herhangi bir şey değil.
Operatör konsolundaki her çözümlenmiş rotada yer alan zincir bağlantısı rozetinin anlamı budur: bu rota zincirden okunmuştur, aracının kendisinin kontrol ettiği bir önbellek veya kayıt defterinden değil.
1{2 "id": "did:solidus:z6MkrQT4pWnvKb8sVdE2mHhXNfJcyLu3gA9tCiDoZxSe1RmF",3 "service": [4 {5 "id": "#didcomm-mediator",6 "type": "DIDCommMessaging",7 "serviceEndpoint": {8 "uri": "https://relay.solidus.network/didcomm",9 "routingKeys": [10 "z6LSfj9q…QtU0S1"11 ]12 }13 }14 ],15 "_resolution": {16 "source": "example — not a resolved document",17 "block": 482739118 }19}
Teslimat, doğrulanmış bir kimlik bilgisi gerektirebilir.
Bir geçit politikası, relay mediate-request'i onaylamadan veya kendi adına bir forward'u kabul etmeden önce alıcının belirli bir doğrulanabilir kimlik bilgisine sahip olmasını şart koşabilir. Kontrol verify.solidus.network üzerinde çalışır — aynı kimlik bilgisi altyapısıdır, sonradan eklenmiş bir entegrasyon değildir.
Aşağıdaki örnek politika, yalnızca SolidusKYCCredential'a sahip alıcılar için aracılık yapar; bu kimlik bilgisi BBS+ ile seçici olarak ifşa edilir — relay, politikanın talep etmediği alanları görmeden kimlik bilgisinin var olduğunu ve iptal edilmediğini doğrular.
Hiçbir açık kaynak aracının altında bir kimlik bilgisi katmanı yoktur — oradaki bir geçit politikası ya koşulsuzdur, ya protokol seviyesindedir ya da hiç yoktur.
1{2 "id": "pol_kyc",3 "name": "KYC-verified recipients",4 "credentialType": "SolidusKYCCredential",5 "issuerDid": "did:solidus:z6MkverifyIssuer4tRq8wYbGd2kEuC9vHsNa1pLoZi5xVeW",6 "disclosure": "selective (BBS+)",7 "appliesTo": "mediation",8 "enabled": true9}
Bir düzenleyici, çevrimdışı bir cüzdana ulaşır.
Yukarıdaki sıranın uçtan uca tek bir örneği: şu anda çevrimdışı olan bir cüzdana kimlik bilgisi teklifi gönderen bir düzenleyici.
Cüzdan aracılık talep eder
Öncelikle çevrimdışı çalışan bir cüzdanın kendine ait bir genel IP'si yoktur — aracıya önceden, bir kez kaydolur.
mediate-requestmediate-grantkeylist-updateCüzdana aracılık onaylanır ve yönlendirilmesini istediği DID anahtarlarını kaydeder. Bundan sonra did:solidus belgesi göndericileri bu aracıya yönlendirir.
Düzenleyici, cüzdanın DID'ini zincir üzerinde çözümler
Herhangi bir şey göndermeden önce düzenleyici, cüzdanın did:solidus belgesini sorgular.
Belge <badge/> adresinde çözümlenir — döndürdüğü yönlendirme anahtarı ve aracı uç noktası, zincirde yazılı olanın tam olarak kendisidir, önbelleğe alınmış bir kopya değil.
Düzenleyici, şifreli kimlik bilgisi teklifini iletir
Teklif, cüzdana adreslenmiş bir JWE'dir ve aracıya adreslenmiş bir iletme zarfına sarılmıştır.
forwardJWEAracı şifreli metni tutar — içindeki kimlik bilgisi teklifini okuyamaz. Cüzdan şu anda çevrimdışı olduğu için henüz başka bir şey olmaz.
Cüzdan çevrimiçi olur ve teslim alır
Daha sonra cüzdan bir live-delivery bağlantısı açar — ya da şu anda bağlı değilse bir delivery-request gönderir.
delivery-request·live-deliveryAracı, kuyruktaki teklifi teslim eder. Cüzdan onu yerel olarak çözer — aracı bunu hiçbir zaman yapamamıştır.
Cüzdan teslim alındığını onaylar
messages-received, aracıya teklifin ulaştığını bildirir; saklama politikasına göre (14 gün, purge-on-ack) temizlenir.
messages-receivedBu alışverişe dair hiçbir şey saklama penceresinin ötesinde tutulmaz — aracının işi, cüzdan hazır olana kadar şifreli metni tutmak ve ardından bırakmaktı.
Herhangi iki DIDComm v2 ajanı için aynı sıra geçerlidir — bir kimlik bilgisi teklifi, bir sunum talebi veya sıradan bir uygulama mesajı.
Bir aracı URL'si gösterin, Kubernetes chart'ı değil.
Planlanan lansman fiyatlandırması: günde ilk 1.000 mesaj için 0$, kurumsal satış görüşmesi yok. Testnet, lansman öncesi — aracı devreye girene kadar konsol örnek verilerle çalışır.