Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: What's the best way to learn about the blockchain?
259 points by moksha256 on Sept 24, 2016 | hide | past | favorite | 74 comments
Every book I've come across is rated poorly for being superficial.

The one I've tried to read most recently (Mougayar's The Business Blockchain) also felt kind of superficial.

I'm interested in both technical foundation and practical/business applications.

Any books, videos, courses, or other resources you recommend?




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

That's where I would start.


>a goal is a dream with a deadline

I love this blog..


reading through this now, finding it very well written and informative.


This is what got me started too. One of the best prerequisite reads imo


Couldn't agree more, so informative


That was excellent, thank you.


Everything in Bitcoinlandia is fairly superficial, since everyone is trying to sell Bitcoin and make himself rich. So it's like reading multi-level-marketing books.

That being said. What's actually kind of good (with actual technical specifications) is Bitcoin wiki, even when it's slightly outdated; then official bitcoin website; and sometimes bitcoin stack exchange website (but that can become outdated too).

I don't think Blockchain can be disconnected from Bitcoin, and if you do, it's very general and not that specific.


To contrast that, patio11 has written various things ragging on bitcoin from a tech/business perspective. It's well worth reading.


He is otherwise great chap, but I don't think he is the guy to turn to on bitcoin/blockchain topics. He has focus certainly somewhere else, and to me his rants about bitcoin sound more like a general complaining because he missed the train.


You should probably also not turn to someone heavily invested in Bitcoin, since they have a lot to lose...


True, but those who invest their money usually invest their smarts and time also on the topic. So the info is most definitely biased, but on the other hand those who don't invest money probably don't care that much about the topic, and focus their efforts on other topics.

On the other hand, there are some people who have been bitcoin enthusiasts but have since left the scene, such as mike hearn.


Learning about blockchains can certainly be disconnected from Bitcoin. Go read the Ethereum docs for example.


Ethereum stuff can also prove how to do things wrong... The DAO is a good example of that, and now the recent ddos attack.


TheDAO is an example of a mistake on the path towards building something better/safer. You don't think airbags have ever killed people? Faulty seatbelts? Did Tesla abandon auto-pilot because of a few accidents? Do I need to go on and on? This is a nascent technology, of course there are going to be missteps along the way, and to hold it against Ethereum forever is an incredibly cynical point of view for supposed technologists.


There are no uses for turing complete smart contracts. Multisig and nLockTime perform all the same functions with lower risk and greater scalability.


Looking forward then to the deluge of DApps coming to Bitcoin using Multisign and nLockTime, just go to http://dapps.ethercasts.com/ and copy paste ideas to Bitcoin using Multisign / nLockTime, should be easy peasy. Oh yeah, and all can be done with Multisign & nLockTime, so I wonder why Counterparty and now Rootstock are implementing Ethereum's virtual machine, strange.

Wish you and your partner in crime stopped spreading false information and just focused on Bitcoin. It should stand on its own merits not on dishing other projects.


Chris DeRose, you have no power here.

https://www.youtube.com/watch?v=fBGWtVOKTkM


That's true, but it's still basically a cryptocurrency, with some out-there applications (that are not really that reliable, yet).

But yeah you are right.


The bitcoin wiki was a good starting point and did a good job at explaining the fundamentals of a distributed digital ledger. One problem I personally ran into was understanding the crypto subroutines that validate mining, transactions, and verification on the network. Reading their respective wiki pages can be a bit dense if you lack the background knowledge.


Makes sense.

For the record I've found Coindesk helpful for general updates, and I signed up for the blockchain course on Coursera.


Highly recommend the Princeton book and Coursera course as a starting point.

And if you want a compiled list of resources for learning: https://drive.google.com/file/d/0B6CKmAqa1_nzRGVicnlHY1BaaUk...


I would also recommend this book. It takes a very practical approach of introducing a problem which exists with the blockchain and then how to solve it. It gets you thinking the correct way. Then if you want, you'll have the basic understanding to dive into the theory and math behind each technology.


