Bitcoin Forum

Bitcoin => Development & Technical Discussion => Topic started by: concepter on August 17, 2021, 05:46:49 AM



Title: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 17, 2021, 05:46:49 AM
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?


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: pooya87 on August 17, 2021, 06:09:26 AM
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.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 17, 2021, 06:16:33 AM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: pooya87 on August 17, 2021, 06:45:13 AM
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.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 17, 2021, 07:07:41 AM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: pooya87 on August 17, 2021, 08:26:40 AM
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.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: NeuroticFish on August 17, 2021, 08:36:12 AM
And here is the conceptual mistake: thinking that actions on the blockchain are uniform and certified, when these actions can differ due to programs altered or manipulated in a predetermined way.

Not at all. The code doesn't expect at all the actions be "uniform and certified". That's why the code contains consensus rules.
Since the others have the proper code, their code will simply reject your block if it didn't follow the rules.

This means that whatever malicious you do, it will either remain local if you altered the consensus rules, either it will be dropped too when the correct blockchain will become longer than yours.
Keep in mind that you cannot really alter older blocks...


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 17, 2021, 08:55:56 AM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: HCP on August 18, 2021, 03:32:15 AM
You seem to be speaking of "the blockchain"™... as if there is only a singular instance of it which a malicious actor can alter and thereby affect everyone.

In reality, any malicious actor will be able to do whatever they like to their copy of the blockchain data... with whatever code they want to use. However, as illustrated by pooya87 illustrated, any "non valid" data created by this malicious actor will be rejected by everyone else running "non modified" nodes.


Also, you keep talking about manipulating the blockchain... the data is not manipulated... it is "created" (ie. transactions are created, blocks are mined)... the entire concept of the blockchain rests on the fact that it is immutable... so the data cannot be "manipulated".

So, I am thinking I am not understanding what you actually mean when you say:
The blockchain itself is not doing any checks on the code that must manipulate it and therefore it can be manipulated in many possible ways, apparently conforming to the shared protocol.

In what ways is "the blockchain" being manipulated? ???


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 18, 2021, 09:34:21 AM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: NotATether on August 18, 2021, 10:24:12 AM
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!

It's basic software engineering.

This is similar to any other large-scale program using a versioned file format for storage. Search index "databases" (mostly just sqlite files or some proprietary "lite" database as a file) for example, usually have a version written at the top of the file and the indexing program is coded to understand versions up to a specific one.

But newer file versions running on older software are oftentimes incompatible because they often remove fields read by the older versions. You don't see this happening with Bitcoin Core though, because developers update the local block[chain] database format versions in such a way that they are backward-compatible with older client versions by never removing any fields.

So it all depends on the program whether the developers are careless and don't make backward-compatible changes to file formats. If this is true then the older programs will flat-out fail when they encounter a newer format (this includes third-party "new" formats that are unknown to the public for the purposes of this post).

A backward-compatible change will cause older programs to continue to work normally, including in the face of these private, unknown new versions.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 18, 2021, 11:08:45 AM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: NotATether on August 18, 2021, 11:45:09 AM
If well-camouflaged software can intervene undisturbed on a blockchain without raising suspicions, then that blockchain is not secure.
Today we are in this situation: thousands of non-certified and controlled software can manipulate blockchains in an undisturbed way.
It is already possible today, we do not have to wait for time, we are already in this scenario.

So we're talking about arbitrary blockchain software now, not Bitcoin Core.

