区块链开发权威指南

编辑注:本文来源于 NPC资源计划,作者: Haseeb

OdailyPlanet日报授权转载。这篇文章是我所见过的最全面的区块链应用开发学习指南,也是最系统的材料。鉴于本文中大量的信息,由于微信的限制,许多链接不能点击和显示,在此特别感谢本文的两位翻译人员:了得资本的 Managing Partner@Blake以及 Mochimo和 Ixian的中国社区负责人@angryolk。密码, ICO,神奇的因特网现金——所有这些都很令人兴奋,而你,那些渴望学习的开发者们,又该从哪里开始呢?真高兴你们在这方面都很兴奋。还有我但是您可能发现或不清楚从何处开始。在学习这些东西方面,区块链正在以惊人的速度发展,但是还没有清晰明确的指导。从我离开 Airbnb开始,在区块链界全职工作,很多人问我怎样才能进入区块链界全职工作。因此,考虑我的权威指导(当然,不可避免地是不完整的)----如何进入区块链工程领域。指导手册,为何要学习区块链开发?准备知识,比特币的理论基础,自己构建区块链,用智能合约编程以太坊,智能合约安全,开始真正上手,创建自己的项目,领导区块链社区,获得一份工作,为何要学习区块链开发?在回答这个问题之前,让我简单说明一下:区块链现在是一种被高估的价值。这种价格是不可持续的,一定会出现崩溃。这些事以前都发生过,而且很有可能会发生。但是如果你长期从事这一领域的工作,你将学会忽略价格。在 EminGun Sierr看来,价格是加密货币中最没有意义的部分。但区块链领域的所有技术都非常重要,它们将不可逆转地改变世界。假如你不确定是否要投入到这一行业,我不能直接告诉你答案,但是我可以告诉你五个使我信服的原因:区块链还处于起步阶段,比特币是10年前发明的,而区块链行业的创新率直到近几年才达到了疯狂程度,尤其是2015年以太坊的推出。这个领域的大部分新公司和创意都是建立在以太坊上的,而且以太坊还很不成熟。甚至从现在开始,几年之内你就能成为世界级的专家。大部分的人工作时间并不长,要赶上进度并不难。与21世纪末开始的深度学习一样,从现在起学习区块链。在这方面还没有很强的人才缺口,大学里最好最聪明的学生大多都集中在机器学习,网络编程或者游戏开发上。尽管区块链越来越受到公众的欢迎,但是它仍然是一个古怪而颠覆性的话题,并且对你的职业生涯而言,进入这个领域是一种冒险。早些时候,区块链只属于 cypherpunk (赛博朋克)(事实上,更准确的说法应该是加密朋克),偏执狂和怪人,而最近才发生变化。如果你是一名好奇的、开放的开发者,你将为这个领域带来很多价值。大多数的创新活动都是在学术界之外进行的,就我们所知,中本聪并非学者。尚无大学或机构能提供完整的区块链知识体系。大多数创新活动都是由狂热者,企业家和独立研究者引领的。您需要了解的几乎都是白皮书,博客,公共休闲渠道和开源软件。只要卷起袖子,投入战斗。这一领域的开发者还不够多,也不能很快培养出来。人人都在竞相招募区块链人才,项目方也感到人才短缺。很多优秀的公司都没有足够的资金来留住员工,因为他们拥有太多的机会。只要掌握一定的技能,找工作是很容易的。在科幻小说中,加密货币真的很酷,还有什么地方是像加密货币、安全货币、去中心化货币一样的呢?如今,西部荒凉不堪——当然,有好有坏。这一领域将会更加透明,最终实现规范。但是,毫无疑问,加密货币是你现在能参与的最有创新的领域之一。Ravikant在最近的一次采访中说:“成功的关键在于向社会提供他们所需要的,只是你不知道如何去做。”在学校里是不能学到这种知识的;如果可以,世界上的物质文明早就是极度饱和了。因此,去做些没人知道怎么做的事吧。如今,区块链是全新的,许多事情还有待解决。假如您成功构建了一个技术去中心化的未来,那么整个世界都将为您带来巨大的回报。所以在你进入这一行业之前,你需要了解哪些方面?预习知识,我建议你在深入学习前,要加强对基础知识的了解。基于几十年来对计算机科学、密码学和经济学的研究,区块链得以建立。他是一位“叛逆者”,但是他也非常了解以前的历史。要了解区块链是如何工作的,你需要了解在区块链之前产生的区块,以及它们为什么没有发挥作用。这里有一些需要熟悉的准备知识,按重要性排序。(注意,下面的链接只是学习的开始,也许你想要深入了解更多)。电脑科学,数据结构,你需要熟悉主数据结构的特点和复杂性,比如 linked lists

