Trošku se vrtám v podstatě, a uniká mi jeden detail, konkrétně, jak jsou v transakcích zadány adresy příjemců.
Když se podívám sem, je v transakci dobře vidět odesílaná částka. Ale už tam nevidím adresu, předpokládám, že by mohla být v té části pk_script, ale to je v podstatě public key. Jak se dostanu na public key z vlastní adresy, kterou zadávám do peněženky? Vždyť k BTC adrese z public key vede cesta přes dvoji SHA a RIPEMD a Base58 …
Nejsem sice expert na uplne hardcorovy vnitrnosti bitcoin protokolu ale kdysi jsem se o to zajimal, kvuli moznostem cold storage distribuovane na vice uzlech…
Takze ano, je to tam v casti public key script … Dobre to bylo videt v praci Gavina Andreesena na multi-signature transakcich… Bohuzel ted nemuzu najit ten pythonackej skript, kterym to vytvarel…
Bylo to tam hezky videt…
Tady je princip, ale ten python vysvetloval nejvic…
Zkus pogooglit, bylo tam krok po kroku jak vytvorit adresu, podepsat transakci na vice nodech a vysledek v siti…
Dik.
Jenze to porad neodpovida na muj problem
V tom tx nikde neni videt adresa prijemce. A tu prece zadavam v Base58 formatu, kde pak vezmu pubkey do pk_script?
Zkousel jsem do bitcoind dat validateaddres podle prikladu, ale pokud to neni moje adresa, tak samozrejme mi to pub key nevrati … zkus treba validateaddress 1BPqtqBKoUjEq8STWmJxhPqtsf3BKp5UyE
Jinymi slovy, kdyz odesilam BTC na nejakou cizi adresu, kde a jak se mi projevi v te transakci, tzn. kdyz si dumpnu memory s tou transakci, jak a kde najdu adresu prijemce? Castku najit umim … adresu ne …
Podstatna je tato cast: [quote]
Bob provides the pubkey hash to Alice. Pubkey hashes are almost always sent encoded as Bitcoin addresses, which are base58-encoded strings containing an address version number, the hash, and an error-detection checksum to catch typos.
[/quote]
Takze by mi melo stacit udelat base58 decode z adresy, odstranit checksum a verzi a mel bych mit pubkey aka pk_script … zkusim uvidim
Super … mam vyslednou adresu, na tu chci poslat BTC … fajn, jenze v tom pk_scriptu nemas tu vlastni adresu, ale “pubkey” … ze ktereho ta adresa je spocitana.
Kdyz ti dam svoji adresu, nedavam ti prece PubKey, spocitany z PrivKey, ale uz cosi prohnaneho Sha256 a RIPEMD160 a Base85 … a Sha256 a RIPEMD160 jsou jednosmerne hashovaci funkce …
A me zajima, jak to vlastne ten bitcoind udela, ze z Adresa = algo s rimped160(sha256(PubKey)) zas udela ten Pubkey …
Pravdepodobne se tam zapisuje to co mas jako 2a), to se da z adresy reverznout, base58 je obousmerny … musim to testnout.
Nevim jestli si uplne rozumime v otazce, ale…
prubni ten brainwallet je v javascriptu a da se pekne krokovat (napr ten vypocet rawtransakce).
Ve walletu mas defakto jen svoje PrivateKey z nich odvodis PubKey (z toho wallet zjisti stav tvojeho uctu).
Pokud chces odeslat nejaky btc, potrebujes pomoci PrivateKey podepsat transakci. Pomoci PubKey to muze kdokoliv overit, ale svuj PrivKey nikomu nerikas nikdy ani v ty transakci.
Takze ta transakce potrebuje tvuj podpis (z tvojeho PrivateKey) a ze je ten podpis platnej se overuje via PubKey.
Ne nerozumime.
Celou dobu mi jde o to, jak je v transakci zakodovana adresa prijemce, kdyz dumpnu transakci v pameti bitcoind, tak tam proste adresa typu 1ahojcosiajesteneco neni videt . … neresim podepisovani a ani nic jineho dalsiho.
Vypada to, ze mas pravdu. Vzal jsem hex sekvenci z toho prikladu nahore, doplnil pred to 00 a vede to na adresu 1NWxbcpdEK76u1MMCdjGpTH85fTK.
No testnu toho vic a uvidim…