Bitcoin Forum
April 27, 2024, 05:07:23 AM *
News: Latest Bitcoin Core release: 27.0 [Torrent]
 
   Home   Help Search Login Register More  
Pages: « 1 [2]  All
  Print  
Author Topic: Bitcoin protocol questions  (Read 2915 times)
Scientist (OP)
Newbie
*
Offline Offline

Activity: 8
Merit: 0


View Profile
November 21, 2014, 12:49:46 PM
 #21

Quote
That was the heartbleed bug. It wasn't ALL encryption at all. It was serious though.

Sure, it's impossible to leave such the thing without a back door Smiley))



 

Quote
I must persuade everyone else to change their source code to my new version. If they don't (which they won't), my unearned coins will just be ignored.
My friend, I understand it. And that is why I asked how the protection mechanism works. Because if you reward yourself for finding a solution, then you can easily change the code and reward yourself without doing any work at all.

 

Quote
Actually there are no addresses at the protocol level.  Addresses are a feature of wallet software that makes it easier for humans to work with transactions.  What an address at the user level actually represents at the protocol level is a very specific script.  The script encumbers the output with a specific requirement.  As long as the user meets the requirement of the script in their transaction, then they are allowed to re-assign the value to whatever new output scripts they like.  The software running in full nodes is able to verify that all inputs have satisfied the script requirements and that all outputs are valid scripts.
I still do not understand how it checks whether the address exists. Maybe initially it makes some pending transaction and only after that it's possible to build the blocks including this already pending transaction?

Also, we were talking about DDos attack and you said that a node will simply drop connection with another node if it finds too many incorrect messages.
Imagine that or bot can change it's IP address using the list of the proxies, etc. So after connection is dropped, the node will change it's IP and will try to connect to the network again and continue sending the wrong messages. Aventually the network would stop. Right?

Quote
If it is a valid solution?  Then yes.  However, it is not possible for you to have the answer to any block without first expending the effort required to find that solution. This is why the hash is called a proof of work.
This thesis is correct only if we assume that from the cryptographical point of view the used algorithm is unbreakable. So this is nothing but the assumption.


Quote
No.  Alice includes the fee in her transaction when she creates the transaction. Bob includes the value of that fee in the block reward when he chooses her transaction and creates the block that he will work on.
So, if my understanding is correct, Bob includes into the block all the transactions, then the fee related transactions for himself, then some special transaction called "block reward".
And then if he finds the hash, he convince the others that he earned 25 BTC as a reward, N BTC as the fees, and that the other transactions are valid.

Quote
I'm just pointing out that it would be more accurate for your pseudo-code to use the following function instead:
I could if I knew I'm talking to IT guy, but the topic is read not necessarily by IT guys, so I'm trying to make it as simple as possible.

Quote
I've already explained to you multiple times that the block subsidy is paid to the miner in a special transaction in the block.  
Yes, you did. If I wanted to understand it only on the high level then that explanation would be enough. But I want to understand it on the low level that is why I asked how this rewarding transition works. Because from your initial explanation it looked like there is just a function that rewards anybody who calls this function.

Quote
If your transaction is a larger value, then the only incentive you have to include a fee is to encourage miners to choose your transaction instead of someone else's. You have the option of paying nothing, but then you are depending on the charity of generous miners to include your transaction in their block.  It is generally a good idea to include a small fee if you want your transaction to be included in the next block.
I see. So now it comes to paying for priority of your transitions. I did not see how it works, so I presume there is an option where you can select whether you want to pay for your transition or not and if you pay, there is a field where you can specify how much you want to pay. Right?

Quote
Yes, this is exactly what I said.  Eventually one of the miners will be first.  In your example that "eventual" time was when alt block 3 was solved.

This is a strange solution then. Because there is a split and one part of the network updated their data according to the first branch, and the second part of the memebers updated their data according to the second branch. Eventually they might resolve the longest branch and re-update their data. But it means that all the transactions from the first branch are now considered as invalid and the work of the miner from the first branch is also considered as invalid.

Quote
This is the reason that the protocol does not allow users to spend block rewards until there are at least 100 more blocks added to the chain.
Ok, here's the solution comes…
The only problem: how do you separate the money obtained as reward from the money you have in your wallet?

