Blockchain is a nebulous buzzword with a vague meaning. But I have yet to see a sensible definition of a blockchain that doesn’t include git. At the end of the day they are both just Merkle trees.
Please share a source! I can’t find anything as robust as a whitepaper (the bitcoin whitepaper doesn’t use the term).
NIST informally defines it as:
A distributed digital ledger of cryptographically-signed transactions that are grouped into blocks. Each block is cryptographically linked to the previous one (making it tamper evident) after validation and undergoing a consensus decision. As new blocks are added, older blocks become more difficult to modify (creating tamper resistance). New blocks are replicated across copies of the ledger within the network, and any conflicts are resolved automatically using established rules.
Which git certainly meets this.
IBM informally defines it as:
Blockchain is a shared, immutable ledger that facilitates the process of recording transactions and tracking assets in a business network. An asset can be tangible (a house, car, cash, land) or intangible (intellectual property, patents, copyrights, branding).
Oh a 3rd definition, that definitely hurts the case that blockchain is vague ill defined term. If it were a well-defined term, there would be whitepapers defining it like merkle trees or bitcoin. Blockchain is just a marketing term defined by businesses, not scientists or engineers and thus is vague and variable.
I also don’t think your definition is a very good definition. Do you think git fundamentally changes when it moves from sha1 to sha256? Or are you referring to the fact that the payloads of cryptocurrency’s blockchain is required to be signed (just like you can optionally require git commits to be signed)? I don’t think that’s fundamental to blockchain either.
Only cryptographicly valid changes are allowed to blockchain state. All data can be modified in git.
No. You can’t modify the chain in git. Each commit is an immutable snapshot of the repository. To change history you have to create a new hash and then broadcast that to everyone that they should stop using the old one. Depending in how your network is setup you may onky have to convince a centralized server, or you might have to convince 51% of the actors on your network or you may just choose to only form a network that agrees with you. You could alter bitcoin’s blockchain too, but you’d need 51% of the network to agree with you.
Oh a 3rd definition, that definitely hurts the case that blockchain is vague ill defined term.
The phrases used to describe the technology to the public may change, but the technolgical approach doesn’t
If it were a well-defined term, there would be whitepapers defining it like merkle trees or bitcoin.
There are hundreds of blockchain whitepapers, all of which link blocks of data via hash functions and only accept state changes if they are valid and cryptographicaly signed.
Blockchain is just a marketing term defined by businesses, not scientists or engineers and thus is vague and variable.
If we were discussing web3 or Metaverse then you may have a point. But no-one in tech is confused about what blockchain is anymore.
Do you think git fundamentally changes when it moves from sha1 to sha256?
No.
Or are you referring to the fact that the payloads of cryptocurrency’s blockchain is required to be signed
Yes. Exactly this.
(just like you can optionally require git commits to be signed)?
Optionally is the key word. Blockchain transactions must be signed, and they must be accepted as following the blockchain rules by validators.
I don’t think that’s fundamental to blockchain either.
Find me a blockchain that doesn’t require signed transactions to make state changes.
No. You can’t modify the chain in git.
I didn’t say anything about modify the chain.
Each commit is an immutable snapshot of the repository.
A commit can contain any data it likes. A commit to a blockchain is highly restricted. Only cryptographicly valid rule following changes are allowed to blockchain state.
Optionally is the key word. Blockchain transactions must be signed, and they must be accepted as following the blockchain rules by validators.
But this is just a policy decision, not a property of the technology. You can easily implement a script that checks if every commit from remotes are signed, accepts them if they are and drops them if they aren’t or the signature is invalid.
If you contribute to a project where the majority require signed commits, then you need to sign commits in order for your change to be integrated into the consensus.
That has nothing to do with the technology itself, just with the application.
So if you state that signatures are required to be a blockchain, then you can use git to create a blockchain, by just having that policy.
(IMO I wouldn’t say that signatures are required, just that blockchains usually have them.)
You can easily implement a script that checks if every commit from remotes are signed, accepts them if they are and drops them if they aren’t or the signature is invalid.
Now add some logic to check whether the actual data is valid (i.e. bob has enough coins in his account to send to Charlie).
Make some incentive to ensure only the main branch survives and forks are either eliminated or merged.
Automate
Now git replicates blockchain’s functionality.
So if you state that signatures are required to be a blockchain, then you can use git to create a blockchain, by just having that policy.
Yes, but add automatically processing the content of the commit for validity and incentives to reduce the number of forks.
(IMO I wouldn’t say that signatures are required, just that blockchains usually have them.)
Without public key cryptography you just have a hash linked list (like Git).
Again, find the difference. Each block(commit object) has its content(blobs and trees) and metadata like parent blocks(commit objects), time(and message). So one commit corresponds only to one history.
How does it “certainly meet it”? There is no consensus mechanism in git, new blocks are not replicated across the network, there is no network at all, git works offline. You can replicate changes with remotes but there is no “git network” in any similar sense. And conflicts are definitely not resolved automatically. And the git hashes are certainly not cryptographic.
That’s 4 ways it doesn’t meet the definition. You could maybe stretch the meaning of a network to make it 3.
While blockchain is well defined, it in itself is not a product but a technology. I think what the other commenter is getting at is that simply saying something “is blockchain” means very little because what the blockchain does depends on the implementation, so when used in marketing it’s just a nebulous buzzword in that it doesn’t actually give you much information about what the product is. Same with terms like cloud, AI, virtual reality, etc.
Who decides to commit changes though? A human. A human who can be corrupt
I’m not entirely sure what your getting at here, but git can be run as democratically as a crypto currency where the canonical version of the project is the one with the longest chain. Seems like a bad idea to me though. I think you may be assuming the way most people rely on github/gitlab etc as an inherent part of the system, when it’s really just the most convenient way of doing things.
The best use case for blockchains in my opinion is elections.
I’ll believe it when I see a real implementation. I think the problem is anonymity, I don’t see how we can set a system up such that the results are auditable but also impossible for anyone to tie a specific vote to a specific person.
I’m not entirely sure what your getting at here, but git can be run as democratically as a crypto currency where the canonical version of the project is the one with the longest chain.
Which means elections. Which means a dude/committee in charge of a server. See the problem?
I’ll believe it when I see a real implementation. I think the problem is anonymity, I don’t see how we can set a system up such that the results are auditable but also impossible for anyone to tie a specific vote to a specific person.
This is a very very interesting topic that I’ve spent a rlly long time thinking about. I wish I had more energy to go in depth for this. The gist is this:
There will be a tradeoff between anonymity and “vote buying”.
You can have absolute anonymity by implementing a monero like blockchain. Each registered voter address gets one token. The thing that you can cast a vote for is also an address. The voter sends this token to an unknown address (that theoretically belongs to the voter themselves). Then, the voter votes from this address. This way, absolute anonymity is maintained as noone knows who sent the token to the address in the middle. BUT. I could buy votes like this too. I could bribe a voter to send their token to the middle address, which I control.
To prevent voter buying, you can have an open blockchain where all transactions are visible to everyone. However, you get pseudo anonymity here. Every registered voter address gets one token like above. No one except for the election commission knows which address belongs to whom. So while the election commission cannot manipulate votes, it can leak who voted for whom.
Now that being said, normal elections aren’t as theoretically anonymous as well. For ballots, your name is on the envelope. A compromised election commission could leak this info as well. For EVMs, one line of code could leak who you are. The person granting you entry can note down your information. The EVM can ping this person as to which vote was cast while you were in there.
Hence, in my opinion, the second option of the open blockchain is the best one provided that the election commission is under strict regulation (which it generally is in any case).
You said you could democratically manage git, hence bypassing blockchains. Democracy means elections (unless you mean some exotic form of democracy like Athenian democracy). But elections need to be conducted.
I said you would need a central authority (like an election commission) to conduct elections. You said that there was no need for that. So I asked for your method of conducting elections.
The dude who owns the election server won’t be able to manipulate results in any way.
Sure he will. He can just ignore votes for one candidate and not add them to the chain. Blockchains are only resistant to manipulation if they’re distributed and people agree on the canonical version. Even then if enough people agree to manipulate them they can, like they did with Ethereum.
The integrity of blockchains isn’t immune from malicious activity. It is just way way harder to be manipulated. No blockchain means 1 server needs to be manipulated. Blockchain means more than 1 servers need to be manipulated.
Even when it becomes smarter than humans in the future, I would still oppose this idea. We humans have seemingly benevolent leaders who become malevolent. At least we can replace them as they are around as smart as us. A malevolent creature that is waaay smarter than us that rules over us? No thanks.
Blockchain is a nebulous buzzword with a vague meaning. But I have yet to see a sensible definition of a blockchain that doesn’t include git. At the end of the day they are both just Merkle trees.
Git is pretty useful imo.
Well yes but can you pump and dump git commits ?
Only non-fungible commits.
…kinda
Blockchain is pretty well defined.
Git doesn’t have update rules that are only valid if signed by a particular private key.
Please share a source! I can’t find anything as robust as a whitepaper (the bitcoin whitepaper doesn’t use the term).
NIST informally defines it as:
Which git certainly meets this.
IBM informally defines it as:
Which git meets.
Git is hash linked, not cryptographicly linked. Only cryptographicly valid changes are allowed to blockchain state. All data can be modified in git.
Yes. IBMs definition is bad and could equally apply to git. They’ve totally forgotten about the private key aspect.
I’ll see if I can source a better definition online, but make no promises.
Edit: https://aws.amazon.com/what-is/blockchain/ the last line is not applicable to Git
Oh a 3rd definition, that definitely hurts the case that blockchain is vague ill defined term. If it were a well-defined term, there would be whitepapers defining it like merkle trees or bitcoin. Blockchain is just a marketing term defined by businesses, not scientists or engineers and thus is vague and variable.
I also don’t think your definition is a very good definition. Do you think git fundamentally changes when it moves from sha1 to sha256? Or are you referring to the fact that the payloads of cryptocurrency’s blockchain is required to be signed (just like you can optionally require git commits to be signed)? I don’t think that’s fundamental to blockchain either.
No. You can’t modify the chain in git. Each commit is an immutable snapshot of the repository. To change history you have to create a new hash and then broadcast that to everyone that they should stop using the old one. Depending in how your network is setup you may onky have to convince a centralized server, or you might have to convince 51% of the actors on your network or you may just choose to only form a network that agrees with you. You could alter bitcoin’s blockchain too, but you’d need 51% of the network to agree with you.
The phrases used to describe the technology to the public may change, but the technolgical approach doesn’t
There are hundreds of blockchain whitepapers, all of which link blocks of data via hash functions and only accept state changes if they are valid and cryptographicaly signed.
If we were discussing web3 or Metaverse then you may have a point. But no-one in tech is confused about what blockchain is anymore.
No.
Yes. Exactly this.
Optionally is the key word. Blockchain transactions must be signed, and they must be accepted as following the blockchain rules by validators.
Find me a blockchain that doesn’t require signed transactions to make state changes.
I didn’t say anything about modify the chain.
A commit can contain any data it likes. A commit to a blockchain is highly restricted. Only cryptographicly valid rule following changes are allowed to blockchain state.
But this is just a policy decision, not a property of the technology. You can easily implement a script that checks if every commit from remotes are signed, accepts them if they are and drops them if they aren’t or the signature is invalid.
If you contribute to a project where the majority require signed commits, then you need to sign commits in order for your change to be integrated into the consensus.
That has nothing to do with the technology itself, just with the application.
So if you state that signatures are required to be a blockchain, then you can use git to create a blockchain, by just having that policy.
(IMO I wouldn’t say that signatures are required, just that blockchains usually have them.)
Now add some logic to check whether the actual data is valid (i.e. bob has enough coins in his account to send to Charlie).
Make some incentive to ensure only the main branch survives and forks are either eliminated or merged.
Automate
Now git replicates blockchain’s functionality.
Yes, but add automatically processing the content of the commit for validity and incentives to reduce the number of forks.
Without public key cryptography you just have a hash linked list (like Git).
Hash is cryptographic function.
A hash function doesn’t check if a signature is valid. Neither does git. Blockchain does check.
And?
https://lemmy.world/comment/8278003
Again, find the difference. Each block(commit object) has its content(blobs and trees) and metadata like parent blocks(commit objects), time(and message). So one commit corresponds only to one history.
How does it “certainly meet it”? There is no consensus mechanism in git, new blocks are not replicated across the network, there is no network at all, git works offline. You can replicate changes with remotes but there is no “git network” in any similar sense. And conflicts are definitely not resolved automatically. And the git hashes are certainly not cryptographic.
That’s 4 ways it doesn’t meet the definition. You could maybe stretch the meaning of a network to make it 3.
While blockchain is well defined, it in itself is not a product but a technology. I think what the other commenter is getting at is that simply saying something “is blockchain” means very little because what the blockchain does depends on the implementation, so when used in marketing it’s just a nebulous buzzword in that it doesn’t actually give you much information about what the product is. Same with terms like cloud, AI, virtual reality, etc.
Yes. There were a lot of companies selling “blockchain base” solutions where blockchain wasn’t really needed in the solution at all.
Then it was Metaverse based solutions. (I would argue VR is well defined)
Now it’s AI solutions.
But I think “cloud” is now post that marketing phase, and blockchain is heading that way.
Git might not count because you can have branches that then merge? But yeah, git is useful, it’s decentralized and distributed, it could be used P2P…
AKA referencing to two past states.
Who decides to commit changes though? A human. A human who can be corrupt.
The best use case for blockchains in my opinion is elections. The dude who owns the election server won’t be able to manipulate results in any way.
While manipulating results isn’t impossible in case of a blockchain, it is still very very difficult.
I’m not entirely sure what your getting at here, but git can be run as democratically as a crypto currency where the canonical version of the project is the one with the longest chain. Seems like a bad idea to me though. I think you may be assuming the way most people rely on github/gitlab etc as an inherent part of the system, when it’s really just the most convenient way of doing things.
I’ll believe it when I see a real implementation. I think the problem is anonymity, I don’t see how we can set a system up such that the results are auditable but also impossible for anyone to tie a specific vote to a specific person.
Which means elections. Which means a dude/committee in charge of a server. See the problem?
This is a very very interesting topic that I’ve spent a rlly long time thinking about. I wish I had more energy to go in depth for this. The gist is this:
There will be a tradeoff between anonymity and “vote buying”.
You can have absolute anonymity by implementing a monero like blockchain. Each registered voter address gets one token. The thing that you can cast a vote for is also an address. The voter sends this token to an unknown address (that theoretically belongs to the voter themselves). Then, the voter votes from this address. This way, absolute anonymity is maintained as noone knows who sent the token to the address in the middle. BUT. I could buy votes like this too. I could bribe a voter to send their token to the middle address, which I control.
To prevent voter buying, you can have an open blockchain where all transactions are visible to everyone. However, you get pseudo anonymity here. Every registered voter address gets one token like above. No one except for the election commission knows which address belongs to whom. So while the election commission cannot manipulate votes, it can leak who voted for whom.
Now that being said, normal elections aren’t as theoretically anonymous as well. For ballots, your name is on the envelope. A compromised election commission could leak this info as well. For EVMs, one line of code could leak who you are. The person granting you entry can note down your information. The EVM can ping this person as to which vote was cast while you were in there.
Hence, in my opinion, the second option of the open blockchain is the best one provided that the election commission is under strict regulation (which it generally is in any case).
No you don’t need a centralized server or a committee.
So who conducts elections then?
I don’t know what you are talking about.
You said you could democratically manage git, hence bypassing blockchains. Democracy means elections (unless you mean some exotic form of democracy like Athenian democracy). But elections need to be conducted.
I said you would need a central authority (like an election commission) to conduct elections. You said that there was no need for that. So I asked for your method of conducting elections.
Sure he will. He can just ignore votes for one candidate and not add them to the chain. Blockchains are only resistant to manipulation if they’re distributed and people agree on the canonical version. Even then if enough people agree to manipulate them they can, like they did with Ethereum.
The integrity of blockchains isn’t immune from malicious activity. It is just way way harder to be manipulated. No blockchain means 1 server needs to be manipulated. Blockchain means more than 1 servers need to be manipulated.
You actually make a better case for replacing politicians with benevolent AI than for replacing ballots with transactions on a blockchain.
How so? AI is not smarter than people.
Even when it becomes smarter than humans in the future, I would still oppose this idea. We humans have seemingly benevolent leaders who become malevolent. At least we can replace them as they are around as smart as us. A malevolent creature that is waaay smarter than us that rules over us? No thanks.