log☇︎
98800+ entries in 0.021s
asciilifeform: another tickle : what'll happen if someone were to mine a block that 1) has a coinbase equal to one of these magical coinbases + 2 ) spends same ?
asciilifeform: unless it was in ye olde otc or whatever folx inhabited in the olden dayz.
asciilifeform: ^ apparently not.
asciilifeform: !#s 91880
asciilifeform: !#s 91722
asciilifeform: !#s 91842
asciilifeform: !#s 91812
asciilifeform: did we have this thread before ? ( doesn't seem to turn up )
asciilifeform: ( or, say, http://mimisbrunnr.cascadianhacker.com/blocks/91722#e3bf3d07d4b0375638d5f1db5255fe07ba2c4cb067cd81b84ee974b6585fb468 and http://mimisbrunnr.cascadianhacker.com/blocks/91880#e3bf3d07d4b0375638d5f1db5255fe07ba2c4cb067cd81b84ee974b6585fb468 )
asciilifeform: ( on what basis ? )
asciilifeform: the heathens think it to be 50 btc : https://blockchain.info/address/16va6NxJrMGe5d2LP6wUzuVnzBBoKQZKom
asciilifeform: is there even a consistent way to calculate it ?
asciilifeform: what's the actual balance of 16va6NxJrMGe5d2LP6wUzuVnzBBoKQZKom anyway
asciilifeform: they're both unspent !
asciilifeform: ?
asciilifeform: http://mimisbrunnr.cascadianhacker.com/blocks/91842#d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599
asciilifeform: or
asciilifeform: http://mimisbrunnr.cascadianhacker.com/blocks/91812#d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599
asciilifeform: now which one did i spend !!!
asciilifeform: say i walk in with a tx that spends the output of d5d27987d2a3dfc724e359870c6644b40e497bdc0589a033220fe15429d88599
asciilifeform: it gets worse:
asciilifeform: i suppose in the one where nobody revalidates the chain, ever ?
asciilifeform: even the comment on ln 756-7 is nonsensical, 'This is only possible if this transaction was completely spent, so erasing it would be a no-op anway.' in what universe is erasing the ancestor of a valid tx a 'no-op' ?
asciilifeform: ( called from http://btc.yt/lxr/satoshi/source/src/db.cpp?v=makefiles#0352 )
asciilifeform: ^ do you see a check for previous existence here, mircea_popescu ? because i don't...
asciilifeform: http://btc.yt/lxr/satoshi/source/src/db.h?v=makefiles#0114
asciilifeform: which it where it gets interesting, because the 'can fail' doesn't seem to exist in the code:
asciilifeform: eventually we end up here : http://btc.yt/lxr/satoshi/source/src/main.cpp?v=makefiles#0754
asciilifeform: they get queued for removal ;
asciilifeform: well, lessee : http://btc.yt/lxr/satoshi/source/src/main.cpp?v=makefiles#1028 :
asciilifeform: whereas it was not, but merely papered over.
asciilifeform: i read the code, again and again, and it would seem like 968-984 is the whole of the crutch. and in classic nsa style, the comment misdirects the reader to think that the 'bug' was 'fixed'.
asciilifeform: what did i miss
asciilifeform: now coinbase of 500,000 is missing from the index, and is unspendable.
asciilifeform: B is removed from the tx index.
asciilifeform: block 500,000 has coinbase B; 500,001 - coinbase C, 500,002 : B again. now 500,001 and 500,002 end up orphaned. the reorg fires.
asciilifeform: aite, let's from beginning:
asciilifeform: let's picture that 500,001 and 500,002 end up orphaned, strictly.
asciilifeform: actually no
asciilifeform: now picture that this 3-block sequence gets orphaned.
asciilifeform: now 500,002 can have coinbase B again.
asciilifeform: 500,001 contains a tx T1, that spent B.
asciilifeform: let's work example. say, for sake of argument, block 500,000 has coinbase B; 500,001 - coinbase C, C!=B; 500,002.
asciilifeform: which later tx
asciilifeform: they appear now to have dropped from mars.
asciilifeform: because their parent coinbase is no longer in tx index
asciilifeform: now the proceeds of the old, spent coinbase, can no longer be spent
asciilifeform: it removes it from ~index~
asciilifeform: aha
asciilifeform: aha
asciilifeform: a reorg will remove the overwritten tx entirely
asciilifeform: mircea_popescu: also it is not clear to me that reorgs actually handle this case
asciilifeform: sooo per my reckoning, you can have sane-trb-indexer, but now every tx gotta have a field for 'was replaced?' -- and if bit is set, indexer goes and looks at the collision table, the previous lookup now 'didn't count'
asciilifeform: mircea_popescu: got it !
asciilifeform: now you have mutilated the history. entirely legally.
asciilifeform: also it is not clear to me that trb ever... worked, in the customary sense of the word. what, for instance, happens if you actually carry out the -- entirely legal per all known btctrons -- replacement of a ~spent~ coinbase tx ?
asciilifeform: but possibly now mircea_popescu sees what asciilifeform meant by 'trbi is much EASIER problem than working-trb'
asciilifeform: right.
asciilifeform: 'see 8th bit for whether you have ONE MOAR BYTE of crud coming your way' does not.
asciilifeform: these, work
asciilifeform: and it is NOT acceptable to have non-O(1) indexing.
asciilifeform: there is no such thing as an O(1) undefined-size index.
asciilifeform: the neat thing being, that on Collision Day, you can retro-stretch all of the previous hashes
asciilifeform: it, and keccak, and probably other schemes
asciilifeform: keys motherfucking unique, ruat caelum.
asciilifeform: it isn't ever a solution, to anything !
asciilifeform: but let's for sake of argument suppose that : sooner. it is STILL moronic to STORE COLLIDING KEYS IN DB omfg
asciilifeform: will become a detectable problem somewhere around 128b's worth. also quite likely long past expiration date of planet3.
asciilifeform: there are not 256bits of seconds left of sun , even.
asciilifeform: where do you get 'lower than 32'
asciilifeform: sha256 gives you... 256 neh
asciilifeform: there's 1 way -- if you send in an anything that collides with a previous ANYTHING, you are told to fuck off.
asciilifeform: (968 - 985)
asciilifeform: the way i read ln. 968, miners TODAY are apparently more than welcome to create a duplicate coinbase, so long as it is a dupe of a ~spent~ coinbase.
asciilifeform: i mean, the algos.
asciilifeform: and i don't mean trb
asciilifeform: it doesn't look to be fixable.
asciilifeform: (making the id entirely worthless, and dragging in the worst of both worlds, you now ALSO have to remember the position. why not ONLY store the position ?!)
asciilifeform: the 'unless spent' is riotously idiotic, it means that a txid does NOT, even today, guarantee to uniquely identify a tx.
asciilifeform: http://btc.yt/lxr/satoshi/source/src/main.cpp?v=makefiles#0968 << the routine in question. ☟︎
asciilifeform: if you reject incoming tx (in a block , in particular) that overwrites old 'spent' one, you have broken the pistol.
asciilifeform: * is invalid
asciilifeform: so if you make a 'tx that has same hash as ANY known tx to date which != this tx' you have broken the pistol, forked from the old semantics.
asciilifeform: and the 'unless those are already completely spent' thing substantially complicates, if not prevents, a sane indexing scheme
asciilifeform: but it only applies the rule after certain timestamp of block
asciilifeform: this is not an original discovery, there's a magic case for it in trb
asciilifeform: november 2010
asciilifeform: and that replacement of 'spent' tx is even permitted still.
asciilifeform: and are cemented into the 'grandfather's pistol'
asciilifeform: mircea_popescu: not related, but gotta ask before mircea_popescu goes back to sleep, (believe or not) i just today noticed that duplicate coinbases actually existed.
asciilifeform: this is not unlike to say that 'if the only response tumour cell encounters in the organism is an army of killer tcells, there can be no cancer.' well yes.
asciilifeform: the folx who had 0 to do with disassembling su
asciilifeform: or 'resistance through culture' in mircea_popesculandia
asciilifeform: has to do with the observation re kitchen intellectuals
asciilifeform: 'female state' will go away when physically disassembled, not by effort of folx talking, for and against.
asciilifeform: asciilifeform for instance went for years reading ~no noose at all.
asciilifeform: this was actually what was in my head when qntra first appeared, 'why do this'
asciilifeform: mircea_popescu: there was a name for this, 'kitchen intellectuals' ☟︎
asciilifeform: but mircea_popescu is stingy re the concretes, and asciilifeform likes concretes.
asciilifeform: i won't argue ' asciilifeform knows Moar Fact from reading völkischer beobachter than mircea_popescu from spy network ', that'd be riotously stupid