颠覆你对区块链的认识

内容摘要

这一部关于区块链开发及运维的电子书。

为什么会写区块链电子书?因为2018年是区块链年。

这本电子书是否会出版(纸质图书)? 不会,因为互联网技术更迭太快,纸质书籍的内容无法实时更新,一本书动辄百元,很快就成为垃圾,你会发现目前市面的上区块链书籍至少是一年前写的,内容已经过时,很多例子无法正确运行。所以我不会出版,电子书的内容会追逐技术发展,及时跟进软件版本的升级,做到内容最新,至少是主流。

这本电子书与其他区块链书籍有什么不同?市面上大部分区块链书籍都是用2/3去讲区块链原理,只要不到 1/3 的干货,干货不够理论来凑,通篇将理论或是大谈特谈区块链行业,这些内容更多是头脑风暴,展望区块链,均无法落地实施。本书与那些书籍完全不同,不讲理论和原理,面向应用落地,注重例子,均是干货。

电子书更新频率?每天都会有新内容加入,更新频率最迟不会超过一周,更新内容请关注 https://github.com/netkiller/netkiller.github.io/commits/master

本文采用碎片化写作,原文会不定期更新,请尽量阅读原文。

http://www.netkiller.cn/blockchain/index.html

您的打赏是我的写作动力:http://www.netkiller.cn/blockchain/donations.html

==============================

第 1 章 区块链

目录

  • 1.1. 什么是区块链?
  • 1.2. 什么是智能合约?
  • 1.3. 我们应该怎么做?
  • 1.4. 如何学习区块链
  • 1.5. 区块链能做什么
  • 1.6. 区块链不能解决的问题
  • 1.7. 理解去中心化
  • 1.8. 理解不可撰改
  • 1.9. 区块链不能替代传统数据

区块链可以说是2018年最火的技术,相信很多开发者已经跃跃欲试投入到区块链开发队伍当中来,可是又感觉无从下手,你会发现世面上的书籍大多是将理论纸上谈兵,都是一些无法落地的异想天开的想法,本书将用大量实例讲解如何让技术落地。

目前区块链技术无论是 Ethereum 还 Hyperledger 都处在高速发展阶段,每次版本迭代更新变化巨大,至少还需要一到三年才能变成成熟的技术。

1.1. 什么是区块链?

很多书籍谈到区块链都从比特币开始,媒体也经常把比特币拉出来说事,首先要高清一个问题:比特币是区块链,但区块链并不是比特币。

区块链是什么?一句话,它是一种特殊的(非关系型)分布式数据库,这种数据库只能做插入和查找操作,并且没有管理员。

首先,区块链的主要作用是储存信息。任何需要保存的信息,都可以写入区块链,也可以从里面读取,所以它是数据库。

其次,任何人都可以架设服务器,加入区块链网络,成为一个节点。区块链的世界里面,没有中心节点,每个节点都是平等的,都保存着整个数据库。你可以向任何一个节点,写入/读取数据,因为所有节点最后都会同步,保证区块链一致。

1.2. 什么是智能合约?

你可以理解为存储过程+数据库结构,这样应该很好理解了把?

访问只能合约就如同访问存储过程。在合约中定义的变量是不能直接访问的,只能通过函数操作他。

所以非常类似数据库定义了表结构,但是不能直接 select, insert, delete, update 数据,只能通过存储过程操作数据库一样。

1.3. 我们应该怎么做?

很简单,通过IP地址与端口号连接到区块链系统,通过API(通常是 json-rpc)调用合约方法完成一笔交易,产生一笔区块记录。

理论上区块链比数据库简单。

1.4. 如何学习区块链

我学习区块链技术是没有看过任何书籍的,我采用的是碎片化学习方法,主要是通过搜索引擎和官方文档。我比较擅长自学,也很少和人交流。