The thing about those is that many of them have a weakness in that they are not properly audited as well as they should be for a digital currency consensus enforcer. This is usually due to a lack of manpower and resources (they'd rather audit bigger projects. These projects usually have small download sites making it easy for some random person with their own modifications to masquerade as the official download site.

Unfortunately, other manipulators will come, and there will be no remedy without transforming DBC-type blockchains into their more secure ABC model.

That would be better for most of those one-release, never work on upgrading again kind of cryptocurrencies.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 18, 2021, 12:07:49 PM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: ymgve2 on August 18, 2021, 06:02:48 PM
I skimmed the "paper" that describes this and it seems like the idea is to add a virtual machine, and the bytecode that handles the blockchain validation itself is embedded in the blocks. This leaves me with a major question.

Who decides what updates to the bytecode should be added?

Anyone with the power to push updates to the bytecode (and therefore changing how ALL blockchain nodes process data, instantly) has tremendous power over the network, making it basically a centralized network.

In contrast, in the current Bitcoin ecosystem, any node operator is free to run any code they want, and refuse updates they disagree with. This could result in forks, as with BCH, but I see this as a feature and not a flaw - the Bitcoin core devs do not have absolute power to decide what code runs the network.


Remember how the DAO code (equivalent to your "ABC" blockchain's bytecode) running on Ethereum was flawed, and it allowed hackers to take over everything? What stops a similar scenario from happening with an "ABC" blockchain?


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: garlonicon on August 18, 2021, 07:15:22 PM
Quote
it seems like the idea is to add a virtual machine, and the bytecode that handles the blockchain validation itself is embedded in the blocks
No, blocks contain just raw data, you can see who owns what, but it can be executed in any way, using any Turing-complete language you want. It has to be compatible with the rest of the network, that's the only required thing to reach consensus.

Quote
Who decides what updates to the bytecode should be added?
There is no official "bytecode", you just have some data in the chain and that data can be accepted or rejected by your node. If you ask about the format of the data in the chain, then all users running full nodes. You can release new version, but you have to convince people to install that version to bring your changes into reality. If developers will start doing some things that people don't like, then they can always switch to another coin (or simply stick with the old version).

For some coins, the blockchain is identical to some point in time, that's probably the easiest way to see that there is no single version matching the blockchain. Also, many miners use their own custom software (and hardware) to mine blocks more efficiently, using "generatetoaddress" will work, but using specially optimized software is better.

Quote
stop being a Dissociative Blockchain Code and become an Associative Blockchain Code
I don't agree with that. If the blockchain is disconnected from the binary code, it can be updated and changed easier than if it is connected, because you don't have to stick to some processor architecture or some programming language. Also, if you have self-upgradeable blockchain, then you can force some unwanted update just by pushing some data into the chain. That gives too much power for miners and changes them into semi-developers by letting them auto-update other nodes, which can be dangerous. Even versions released by Core are not auto-upgradeable, you have to upgrade it yourself.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: ymgve2 on August 18, 2021, 08:29:34 PM
Quote
it seems like the idea is to add a virtual machine, and the bytecode that handles the blockchain validation itself is embedded in the blocks
No, blocks contain just raw data, you can see who owns what, but it can be executed in any way, using any Turing-complete language you want. It has to be compatible with the rest of the network, that's the only required thing to reach consensus.

I'm not talking about Bitcoin, I'm talking about the stupid "associative blockchain code" idea the original poster is pushing, which explicitly wants to have validation code in the blocks themselves: https://medium.com/@mocciaro.smz/associative-blockchain-code-f84f385c45ec


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: NotFuzzyWarm on August 18, 2021, 10:01:08 PM
To me, the only way a bad-actor node could even possibly inject a corrupted block into the chain is:
a) submit a corrupted block it claims has been solved to the network.
b) have a confirmation of the corrupted block because a pool (or one helluva private solo farm) used SPV mining and so did not check that it is a valid block with results that matches the inputs to it.
c) have that first 'confirmation' validated by several other SPV nodes in a row lengthening the now corrupted chain.

With 'c' therein lies the biggest hurdle: By The Book a block is not considered 100% validated until it has 101 confirmations by the network. IF at any time a node that properly validates the block data tags it as invalid it can and most likely WILL be kicked out the the blockchain and treated as the start of an invalid fork. More than enough nodes do that and even the pools like Poolin, ViaBTC, etc that are known for pushing empty (SPV) blocks do do full block validations often enough to catch bad-actors.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: NotATether on August 18, 2021, 10:22:12 PM
It is the original document of Satoshi Nakamoto who introduced the blockchain as we know it today, and has been taken up and copied by others without much reasoning.

OK, I kind of get your idea. But usually, when someone makes a consensus change to the Bitcoin client that affects how they create blocks, transactions, etc, the honest nodes are programmed to reject these items of data. This makes the rebelling node orphaned from the rest of the network so the blockchain can't be manipulated from this avenue.