Quote
This is a mechanism to prevent collisions between two different cryptocurrency networks.
So this is a kinda id for Bitcoin currency. What means that it's also one of the options for DDos attack.

Quote
Cryptogrphically secure hashes are based on math that is easy to do in one direction and VERY difficult and time consuming to do in the opposite direction.
But still possible, especially if you have enough resources or if you control the most of the resources or if you make the others to separately search for some "solutions" helping you to find some other solution. I don't do cryptanalysis as a part of my work, so I can't specify the exact ways of breaking SHA256 but it's "strength" is only the assumption.


Quote
This is not true.  I can get a random number by rolling dice, or shuffling a deck of 52 playing cards, or any of dozens of other methods if I like.

This is NOT true. It's not random and it can be calculated. If your dice has only 6 options, the probability of your dice will be 1/6; If you have 2 dices with 6 options in each then your probability is only 1/36; If you use 52 cards then the probability of 1 card is only 1/52 if you take 2 cards from the deck of 52 cards then you probability is 1/2652 which is a very and very easy number from brutforce. And very often what you think is random is not random at all and statistically will be repeated.

Quote
This is not true.  Modern random number generators can use non-deterministic input from multiple sources to generate a random number.
This is not true again. I wrote earlier.

Quote
I told you already, this is the "Technical Discussion" section of the forum.  If you continue to try to discuss non-technical concerns, then I will consider you a troll and mark your userID for "ignore".  You will receive no further assistance from me in that case.

Is "NSA" a forbidden word? Why it makes you so nervous? Come on, you act like you work for them and of course you don't Smiley


Quote
I repeat.  Keep your concerns technical, or I will not be responding to you.  This is your last warning.

My friend, why are you so nervous? Is "pentagon" another forbidden word? I just notify the facts: pentagon does not use async methods of encryption because does not consider them as absolutely reliable. Should we also forbid "encryption" word? Why are you trying to limit people's thought?
And of course, I don't force you to respond me and this "blackmail" sounds strange Smiley

Quote
I am The Doctor. Why do you ask?

My friend, you specified that I have paranoia, so as a doctor you made the diagnosis over the internet which is absolutely amazing! And why can't I ask you about this? - isn't it the diagnosis you addressed to me? I care a lot about my health, so I could not help from asking you, a doctor, about my health. Especially taking into the account that it's very easy: I don't have to come to your clinic, you do the job remotely over the internet. It's amazing.

--------

Quote
You either didn't understand what you read, or you read something from someone that didn't understand what they were writing.

I perfectly understood what I read. Some1 who knew about the "bug" was able to read all the "encrypted" traffic in the internet from March 2012 when the first version OpenSSL 1.0.1 was released. Some readers of that news even wrote that with such the "bug" you can kneel any country.

----

Quote
I think you guys need to perhaps consider that the OP might just be trolling to waste your time

And surely you think so because I mentioned 2 forbidden words: "NSA", "Pentagon" and the idea that FRS and NSA are behind the bit coin Smiley)) I expect the bunch of your colleagues with the new diagnosis now Smiley))) the propaganda machine can't take it so easily!





1714194443
Hero Member
*
Offline Offline

Posts: 1714194443

View Profile Personal Message (Offline)

Ignore
1714194443
Reply with quote  #2

1714194443
Report to moderator
1714194443
Hero Member
*
Offline Offline

Posts: 1714194443

View Profile Personal Message (Offline)

Ignore
1714194443
Reply with quote  #2

1714194443
Report to moderator
In order to get the maximum amount of activity points possible, you just need to post once per day on average. Skipping days is OK as long as you maintain the average.
Advertised sites are not endorsed by the Bitcoin Forum. They may be unsafe, untrustworthy, or illegal in your jurisdiction.
1714194443
Hero Member
*
Offline Offline

Posts: 1714194443

View Profile Personal Message (Offline)

Ignore
1714194443
Reply with quote  #2

1714194443
Report to moderator
1714194443
Hero Member
*
Offline Offline

Posts: 1714194443

View Profile Personal Message (Offline)

Ignore
1714194443
Reply with quote  #2

1714194443
Report to moderator
1714194443
Hero Member
*
Offline Offline

Posts: 1714194443

View Profile Personal Message (Offline)

Ignore
1714194443
Reply with quote  #2

