Live data from Hacker News

Building a tiny blockchain

medium.com

11–20 of 60 posts

Re: Building a tiny blockchain

#11

This worries me. Bitcoin solved the double spend problem by using the LCR with PoW. That is the novel aspect which allowed cryptocurrencies to come into existence. If you remove the LCR and PoW, all you are left with is a toy example which cannot work in practice. What is needed is education about censensus design and bitcoin's implementation of the solution, rather than a 'how to guide' for building a basic linked l…

As for proof of work, am I right in assuming it works like this :-

Add a field to store a random number. Keep generating values for this field until the hash of the structure has 'n' leading zeros.

Is that more or less correct?

Re: Building a tiny blockchain

#12
post #8

Earlier quoted context omitted.

What? A blockchain isn’t a distributed ledger. A blockchain IS a chain of linked documents - whereas these documents are usually hash trees including the “transactions” per block. They ensure integrity by hashing the previous blocks. The proof of work is just a way to ensure a self regulating growth of virtual currencies and to prevent double spending.

>A blockchain isn’t a distributed ledger. A blockchain IS a chain of linked documents You are interpreting "blockchain" to be constrained to a "chain of hashes". That is a valid interpretation. The parent (Uptrenda) is interpreting "blockchain" as a umbrella label for "distributed ledger". This wider definition is also a valid interpretation and this language phenomenon is called "synecdoche"[1]. To point back to the…

That argument is not exactly valid, because the concept of a block chain has been described a long time before it was used in "virtual currencies." [1]

"Block chains" in modern times are very helpful in handling transactions in databases by replacing things like CAS-Numbers [2] with hashes. The hash of the previous block effectively becomes the CAS-Number, with the feature of staying persistent and verifiable.

CAS example: IF X_version IS 200 SET X=2

BC example: IF hash(X) IS 200 ADD document Y WITH Y_parent = hash(X)

That is, while the article does in fact also mentions Bitcoin, I don't see a point in discrediting the article, the code or the author in any way. Personally, I find it far more valuable for engineers to understand the underlying, fundamental concepts of things before going all-in. Sure, he could have discussed all these things, but for people who are new to the topic, that would not have been very helpful in understanding the concept of a block chain.

[1] https://link.springer.com/article/10.1007/BF00196791

[2] https://en.wikipedia.org/wiki/Compare-and-swap

Re: Building a tiny blockchain

#13
post #10

This worries me. Bitcoin solved the double spend problem by using the LCR with PoW. That is the novel aspect which allowed cryptocurrencies to come into existence. If you remove the LCR and PoW, all you are left with is a toy example which cannot work in practice. What is needed is education about censensus design and bitcoin's implementation of the solution, rather than a 'how to guide' for building a basic linked l…

What does LCR stand for? Thank you

Looks like "longest chain rule".

Re: Building a tiny blockchain

#14
post #8

Earlier quoted context omitted.

>A blockchain isn’t a distributed ledger. A blockchain IS a chain of linked documents You are interpreting "blockchain" to be constrained to a "chain of hashes". That is a valid interpretation. The parent (Uptrenda) is interpreting "blockchain" as a umbrella label for "distributed ledger". This wider definition is also a valid interpretation and this language phenomenon is called "synecdoche"[1]. To point back to the…

That argument is not exactly valid, because the concept of a block chain has been described a long time before it was used in "virtual currencies." [1] "Block chains" in modern times are very helpful in handling transactions in databases by replacing things like CAS-Numbers [2] with hashes. The hash of the previous block effectively becomes the CAS-Number, with the feature of staying persistent and verifiable. CAS ex…

>, because the concept of a block chain has been described a long time before

Citing historical usage and original meanings is not relevant as to why people use synecdoche.

The point is that in today's discourse, the term "blockchain" has already expanded beyond the original literal technically constrained meaning of "chain of hashes". Even if _you_ want to keep the original meaning of "blockchain", you still have to recognize when _others_ are using synecdoche.

Examples in media:

+ https://www.google.com/search?q=bloomberg+blockchain

+ https://www.google.com/search?q=wsj+blockchain

+ https://www.igvita.com/2014/05/05/minimum-viable-block-chain...

To interpret those articles correctly, you have to mentally substitute "blockchain" with "distributed ledger". If you substitute with "chain of hashes", the articles make no sense.

Synecdoche throws original historical usage out the window.

>, but for people who are new to the topic, that would not have been very helpful in understanding the concept of a block chain.

There are many web articles that create a "toy" blockchain by showing _hashes_. The problem is that the abundance of such articles actually hides the real ingenuity of the Satoshi/bitcoin.

