4 ms·
Isn’t blockchain just a type of data structure?
by QML 9y ago
Isn’t blockchain just a type of data structure?
- aplummer 9y agoIt’s a linked list
- knocte 9y agoYeah sure but you need to understand asymmetric cryptographic to know how secure this data structure is, and how it can prevent attacks from private-key holders and non-private-key holders that claim to be holders.
- garmaine 9y agoNo, “block chain” itself just refers to the hash-chain ordering of transactions. Using asymmetric crypto to verify spend conditions is sorta orthogonal to that.
- knocte 9y agoblockchain without cryptography is like writing a data structure without any motivation for its existence. i.e. why hashtables were created in the first place? To have indexing (faster access than simple array/lists). What would be the point of a blockchain without cryptography? You cannot call that blockchain IMO (otherwise, any chain of blocks would be a blockchain, for example: a file is a blockchain, right?).
- danieldk 9y agoblockchain without cryptography is like writing a data structure without any motivation for its existence Note that you said asymmetric cryptography and your parent said that asymmetric cryptography is not the basis of the block chain. And they would be right, at its core, the blockchain consists of blocks of transactions in a Merkle tree. The Merkle tree typically uses a cryptographically strong hash, otherwise it would be possible to modify the Merkle tree without anyone noticing. But a hash is not asymmetric cryptography. In many applications of the blockchain, asymmetric cryptography is used to sign transactions. But that is largely orthogonal to the blockchain as a data structure. The blockchain as a data structure has useful applications without transaction signing, etc. What makes the discussion clouded is that some people define 'block chain' as transaction blocks in a Merkle tree, while others also consider distributed consensus, etc. to be part of the block chain.
- garmaine 9y agoAlso there's no reason asymmetric crypto has to be used. You could use Lamport signatures, for example.
- sirclueless 9y agoI believe the comment you are responding is making a distinction between the public key cryptography used to authorize spending from a private wallet, and the act of including a cryptographic hash of the previous block in the current block creating a blockchain (which only requires a strong hash function, not asymmetric cryptography). Blockchains as defined this way have existed long before there was a proof-of-work based consensus protocol to make Bitcoin a reality. In their more general form they are called "Merkel trees". Filesystems aren't generally structured this way but, for example, git repositories are Merkel trees.
- garmaine 9y agoMerkle. They were invented by Ralph Merkle, not the chancellor of Germany. This would be a Merkel tree: http://c8.alamy.com/comp/D5AYH7/german-chancellor-angela-merkel-waters-a-tree-inastana-kazakhstan-D5AYH7.jpg http://c8.alamy.com/comp/D5AYH7/german-chancellor-angela-mer...
- zaarn 9y agoGit is an example of a blockchain without much cryptography, as someone else explained here. The only cryptography is the SHA1 hash that links commits together, otherwise all cryptography is optional. And that's totally okay because such repositories are usually run by people who have the authority over it. A blockchain is a special kind of linked graph that uses cryptography to link each node, otherwise, there are no additional requirements and there are plenty of reasons you might not want anything else.
- danblick 9y agoIt's obscure, honestly. But most cryptocurrency enthusiasts use the term to mean a blockchain (the data structure) together with a protocol for "consensus" (acceptance of a single instance of that data structure), commonly proof of work / "Nakamoto consensus".
- 2_listerine_pls 9y agoTechnically, it's just a linked list that uses hash pointers. Nowadays, it appears to be used to refer to a distributed database that use blockchains or merkle trees (binary trees with hash pointers) and has a consensus algorithm.