Hi Everyone,
Like many of us I am also a bitcoin and blockchain enthusiast and am learning it myself to solve the mysteries.
I can be followed on twitter @wizdksinha
As I am going through books and sites where all the information related to blockchain and bitcoin has been provided, I reckon this great technological breakthrough is needed to be understood by those not with technology experience or software experience as well. This is my endeavor to break these jargons into simple english. There still are few terms which would need some study.
As I am taking help from different websites and tutorials to explain these terms, I am providing references as well. Please go through those if you want to study this in detail. Please leave your comments as well if you think there is room for improvement.
Now if this message needs to be sent to another person who should be able to read this message should be provided with x and n such that if she does the same process of concatenating the hash of x with n should get the same value i.e. (H (x | n)
Like many of us I am also a bitcoin and blockchain enthusiast and am learning it myself to solve the mysteries.
I can be followed on twitter @wizdksinha
As I am going through books and sites where all the information related to blockchain and bitcoin has been provided, I reckon this great technological breakthrough is needed to be understood by those not with technology experience or software experience as well. This is my endeavor to break these jargons into simple english. There still are few terms which would need some study.
As I am taking help from different websites and tutorials to explain these terms, I am providing references as well. Please go through those if you want to study this in detail. Please leave your comments as well if you think there is room for improvement.
Cryptography and its application on Blockchain
Before trying to understand what bitcoin is all about. Let us try to understand what makes it more secure now then what it was earlier. The word is cryptography. Bitcoin and other blockchain use uses hash functions and signature mechanisms of cryptographic technique that makes it secure than ever before. Let us try to understand the concepts used in cryptocurrencies like bitcoin and other blockchain in simple words than going into the nitty gritty. To know more about that in detail, please refer other sources.
Cryptographic hash function is mathematical hash function with the following three properties:
- Its input can be any string of any size.
- It produces a fixed size output from Blockchain perspective.
- It's concrete, we will assume a 256-bit output size. However, our discussion holds true for any output size as long as it is sufficiently large.
- It is efficiently computable. Intuitively this means that for a given input string, you can figure
Property 1: Collision- Free: It is infeasible to find x and y such that x!= y and H(x) = H(y) where x and y are arbitrary inputs and H(x) and H(y) are hash functions of x and y
Since inputs can be of any size and output is of definitive size, let us say 256 bits for our discussion sake. there is a possibility that few inputs may have the same output. Even though this is possible, it is practically extremely difficult that we may find these collision.
To put things into perspective, as explained in Lecture 1 — Intro to Crypto and Cryptocurrencies video by Princeton University professor Ed Felten(link), if a computer calculates 10,000 hashes per second, it would take more than 1027 years to calculate 2128 hashes! For another way of thinking about this, we can say that, if every computer ever made by humanity was computing since the beginning of the entire universe, up to now, the odds that they would have found a collision is still infinitesimally small. So small that it’s way less than the odds that the Earth will be destroyed by a giant meteor in the next two seconds."
So, it may be concluded that even though collision exists it is very difficult to find these collisions.
Now this concept will help us find the application in a way that if the hashes are being used as the address for a message, each message will have a distinct/unique hash function and it is practically infeasible to trace a message back to 2 different inputs.
Property 2: Hiding
If there is a hash function such as H(x) where x is a message and H(x) is a hash of x, it is not feasible to find x.
Hash functions by itself are mathematical protocol which is difficult to invert. As mentioned in Bitcoinmining.com ,hiding property of hash function is designed to be hard to invert (so-called one-way or pre-image resistant property). You can compute y from x cheaply y=H(x) but it's very hard to find x given only y. A full hash inversion has a known computationally infeasible brute-force running time, being O(2^k) where k is the hash size e.g. SHA256, k=256, and if a pre-image was found anyone could very efficiently verify it by computing one hash.
To apply the hiding property in the blockchain, we can take a random (let's say x ) 256- bit number.Then we create a hash of this number say H(x) and concatenate this number with another message say n such that Y =H( x | n) so that it is even more difficult to find x back.
No comments:
Post a Comment