1714194443
Report to moderator
Buffer Overflow
Legendary
*
Offline Offline

Activity: 1652
Merit: 1015



View Profile
November 21, 2014, 02:25:32 PM
 #22

What the point of trying to learn if your just going to argue with your teacher?
Troll confirmed. What a time waste.  Cry

cr1776
Legendary
*
Offline Offline

Activity: 4018
Merit: 1299


View Profile
November 21, 2014, 02:42:59 PM
 #23

What the point of trying to learn if your just going to argue with your teacher?
Troll confirmed. What a time waste.  Cry

Agreed.  Trolling and he can't understand why this should be limited to "development & technical" here?  If he wants to learn, he'd at least do some reading.

You give people the benefit of the doubt and they abuse it.

Danny's patience was/is amazing.
DannyHamilton
Legendary
*
Offline Offline

Activity: 3374
Merit: 4610



View Profile
November 21, 2014, 05:27:40 PM
 #24

Quote
Actually there are no addresses at the protocol level.
- snip -
I still do not understand how it checks whether the address exists.

It doesn't.

There are no addresses at the protocol level.  (I thought you said you wanted to understand this at the "code level".)  If you want to understand this at the code level, then you need to understand that the code does not check whether ay address exists.  At the user interface level any well written wallet will check to make sure that the address you are sending to is formatted correctly.  After that the "address" is converted to specific script and the script is used in the transaction.

Maybe initially it makes some pending transaction and only after that it's possible to build the blocks including this already pending transaction?

What?  No.  Just no.  Stop saying "Maybe" and then inventing your own useless idea about how it doesn't work. That is not helping you understand and is wasting my time.  Please re-read the multiple times that I have explained to you that there are no addresses at the protocol level.

Also, we were talking about DDos attack and you said that a node will simply drop connection with another node if it finds too many incorrect messages.
Imagine that or bot can change it's IP address using the list of the proxies, etc. So after connection is dropped, the node will change it's IP and will try to connect to the network again and continue sending the wrong messages. Aventually the network would stop. Right?

No.  The bot doesn't connect to every peer on the entire network.  It only connects to a limited number of nodes.  It can create some annoyance for those specific nodes by ip hopping, but since those nodes will refuse to relay anything they receive from the bot, it won't effect the rest of the network.  Eventually, the nodes being annoyed will simply hard code their connections and stop accepting new connections from any other ip.

Quote
If it is a valid solution?  Then yes.  However, it is not possible for you to have the answer to any block without first expending the effort required to find that solution. This is why the hash is called a proof of work.
This thesis is correct only if we assume that from the cryptographical point of view the used algorithm is unbreakable. So this is nothing but the assumption.

Correct.  Bitcoin is based on the best understanding of cryptography at the time.  If any of the cryptographic functions are later found to have any weaknesses, then those functions will be replaced with newer and more secure functions.  Of course to effect mining, the SHA256 function will have to be VERY broken. Small weaknesses, or even very big weaknesses will not prevent SHA256 from filling the necessary need (which is why md5 would work fine for Bitcoin if we wanted to use it).

Quote
No.  Alice includes the fee in her transaction when she creates the transaction. Bob includes the value of that fee in the block reward when he chooses her transaction and creates the block that he will work on.
So, if my understanding is correct, Bob includes into the block all the transactions, then the fee related transactions for himself, then some special transaction called "block reward".

Correct.

And then if he finds the hash, he convince the others that he earned 25 BTC as a reward, N BTC as the fees, and that the other transactions are valid.

He doesn't "convince" anybody of anything.  He sends the block to all the peers that are connected to him.  Each of those peers then verifies that that the block only pays a reward that is less than or equal to the 25 BTC subsidy plus the fees.  Each of those peers also verifies that every transaction in the block is valid.  Peers do not trust Bob at all.  They always verify everything themselves.

Quote
I'm just pointing out that it would be more accurate for your pseudo-code to use the following function instead:
I could if I knew I'm talking to IT guy, but the topic is read not necessarily by IT guys, so I'm trying to make it as simple as possible.

This is the "Development & Technical Discussion" section of the forum.  You are talking to IT guys (I'm not so sure that I'm talking to an IT guy though).  You didn't just make it simple, you made it wrong.  I am correcting you because you claim that you want to understand.

