Functions, Hash Functions, Cryptography - Discussion

A very secure random generator creates you private key. A public key is created using cryptography “eliptic curve” hashing from that distinct private key. Then the public key is run through the SHA-256 and RIPEMD160 processes to create an address which is using to receive BTC (or send once received at the address). The address is verified by sending a “signature” which is another hash based on the private key, transaction data specific to the the sender, receiver and the transaction itself. This new “signature” is now send with the public keys for verify and accept the BTC at the previously generated address. While the public key is now visible without the additional SHA-256 and RIPEMD160 hashes, it is associated only with the newly created address. Once BTC is received at that new address, it can be removed from that address, making a direct attack on the unhashed public key a very small window of opportunity. For maximum security, the new address should be used once. For example, do not receive 10 BTC and send 2 from that new address, leaving 8 BTC in that new address. The address would be relying ONLY on the Eliptical Curve hashing of your private key into the public key. And they would be no time constraint on possible hacking if the address was used a second time. Always using a new address is the best practice.

1 Like

Public key is run through these hash functions :slight_smile:

The reason public keys are hashed is basically just to save on storage because the hash is smaller in size than the public key and where would you remove the funds once received? There is no need once they are there, unless your private key is compromised.

Oooops I wrote private instead of public. Thanks.

About moving funds out of the address. My understanding is very shakey on this. I was wondering if the address which was used to receive the BTC is actually a wallet address. At present, I understand that, sending some of the BTC from that wallet address, would reduce security somewhat. And that to maintain 100% of all hashes securing the remaining 9 BTC, it would be best to select a new address and move the 9 BTC to that address after sending 1 of 10 BTC from the original address. Of course, if the amount of BTC remaining was 0.0001, the reduced security would not worth worrying about. If it was 9,000 BTC at that address, then worth the effort. My goal is mainly personal investment and CORRECTLY teaching others so they don’t lose anything or get hacked. Am I close enough, in my understanding now? Thanks for correcting me. If I was younger, I would be taking the full programming course.

Reusing addresses may impact privacy, mostly if someone knows your address, one can track your funds. But it doesn’t impact security :slight_smile:

1 Like

I hadn’t even considered privacy, even though I generally watch that. Excellent point.

Raquel

1m

So it generates a Hash of a public key to protect the prívate key, because there are Connect. So it Change the public address each time we make a transaction. To protect the prívate key, it generales a signature (elíptic curve+a number). Is this correct ??

And is this how a cold wallet works ? Because it change BTC address for each transaction.

No, the main reason to hash the public key is to save on storage, hash is smaller (20 bytes) than the public key (65 bytes) :slight_smile:

Hardware wallets are HD (hierarchical deterministic) wallets, that means they use a master key (fancy name for root private key) to generate new private keys and addresses they are described in BIP32

1 Like

Oki more clear now, thanks for the explanation :smiley:

In blockchain demo - coinbase transactions.- Having the miners to verify that the transaction is real because we have the funds, do we make the funds in our porfolio public ?

I’m not sure I understand the question. Transactions get verified by every node that receives the transaction before they even become part of a block.

The funds are stored in addresses that are public, but unless someone makes a connection to a physical person they are basically private. This is what we mean when we say the Bitcoin blockchain is pseudo anonymous.

The issue is that most people today buy their coins on exchanges where they did KYC, so there is a connection to the addresses they withdrew to.

1 Like

Thanks for answering the question, I didn’t know that KYC could compromise the accounts. It’s a good boost to use DEX :sparkles:

That is basically the reason why KYC was made mandatory for exchanges :stuck_out_tongue: DEXes are great, but they are quite hard to use as a FIAT on/off ramp. There is Bisq exchange that is quite interesting.

1 Like

Thanks for the info, I will check it :smiley:

Sorry to make that many questions :upside_down_face:
If the funds transferred from a centralized Exchange to a Dwallet are sent to another wallet that changes the addresses, would this address still be compromised?

I really appreciate your help :gem::pray:t2::sparkles:

Well, there is still a link from the previous address. But its impossible to tell if you send these funds to yourself on a different wallet or to someone else. If you would send these funds to a dark market website for example you could be liable. :slight_smile:

2 Likes

A crystal clear answer :slight_smile: Thanks for time :gem:

From a “music note sharp” symbol to a numbered ranking to a call-to-subject or reference theme a hash is currently crypto-hieroglyph to me.

Its possible roles?

  • maybe giving hands between to actions?
  • maybe start or finish a sentence?
  • maybe a hash is like punctuation, yes. It could plays different roles regarding of its surrounding, like a comma appending elements of description , or like a subtracting minus that converts into a marrying dash?

Honestly, I ignore it.

Hello, just finished the cryptography chapter. I have 2 queries, through if you wonderful people could help me understand.

  1. To generate Digital signature why Sender need to encrypt the message with his private key. He can use his public key as well?
  2. Is there any possibility that Wallet provider can store your private key with them?

Thanks

Are these rethorical questions? Because I don’t know how to answer them :smile:

2 Likes

To encrypt a message you use the public key, which the user can decrypt using his private key.
Digital signatures are kind of the opposite where the sender signs a message with his private key and others can verify using the public key.

You mean a hosted wallet? In that case they are the owners of your private key basically. For applications they can for sure, that’s why it I would recommend using only Open source wallets. If a wallet would do this kind of thing, its easier to notice by checking the source code. :slight_smile:

1 Like