I assume you have read the the original Nakamoto paper on bitcoin. I will put it here for reference purposes. It is a seminal paper on blockchain and fairly accessible.

https://bitcoin.org/bitcoin.pdf



The Nakamoto paper is surprisingly accessible.


I highly recommend the Princeton book and associated video lectures as a place to get started. It does a great job of framing things in the context of the wider fields of cryptography and distribute systems research.

http://bitcoinbook.cs.princeton.edu/


I also recommend this book. I started reading it, figuring I would probably only read the beginning or gloss over it. It was so well written and so interesting that I ended up reading the whole textbook.


My understanding of how the blockchain works:

Someone tells a joke based on a prompt. This would be your Genesis block. Then everyone else competes to tell the funniest joke based on only that and the new prompts from the audience.

Repeat until you have an ongoing, hilarious comedy routine that cannot be edited after the fact without being found out because that would ruin the whole routine. It just wouldn't be as funny.


+1 for the effort, but no.


Absolutely it works that way. Nobody has a formula for coming up with jokes, they usually try different ones until people laugh. Guess and check. Exactly like taking SHA-256 hashes based on the Merkle tree until the hash, taken as a number, is less than or equal to the target.


This has been a great resource for me, especially Andreas's video at the end:

Inserting metadata into the blockchain. https://medium.com/@bkawk/inserting-metadata-into-the-blockc...

Andreas M. Antonopoulos: "Consensus Algorithms, Blockchain Technology and Bitcoin" [UCL] https://www.youtube.com/watch?v=sE7998qfjgk


I think a good unorthodox start is skimming/looking at Q&A sorted by votes on [1] and [2]. A good book but oriented towards bitcoin is [3]. My company also made an spreadsheet comparing different blockchain approaches [4] to have a high level understanding (e.g. blocks speed, security vulnerabilities)

I work in the field and the most difficult thing is to separate the noise from the signal. On talks with financial institutions and the government, they say they want to use the blockchain but when you ask about how many nodes they are planning to run they came up with one, or doesn't understand the question. Also, there are a lot of use cases that are not realistic because they depend on oracles or there is no way to enforce the smart contract in the real world.

[1] http://bitcoin.stackexchange.com/questions?sort=votes

[2] http://ethereum.stackexchange.com/questions?sort=votes

[3] https://www.amazon.com/Mastering-Bitcoin-Unlocking-Digital-C...

[4] https://docs.google.com/spreadsheets/d/1DQ770nGnHfJOoRSqTLmI...


Stanford CS 251: Cryptocurrencies, blockchains, and smart contracts

https://crypto.stanford.edu/cs251/syllabus.html


21 has some fun tutorials. https://21.co/learn/

The intro to bitcoin concepts is great place to learn about blockchain.

https://21.co/learn/introduction-to-bitcoin-concepts/#introd...


I would suggest the book “Mastering Bitcoin” from O’Reilly. I don’t have extensive experience on the issue but what really worked for me is that the book provides code examples (in Python and C++) that help get a better grasp of the technology.


This. Andreas' book is awesome. It will give you a high enough level to understand all the moving parts, then it deep dives into how they all work. A+++ will buy again.

Once you've read Mastering Bitcoin, install the reference implementation, and start playing with the API while pointing to the testnet. When you get stuck, look to the Bitcoin reference documentation... it's pretty good too.

Happy hacking


Probably too basic for original poster but this post by Michael Nielsen helped me with the basics of the bitcoin protocol. http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-a...


That's the one I was going to recommend


Set up a full node at home and run it for a while. Turn on logging and watch the messages there.

You'll need (at present) about 80 GB of disk space to hold the blockchain. The full node client will download it for you or you can torrent a recent snapshot of the blockchain and then synchronise from there (quicker).

The software you can obtain from here:

https://bitcoin.org/en/full-node

Or you can use git to pull the source code from GitHub and compile it yourself. I've done both, and found the developers on GitHub friendly and responsive to pull requests, even helpful to a newbie submitting a first pull request.