也曾试图购买书籍,但是我发现这些书籍没有多大价值,几乎三分之二的内容在谈原理,理论的东西,剩下三分之一的内容,无非就是安装、配置、Helloword 实例。另外书籍的出版周期通常是半年至一年,等书籍出版出来,内容早已经过时,软件版本的差异导致书中的例子运行不了,所以我放弃了购买书籍的想法,同时萌生了自己要写一本以干货内容为主的电子书,尽量在书中回避理论的东西,软件版本我选择当前的主流版本,直接上例子,只要你对照步骤 Step by Step 实验就能成功,这种成就感会驱使你继续学习下去。

学习中遇到碰壁无法解决的问题可以借助搜索引擎解决,这是最好的学习工具。

我主张学习区块链不要看太多的原理,快速过一遍即可,很多书中从比特币开始讲起,我觉的是没有必要的。学习区块链有两个方向,一个是代币开发,另一个才是区块链开发,现在媒体将两个方向混为一谈,这是两个独立的方向。

如果你想从事代币开发那么目标很明确以太坊是最佳选择,你的学习内容是代币合约开发,合约部署,web3合约操作,代币上交易所等等......

业界所指区块链并非代币开发,而是解决去中心化,期望区块链技术帮助企业解决实际问题。通常Ethereum和Hyperledger两种方案都能满足企业需求,你需要自己判断选择哪个方案。

区块链是一种工具,就如同手机是通讯工具,你不需要学习通信原理和计算机原理,一样可以使用手机。区块链的发展一定是趋向傻瓜化,越来越容易使用和开发。

1.5. 区块链能做什么

区块链具有去中心化安全性、可追溯、不可篡改等特性。

区块链目前的底层只适合做,低频高价值的业务。例如区块链+征信,区块链+资产,区块链+支付,区块链+供应链,房地产+区块链(登记,转账)

1.6. 区块链不能解决的问题

你能保证上链的数据绝对不会被篡改;但你不能保证,上传的数据是真的。

区块链不能解决的问题:

  • 用户上传假数据
  • 物品被调包
  • 高频交易

我们举一个现实中的例子“身份证”,例如身份证是可能证明你是你,但是别人可以拿着你的身份证冒充你。另外你不能保证户籍人员在录入身份信息的时候不出错。现实中我们常有身份证重号或信息有误的情况。

并不是实施了区块链技术就安全无忧了,安全分为很多层,区块链只能做到存储层的安全。例如安全分为用户层,应用层,逻辑层,存储层等等。区块链无法解决用户层,应用层,逻辑层等安全问题,他只能保证存储在硬盘上的区块不被修改。

1.7. 理解去中心化

传统数据库是中心化的,它通过一个IP地址和一个端口号为应用程序提供服务,后来出现了“主从”和“主主”结构,去中心化就是一种“多主”结构。

与数据库相比区块链的去中心化更为复杂,他们的数据同步不是简单的二进制日志同步,而是通过加密传输,节点共识后才做数据存储。

1.8. 理解不可撰改

很多人被这句话误导,认为区块链的数据一旦创建是永久不能修改的,所以它安全。其实不然,区块链的数据可以修改,但不能撰改。

首先你要搞明白什么是撰改和修改,撰改是指非法修改区块链数据,而修改则是合法变更数据。

区块链上的数据是可以修改的,无论存储多久的数据,随时可以修改里面内容。

通常撰改区块链数据多指数据存储层面的修改。而修改则是通过chaincode 提供的修改函数变更区块链里面的数据。

举例一个场景例子,在征信系统中,用户有时被拉入黑名单,但用户缴纳欠费后应该立即将其移到白名单中,这个过程就需要修改区块链上的数据。

另外我还告诉你,多数区块链平台没有用户认证权限管理模块。所以无法控制区块中的那些数据可能修改,那些不能修改,那些数据XXX用户可以修改等等。即使有些区块链平台具备权限控制,颗粒度也无法想目前的数据库那些细。

1.9. 区块链不能替代传统数据

