blockchain-
immutable : cant change data once entered
distributable: everyone can see data connected to blockchain
hashing algorithm-
data entered->SHA256->encrypted data (hash generated)
five requirements of hashing algorithm-
1) One Way-data can be encrypted but cant be decrypted
2)deterministic- har bar same data daalne pe same hi value dega
3)fast computation
4)withstand collisions- hackers se bachaye
5)avalanche effect- data me thoda sa bhi change kiya to pura generated data change
ho jayega
immutable ledger-hacker kisi ek block pe attack krega to uske piche sari blocks
corrupt ho jayegi (helps to identify and locate hacker)
mining-
transaction->solve maths problem->a miner solved problem first->miners verify the
validity -> block is added
consensus protocol-
when a block is mined a set of algorithm is runed to verify the validity
overall network me jiske pass sabse badi blockchain hogi uski hi blockchain accept
krenge
majority should be atleast 51% , tab unki baat mani jaegi
we generate hashes using given set of data like nounce data and previous hash
we are given a target value and we have to generate a hash below that target value
a hash is a 64 bit number
we generate different hashes for different value of nounce
nounce is a 32 bit number
every bit of a hash has a hexa decimal number from 0 to f(15)
so total possible hashes are 16*16*16........*16=16^64=approx. 10^77
there are approx. 10^77 hashes
but only 4*10^9 nounce
so we cant generate all hashes required to get our value hence we use timestamp
users exhaust all 4 billion nounce in lets say 40 seconds
so what timestamp does is it resets the count of nounce used every second hence the
nounces are never exhausted and mining continues
mempool-
when considering total hashrates of world 4 billion hashes are consumed in 10^-9
seconds and timestamp resets in one second so there is a lot of idle time
hence mempool was introduced it changes value of fees when nounce are consumed and
hence nounces are again reset
UTXOs records the transactions of the users and the wallet uses those utxo to
calculate the balance of the user hence there is no central authority tu calculate
balance
users create private key and public key so that no hacker can record unnecessary
and never happened transaction and gain rewards
public key is like your gmail id and private key is like your password
whenever you have to send a message you combine it with private key and create a
signature
miners verify the transaction using the signature and public key and hence proceed
further
There may be chances in future that private key can be derived using public key
hence to prevent it bitcoin address was introduced
the address was used while taking the transaction rather than giving your public
key to receiver hence private key remains more safe
each block of transactions has a size of 1 Mb and signature and public key together
took 60-65% of the space hence verify less transactions would get recorded .
to solve this problem the sign and public key was send separately called segregated
witness
when too many transactions are received on a bitcoin address a pattern could be
observed like it is a business account hence concept of master private key was
introduced which helps to produce different private keys and addresses for a single
user