编者按:区块链的知名度让很多人跃跃欲试。YC在其博客上发表文章,指出区块链将带来发展范式的变革,并给出了应对这一范式变革的操作性建议。文章由36Kr编译。
介绍
如果你点击这篇文章,我们会认为你是一个对区块链感兴趣的开发者/黑客。你确信你能理解它是如何工作的。现在你想弄清楚区块链对你和你的开发者技能意味着什么。
如果你需要了解更多入门知识,我们建议你从比特币白皮书和以太坊白皮书开始。
1.解释区块链发展和现有发展模式之间的差异。
开发者的范式转换
互联网应用受益于网络效应,因为它们集中了信息孤岛。基于共享的开放协议(如TCP/IP协议、HTTP协议),Yelp、脸书、亚马逊等公司都可以在一个地方拥有大量的用户及其数据。这样一来,他们不仅比那些数据少的竞争对手有更大的优势,而且对数据的变现方式也有完全的控制权。
用加密货币投资人Joel Monegro的话说,目前的互联网范式在应用层获得了大部分价值,而从底层通信协议层获得的价值非常低。
或者,区块链范式的价值分布可以用协议层(多)和应用层(少)来描述。这种模式的改变之所以成为可能,是因为USV的Albert Wagner发明了加密令牌:
“从历史上看,从协议中赚钱的唯一方法是创建软件来实现它,然后尝试销售这个软件(或托管它)……然而,通过加密令牌,协议的创建者可以直接将协议货币化。事实上,当其他人在协议之上建立业务时,协议的创建者实际上会受益更多。”
在此之前,互联网开放通信协议的开发者,主要是DARPA的研究人员和非营利贡献者,并没有将财务激励与协议开发结合起来。相比之下,今天的协议开发者可以发布“令牌”,比如比特币和以太坊。这些“令牌”代表了它们的分散式协议的价值。
Joel Monegro认为,这种范式转变将影响开发者对应用的思考方式:“共享开放数据和激励机制的结合将颠覆‘赢者通吃’的应用层市场,从而改变应用层的游戏规则,并在协议层创造一个全新的公司类别。这些公司与目前挖掘应用层价值的公司的商业模式有着根本的不同。”
以太坊
我们已经意识到,在区块链范式中,开发者可以通过协议创新获得价值。为了继续我们的讨论,让我们回顾一下区块链技术是如何发展并最终迎合开发者的。八年前,比特币被认为是一种虚拟货币,不需要集中的金融系统。最初,开发人员实际上试图通过在区块链存储数据来在比特币区块链上构建应用,但结果非常低效。开发者之一的Vitalik Buterin对比特币缺乏流动性和避险意识感到失望。因为他想创造对开发者友好的新功能。因此,他建立了自己的平台3354以太坊。
虽然比特币最初的目的是成为一种新的金融价值存储媒介,但以太坊是作为一个完整的开发者环境出现的。在以太坊,开发者会用Solidity编程语言编写智能合约,那些智能合约都是在以太坊虚拟机(EVM)上运行的。在这里,我们看到开发人员有机会派生或使用他们自己的区块链来实现不同的目的。然而,要做到这一点,我们需要开发人员的支持,并激发现有区块链技术所实现的网络效应。今天,基于以太坊等现有网络,开发人员不仅可以成为他们自己的应用程序的利益相关者,还可以成为底层协议的利益相关者。
分散应用(Dapps)、加密货币和智能合约
今天的区块链开发人员通常基于现有协议开发分散式应用程序,以解决特定市场和最终用户所需的问题。通过这种方式,开发人员可以发布令牌来执行去中心化应用程序本身的一些“功能”。这些“功能”是一种“智能合约”,承诺为去中心化的应用程序提供服务,以换取数字资产,从而消除了中间商对交易的担保。
随着去中心化应用的功能越来越受到人们的追捧,固定数量的加密货币的价值随着供不应求而增加。换句话说,如果事实证明去中心化应用程序的体验确实引人注目且需求很高,那么固定令牌供应将变得更有价值。这是所有ico的基本原则。分散的应用程序开发人员通过提供应用程序中使用的加密货币来吸引投资,从而为他们的项目融资。
但是,等等,您可能会问,“为什么不使用现有的令牌,而是在开始时发布您自己的特定于分散应用程序的令牌?”
特定于去中心化应用程序的令牌可以帮助小经济体实现应用程序的目的。这些令牌是一种稀缺资源,可以通过管理使其与分散应用程序的功能更紧密地集成在一起。
这是以太坊——的起点。在以太坊中,开发者可以很容易地发行自己的令牌,供自己的去中心化应用指定使用。
早期机会
理解了去中心化应用的底层机制之后,仔细思考去中心化最终会给用户带来什么好处是很重要的。我们不想跳进一个附带项目的列表,而是将关系数据库交给区块链来实现。我们敦促你考虑权力下放的好处。例如,ogle通过分散的参与者做出正确的预测来预测市场,因为他们会分享财务激励。
在元级别上,在开发者栈中也有创新的机会。许多区块链开发者将区块链工具和框架的成熟与早期的互联网网络相比较。我们采访了Stream的Ben Yu,他称之为开发者的新机会:“在让这个领域变得更容易接近的过程中,有现成的成果,需要建立大量的技术基础设施,将区块链的发展水平从1994年的互联网水平带到2017年。”
随着区块链的创新,许多人发现了建立一个新的和分散的网络堆栈的机会,它不依赖于中央政府或商业实体。传统的网络堆栈由TCP/IP、DNS、数据库、Web服务器、认证系统和CDN等构建模块组成。我们用以太坊作为基础层来复制这些组件。
不变性的挑战
不幸的是,类似于JavaScript早期迭代的技术几乎肯定会带来挑战,其中最明显的挑战与新协议的不变性有关。开发人员不能更改基本的区块链或更高级别的智能合约。合同不容易版本化。最近的平价bug、1.5亿美元资金被冻结,以及许多其他类似事件提醒我们需要建立一个“基于未来”的架构。
工程师布兰登米尔曼(Brandon Millman)描述了区块链的不变性如何影响他对安全问题的看法:“在这个领域意味着要谨慎得多,尤其是因为这会给人们的钱带来风险。”区块链范式的好处之一是,如果你持有私钥,人们很难从你那里拿钱,但许多骗局会让你心甘情愿地把钱投资到错误的地方,而不是从你的钱包里偷钱。\"
开发者,尤其是那些习惯了快节奏创业的人,不得不在速度和安全性之间权衡取舍。
正如《Stream》的本宇所描述的,“你要动作非常快,因为空间在快速发展,但你不能动作太快,打破常规。如果你把事情搞砸了,你会损失数亿美元。”
在区块链开发需要不同层次的规划。开发人员不能再使用热补丁或隔夜补丁,因为他们不再对整个系统进行集中控制。相反,引入系统更改通常需要严格处理整个协议,或者在某些情况下,为不直接绑定到区块链的协议参数提供单独的源代码。
以太坊的局限性
除了不变性的一般挑战,以太坊还包含一些区块链开发者可能会遇到的限制。
首先,以太坊无法从区块链之外获取实时数据。开发者需要依赖可信的第三方数据提供商来为智能合约提供天气、随机数或货币值等外部信息。
此外,以太坊的规范也阻止了实时计算。区块交易处理时间超过15秒(相比比特币10分钟,快如闪电)。所以开发者需要用前端框架编写异步代码,前端框架可以相应地更新状态(比如React)。
在以太坊,你也要为你的交易支付交易费。使用当前版本的Solidity。如果您打算执行的计算过于昂贵,那么您可能会发现自己遇到了事务限制。因此,在金钱和网络带宽方面,区块链中的计算成本变得昂贵。有一些有趣的替代方案,如Truebit,可以在非链中执行更密集的计算。
动身
总的来说,进入这个领域,一定会让人觉得无法抗拒。这是一个跨学科的领域,涵盖了经济学、博弈论、金融学、计算机科学、数学、密码学等领域。但是,这也意味着有很多领域可供新人选择。
0x的Brandon建议你去那些你感兴趣或者有经验的领域,而不是一下子什么都学:“如果你之前做过JS开发,你可以做很多JS库。虽然你肯定需要知道最后所有的东西是如何组合在一起的,但你不需要一开始就学习整个课程。”
本着去中心化的精神,区块链项目的大部分代码也可以通过开源获得。有许多好的资源可供您使用:
松露框架是最强的框架之一。
看看如何在zeppelinOS repo中开发和销售令牌,zeppelinOS repo是开发去中心化应用程序最受信任的库之一。
Blockgeek还提供了深度以太坊令牌指南,包含代码示例和高级概念。
你甚至可以向Crypto Kitties学习,在区块链上创建自己的数字游戏。
此外,开发人员社区非常善于接受和帮助新人:
/r/以太坊
/r/ethdev
https://blockgeeks.com/
如果您主要通过编写自己的项目来学习,以下是一些入门建议:
打造自己的钱包。它可以是网页、移动应用程序或桌面应用程序。
创建您自己的ERC-20令牌,并将其部署到测试网络。
展望未来
在目前的状态下,区块链的发展是混乱的。没有类似现代Web开发的框架和工具。但为什么不把新生的区块链视为一个影响技术范式转变的机会呢?
在区块链上,您不需要部署任何集中式服务器,这意味着没有单点故障。如果您的整个堆栈是分散的,那么没有可信的第三方参与其审查,并且您的数据库可以被公开验证。由于新的范例提供了公开共享数据的机会,我们认为分散数据库是最大的优势。这是我们在区块链建设的未来。3354消除了中间人,允许信息和权力被系统地分配。
(36Kr编译组出品,未经允许禁止转载。编辑:郝鹏程)