Beware that running a full node will try to eat all your upstream bandwidth. It takes a few days for the Bitcoin network to notice the existence of your new full node, but the number of connections will grow (others asking you for pieces of the blockchain, as well as transaction verifications). You can learn a lot about the Bitcoin ecology this way.


This book is insidiously useful. I went from not getting it at all to getting it more or less completely. Includes code interacting with the blockchain in a wide variety of ways.

http://chimera.labs.oreilly.com/books/1234000001802


"Insidiously"? Now I'm really curious if that's a typo, or the book is treacherous in some fashion.


No, I'm just fond of using that word to mean "extremely" despite that not being a common usage. I'm from the north east, so to me it registers the same as saying "wicked" to mean "extremely", like "wicked cool," which is a regional thing.


I've found that getting a wallet and sending some Bitcoin is a great first step. This course introduces Bitcoin and also surveys an array of other decentralized, blockchain projects: https://www.pluralsight.com/courses/bitcoin-decentralized-te... (caveats: self-promotion, pay-walled, but the free trial allows you to watch 95% of it).

Bear in mind that the word "blockchain" is an evolving word; almost every definition I've read differs. Some see it as barely different than a distributed database that doesn't allow deletions. Many others see it as paradigm shifting.


Blockchain is now a buzzword that means 'good database'


People aren't going to magically sell Eth and buy Bitcoin just because you're spamming the Hacker News thread, Chris.


I liked this for a technical introduction: http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-a...


Read the original Bitcoin paper, it should take no more than two hours even if you're not technical; http://genius.com/Satoshi-nakamoto-bitcoin-a-peer-to-peer-el..., once you understand what a blockchain does you'll probably want to know more about smart contracts http://about.smartcontract.com/#defining-a-smart-contract, since their decentralized data/transaction storage capabilities enable the decentralized computation which has the capacity to replace 90%+ of computable contracts (http://www3.weforum.org/docs/WEF_GAC15_Technological_Tipping...) which are currently in silos, much like what we had with various data before the internet


Hi m52go,

I have a blockchain/bitcoin tutoring service at www.blockchaintutoring.com. I did a Show HN but didn't get a single comment :(

I'm a programmer myself, but my target market is not the typical HN user. I'm looking to teach more business types and people in the law profession, for example. I'm preparing a small course plan to help people get from 0 to knowledgeable. The course will certainly be a bit technical, but I would not cover for example the pros and cons of the blocksize debate unless someone asks for that information.

I invite you to contact me, either through my website's contact form or the email address there provided. We can chat, and then if you ever choose to use the service, it's going to be at a discount for HN users. Your questions will definitely help me tailor my offering.


What email? Sent a message on your form, your form has no progress bar / feedback after submit and does not load on chrome mobile. See my message below on this thread.


Hi Adam,

You can find my email just under the "Contact Us" heading. It is bitcointutoring~at~gmail. I have received the message you sent me through your form, and am writing you a reply. The form confirms the email was sent by writing "Success! Message received." in green under the form. I agree it is not so evident.


Capability-based Financial Instruments: http://www.erights.org/elib/capability/ode/index.html

Although this paper does not directly address the blockchain, I believe it and the thesis below are at the root of the concept. (If you want to go down the rabbit hole, check out the references page of the above paper). Fair warning, the above paper is from 1999/2000 so obviously much has changed, but still worth reading.

Robust Composition: Towards a Unified Approach to Access Control and Concurrency Control by Mark Samuel Miller:

http://www.erights.org/talks/thesis/


If you are interested in the technical implementation of it, I did a very basic version of a Blockchain in Go a while ago.

https://github.com/izqui/blockchain


Newb question: Why do people refer to it (these?) as "the" blockchain?


It depends on the context.

Ethereum is a platform that uses a blockchain to build and record consensus. Conceptually, the blockchain is a technology underpinning each cryptocurrency. Across the many cryptocurrencies in use, there are many blockchains keeping track of who owns what.