binary search trees

hash maps,以及 graphs (尤其是在区块链中有向非循环图的显著特征)。从零开始构建它们可以帮助我们更好地了解它们是如何工作的。加密货币是一种密码技术,它是加密货币的基础。使用公共/私有密钥加密(public/private key cryptography)对所有加密货币进行身份和认证。学习 RSA (简单易学,不需要很强的数学基础),再看一下 ecdsa (ECDSA)。椭圆曲线密码需要更抽象的数学,虽然理解所有的细节并不重要,但是这是大多数加密货币(包括比特币)所使用的密码。另外一个重要的密码元素是密码散列函数(hash)。它们可以用来承诺机制,也可以用来构造 merkle树。Merkle trees支持 Merkle proofs,它是区块链中最重要的扩展优化之一。分布系统,关于分布系统,有一些很好的教材,但是这是一个很大很难研究的领域。对于区块链的论证,分布式系统是绝对必要的,所以在进行区块链编程之前,必须先建立一个基础。当您的系统不再在一台机器上运行时,就必须开始证明一致性和一致。你需要理解线性化模型与最终一致性模型之间的差异。你也需要知道诸如 Paxos和 RAFT等容错一致性算法的保证。理解分布式系统中时间证明的困难,理解安全性和活动性的折衷,在这样的背景下,你就能理解拜占庭共识的困难之处,即公共区块链的主要安全需求。你需要学习 PBFT,它是第一个能够提供拜占庭式容错共识的可扩展算法。PBFT是许多证明区块链一致性算法的非工作证明的基础。再一次提醒,你不必了解 PBFT的太多细节,而是全面的思想和安全保障机制。了解传统的分布式数据库也很有帮助(其核心思想是区块链就是数据库)。学习片断(例如,通过一致性哈希)、主从复制(leader-follower replication)、分布式哈希表(DHTs),如 Chord或 Kademlia,在网络中,区块链的分布主要来源于它的点对点网络拓扑结构。所以,区块链是p2p网络历史上的产物。为了理解区块链通信模型,你需要理解计算机网络的基本知识:例如, TCP与 UDP,数据包模型, IP数据包,以及网络路由如何工作,通用的区块链倾向于通过 gossip协议和 flooding来传播信息。了解p2p网站设计的历史,包括 Napster to Gnutella

BitTorrent

