Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[JOURNAL] (Pooja) GB #8

Open
pooja610 opened this issue Jan 17, 2022 · 0 comments
Open

[JOURNAL] (Pooja) GB #8

pooja610 opened this issue Jan 17, 2022 · 0 comments

Comments

@pooja610
Copy link

Name: Pooja
Book: Grokking Bitcoin 1-6

Questions:
1. Why do bitcoins have value?

Soln - The main source of value for Bitcoin is its scarcity. There can never be more than 21 million bitcoins. Each bitcoin guarantees its ownership to the user. The decentralized currency, secured blockchain and easy transferability of bitcoin across borders increases its demand.
Bitcoin has value “because people think it does” says Bryan Routledge. People believe that Bitcoin’s worth will increase in future and hence there is increase in the demand for Bitcoin.

2. How are random numbers generated?

Soln - Random numbers are of utmost importance in the world of cryptography. They help to strengthen the internet security. The higher the entropy of a random number, the harder it is to guess the number. In Bitcoin, the private keys are created using a random number generator.
Computers use attached hardware devices to generate entropy from keystroke timing, mouse movement (co-ordinates of the cursor), motherboard data, interrupt timings, thermal noise from semiconductor resistor, etc.
Sometimes random numbers are generated from random actions performed by a user like the number of times a particular key is pressed or the typing speed of the user. These are very unique to each computer’s activity.
Sometimes cryptographic algorithms like CSPRNG are also used to generate random numbers.

3. How is public key generated from private key?

Soln - The public key is calculated from the private key using the elliptic curve multiplication which is irreversible: K = k*G where, k is the private key, G is a constant point called generator point and K is the resulting public key. The reverse operation (finding the discrete logarithm) is nearly impossible. Hence we cannot go back to private key from public key.//

4. What is the significance of adding version bytes in Base58Check encoding?

Soln - In Bitcoin most of the data presented to user is Base58Check-encoded to make it compact, easy to read and detect errors. The version prefix in Base58Check encoding is used to create easily distinguishable formats which after encoding results in specific characters at the beginning of the Base58Check-encoded-payload. This helps users to understand what type of data is encoded and how to use it. For example, the Base58Check-encoded bitcoin address( version prefix 0x00) starts with a 1 , the Base58Check-encoded p2sh address (version prefix 0x05) starts with a 3. This helps user to know if they are using p2pkh or p2sh for payments.

5. What is the use of sequence number in the input to a transaction?

Soln -

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant