颠覆你对区块链的认识

颠覆你对区块链的认识

本文节选自电子书《Netkiller Blockchain 手札》

Netkiller Blockchain 手札

本文作者最近在找工作,有意向致电 13113668890

Mr. Neo Chan, 陈景峯(BG7NYT)

中国广东省深圳市龙华新区民治街道溪山美地 518131 +86 13113668890 <netkiller@msn.com>

文档始创于2018-02-10

版权 © 2018 Netkiller(Neo Chan). All rights reserved.

版权声明

转载请与作者联系,转载时请务必标明文章原始出处和作者信息及本声明。

微信订阅号 netkiller-ebook (微信扫描二维码)

QQ:13721218 请注明“读者”

QQ群:128659835 请注明“读者”

网站:http://www.netkiller.cn

内容摘要

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

为什么会写区块链电子书?因为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 的复杂应用。所以在实际的应用中,区块链不能替代数据,只能互补。

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

Donations (打赏)

We accept PayPal through:

https://www.paypal.me/netkiller

Wechat (微信) / Alipay (支付宝) 打赏:

http://www.netkiller.cn/home/donations.html

作者相关文章:

竞猜活动区块链方案探索

传统数据库也能实现区块链存储

以太坊·食品溯源案例

以太坊·单机多实例演示

以太坊·将数据写入到区块链中

以太坊智能合约开发入门

hyperledger v1.0.5 区块链运维入门

转载请注明出处与作者声明,扫描二维码关注作者公众好,不定期更新文章

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏云计算D1net

分析师:开源遇困、安全反弹、PaaS走俏

在博客中,分析师就开源技术、网络安全投资、域名系统的安全性以及PaaS平台对应用程序开发的影响分享了看法。 开源应“开”到何种程度? 如果用户很满意供应商提供的...

34516
来自专栏云计算D1net

具体问题需要具体分析 给云计算应用泼盆冷水

1 谨慎放在云端的应用 云计算市场现在存在着很多争议,其中争议最大的可能就是数据安全、应用灵活性、云端可扩展性等几方面的问题,本文我们暂且抛开云计算服务的这...

3296
来自专栏程序你好

采用微服务和容器架构的五个想法

作为New Relic容器Fabric项目(我们的内部容器编排和运行时平台)的首席站点可靠性工程师(SRE),我花了大量时间与现有和潜在客户一起回答关于我们如何...

803
来自专栏区块链

保证数字标牌系统和数据安全的这几种办法,你必须知道!

有时候,需要一个令人震惊的事件来提醒我们数字网络存在的漏洞。但到目前为止,你可能已经听说过或者看到过有关黑客入侵交通标示网络的报道,这导致去年五月在华盛顿特区联...

18710
来自专栏数据和云

Evernote云端迁移 – 基于Google 云平台用户数据保护

编辑手记:安全永远是第一重要的问题,无论是在本地还是在云端。 我们的安全团队的宗旨在于保护用户的数据。当我们开始实施将数据迁移到云Google的云服务的基础设施...

35410
来自专栏SDNLAB

借助Intel最新芯片,FD.io数据包传输速度翻倍

暨本周Intel发布了可扩展Xeon芯片之后,开源快速数据项目(FD.io)宣布通过最新的Intel Xeon可扩展处理器实现双重性能的提升。 ? FD.io工...

3174
来自专栏云计算D1net

公有云供应商加入无服务器计算的浪潮

无服务器计算正在所有云服务供应商间流行着,而AWS Lambda之类的工具将可能改变资源的利用方式,尽管这一切还在萌芽阶段。 无服务器架构是云服务提供商之间最新...

2966
来自专栏一名叫大蕉的程序员

赵淦森博士的讲座分享整理No.32

我是小蕉。 先稍微介绍一下赵老师哈。 赵淦(gan)森,计算机安全博士,毕业于英国肯特大学。在英国期间曾任英国Nexor公司的兼职高级安全技术顾问、甲骨文英国(...

1836
来自专栏ThoughtWorks

敏捷实践之Desk Check | TW洞见

今日洞见 文章作者来自ThoughtWorks:曲正平。图片来源于网络。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,...

2885
来自专栏程序你好

腾讯开发微信花了多少钱?真的技术难度这么大吗?难点在哪里?

2901

扫码关注云+社区