Appearance
Bağlam
Çalışma altyapısı kurulumunda (2026-09-27) hedef şuydu: istemciler beta'ya ya da zincire doğrudan değil, ortak bir kimlik/güven arayüzüne bağlanır. Tamga'da bu arayüz zaten var: TrustSource (ADR-0009 K3, BT4) — Faz B'de imzalı listeler (ListTrustSource), Faz 0'da zincir (ChainTrustSource). Beta bir veritabanı değil, imzalı liste dosyalarıdır; istemciler (cüzdan) veritabanına hiç bağlanmaz, servislere standart protokollerle (OpenID4VCI/VP) konuşur.
Keşifte bulunan tek sapma cüzdan tarafıdır. @tamga-network/trust node:fs, jose ve zod'a dayandığı için Expo/React Native'de kullanılmıyor; S-13 kapanışı sırasında aynı doğrulama wallet-core'a ayrıca yazıldı. Bugün listeyi arayüz dışında yorumlayan yerler:
| Dosya | Ne yapıyor |
|---|---|
packages/wallet-core/src/trustlist.ts | lotl.jws + tl-<cc>.jws imza doğrulaması, next_update, geri sarma (ayrı gerçekleme) |
packages/wallet-core/src/directory.ts | issuers[] ham alanlarını (issuer_url, schema_authorizations, category) okuyup kurum dizini üretir |
packages/wallet-core/src/oid4vp.ts (fetchRpRecord) | relying_parties[]'ten RP kaydını seçer |
Servisler (apps/verify, tamga-platform/apps/issuer, apps/id) arayüz üzerinden geçer (dosyayı okuyup loadTrustSet'e verir).
Risk: iki doğrulama gerçeklemesi zamanla ayrışır (ör. TL12 kontrol noktası, yeni alanlar); Faz 0'da cüzdan zincir kaynağına geçemez, çünkü liste biçimine bağlıdır.
Karar
- K1 — Taşınabilir çekirdek.
@tamga-network/trustdoğrulama mantığı (JWS doğrulama, liste kuralları,TrustStore,TrustSourcesorguları)node:fs/jose/zodgerektirmeyen bir alt yola ayrılır:@tamga-network/trust/core(imza@noble/curves, şema doğrulama elle ya da hafif). Node uyumlu mevcut giriş (fs.ts,guardedReload) ana yolda kalır. - K2 — İstemci kaynağı.
wallet-core,trustlist.ts/directory.ts/fetchRpRecordyerinetrust/core'dan birHttpListTrustSource(HTTP ile çeken, gömülü pin ile doğrulayan) kullanır; kurum dizini ve RP kaydıTrustSourcesorgularından (issuers(),relyingParty()) gelir. - K3 — Faz 0 aynı arayüz.
ChainTrustSourceservislerde doğrudan; cüzdanda doğrudan RPC yerine aynı arayüzün arkasında (liste aynası ya da hafif indeksleyici) — cüzdan kodu değişmez.
Gerekçe / alternatifler
- Bugünkü hâli korumak: en az iş, ama BT4'ün ruhuna aykırı ve Faz 0 geçişinde cüzdanı ayrıca elden geçirmeyi gerektirir.
- Cüzdana node polyfill'leri:
jose/zodRN'de kısmen çalışır amanode:fsve paket boyutu sorun; kırılgan. - Ayrı "identity servisi" (sunucu tarafı güven proxy'si): cüzdanın her güven sorusunu Tamga sunucusuna sorması izlenebilirlik yaratır (hangi kurumu ne zaman sorduğu) — gizlilik ilkesine aykırı; reddedilir.
Değişmezler
| # | Değişmez |
|---|---|
| TS1 | Her istemci ve servis güven sorusunu yalnızca TrustSource arayüzünden sorar; liste/zincir biçimi arayüz dışında yorumlanmaz (BT4'ün istemcilere genişletilmesi). |
| TS2 | Liste doğrulama kuralları tek gerçeklemededir (trust/core); başka paket kopyasını tutmaz. |
| TS3 | İstemci güven sorusu için Tamga'ya kullanıcıya bağlanabilir çağrı yapmaz; listeler toplu çekilir. |
Geçiş planı
trust/corealt yolunu çıkar; mevcuttrusttestleri +conformance/vektörleri iki girişte de geçsin.HttpListTrustSource+ gömülü pin;wallet-coretestlerini (trustlist.test.ts7 test) yeni kaynağa taşı.directory.tsvefetchRpRecord'uTrustSourcesorgularına çevir; eskitrustlist.ts'i kaldır.- Metro iOS paket provası (boyut,
@noble/*uyumu); cihaz testi. - Faz 0:
ChainTrustSourceile aynı sözleşme testleri.
Durum
Accepted — 2026-09-27. DECISIONS: D-TRUST-1.
Uygulama: ROADMAP "ADR-0015 geçişi" (yukarıdaki geçiş planı).