I'm definitely not saying it's not possible but perhaps with more subtle consensus rule changes that don't directly alter the blockchain content the blockchain could be manipulated, but it's usually a researcher that discovers these first and it becomes a CVE.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: NotFuzzyWarm on August 18, 2021, 10:42:57 PM
It is the original document of Satoshi Nakamoto who introduced the blockchain as we know it today, and has been taken up and copied by others without much reasoning.
Apparently the OP and friend think that in all the time Bitcoin has existed no one has tried attacking it in every way possible both in theory and actual attempts? It is a very safe bet that probably hundreds if not thousands of bad actors including no doubt more than a few State-sponsored players have tried and to-date, all failed.

As I said earlier, it is the constant self-checking of results from the massively distributed mining process that ensures corrupt blocks do not make it very far before the bad fork is terminated. It would take a prolonged 51% attack based on the corrupt block(s) lasting through the full 101 block confirmation rule to have any chance of working.

That would very soon be caught by the rest of the network and in one of the rare moments of all the major players acting together - stopped. It has been done a few times before. Just google "billion bitcoin bug" or refer to here for a short description (https://news.bitcoin.com/bitcoin-history-part-10-the-184-billion-btc-bug/) of what happened when someone tried it.

That said, I wonder if there any tools to look at the 'fuzz' of failed blocks/chains that branched off the main chain before being terminated?


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 21, 2021, 08:35:37 AM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: Shymaa-Arafat on August 21, 2021, 02:00:46 PM
This is in summary what SMZ communicated to me.
If you want to know more from him, you need to ask for the ban to be removed, which he was unfairly subjected to.

Aside from the person, where's a link to the paper itself?


I'm not sure which of the 2 ideas that came into my mind, or none?,  u r referring too:

1- A scenario where a hacker manipulates a Bitcoin Core update for example and more than 51% of full nodes download it; a situation that I think a Cryptographic code checksum or  a Core signature on the update would solve it.

2-A situation where a whole country software is manipulated, which could isolate its Blockchain from the true International one without individuals noticing it; either for a common virus with lack of security measures, or for political reasons an enemy tries to obfuscate population data. In both cases I don't think ur method will help, still Solution 1 of a global code hash/integrity only "may" help
(I'm talking hypothetical here, I mean if there data on a global Blockchain they can retrieve the last Internationally saved copy, but if the fact is discovered after some time they will lose some data and have to get back to the last integrity verified point)

Sorry, that's kind of frightening &  I'm not sure if it's related to the white paper u r talking about.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: ymgve2 on August 21, 2021, 02:08:01 PM
In the white paper is the answer to the question:
Who decides which bytecode updates need to be added?

There is nothing in the "paper" about this - all it says about updates to the code is "Other blocks of code can be seen as applications on the solid blockchain, as well as updates of the genesis code."

Can you please quote the part of the white paper that explains how code updates are approved and included in the chain?


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 21, 2021, 03:56:49 PM
This is about the Connection Layer Protocol (CLP).


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: Shymaa-Arafat on August 21, 2021, 06:47:40 PM
Sorry is the author banned from the bitcointalk group (or a certain section or a certain moderator),
or the paper itself is banned from the internet???
How is that?

I reject any such frobidding of ideas/info/knowledge

I tried to Google search it out of curiosity, only found this about Dissociative Social media platforms,
https://bettermarketing.pub/social-media-is-dissociative-ac1b3c67b5d3
But it didn't upload either


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: HCP on August 22, 2021, 04:54:43 AM
Aside from the person, where's a link to the paper itself?

The link to the "paper" was mentioned in an earlier post:
I'm not talking about Bitcoin, I'm talking about the stupid "associative blockchain code" idea the original poster is pushing, which explicitly wants to have validation code in the blocks themselves: https://medium.com/@mocciaro.smz/associative-blockchain-code-f84f385c45ec




ABSTRACT

Reading the specifications of the blockchain emerge the anomaly of the genesis block. It couldn’t just be what it appeared to be, one of the many blocks without a predecessor. Hence the idea that the genesis block must really be the block it generates and not just the initial block of the blockchain. If the genesis block isn’t just a data block then the genesis block must be a code. Only a code can truly generate and be called really genesis. The concept idea that the genesis block must be a code changes the perspective. The same code that manipulates the blockchain must be the genesis block.
This seems fundamentally flawed... the Genesis block is just a data block... it's not a "code".

So, it seems their entire premise rests on this really bad interpretation of what a "genesis" block is? ???


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: pooya87 on August 22, 2021, 06:07:40 AM
This seems fundamentally flawed... the Genesis block is just a data block... it's not a "code".
They probably looked at some "how to create an altcoin" guide and saw that in the bitcoin core source code there is a method (https://github.com/bitcoin/bitcoin/blob/e9d6eb1b8071805cec1cc4e1352a13a7adc55ca8/src/chainparams.cpp#L51) that creates the Genesis block (which shitcoin creators change) and built this whole nonsense "article" on top of that. But the fact that there is a method generating the Genesis block instead of a hex being decoded doesn't change the fact that block #0 IS hard-coded or the fact that in the decentralized network people running the "correct" code are generating the correct Genesis block and it doesn't matter what a malicious node does.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: Shymaa-Arafat on August 22, 2021, 08:59:42 AM
The midium link doesn't upload in my browser.
Anyway, why didn't u tell this explaination to the author & clarify any ambiguity he/she has instead of banning them?

Quote
But the fact that there is a method generating the Genesis block instead of a hex being decoded doesn't change the fact that block #0 IS hard-coded or the fact that in the decentralized network people running the "correct" code are generating the correct Genesis block and it doesn't matter what a malicious node does.

Still one question from me (I'm an academic person who have never run a full node) why the Genesis block is "generated" and not downloaded as part of the IBD Initial Block Download process?


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 22, 2021, 09:18:55 AM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: Shymaa-Arafat on August 22, 2021, 11:07:28 AM
Could it be that u mis-spelled the word the author meant & it is "assortative"?
In the paper
https://appliednetsci.springeropen.com/articles/10.1007/s41109-019-0249-6

The authors state the result:
Quote
Another important finding of this study is that the transaction graphs of all examined coins are becoming non-assortative as they grow larger over time.

Where they define the term
Quote
The assortativity coefficient of a graph indicates the tendency of the graph vertices to attach to other vertices that are similar to them. The similarity of two nodes is usually measured by their degrees, and the assortativity coefficient is calculated by the Pearson correlation coefficient of degree between pairs of linked nodes.

This metric has a numeric value between − 1 and 1. The value of 1 indicates that the graph is perfectly assortative and the vertices tend to have an edge with other vertices of similar degree. A value of − 1 indicates that the graph is completely disassortative and its vertices tend to link to vertices with different degrees. An assortativity of 0 shows that the graph is non-assortative and its vertices are neutral and do not exhibit a tendency for a particular type of vertices (Barabási and Pósfai 2016).

But here the authors do not state that as a problem, they just clarify a difference between cryptocurrencies  & social media transaction graphs


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: DooMAD on August 22, 2021, 11:41:50 AM
So, in essence, someone has conceptualised a blockchain that can't be forked, but only has an unproven theory about it.  And they think we're going to unban their account so we can hear more about something which Bitcoin can't possibly benefit from.  Yeah, sounds likely.   ::)


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 22, 2021, 12:54:31 PM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: pooya87 on August 22, 2021, 01:16:01 PM
Still one question from me (I'm an academic person who have never run a full node) why the Genesis block is "generated" and not downloaded as part of the IBD Initial Block Download process?
It is not exactly generated, in a way the Genesis block is hard-coded because the method always returns the same thing on all systems at all times.
The genesis block is hard-coded because everyone has to start from the same origin, otherwise if a node wanted to start downloading from block 0 the other nodes could give them another completely different chain (like an altcoin's chain with the same consensus rules as bitcoin) that could even be longer than bitcoin's with more work and that node wouldn't have any way of knowing it is on an altcoin chain.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: BlackHatCoiner on August 22, 2021, 01:24:05 PM
The genesis block is hard-coded because everyone has to start from the same origin, otherwise if a node wanted to start downloading from block 0 the other nodes could give them another completely different chain (like an altcoin's chain with the same consensus rules as bitcoin) that could even be longer than bitcoin's with more work and that node wouldn't have any way of knowing it is on an altcoin chain.
While I agree that it should be hard-coded, I disagree for the reason you've said. A node should always follow what's having the most work. An altcoin could be using Bitcoin's genesis block and still have more work than Bitcoin. Does a hard-coded value determine what chain will a node follow? Obviously the one with the most work.

You probably confused it with “longest chain” or “different chain”.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 22, 2021, 01:36:59 PM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: Shymaa-Arafat on August 22, 2021, 01:53:07 PM
Quote
But a stronger blockchain should know its own authorized code and not be manipulated by other potentially dangerous codes.
For this you can use the genesis block in the blockchain to contain references to the code that can modify it, and only that code is authorized

Couldn't this be simply achieved by having a Cryptographic hash or finger print of the authorized code released by Bitcoin Core?

Isn't this the same simple problem of how do u know the update/SW you  are downloading is not a malicious tampered version?  
.
And for
So, in essence, someone has conceptualised a blockchain that can't be forked, but only has an unproven theory about it.  And they think we're going to unban their account so we can hear more about something which Bitcoin can't possibly benefit from.  Yeah, sounds likely.   ::)
I do not know the person, but as a matter of principle
I'm against banning from a public group for dispute reasons, unless there is a serious violation of the group rules just don't read or comment on his/her posts.

These discussion boards are supposed to be for sharing ideas, discussing & brainstorming, clarifying any misunderstanding, answering & helping beginners,...etc


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 22, 2021, 02:13:06 PM
post canceled due to lack of interest and support.



Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: suchmoon on August 22, 2021, 03:01:46 PM
I'm against banning from a public group for dispute reasons, unless there is a serious violation of the group rules just don't read or comment on his/her posts.

These discussion boards are supposed to be for sharing ideas, discussing & brainstorming, clarifying any misunderstanding, answering & helping beginners,...etc

There was a violation of rules, repeatedly. This board is about Bitcoin. All OP has to say about Bitcoin is that its genesis block is flawed for some made-up reason that doesn't make any sense, and doesn't offer any plausible solution for it anyway.

This is not a beginners board either. Time to stop feeding the ban-evading troll.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: concepter on August 22, 2021, 03:11:36 PM
post canceled due to lack of interest and support.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: Shymaa-Arafat on August 22, 2021, 04:06:39 PM
Quote
Of course, the bitcoin blockchain cannot change its genesis block, which the newly developed blockchains can do, but it can always include special blocks that certify the code authorized to modify it.

This would be the softest but still valid solution.
I don't understand why a special block, why not just verify a cryptographic function on the code before running it?

Quote
There was a violation of rules, repeatedly.
Honestly, the fact that I couldn't find the paper elsewhere, the medium link doesn't work, the one person acting as if a lawyer to the author hardly posts very small parts, not a name/twitter/....etc
All of these make me suspecious.

Quote
If one has a different point of view, one must allow the expression and full development of that point of view.
Express it & discuss it yes, but a full development I'm not sure; at least not on the publicly used software ... you don't run trial experiments on people or their savings.

As an example, my idea about UTXOS categorization/partition ( their Merkle as a start) although best suited to be tested on Utreexo, but I can not force them too.
Yes I expected them to do it or at least discuss with me why don't they think it's promising, but for the sake of scientific research or achieving more improvement; not for me as a person.
Like I'm discussing here without knowing this SMZ or even anyone of you.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: NotATether on August 22, 2021, 04:11:46 PM
This is apparently the document OP is talking about which is also written by SMZ: https://medium.com/@mocciaro.smz/associative-blockchain-code-f84f385c45ec (to be fair, it would've been easier on all of us if you just linked this in the first place though)

And also to be fair, the author constructed his arguments well, and looks like he did his research.

I'm not going to comment on this whole "ban" situation (create your own thread for that if that's important to any of you) since it's not relevant here, but it reinforces my view that this is mainly a theoretical idea and that actual code to apply this theory will need to be produced later at some point.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: suchmoon on August 22, 2021, 04:42:35 PM
And also to be fair, the author constructed his arguments well, and looks like he did his research.

He's claiming that he can make an unforkable blockchain and doesn't address even the most basic issues with that, for example what would prevent creating a fork that doesn't include his magic hypothetical code, or what to do if the centralized provider of the "correct" code gets taken over by someone like CSW. It doesn't look like any serious thought was put into this at all, it's a fantasy "solution" to a non-existent problem and even if it was possible, it would create more and bigger problems.

See what you made me do, I'm feeding the troll again. Ew.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: Shymaa-Arafat on August 22, 2021, 06:51:43 PM
Quote
See what you made me do, I'm feeding the troll again. Ew.
What forces u to participate in the discussion?
Are you the moderator the who banned him?


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: HCP on August 24, 2021, 12:33:55 AM
The midium link doesn't upload in my browser.
Maybe try this archive.is link: https://archive.is/V2nyU

Hopefully that will load in your browser (which browser are you using? ???)


Anyway, why didn't u tell this explaination to the author & clarify any ambiguity he/she has instead of banning them?
I am not familiar with the account that is supposedly banned... or the reasons for them being banned, but I doubt it has anything to do with this "whitepaper". More likely it was for repeated breaking of forum rules (https://bitcointalk.org/index.php?topic=703657.0). I certainly didn't ban anybody (I'm not a mod/admin).


Still one question from me (I'm an academic person who have never run a full node) why the Genesis block is "generated" and not downloaded as part of the IBD Initial Block Download process?
When you start a blockchain... where are you going to download the Genesis block from if you're the first node? ??? ;)

The simple solution is to simply generate the genesis block and hardcode it... anyone (ie. any node) that wants to use your blockchain is going to need to use the same genesis block. It really makes no difference if it is generated or downloaded.

But as an interesting thought... I wonder if it would be possible to create a Bitcoin client that attempts to "download" Block #0? Is it even possible for a current Bitcoin Node to send Block #0? ???

Of course, if you were to attempt to download Block #0, how do you know that it is the "real" Block #0 and you haven't downloaded a fake one from a malicious node? ??? Hence, hardcoding it in the client is the only logical option.


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: Shymaa-Arafat on August 24, 2021, 07:13:10 AM
Maybe try this archive.is link: https://archive.is/V2nyU

Thank u, I will save it & read it soon to decide. As a first thought, I'm thinking a Cryptographic finger print of the code could solve the problem; do not run the code before verifying it.



Anyway, why didn't u tell this explaination to the author & clarify any ambiguity he/she has instead of banning them?
I am not familiar with the account that is supposedly banned... or the reasons for them being banned, but I doubt it has anything to do with this "whitepaper". More likely it was for repeated breaking of forum rules (https://bitcointalk.org/index.php?topic=703657.0). I certainly didn't ban anybody (I'm not a mod/admin).

This phrase was directed to the comment preceding it, not you.
For he/she said or complained from having to re- explain & defend his rejection to the paper and the author again & again


Title: Re: The blockchain does not know its code but the code knows the blockchain?
Post by: HCP on August 26, 2021, 02:53:53 AM
Thank u, I will save it & read it soon to decide. As a first thought, I'm thinking a Cryptographic finger print of the code could solve the problem; do not run the code before verifying it.
You mean like the signed sha256sum's of the installers/zip files... signed by the public key of the Bitcoin Core devs? As available on the download page: https://bitcoincore.org/en/download/

The problem is... Bitcoin Core is not the only node software available or able to connect to the network and process transactions and blocks etc. Anyone is free to create their own node software. It seems that the author wants there to be only one node application or something... as that is the only way that I can think of that the "blockchain could know the code". ::)

Otherwise, the blockchain would need to know about any and every node application ever written... and then what happens if someone tries to create a new node client tomorrow? Well, the blockchain would reject it because it has "no knowledge" of this code. ::)


This phrase was directed to the comment preceding it, not you.
For he/she said or complained from having to re- explain & defend his rejection to the paper and the author again & again
That's fine... I didn't think you were personally accusing me or anything :)

I was just pointing out, that I've never heard of this S.M.Z. person and had no knowledge of their ban... but that people generally don't get banned just for wanting to discuss ideas etc.