kann mir jemand eventuell folgende Frage beantworten?
Die alten Byron-Adressen hatten folgendes Format:
Ae2…
DdzFF…
Bei Shelley haben wir ja die BECH32-Adressen:
addr…
stake…
Aber wie sehen Pointer-, Franken- und/oder Enterprise-Adressen aus?
Vermutlich ist das eine etwas blöde Frage, bitte seid nicht zu streng mit mir.
Stake-Adressen sind anscheinend auch Pointer-Adressen?
Die zweite Hexadezimalziffer ist also gemäß dem unter “Network Tag” geschriebenen bei Shelley-Adressen immer 1 für das Mainnet und immer 0 für ein Testnet.
Die erste Hexadezimalziffer gibt dann an, welche Art von Adresse das ist:
0 für „normale“ Adressen mit dem Hash eines Deiner Payment-Keys vorne und dem Hash Deines Stake-Keys hinten.
1 für Scripte (simple oder Plutus), die gleichzeitig einen Stake-Key haben, vorne steht der Hash des Scriptes, hinten wieder der Hash des Stake-Keys.
2 und 3 für das Gleiche, wobei aber nicht an einen normalen Key, sondern an ein Script delegiert ist. (Ist mir in freier Wildbahn noch nicht untergekommen.)
4 und 5 für das Gleiche, aber mit Pointern statt eines normalen Keys für die Delegation.
6 und 7 für die “Enterprise”-Variante also ohne Delegation, 6 für Payment-Key, 7 für Script.
In Cardanoscan werden beide Adressen angezeigt, oben die BECH32-Adresse mit addr1 vorne dran, darunter die hexadezimale Darstellung. BECH32 schauen wir uns gleich noch an.
Erstmal einige Beispiele, die ich auf die Schnelle gefunden habe:
Die Adresse 61be8ede5ed3d87d2c5808e86697877db1b46d4887f5cfdd86993aad04 (meine Adresse, die ich für Mints verwende) ist eine nicht-delegierte, sogenannte “Enterprise”-Adresse, beginnt deshalb mit 61, 6 für nicht-delegierter Payment-Key, 1 für Mainnet.
Das ist ein bisschen kompakter, weil hier ein Zeichen 5 Bit codiert und nicht nur 4 Bit wie bei Hexadezimal-Zahlen. Außerdem gibt es am Ende 6 Zeichen Prüfsumme, die sicherstellt, dass man sich nicht vertippt hat.
(EDIT: Es ist natürlich noch kompakter, das Ganze nicht als Zeichenkette, sondern als die Hexadezimalzahlen selbst zu speichern. Das ist, so weit ich weiß, das, was in den Transaktionen und Blöcken selbst gemacht wird. Das addr1-Zeug ist nur die Darstellung für die Menschen.)
Der Adress-Typ wird durch die ersten 8 Bit angegeben, haben wir oben gesehen. Das bestimmt das erste Zeichen nach addr1 komplett und schränkt das zweite auf jeweils vier Möglichkeiten ein:
„Franken“-Adressen bedeutet einfach nur, dass ein Payment-Key einer Wallet mit dem Stake-Key einer anderen Wallet kombiniert wird. Das Cardano-Netzwerk an sich kennt gar keine Wallets, weiß nicht, ob Keys zur gleichen Wallet gehören, aus der gleichen Seed-Phrase abgeleitet sind. „Franken“-Adressen sehen also einfach wie ganz normale Adressen aus und beginnen auch mit addr1q.
Hoffe, das hilft zumindest teilweise und ist nicht genau so verwirrend wie das, was Du schon gefunden hast.
EDIT: War gestern ein bisschen spät dafür:
Man kann als Stake-Teil einer Adresse einen Pointer verwenden. (Typ-Byte wäre dann 41 bzw. 51 für Scripte, Adressen würden mit addr1g bzw. addr12 beginnen.) Habe ich auch noch nie in freier Wildbahn gesehen. Die allermeisten Stake-Teile von Adressen sind also keine Pointer.
Es scheint mir keine zusätzliche Flexibilität zu bieten, da es Zeiger auf eine konkrete Stake-Key-Registrierung sind. Der einzige Vorteil wäre also die Ersparnis von ein paar Byte in der Länge der Adresse. Scheint bisher niemand Wert gefunden zu haben, das zu benutzen.