Again, the hard part is combining multiple technologies in clever ways that can synchronize the psychology of anonymous people -- aka "decentralized trust". The hashing is the least interesting component of all that. However, since the "hashes" are the most "accessible" part of it (especially to programmers), that's what everybody ends up writing about! This has the unintended side effect if hiding the more groundbreaking ideas (the psychology) of distributed ledgers.

Re: Building a tiny blockchain

#15
post #10

This worries me. Bitcoin solved the double spend problem by using the LCR with PoW. That is the novel aspect which allowed cryptocurrencies to come into existence. If you remove the LCR and PoW, all you are left with is a toy example which cannot work in practice. What is needed is education about censensus design and bitcoin's implementation of the solution, rather than a 'how to guide' for building a basic linked l…

What does LCR stand for? Thank you

Longest Chain Rule, that the network honors the longest chain as the correct chain.

Re: Building a tiny blockchain

#16
post #11

This worries me. Bitcoin solved the double spend problem by using the LCR with PoW. That is the novel aspect which allowed cryptocurrencies to come into existence. If you remove the LCR and PoW, all you are left with is a toy example which cannot work in practice. What is needed is education about censensus design and bitcoin's implementation of the solution, rather than a 'how to guide' for building a basic linked l…

As for proof of work, am I right in assuming it works like this :- Add a field to store a random number. Keep generating values for this field until the hash of the structure has 'n' leading zeros. Is that more or less correct?

Again, that's how it works, but not why it works. It bitcoin it is used as an unforgeable proxy for elapsed time.

Re: Building a tiny blockchain

#17
post #10

Earlier quoted context omitted.

What does LCR stand for? Thank you

Longest Chain Rule, that the network honors the longest chain as the correct chain.

Bitcoin has moved away from the Longest Chain Rule to the blockchain with the most cumulative Proof of Work as what the nodes recognize as valid blockchain.

Re: Building a tiny blockchain

#18
post #11

Earlier quoted context omitted.

As for proof of work, am I right in assuming it works like this :- Add a field to store a random number. Keep generating values for this field until the hash of the structure has 'n' leading zeros. Is that more or less correct?

Again, that's how it works, but not why it works. It bitcoin it is used as an unforgeable proxy for elapsed time.

>"It bitcoin it is used as an unforgeable proxy for elapsed time"

This sounds pretty interesting, can you elaborate on how exactly its proxy model for the passage of time?

Re: Building a tiny blockchain

#19
post #8

Earlier quoted context omitted.

What? A blockchain isn’t a distributed ledger. A blockchain IS a chain of linked documents - whereas these documents are usually hash trees including the “transactions” per block. They ensure integrity by hashing the previous blocks. The proof of work is just a way to ensure a self regulating growth of virtual currencies and to prevent double spending.

>A blockchain isn’t a distributed ledger. A blockchain IS a chain of linked documents You are interpreting "blockchain" to be constrained to a "chain of hashes". That is a valid interpretation. The parent (Uptrenda) is interpreting "blockchain" as a umbrella label for "distributed ledger". This wider definition is also a valid interpretation and this language phenomenon is called "synecdoche"[1]. To point back to the…

I see what you mean. It's amazing how people on Hacker News always know the exact word for a concept no matter how obscure. I learn more from the comments here than I do from the articles.

Re: Building a tiny blockchain

#20
post #14

Earlier quoted context omitted.

That argument is not exactly valid, because the concept of a block chain has been described a long time before it was used in "virtual currencies." [1] "Block chains" in modern times are very helpful in handling transactions in databases by replacing things like CAS-Numbers [2] with hashes. The hash of the previous block effectively becomes the CAS-Number, with the feature of staying persistent and verifiable. CAS ex…

>, because the concept of a block chain has been described a long time before Citing historical usage and original meanings is not relevant as to why people use synecdoche. The point is that in today's discourse , the term "blockchain" has already expanded beyond the original literal technically constrained meaning of "chain of hashes". Even if _you_ want to keep the original meaning of "blockchain", you still have t…

The psychology aspect is a part that's the most impressive. You have incentives -- everybody likes money -- and proof-of-work -- consensus that solves the byzantine generals problem. But if you combine them all to produce a new trustless kind of money then this innovation itself serves like a socially scaleless memetic payload.

It's like what Nick Szabo talks about in his social scalability article. That the design of Bitcoin offers high social scalability, allowing anyone to participate in the system across cultures, languages, customs, and laws. It kind of ties everything together under a single model.

I also agree with you about the "Synecdoche" thing, too. It seems like we're arguing about the same thing. As you say, you can interpret "blockchain" as the chain of blocks that is outputted from the consensus system or as the whole system itself. But I guess in the context of this article it was confusing whether this poster was having a genuine misunderstanding or was just talking about a part of the system.

Post reply on HN