EtherDNA is my first dapp project with vision of privacy.
It will let user to create account using password.When user
create account,he will get deposit hash.This hash with prefix 0x is actually
bytes32 datatype.Only on an existing hash deposit can be made.When user
withdraw funds,this password and deposit hash is permanently deleted for secure reason.Then user need register new account with different password.
How it works?hen user put his password its go in hash function that give a result of 64 characters length.If first character is 0 hash function go hash itself again while first character is not equal to zero,then hash be send to contract as byte32 , final hash be sliced from 0 to 10 example :
result is :36a9e7f1c9
Then this result is used for generate proof.Proof is generated with 36a9e7f1c9 - user address / some big number…So from our proof 36a9e7f1c9 we get for example this: 9488166663734.This is DNA proof,when contrct receive this big number,he did some math function to proof that user whos want withdraw ether have DNA of deposit creator.