回归技术本质,我认为区块链技术本身是一种追求分布一致性的数据库。

我们学过数据库的,都知道CAP理论。CAP理论是指的是在一个分布式系统中, Consistency(一致性)、 Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼。大多数区块链,放弃了一些可用性,偏向了一致性和分区容错。

区块链并非能解决所有问题,虽然他也算是一种数据库,它能解决问题十分有限,它的数据管理和查询能力还打不到 NoSQL 的水平,更别提 SQL 的复杂应用。所以在实际的应用中,区块链不能替代数据,只能互补。

所以在项目实施前,仔细想想自己需求,真的需要区块链吗?还是需要区块链上的一些特性?例如数据不可撰改。如果仅仅是需要区块链的某一个特性。我们可以针对这个需求,思考一下能否使用传统数据库解决。

原文发布于微信公众号 - Netkiller(netkiller-ebook)

原文发表时间:2018-03-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏区块链开发科技公司

区块链开发公司 创建区块链的成本有多难?

 什么是区块链?区块链它不是一种新技术,而是多种已有技术的组合。把这堆技术组合串联起来的核心就是数据,所以,区块链是浮于数据的多项技术的统称。区块链与普通数据库...

17300
来自专栏区块链+系列

智能合约——运作方式

智能合约是基于二代区块链平台正在研发的内置模块,实现自动化的掌控资产的转移。其原理是根据事先制订的协议,在某一事件触发时能够自动地执行合约条款。

11900
来自专栏企鹅号快讯

GEC数字环保币所应用的区块链

GEC数字环保币创业项目随着全球热度项目的排名逐渐提升,随之而来的就是越来越多的环保者,创业者加入了这个大家庭。刚加入的新家人听得最多的就是区块链,然而大部分人...

57170
来自专栏Python中文社区

Python比特币公链技术架构介绍

作者:csunny,具有多年开发经验,有前后端开发经验,熟悉python、go、nodejs等多种语言,目前在国内某一线互联网大厂工作,主要从事devops以及...

17040
来自专栏极客编程

以太坊的3个重要项目:Casper(POS共识机制)、Plasma(子母链)、Sharding(分片)

在过去的几年里,以太坊已经成为加密货币领域最重要的项目。 作为市场中大多数代币的 底层基础设施,以太坊网络的健康对于加密数字币生态系统中的其他环节至关重要,以太...

14330
来自专栏区块链大本营

盘点|一文读懂11个主流共识算法, 彻底搞懂PoS,PoW,dPoW,PBFT,dBFT这些究竟是什么鬼

在区块链的交流和学习中,「共识算法」是一个很频繁被提起的词汇,正是因为共识算法的存在,区块链的可信性才能被保证。

15930
来自专栏区块链中本聪

区块链的起源、发展与繁荣

区块链技术的出现是一个意外。2008 年全球金融危机引起很多人的讨论和思考,在互联网上有一个匿名为“中本聪”的人提出了一种叫比特币的技术(比特币的出现是否和金融...

13540
来自专栏企鹅号快讯

币读说人话之科普系列一:到底什么是分片技术?

前段时间参与的区块链峰会,以太坊社区的爱好者给币读菌科普了什么是分片技术,听得币读菌是一愣一愣的,专业术语太多了,完全听不懂哇。 今日币读菌联系到一位技术大咖,...

38870
来自专栏区块链讲解

从功能上讲解区块链是什么

  区块链是什么,区块链系统开发 左彬 1 8 8- 2 7 4 1-4 7 1 4 微/电 ?区块链是一种去中心化的分布式账本数据库。通俗一点说,区块链技术就...

6430
来自专栏吴伟祥

区块链 原

区块链(Blockchain)是比特币的一个重要概念,火币联合清华大学五道口金融学院互联网金融实验室、新浪科技发布的《2014—2016全球比特币发展研究报告》...

13840

扫码关注云+社区

领取腾讯云代金券