Tor,都会对你有所帮助。块链有其自身的特点,但是他们从这些网络中吸取了教训,并进行了设计。经济、加密货币本质上是多学科的——这就是为什么它们如此迷人,如此激进。除计算机科学、密码学和网络外,它们也与经济息息相关。通过其经济结构,加密货币可以获得很多安全属性,这就是通常所说的加密经济。所以经济学是理解加密货币的关键。对加密货币最重要的经济学分支博弈论就是研究多个主体之间的利益和激励问题。您不需要深入到具体细节,但是您需要理解博弈论分析的基本工具,以及如何用它们来分析一次性和持续性游戏中的动机。您需要掌握两个关键概念:纳什均衡点和谢林均衡点,因为它们在密码学分析中非常重要。在宏观经济中,密币不仅是协议,而且还是货币。所以,他们是根据宏观经济规律来行动的(如果可以称之为规律的话)。密码货币受制于不同的货币政策,并对通货膨胀和通货紧缩做出了预期的反应。你们应当理解这些过程及其对消费,储蓄等方面的影响。另外一个有价值的经济概念是货币的流通速度,尤其是当它对应于货币的价值时。而作为与市场紧密相连的加密货币,微观经济学要求人们对其有所了解。对于供需曲线,你需要有强烈的直觉。您应当能够解释竞争和机会成本(它们将经常用于挖掘工作)。拍卖理论在很多硬币发行与密码经济系统中都有突出的表现。但愿你们对这些话题有所了解。如有,请随意浏览或略过。嗯,到现在为止,您已经完成并巩固了您的基础知识,现在您已经掌握了上述理论,让我们开始进行区块链开发。为什麽要学习区块链开发?SatoshiNakamoto于2008年10月发表了一份白皮书,在白皮书中他描述了一个分散使用数字货币的协议。他称这项交易为比特币。要想理解区块链背后的伟大创意,你必须先从比特币开始,然后掌握 Satoshi的独到见解,第一,我建议你建立一个直觉能力,即工作证明和分叉选择规则(亦称中本共识),您也可以找到使用不同编程语言编写的其他区块链实现。不断构建自己的区块链,满足自己的学习需求,这是最重要的功能。完成了这些之后,你应该对如何在区块链(即比特币)上实现一个简单的支付应用非常有信心。您现在也应该有足够的背景知识来阅读和理解比特币原始白皮书,要想理解比特币挖矿的经济原理,我建议去看一下普林斯顿的比特币与加密货币课程,假如你已经学完了这门课,那么你应该对比特币有足够的了解,并且能够从它的各个部分理解它的意义。您也可以使用比特币区块浏览器和浏览原始比特币交易。目前正是研究比特币和加密货币历史的好时机。以下由加州大学伯克利分校提供的视频很好地概括了这一点。另外还提供了一些可靠的学习资料:比特币学术先驱(Academic precursors to Bitcoin)、比特币机制: utxos和比特币脚本(比特币脚本并不特别重要,只是大致知道它能做什么)、比特币分叉指南(Short guide to Bitcoin forks)、软分叉和矿工信号(Soft forks and miner signaling)、双重成本、51%攻击和自私采矿(Double spends

51% attacks

and selfish mining)、重放攻击(Replay attacks),以及比特币生态系统中大部分争议的根源在于可扩展性问题。您应该知道为何业界对块状尺寸争论不休。(Bitcoin scalability problems)隔离证词,即 Segwit,并不十分必要,但它能带来很多东西。(Segregated witness

a. k. a. SegWit)比特币的重要扩展解决方案之一, Lightning Network,也被扩展到其他区块链。NPC也汇编了一份关于 BlackNetwork的完整学习资料,可以从历史消息中找到)

Bitcoin Nodes

Bitcoin fee statistics

charts

charts,以及更多的图表(Bitcoin fee fee statistics

charts),比特币能量消耗指数(在本文发表时,比特币采矿所消耗的能量相当于秘鲁所有地区的能量),以及格温对比特币的深刻论述(Insightful essay by Gwern),如果你想深入到“兔子洞”,那么 Jameson Lopp在比特币上面还有许多其他资源。通过编写以太坊(Ethereum)和智能合约的程序,现在你已经建立了一个区块链,并且了解了比特币的动态,现在是时候对以太坊进行深入研究了。您知道区块链和工作证明是如何在点对点网络中分布的。

提示:如果您觉得本文不错,请点击分享给您的好友!谢谢
相关推荐
新闻聚焦
猜你喜欢
热门推荐
 
Ctrl+D 将本页面保存为书签,全面了解最新资讯,方便快捷。