Ask HN: Resources to learn blockchain and smart contracts?
What resources are available to get into these two and related topics?
Would be also better if there are papers/books that introduces to these concepts (and toy implementation)?
Would be also better if there are papers/books that introduces to these concepts (and toy implementation)?
118 comments
[ 4.2 ms ] story [ 137 ms ] threadhttps://github.com/bitcoinbook/bitcoinbook
https://github.com/xel/blockchain-stuff
The Coursera class took around 20 hours end to end.
https://learn-anything.xyz/databases/distributed-databases/b...
For smart contracts :
https://learn-anything.xyz/distributed-computing/ethereum/sm...
https://bitcoin.stackexchange.com
https://ethereum.stackexchange.com
I’m n00b in Smart Contracts but they seem like interfaces to reading/writing to a data store.
If I didn’t totally botch what they are. Then I don’t really get why they’re “smart”. The pitfalls of regular programming, seem to apply to contracts. Seems like I could easily code a bug in a smart contract and have it t deployed to the network?? Or did I miss something?
https://testnet.etherscan.io/
http://chimera.labs.oreilly.com/books/1234000001802/index.ht...
The author is putting out a similar book called "Mastering Ethereum" in February, also through O'Reilly.
> I became obsessed and enthralled, spending 12 or more hours each day glued to a screen, reading, writing, coding, and learning as much as I could. I emerged from this state of fugue, more than 20 pounds lighter from lack of consistent meals, determined to dedicate myself to working on bitcoin.
To me, this seems a little dramatic for what should be a technical topic.
Also, your diagnose does not make much sense; you state that the dramatised telling in the preface means that the author has autism? In that case that would mean that people like Jimmy Fallon and Stephen Colbert or in that case most Americans (compared to us reserved Dutch people) would have autism.
On top of this you seem to suggest that you have to have some sort of mental condition to do things 'wrong' (as far as you want to call the preface wrong). What disorder do you have that led you to write cliché as 'clise'? Or did you mean 'sexy young man'?[1]
[1]: http://www.urbandictionary.com/define.php?term=clise
So 4chan is invading HN now? I thought they considered us too intertwined in the cargo cult botnet.
I haven't looked at the book, but the author is, a bit. Here's a somewhat banana-pants talk he recently gave. https://www.youtube.com/watch?v=FyK4P7ZdOK8
I wonder what pejorative will be coined for cryptocurrency enthusiasts. Banana-pants is just too broad. /s
I wrote about it in a little more detail here: https://www.reddit.com/r/CryptoCurrency/comments/73fi5q/mone...
It covers the basics pretty well.
http://bitcoinbook.cs.princeton.edu/
Also, this course page has some useful links and lecture notes/slides (mostly geared towards graduate students and research) http://soc1024.ece.illinois.edu/teaching/ece598am/fall2016/
It it a bit focused on ethereum, but I guess it is useful for starting to understand blockchain and smart contracts in general regardless
---
Watching
- "GOTO 2017 • Blockchain: The Slowest (and most Fascinating) Database in the World • Stefan Tilkov” https://www.youtube.com/watch?v=li3rfBAP_fE
Explains how the blockchain works and walks through most of the technical terms you will need to know
- "Ethereum Vs. Bitcoin: What Sets Them Apart? | CNBC” https://youtu.be/0UBk1e5qnr4
Uses the blockchain explanation to give you an idea of how the smart contract idea differs Ethereum from Bitcoin
- "Vitalik Buterin explains Ethereum" https://youtu.be/TDGq4aeevgY
3 minute macro explanation of what is Ethereum from its inventor Vitalik Buterin
- "DEVCON1: Ethereum for Dummies - Dr. Gavin Wood” https://www.youtube.com/watch?v=U_LK0t_qaPo
Ethereum's CTO Dr. Gavin Wood explains in a very macro way the Ethereum concept with an idea of how the “Global Computer” works and what is the “Ethereum Virtual Machine”
- Devcon2: Ethereum in 25 Minutes https://youtu.be/66SaEDzlmP4
Vitalik Buterin give and overview of the Ethereum protocol and shows what is an Ethereum transaction, what is Gas (and how computation time is actually paid for miners), how the state machine works and what you can do with it
- DEVCON1: Ethereum in the Enterprise Environment - Taylor Gerring https://youtu.be/HXNWhXuMNpw
Expose core concepts about the blockchain and the Ethereum platform that are valuable to enterprise and how companies can leverage that using web technologies
---
Reading
- Coinbase - A beginner’s guide to Ethereum https://blog.coinbase.com/a-beginners-guide-to-ethereum-46dd...
- Fat Protocols http://www.usv.com/blog/fat-protocols
- The difference between App Coins and Protocol Tokens https://blog.0xproject.com/the-difference-between-app-coins-...
- What’s the Difference Between an ‘ICO’ and a ‘Token Launch’? Coins vs. Tokens (What is a SNGLS token?) https://medium.com/@SingularDTV/whats-the-difference-between...
---
Source of links, links and more links
- /r/ethereum - getting started https://www.reddit.com/r/ethereum/comments/61y5ix/welcome_to...
- The Quiet Master of Cryptocurrency — Nick Szabo (Scroll to "Selected Links from the Episode”) https://tim.blog/2017/06/04/nick-szabo/
- What The Fuck Is Ethereum? ("I am a total nerd" option) mbrock ↗ Great list!
It focuses on Blockchain and Digital Transactions
Blockchains are designed to solve a certain set of problems. Understanding those problems and their relation to your product will help you determine whether a blockchain is a reasonable solution.
1. Do you need a distributed ledger? (https://en.wikipedia.org/wiki/Distributed_ledger)
2. Do you need proof of work? (https://en.wikipedia.org/wiki/Proof-of-work_system)
3. Does your distributed ledger need to record things such that one block follows the next, as opposed to blocks of data being saved independently of each other? (https://en.wikipedia.org/wiki/Blockchain)
If the answer to all of the above is yes, using a blockchain probably makes sense. Otherwise, you probably want to use something other than a blockchain (for instance, if you just need a distributed ledger, just use a distributed ledger. No need to chain each block together unless that's actually useful for your product).
A better single question would be: do you need a distributed ledger with immutability guarantees (i.e. security against an adversary that might want to tamper with the history of your ledger).
To me a blockchain is just a tree, where the "parent pointers" are just hashes of the parent nodes rather than their addresses. And I guess to pick one as the "correct" one, you just choose the one with (say) the longest chain. End of story? What else _is_ there to learn about this that people are looking for? (Btw, isn't this just a Merkle tree, which has been around since at least 1979? What's so revolutionary or even different in a blockchain?)
And proof of work is literally just the hash having a certain number of zero bits, right? Definitely a neat idea but hardly revolutionary if that's all there is to it.
This is where it gets a bit interesting. While Merkle Trees are great for ensuring, immutability, most cryptocurrencies need more than just that. They need to have a way for records to be inserted into this immutable ledger and an incentive to keep adding records to the ledger. This is where Proof of Work and mining rewards come into play, and this is where a lot of altcoins (non-Bitcoin cryptos) have a lot of different opinions. A decent amount of work has also been put into making sure that there isn't an incentive for a miner to mine on two different chains (and cause the ledger to fork) and other concerns.
But regarding the topic of what it can be used for... yes, I see people talking about doing healthcare with blockchain, or BP using blockchain, or archeology using blockchain, and people asking about how to learn to use blockchain for their next random startup ideas, and I start wondering if I'm going crazy. To me it seems basically like asking "could linked lists revolutionize healthcare?", or "could Dijkstra's algorithm help end global warming?" which sounds like a completely nuts question to ask. Am I just missing a huge, fundamental part of the picture? The whole thing just doesn't make sense to me.
Well, yes, they certainly could, even though that's an extremely vague question from someone who might not even understand what they're asking.
If you're interested in hearing about blockchain's potential from a business and society perspective, there's a bunch of material, but for example the latest Andreesen-Horowitz podcast episode was about "why crypto tokens matter".
Also this recent interview with someone deeply knowledgable about the supply chain world: https://www.youtube.com/watch?v=dla42bY7k90
Why Bitcoin Matters (2011, NYT) - https://dealbook.nytimes.com/2014/01/21/why-bitcoin-matters/...
What is blockchain, really? An intro for regular people. (2017, Medium) - https://medium.com/@wen_xs/what-is-blockchain-really-an-intr...
Re: “Smart contracts” - here’s a few 101 pieces on ethereum:
A Beginner’s Guide to Ethereum (2017, Coinbase blog) - https://blog.coinbase.com/a-beginners-guide-to-ethereum-46dd...
Ethereum is the Forefront of Digital Currency (2017, Coinbase blog) - https://blog.coinbase.com/ethereum-is-the-forefront-of-digit...
Dan Romero has compiled an excellent "reading list" for digital currencies: https://medium.com/@dwr/digital-currency-reading-list-6219f1...
And here's a 101 for developing a decentralized app (dApp): https://medium.com/@AndreaCoravos/dapps-101-how-do-i-start-d...
The O'Reilly book is good, you should also look at code in your preferred language, ideally the C++ in which Bitcoin core is written.
Last but absolutely not least - you should buy some Bitcoin and send it to someone, or buy something with it. I'd also recommend going through the trouble of running Bitcoin-Qt and downloading the whole blockchain (which takes several days and requires lots of disk space).
Once you understand all this, the smart contracts thing will be a lot clearer, and you might even have a different opinion on it.
You can create "smart contracts" with bitcoin.