本文禁止任何形式的全文粘贴式转载,本文来自 代码家 的博客
Check the English Version
区块链理论在国外发展迅速,但国内一直没有什么进展,知网上确实存在几篇论文,但多数也是凑热点水出来的。最近在峰瑞资本持续的研究了几个月区块链理论部分,收获很多,想分享一些自己学习路径出来,希望能够帮助国内区块链爱好者快速上手。
研究区块链理论部分,不可避免的是读论文。如果纯粹想开发以太坊合约搞个 ICO 的话,只用看官方文档就行了。读论文的顺序大致如下:
入门论文和白皮书
第一篇:Bitcoin: A Peer-to-Peer Electronic Cash System,这是比特币的原始论文,通篇几乎没有什么公式,只是通过文字来描述整个网络的结构类型,通过简单的数据结构方案,完成了一个去中心化的信任体系网络。如果这篇论文看着有些吃力的话,可以配合《区块链-技术驱动金融》这本书,必须要强调的是:比特币的论文是其他区块链项目(以太坊,ZCash 等)的基础,所以务必花足够多的时间搞懂它。
第二篇:A Next Generation Smart Contract & Decentralized Application Platform Vitalik Buterin 2014 年发表的以太坊白皮书,整篇文章主要讲述了一些比特币网络的缺陷以及自己的一些新的想法,最最核心的部分应属智能合约部分的提议。更多更细节的技术描述在 Gavin Wood 发表的 Ethereum: A Secure Decentralized Generalized Transaction Ledger 一文中,这篇 Paper 是一篇论述非常严谨的文章,在以太坊的发展中起到了至关重要的作用。文章用严谨的数学符号描述了整个网络的工作原理以及细节。(如果你很努力看了,也没看懂,没有关系,只要掌握第一篇的核心思想暂时足矣。)
第三篇: IPFS – Content Addressed, Versioned, P2P File System,IPFS 是基于区块链实现的分布式文件存储系统,对于整个区块链产业的发展起到了很大的作用,在我看来,比特币是单片机,他的诞生只干一件事情,就是记账,而以太坊是一个计算器,可以执行一些简单的运算程序,IPFS 其实就是更底层的存储介质,在未来整个区块链产业的发展中至关重要。IPFS 的整个核心理念更多的是在结合现有技术,并进区块链中。最重要的应该是 KAD 协议,如果大家日常用过种子下载,那 ed2k 协议的基础就是 KAD。说来背后也有很多故事在里面,最早一个叫 Jed McCaleb 的程序员第一次实现了 KAD 协议,发布了 eDonkey(电骡)软件,后来沉浸到去中心化的研究中,持有一定量的比特币后,看到论坛很多人想要交易比特币,因此又开发了全球第一个比特币交易网站 Mt.GOX,曾经一度是全球最大的比特币交易网站,后来不幸被盗,又加入了 Ripple,现在单独 ICO 后在做 Stellar 网络,Stellar 网络也是一个非常有意思和想象空间的网络,大家有兴趣可以去看他的网络白皮书。
第四篇: 其他各种白皮书,目前 ICO 火爆,白皮书多如牛毛,多翻翻看别的白皮书,很快就能判断出项目靠不靠谱,做的事情是否有意义。
进阶论文
比特币被人诟病最多的大致有三点:匿名性、交易速度和费用、浪费电力资源,而针对其缺陷,也有很多学者提出了不同方案。
匿名性
比特币的安全性一直是个非常严重的问题,尽管账户并没有和人做绑定,但比特币所实现的只是伪匿名,交易之间有链接关系(Linkable),整个交易可以被追踪(Traceability)的网络。CryptoNote v2.0 这篇论文成为了目前几乎所有主打安全数字货币的论文基础,如 Monero,Dash,BlackCoin 等都是基于此论文提出的理论做的实现。论文提出两个主要方案,一个是通过椭圆曲线结合 Diffe-Hellman 密钥交换生成了只有交易双方可见的一笔交易,解决了 Linkable 的问题。另一个方案是通过一次性循环签名(One-time ring signatures)机制让每一笔交易不可被追踪。
另外值得一提的是零币(zerocoin)和零钞(zerocash)的概念。零钞是对零币的优化方案。整体思路在于通过零知识验证的方法实现数字货币的匿名性。零知识验证是密码学里比较重要的一个概念。后面的博文我也会继续给大家分享一些相关细节。相关的两篇论文如下:
- Zerocoin: Anonymous Distributed E-Cash from Bitcoin
- Zerocash: Decentralized Anonymous Payments from Bitcoin
交易速度和交易费用
交易速度和交易费用的背后本质原因是一样的,即每次交易成本高,并且耗时。因此所有的优化方案基本都是从将多数的交易从链上搬离到链下,即,不实时同步交易数据到整个网络,只有在必须要同步,或达到某个约定条件后再同步到网络,这样就能大幅减少网络共识的损耗,提升速度,降低交易手续费。
- The Bitcoin Lightning Network: Scalable Off-Chain Instant Payments,又名闪电网络,主要工作原理就是建立小额快速交易通道,将多数的状态在 off-chain (无需同步到主要的链)的模式下完成,当在某些特殊情况时,再同步回主链,完成共识。
电力损耗
比特币电力损耗的一大主要原因是来自于共识机制,为了让网络中对于每一笔交易达成共识,需要消耗计算资源来产生共识和去中心化网络时间戳,因此多数网络优化方案就是替代基于大量计算的共识机制,即替换掉 Proof of Work 工作机制,转而成为 Proof of Stake 机制,因此这方面推荐的论文如下:
- POS vs POW:这篇主要描述了两种共识机制的方案差异。
- Proof of Stake FAQ:以太坊创始人 Vitalik 撰写的 POS 机制的一些细节描述。
- Plasma:下一代以太坊扩容自治方案,里面提到了 POS 部分。
所需理论基础
区块链背后依赖的是密码学、共识算法、和博弈论。
密码学
目前整个区块链网络更倾向于安全性更高的椭圆曲线方案,也包含一些常规的摘要、加密、密钥交换算法。如果没有密码学基础,买一本书,看 Paper 的时候不懂的地方参考参考即可。密码学中也涉及一些抽象代数学科的内容可以买本书也作为参考。
共识算法
共识算法的核心抽象是拜占庭将军问题,相关的文章论文非常多,学习过程中多搜索多看即可。拜占庭将军目前解决方案较为成熟的是 Paxos 和 Raft 算法。
博弈论
博弈论在区块链的设计中起着非常隐性的核心作用,其最终目标是如何让网络达到一个平衡,坏人没有动力使坏,好人会努力维护网络。
总结
学习区块链理论部分需要非常多的耐心和毅力,去了解很多理论细节,网络协议的设计往往都是最有挑战的事情,工程实现并不是最难的。因此如果对区块链非常感兴趣的话,一定要准备好下苦功夫,后面我还会写一些相关博文,从更多的角度详细介绍区块链的理论部分以及深入到代码和工程中去探讨区块链。ICO 的火爆只是一群骗子(大多数都是)的狂欢,迟早爆炸,而后面大浪淘沙,优秀的项目需要更多区块链人才,所以快去做好准备吧。
如果有兴趣和我交流,欢迎加我微信:daimajia,如果文中要不正确的地方,欢迎斧正。
通过 Bitcoin 打赏: 1QD9entYzxbJKUL97S9ip4YqqJeQvQa8Ej
通过 Ethereum 打赏:0xdbd92588811c76a7a0CD22f45217Df1926B0709D
佩服家家,在浮躁的币圈里静下心来细心研读核心理论
家家带我们走向财富自由之路
佩服家家,期待更优秀的文章
给我来十块钱家家币
感谢分享
急需这样的文章,马克
雪中送炭
和我网名重啦。
非常感谢
paxos有个前提是没有拜占庭将军问题,而不是解决了拜占庭将军问题。这儿作者概念错了
感谢反馈,这部分确实写的有点草率,很快改正。
Pingback引用通告: 区块链入门指南 / Box 效果的 EditText / iOS 漂亮的播放器效果 - W3cJava
Pingback引用通告: PoW,PoS,DPoS 综述 | 代码家
关于密码学的书籍,博主有好介绍的么?
厉害,持续关注
匿名性的例子里面为什么不使用zcash的例子 是zerocoin有其它优异的地方么?
Pingback引用通告: Blockchain 区块链-学习资源汇总 – 链界网
Pingback引用通告: github.com-LiuBoyu-blockchain_-_2019-06-30_17-10-11
Pingback引用通告: 用 rust 从零开始构建区块链(Bitcoin)系列 - 基本原型和工作量证明算法 - 云微的碎碎念