~snip~
About the fingerprint, we can't construct a person from his fingerprint because we still don't know how. If we could figure out someone's DNA from his fingerprint, we theoretically can construct him.
~snip~
I'm sorry to say, but that's not how biology works... AFAIK, your fingerprint is only partially influenced by your genetic markup. There are several genes that form the basic structure of your fingerprint, these genes also include the genes that determine the muscles, tendons, fatty tissue, bones,... of your fingers. The rest of your fingerprint is formed and influenced by in utero conditions (basically, the environment of the uterus while the embryo is growing).
This is also why identical twins don't have identical fingerprints.
In the very far future, one can theoretically assume that studying somebody's fingerprint might give you odds about the sequence of a very, very, very small part of the human genome... But it'll be more like:
There is a 20% chance that 7q14 is AG
TAATCACTAATTAACGGTGAGGGTTTTAAGACGGATCTTTGCAAATTC
There is a 20% chance that 7q14 is AG
CAAGCACTAATTAACGGTGAGGGTTTTAAGACGGATCTTTGCAAATTC
There is a 15% chance that 7q14 is AG
AAAACACTAATTAACGGTGAGGGTTTTAAGACGGATCTTTGCAAATTC
...
But you'd still know nothing about 99,99% of the sequence because this sequence is codes proteins that have no influence on the fingerprint whatsoever
But saying that in the future we might be able to deduct somebody's genome by looking at his fingerprint is like saying we'll be able to construct the building plans of a house by looking at a random brick we found.
Disclaimer: I studied this stuff in college, which was 20 years ago... Things might have changed since then, and exept for random code generator everything else came from memory... It can be a little off.
Now, back on topic, the big problem with this thread is that human minds are not capable of understanding these big numbers... We see something like "the odds of a collision of a certain hash is 1 in 2^255", and we think: "well, with those odds, a collision is bound to happen sooner or later", but we don't realise the sheer size of this number. In reality, i'd say that altough one can calculate the odds of a collision, for all practical use you'd still be able to say the odds are practically 0.
In order to make such an attack work, you'd have to:
- Find a certain blockheight you want to manipulate
- Change the transactions in the block
- Generate a new block header, keep everything the same but different merkle root and nonce
- Start iterating trough the nonces and periodically chance some transaction data to create a new merkle root
- For each iteration, create the sha256d hash of this new header untill you find a combination whose hash is EXACTLY the same as the hash of the existing block (finding a hash that's simply under the target at that time wouldn't suffice, since the next block header included the hash of the block you're manipulating, so if the hash isn't exactly the same, the next block would simply be invalid in your chain
This is much harder than just standard brute-forcing.
And EVEN if you found a new header that, by some magic devine intervention had exactly the same hash as the existing block, how would you succeed in getting other nodes to accept your new block? You would be the only node with an alternative version, and your version would alter the utxo set... If you wanted this to work, your best chance would probably be to "change" one of the first of satoshi's blocks that did only contain the coinbase transaction AND where the output of the coinbase transaction was never spent (that way only one entry in the node's utxo set would dissapear, and a new one would pop up). If you "hacked" a block containing actual p2p transactions, you'd effectively destroy unspent outputs that were later used in other blocks, voiding a large part of the blockchain, which wouldn't work because of the checkpoints...