
Ask HN: What's the best way to learn about the blockchain? - m52go
Every book I&#x27;ve come across is rated poorly for being superficial.<p>The one I&#x27;ve tried to read most recently (Mougayar&#x27;s The Business Blockchain) also felt kind of superficial.<p>I&#x27;m interested in both technical foundation and practical&#x2F;business applications.<p>Any books, videos, courses, or other resources you recommend?
======
lhnz
Building the minimum viable block chain:
[https://www.igvita.com/2014/05/05/minimum-viable-block-
chain...](https://www.igvita.com/2014/05/05/minimum-viable-block-chain/)

That's where I would start.

~~~
max_
>a goal is a dream with a deadline

I love this blog..

------
shp0ngle
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.

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

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

~~~
heliumcraft
Looking forward then to the deluge of DApps coming to Bitcoin using Multisign
and nLockTime, just go to
[http://dapps.ethercasts.com/](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.

------
justinpobrien
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...](https://drive.google.com/file/d/0B6CKmAqa1_nzRGVicnlHY1BaaUk/view?usp=sharing)

~~~
aperetti
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.

------
daveguy
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](https://bitcoin.org/bitcoin.pdf)

~~~
ryantuck
and in html:
[http://nakamotoinstitute.org/bitcoin/](http://nakamotoinstitute.org/bitcoin/)

------
zmanian
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/](http://bitcoinbook.cs.princeton.edu/)

~~~
CoryG89
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.

------
daniel-cussen
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.

~~~
xseven
+1 for the effort, but no.

~~~
daniel-cussen
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.

------
fode
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...](https://medium.com/@bkawk/inserting-metadata-
into-the-blockchain-40c0734b203e#.6pqz3zd10)

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

------
wslh
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](http://bitcoin.stackexchange.com/questions?sort=votes)

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

[3] [https://www.amazon.com/Mastering-Bitcoin-Unlocking-
Digital-C...](https://www.amazon.com/Mastering-Bitcoin-Unlocking-Digital-
Cryptocurrencies/dp/1449374042/ref=sr_1_1?ie=UTF8&qid=1474737627&sr=8-1&keywords=Mastering+Bitcoin+by+Andreas+M.+Antonopoulos)

[4]
[https://docs.google.com/spreadsheets/d/1DQ770nGnHfJOoRSqTLmI...](https://docs.google.com/spreadsheets/d/1DQ770nGnHfJOoRSqTLmIkhuVK5CAbs-
Fgqb6UoGMfVM/)

------
fitzwatermellow
Stanford CS 251: Cryptocurrencies, blockchains, and smart contracts

[https://crypto.stanford.edu/cs251/syllabus.html](https://crypto.stanford.edu/cs251/syllabus.html)

------
gregoryrueda
21 has some fun tutorials. [https://21.co/learn/](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...](https://21.co/learn/introduction-to-bitcoin-
concepts/#introduction-to-bitcoin-concepts)

------
elorant
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.

~~~
alfiedotwtf
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

------
umutisik
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...](http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-
actually-works/)

~~~
Angostura
That's the one I was going to recommend

------
jloughry
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](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.

------
aerovistae
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](http://chimera.labs.oreilly.com/books/1234000001802)

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

~~~
aerovistae
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.

------
scott_ci
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...](https://www.pluralsight.com/courses/bitcoin-decentralized-technology)
(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.

~~~
brighton36
Blockchain is now a buzzword that means 'good database'

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

------
anatoly
I liked this for a technical introduction:
[http://www.michaelnielsen.org/ddi/how-the-bitcoin-
protocol-a...](http://www.michaelnielsen.org/ddi/how-the-bitcoin-protocol-
actually-works/)

------
blockchain
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...](http://genius.com/Satoshi-nakamoto-bitcoin-a-peer-to-peer-
electronic-cash-system-annotated/), 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](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...](http://www3.weforum.org/docs/WEF_GAC15_Technological_Tipping_Points_report_2015.pdf#page=24))
which are currently in silos, much like what we had with various data before
the internet

------
bitcointutoring
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.

~~~
adamqureshi
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.

~~~
bitcointutoring
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.

------
jeffrestore
Capability-based Financial Instruments:
[http://www.erights.org/elib/capability/ode/index.html](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/](http://www.erights.org/talks/thesis/)

------
izqui
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](https://github.com/izqui/blockchain)

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

~~~
carver
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.

------
bachback
1) Read the original blockchain article:
[http://szabo.best.vwh.net/securetitle.html](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](https://www.youtube.com/watch?v=tWuN2R2DC6c)

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

4)
[https://github.com/bitcoinbook/bitcoinbook](https://github.com/bitcoinbook/bitcoinbook)

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

------
kanzure
Start here:
[https://github.com/bitcoin/bitcoin/tree/master/src](https://github.com/bitcoin/bitcoin/tree/master/src)

and [https://bitcoin.org/en/developer-
documentation](https://bitcoin.org/en/developer-documentation)

papers-
[http://diyhpl.us/~bryan/papers2/bitcoin/](http://diyhpl.us/~bryan/papers2/bitcoin/)

------
benev
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/](https://www.linuxvoice.com/bitcoin/)

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

------
ftlio
[http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-
bi...](http://www.righto.com/2014/02/bitcoins-hard-way-using-raw-
bitcoin.html?m=1)

^ 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.

------
brudgers
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](http://softwareengineeringdaily.com/?s=blockchain)

------
adamqureshi
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/](http://studioblockchain.com/)

------
known
[https://www.google.com/search?q=site:economist.com+blockchai...](https://www.google.com/search?q=site:economist.com+blockchain)

------
Everhusk
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.

------
kobeya
[http://bitcoin.ninja/](http://bitcoin.ninja/)

------
brighton36
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)

~~~
MereKatMoves
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.

~~~
olliey
Did you read what he wrote ?

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

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

------
Nano2rad
Learn elliptic curves.

------
kapauldo
Read the Greek guys open source book.