It is never correct to refer to a capitalized "Blockchain," or refer to it singularly without articles (a or the), imho. We don't refer to other data structures that way, like a priority queue.


From what I've noticed, when people refer to 'the' blockchain, they usually mean the Bitcoin blockchain.


1) Read the original blockchain article: http://szabo.best.vwh.net/securetitle.html

2) Longest lecture Nick Szabo, inventor of blockchains, ever gave was in the money museum in Zurich: https://www.youtube.com/watch?v=tWuN2R2DC6c

3) Study the original source code (bitcoin version 0.0.1).

4) https://github.com/bitcoinbook/bitcoinbook


Honestly your best bet is to read everything Gregory Maxwell has ever written.



I wrote a piece for Linux Voice on how bitcoin works a couple of years ago. It's obviously focused on this particular blockchain, not the principal in general and it's a couple of years old now. I tried to give a good overview for techincal people : https://www.linuxvoice.com/bitcoin/


Annotated Bitcoin paper (which also talks about Blockchain) - http://genius.com/2683791 Digital Currency MOOC http://digitalcurrency.unic.ac.cy/free-introductory-mooc/


http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-bi...

^ Following along with this helped me a lot. Bitcoin is a rather large onion, but, as others are saying, implementing parts of it is the only way to go.


I found the various interviews on Software Engineering Daily informative. There's probably more than revealed by a naive search, but it's a start:

http://softwareengineeringdaily.com/?s=blockchain


I was working on this service. Teaching blockchain bootcamp courses online. I found a few instructors. Just need go figure out the MVP. Are you in NYC? Check the landing page http://studioblockchain.com/



If you enjoy more of a hands on approach, try getting a miner setup for some new coin. You'll learn a ton in the process.



Blockchains are just databases rebranded to be something interesting when cryptography is applied. There's no magic to keeping transactions in 'folders'. Database journaling, and message signing has been performed since the 80's (or older)


Your statement is lacking in a few ways, so to correct you in simple terms...

a database contains data that can be deleted and/or overwritten. Other than examining changelogs and reverting changes according to 'external requirements', a database is a non-auditable pot of changeable information. A blockchain cannot be re-written without a "hard fork" of the network that makes it exist. It is that simple. Consequently,you can also easily audit a blockchain or any part (wallet) of it. To audit a database is not impossible, but auditing a ledger is entirely simpler.

Banking people throw "blockchain" around as a buzzword without necessarily understanding the total difference in the way they operate compared to databases. The fact that the blockchain is a ledger is best demonstrated to them by the notion that a printed bank statement is a 'de facto' ledger of the transactions on a single account. Banks have always told customers that keeping printed (usually monthly) statements is how a permanent record is kept of your transactions. This is because they routinely wipe system transactions to avoid the storage and security costs of keeping a copy of the data. I have bank statements on paper going back to my very first bank account and transaction. They take up a great deal of physical space, but they do represent a permanent and uncontestable history of my finances. They are my personal paperblockchain. If only banks had been willing to keep everyone's transaction data in perpetuity then I wouldn't have boxes of paper in my attic. But that would be hugely impractical and costly. Blockchains for every account are feasible, but not on the horizon given the state of current cryptography and the huge data costs.

Banks trying to get into blockchain tech are only looking at high level intra-bank functionality, which would be well served by a new system, especially given that they don't trust each other but have historically agreed that they should, and pragmatism has cemented the system. A new system is absolutely needed.

rebranding is hardly the point. Blockchains exist as something entirely novel and challenging to legacy database structures. The folders you refer to - do you mean cryptocurrency wallets? The wallets where people can be their own bank? They are just blockchain 1.0 btw.


Did you read what he wrote ?

Database journaling ? Keeping things in folders ? what you have just described.


You're wasting your time. He's Bitcoin's biggest troll.


as others have mentioned, the princeton course videos + _homework exercises_ are a great entry point. also read satoshi's paper and then other resources


Learn elliptic curves.


[dead]


Here is not a great place to spam... Please don't...


Read the Greek guys open source book.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: