前言
最早接触区块链是在2009年,当时我正在华为的一个网络安全部门从事研发工作,我在诺基亚工作的同学徐明亮,让我为他的美国同事开发一款比特币钱包应用,我也有幸接触比特币的源代码,并尝试编写区块链的相关应用。
当时我对区块链的理解尚处在代码层面,作为一个没有太多社会经验的程序员,我认为比特币、区块链仅仅作为点对点网络,通过密码学的方式保证数据传输和访问的安全,从性能提高和技术创新的角度看,它并没有先进性可言。当时我的工作内容就涉及网络与安全(密码学属于安全范畴),这个知识背景使得我对比特币的技术没有产生特别浓厚的兴趣。况且其代码完全开源,对我来讲,这样的项目一点竞争优势都没有。
到2017年,一种新型区块链公链项目爆发,它就是以太坊。当时国内外的区块链项目如火如荼,基于以太坊发行自己项目的token一时风头无二,很多投资机构也积极地参与其中。此时我已经参与过多个创业项目,对商业基本逻辑有了初步的认识,对于创业初期面临的问题也有了较深刻的理解。此时有投资人推荐我从事区块链方向的创业,我也因此重新对比特币和以太坊的设计进行了认真学习。当我研读完以太坊的白皮书之后,深深地被其技术特点及可以解决的问题范畴所震撼,我会在本书第5章对其涉及的ICO、token和DAO做详细的讲解。不同于比特币仅仅通过加密对一个数值进行去中心化的安全处理,以太坊已经可以与现实世界的商业逻辑进行紧密的融合。
从应用场景来说,比特币仅限于金融领域的应用,而以太坊已经超出了这个范畴,其第一个爆款DAPP——ICO在近几年全球的创业圈中掀起了巨大的变革浪潮,虽然它还伴随着信息不对称、技术不对称等问题,有很多欺诈项目也打着区块链的旗号作恶,但是如果用这样的技术解决真正有价值的问题,那么其影响也是巨大的。本书第6章以彩票为例,从代码到业务模式进行了详细的讲解,通过区块链DAPP解决彩票问题有很大的经济价值和社会价值。
从技术角度来说,比特币是一个很难编程的架构,如果需要利用区块链加密安全、公开透明、去中心化的特点,在一般情况下,项目方都需要升级整套比特币源代码,以满足自己项目的技术需求和业务需求。很多分叉币都是以这样的思路升级比特币的某些特性,然后重新建设自己的生态的。而对于以太坊来讲,智能合约虚拟机的引入使得以太坊成为一个可编程的区块链网络,为了达到同样的目的,项目方只需编写DAPP即可,无须重新搭建网络和建设生态。从这个角度来讲,比特币网络类似于诺基亚的功能手机,而以太坊类似于iPhone的智能手机。前者不可编程,新特性需要新型号的手机;后者有App Store,用户可以通过下载App满足自定义的手机需求。
本书的另一个目的是希望通过代码及架构设计的讲解,把区块链真正的价值和正确的使用方式传递给更多的读者,使得各类诈骗项目不再能轻易地欺骗更多的群众。在认真研究了以太坊之后,我欣然接受了投资人的建议,成功融资并开始了区块链公链方面的研发。目前我从事的项目主要是对以太坊进行进一步升级。虽然以太坊使得区块链可以编程,但是其操作对象仍然是抽象的数字货币,无法与现实世界中有价值的资产进行关联。我希望通过区块链对带宽流量、分布式存储、CPU算力共享等IT资源进行token激励和记账管理,这些资源在现实世界中是有价值的,且其价值是可衡量的。
在项目开发过程中,我整理了很多底层的区块链架构的技术文档,包括一些智能合约相关的技术文挡,因为这些资料相对较少,并且区块链热潮使得很多人对此类知识相对渴望,因此这些技术文档的读者逐渐多了起来。2018年,出版社的朋友希望我整理一些资料,编写成书,让更多的人可以读到这些技术文档。我觉得这对于区块链开发者和投资人来说都是一件非常有意义的事情,因此我欣然答应,这是本书的写作背景。
因为当前区块链尚处在发展初期,包括以太坊的编程语言Solidity,其版本仍然未达到release版本,因此很多知识可能会发生变化,希望读者及时跟进官方的资料。欢迎读者对本书表述不合理的地方提出建议或意见,我一定虚心接受。本书的代码会放在GitHub上:https://github.com/9992800/Dapp-on-Ethereum。我仅以本书抛砖引玉,希望更多的科技人才加入区块链行业中来,一起促进区块链的良性发展。同时希望本书对投资人有所帮助,提高其分辨骗局项目的能力。
再次感谢出版社对我的信任,以及朋友和亲人对我事业的支持。
李万胜