Pages:
Author

Topic: The blockchain does not know its code but the code knows the blockchain? - page 3. (Read 489 times)

legendary
Activity: 3472
Merit: 10611
But now, however, I decide to modify that code to make it do something different, something malicious.

Nobody can prevent me, because I'm running a node, the important thing is that I don't have to change some fundamental points, but if I add extra code, nobody will be able to prevent me.
You are right, nobody can prevent you from doing that but also you can not force others to follow you either. So it is very simple actually, by introducing the malicious change you have effectively isolated yourself. In other words you have created an altcoin that nobody who wants "bitcoin" would follow.

Lets use an actual example.
Lets say you decide to modify block 696,200 (an existing block) for example change a transaction in it. My node that doesn't have this block connects to your node and requests it, but as soon as the modified block is received by my node (running the correct code) that block is rejected. If you continue feeding bad blocks, my node will ban your IP address for malicious behavior.

Now lets say you change a consensus rule, like increasing the block weight to 10 MB (it is currently 4 MB) and then mine a new block that is 10 MB. Again the same scenario as above occurs. As soon as my node (or any other bitcoin node) receives this block that breaks the consensus rules it will be rejected and your IP address will be banned for being an altcoin.

P.S. Keep in mind that anything that is not part of the consensus rule (eg. using RFC6979 when signing transactions, using BIP39 for the wallet, how the blockchain is stored on disk, ...) can be changed without a problem.
newbie
Activity: 14
Merit: 5
post canceled due to lack of interest and support.
legendary
Activity: 3472
Merit: 10611
I understand that cryptography protects against blockchain changes, but who guarantees that it is always the same code to manipulate the blockchain?
Peers who are participating in this decentralized network by running a full node ensure its security and the fact that the consensus rules (defined by the code you are talking about) can't change without them first accepting those changes ensures that these rules remain intact or only changed when majority of the network accept the change.

Quote
If the blockchain does not know what the code that manipulates it must be, then that code can also be different from the official one released together with the blockchain.
There is no "official" release when we are talking about a decentralized system. There are only certain rules that everyone agrees on and there is a reference implementation of those rules.
The blockchain is also not released with the code, the chain is downloaded and validated by the nodes from other peers.

Quote
Unofficial software can behave like official software but at the same time it can do something different, undeclared, potentially dangerous.
Again there is no official/unofficial software in a decentralized system. Also all projects are and must be 100% open source or they have no place in this world. And when they are open source anyone can review the code and see what it does. If there is anything they don't like they simply won't run that software.
newbie
Activity: 14
Merit: 5
post canceled due to lack of interest and support.
legendary
Activity: 3472
Merit: 10611
Blockchain doesn't have any code, it is more like a database although not quite because it is "raw data". Then there is a code that uses this data.
Since the start has to be the same for everyone and block 0 (aka genesis block) is a special block, it is hard-coded as part of the consensus rules of that cryptocurrency.

As for manipulating the blockchain, it is not possible because of the cryptography that was used.
For example in bitcoin each block is mined by spending computing power and blocks are chained together by each block having a reference to the previous block's hash (hence creating a chain) using a strong hash algorithm. So if even a single bit in any block changes the chain breaks from that block.
newbie
Activity: 14
Merit: 5
I recently read a document entitled "Dissociative Blockchain Code".

There is talk of the fact that the blockchain was not initially designed to recognize the code that would have manipulated it.
While the code that manipulates the blockchain contains within it the genesis block of the blockchain, so the code knows the blockchain.
But if the blockchain does not know its code, it is possible that it can be manipulated by a code that does not conform to the one officially released!

Is it a correct reading of reality or is there something wrong?
Pages:
Jump to: