Een OwnerId hoort bij een wallet, niet bij een apparaat

Nagelezen in de broncode van Suite nadat er op de eigen relay tot verrassing twee
eigenaars verschenen. De eigenaar wordt op de Trezor zelf afgeleid, via
trezorConnect.evoluGetNode met een proof of delegated identity, en Suite bewaart
hem per device state. Een wachtwoordzin geeft een andere state.

Twee installaties met dezelfde Trezor en dezelfde wallet komen dus op dezelfde
OwnerId uit; dat is juist wat synchroniseren tussen apparaten mogelijk maakt. Meer
dan een OwnerId betekent meer dan een wallet, niet meer dan een app.

Dat is bepalend voor een relay met een allowlist: het aantal eigenaars dat je
toelaat is het aantal wallets dat je synchroniseert. Het maakt ook voorspelbaar
wat er bij de iOS-test hoort te gebeuren: dezelfde wallet levert een OwnerId op
die al toegelaten is, dus daar hoeft de leerstand niet voor open.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
Harmen
2026-08-28 12:12:13 +02:00
co-authored by Claude Opus 5
parent c57197637f
commit 1e2efc08be
+21
View File
@@ -83,6 +83,27 @@ regel code.
(`relayServerSettings.ts`), en die accepteert `ws://` niet. "Enter a valid url" ging dus over het schema en (`relayServerSettings.ts`), en die accepteert `ws://` niet. "Enter a valid url" ging dus over het schema en
niet over het adres. niet over het adres.
**5. Eén `OwnerId` per wallet, niet per apparaat en niet per installatie.** Toegevoegd 28-08-2026, nadat er
op de eigen relay tot verrassing twéé eigenaars verschenen.
De eigenaar komt van het apparaat zelf: `createRetrieveSuiteSyncOwner.ts` roept
`trezorConnect.evoluGetNode` aan met een proof of delegated identity onder de header `EvoluGetNode`. De
afleiding gebeurt dus op de Trezor. `createEnsureSuiteSyncOwner.ts` bewaart het resultaat vervolgens per
**`device.state.staticSessionId`**, en dat is in Suite een *device state*: een wachtwoordzin geeft een
andere state.
Wat daaruit volgt en wat makkelijk verkeerd gedacht wordt:
- **twee installaties met dezelfde Trezor en dezelfde wallet komen op dezelfde `OwnerId` uit.** Dat is wat
synchroniseren tussen apparaten mogelijk maakt zonder dat die apparaten elkaar kennen, en het betekent
dat een tweede apparaat géén nieuwe eigenaar oplevert;
- **meer dan één `OwnerId` betekent meer dan één wallet**, bijvoorbeeld een verborgen wallet achter een
wachtwoordzin. Niet meer dan één app.
Voor een relay met een eigenaars-allowlist is dat bepalend: het aantal eigenaars dat je toelaat is het
aantal wallets dat je synchroniseert. "De eerste eigenaar die verbindt" is dus te smal zodra iemand een
tweede wallet gebruikt, en dat is op 28-08-2026 meteen gebeurd.
Dat het huidige pakket de zware variant bevat is geen fout maar het gevolg van de volgorde waarin het Dat het huidige pakket de zware variant bevat is geen fout maar het gevolg van de volgorde waarin het
gevonden is: de laag van Trezor was eerder zichtbaar dan de laag eronder. gevonden is: de laag van Trezor was eerder zichtbaar dan de laag eronder.