Quote
I've already explained to you multiple times that the block subsidy is paid to the miner in a special transaction in the block.  
Yes, you did. If I wanted to understand it only on the high level then that explanation would be enough. But I want to understand it on the low level that is why I asked how this rewarding transition works. Because from your initial explanation it looked like there is just a function that rewards anybody who calls this function.

Yes, there is a function when creating a block that creates the block reward transaction in that block for anybody that calls that function.  You can change that function if you want, but if you do then your block will be invalid and nobody will accept it.

Quote
If your transaction is a larger value, then the only incentive you have to include a fee is to encourage miners to choose your transaction instead of someone else's. You have the option of paying nothing, but then you are depending on the charity of generous miners to include your transaction in their block.  It is generally a good idea to include a small fee if you want your transaction to be included in the next block.
I see. So now it comes to paying for priority of your transitions. I did not see how it works, so I presume there is an option where you can select whether you want to pay for your transition or not and if you pay, there is a field where you can specify how much you want to pay. Right?

It depends on the wallet software you are running.  Some wallets allow you to adjust the fee, others have a hard-coded minimum fee and let you increase the fee if you want, and then some are hard-coded to specific fee rules and don't allow the user any control at all.

Quote
Yes, this is exactly what I said.  Eventually one of the miners will be first.  In your example that "eventual" time was when alt block 3 was solved.
This is a strange solution then. Because there is a split and one part of the network updated their data according to the first branch, and the second part of the members updated their data according to the second branch. Eventually they might resolve the longest branch and re-update their data.

Correct.  This is the distributed consensus mechanism that Satoshi "discovered".  This is the method that Bitcoin uses to solve the Byzantine Generals problem.  If you have a better way to arrive at a distributed consensus, then you can build a better cryptocurrency.  At the moment, nobody has ever discovered a better way to arrive at a consensus in a distributed (non-centralized) manner.  Fortunately, the difficulty on solving blocks is maintained at a high enough level and the hash output is random enough that orphans a a minor annoyance and not a serious problem.

But it means that all the transactions from the first branch are now considered as invalid

No.  Not all the transactions.  Most of the transactions that are in the first branch were also in the second branch, therefore they remain confirmed.  The remaining few transactions are not "invalid", they are simply "unconfirmed".  They can then be confirmed again in a future block in the second branch.  The only transactions from the first branch that would be "invalid" would be transactions where BOTH of the following occur:
  • A transaction is included into a block in path 1
  • A competing transaction that spends at least one of the same previously unspent outputs is included into a block in path 2

Most well written software keeps track of the outputs that it spends, and therefore it isn't possible for the average user to accidentally create this situation.  If an attacker had enough control over the network and mining, they might be able to accomplish this attack.  This is most commonly considered to be  a threat if a single entity acquires more than 50% of all the total network hash power, and it often called a "51% attack".  This is a well known risk in the protocol design.

and the work of the miner from the first branch is also considered as invalid.

Correct.

Quote
This is the reason that the protocol does not allow users to spend block rewards until there are at least 100 more blocks added to the chain.
Ok, here's the solution comes…
The only problem: how do you separate the money obtained as reward from the money you have in your wallet?

Any well written wallet will keep track of these outputs for you and let you know when they are spendable.  At the code level, the code can keep track of which block the output came from and then compute how many more blocks have been added to the chain.

Quote
This is a mechanism to prevent collisions between two different cryptocurrency networks.
So this is a kinda id for Bitcoin currency.

Yes.

What means that it's also one of the options for DDos attack.

I don't think so.  You'd have to explain what you mean better.

Quote
Cryptogrphically secure hashes are based on math that is easy to do in one direction and VERY difficult and time consuming to do in the opposite direction.
But still possible, especially if you have enough resources or if you control the most of the resources or if you make the others to separately search for some "solutions" helping you to find some other solution.

No.  When I say VERY difficult, what I mean is difficult beyond any possibility with the current understanding of mathematics in the world.

I don't do cryptanalysis as a part of my work, so I can't specify the exact ways of breaking SHA256

Clearly.

but it's "strength" is only the assumption.

An assumption established by significant amounts of study and years of testing in many real world situations.

Quote
This is not true.  I can get a random number by rolling dice, or shuffling a deck of 52 playing cards, or any of dozens of other methods if I like.

This is NOT true. It's not random and it can be calculated. If your dice has only 6 options, the probability of your dice will be 1/6; If you have 2 dices with 6 options in each then your probability is only 1/36;

I don't think you understand the difference between probability and randomness.  I don't have the time or inclination to teach you that difference.  You are welcome to either educate yourself or to maintain any flawed believe you like.

If you use 52 cards then the probability of 1 card is only 1/52 if you take 2 cards from the deck of 52 cards then you probability is 1/2652 which is a very and very easy number from brutforce.

And if I deal out the entire deck of well shuffled cards?  I'll give you a hint, it's less than  1 / (8 X 1067)
Such a random number is NOT "a very and very easy number from brutforce".

And very often what you think is random is not random at all and statistically will be repeated.

It is true that many people misunderstand the concept of random and that what they think is random actually is not.  You seem to be one of those people.

Quote
This is not true.  Modern random number generators can use non-deterministic input from multiple sources to generate a random number.
This is not true again. I wrote earlier.

You wrote wrongly. Your understanding of random number generators seems to have stopped some time in the 1980's.  Computers have advanced beyond that.

Quote
You either didn't understand what you read, or you read something from someone that didn't understand what they were writing.
I perfectly understood what I read.

Then you read some false information.

Some1 who knew about the "bug" was able to read all the "encrypted" traffic in the internet from March 2012 when the first version OpenSSL 1.0.1 was released.

No. They weren't.

Some readers of that news even wrote that with such the "bug" you can kneel any country.

They were either wrong or exaggerating.

Quote
I told you already, this is the "Technical Discussion" section of the forum.  If you continue to try to discuss non-technical concerns, then I will consider you a troll and mark your userID for "ignore".  You will receive no further assistance from me in that case.

Is "NSA" a forbidden word? Why it makes you so nervous? Come on, you act like you work for them and of course you don't Smiley

- snip -

My friend, why are you so nervous? Is "pentagon" another forbidden word?

- snip -

My friend, you specified that I have paranoia, so as a doctor you made the diagnosis over the internet which is absolutely amazing! And why can't I ask you about this? - isn't it the diagnosis you addressed to me? I care a lot about my health, so I could not help from asking you, a doctor, about my health. Especially taking into the account that it's very easy: I don't have to come to your clinic, you do the job remotely over the internet. It's amazing.

- snip -

And surely you think so because I mentioned 2 forbidden words: "NSA", "Pentagon" and the idea that FRS and NSA are behind the bit coin Smiley)) I expect the bunch of your colleagues with the new diagnosis now Smiley))) the propaganda machine can't take it so easily!

Plonk!

cbeast
Donator
Legendary
*
Offline Offline

Activity: 1736
Merit: 1006

Let's talk governance, lipstick, and pigs.


View Profile
November 22, 2014, 12:08:29 AM
 #25

Plonk!

You have the patience of Job.

Any significantly advanced cryptocurrency is indistinguishable from Ponzi Tulips.
DannyHamilton
Legendary
*
Offline Offline

Activity: 3374
Merit: 4610



View Profile
November 22, 2014, 12:16:26 AM
 #26


The trick is to remember that I'm not actually writing a response to the OP.  I'm writing a response to all the truly curious people that actually want to understand how it all works and will stumble across this thread from a Google search.  My patience, and carefully written responses are for them.  The OP's poorly thought out questions and silly assumptions are simply a launching-off point for me to have fun writing detailed descriptions about a technology that I find fascinating and entertaining.
cbeast
Donator
Legendary
*
Offline Offline

Activity: 1736
Merit: 1006

Let's talk governance, lipstick, and pigs.


View Profile
November 22, 2014, 01:13:46 AM
 #27


The trick is to remember that I'm not actually writing a response to the OP.  I'm writing a response to all the truly curious people that actually want to understand how it all works and will stumble across this thread from a Google search.  My patience, and carefully written responses are for them.  The OP's poorly thought out questions and silly assumptions are simply a launching-off point for me to have fun writing detailed descriptions about a technology that I find fascinating and entertaining.
A gentleman and a scholar. Yeah, I guess that's why I'm still here too, although I still enjoy the mud fights sometimes.

Any significantly advanced cryptocurrency is indistinguishable from Ponzi Tulips.
Pages: « 1 [2]  All
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.19 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!