颠覆你对区块链的认识1

简介:

颠覆你对区块链的认识

本文节选自电子书《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 的复杂应用。所以在实际的应用中,区块链不能替代数据,只能互补。

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



原文发布时间为:2018-03-11
本文作者:netkiller
本文来源:腾讯云 云+社区,如需转载请联系原作者。

目录
相关文章
|
3月前
|
安全 区块链
区块链技术的崭新时代:从去中心化到全球化
传统的中心化金融体系存在许多弊端,而区块链技术的出现为金融领域带来了全新的变革。区块链技术的不可篡改、去中心化、分布式账本等特点,让它成为了当前最具前景的技术之一。本文将从区块链技术的发展历程、技术架构以及应用场景三个方面来探讨区块链技术的未来。
49 3
|
供应链 监控 物联网
区块链革命的颠覆性到底在哪里?
区块链革命的颠覆性到底在哪里?
171 0
区块链革命的颠覆性到底在哪里?
|
区块链
区块链主链——2018年公链发展元年
区块链主链,供应链,主链开发
1697 0
|
区块链
基于区块链技术的互联网将再次去中心化、去寡头化
区块链技术出现之后,这个最核心的问题被改变了。
|
机器学习/深度学习 安全 区块链
区块链:一场始料未及的革命
随着我对密码学和区块链了解得越多,我就越相信这个东西会改变世界。
1550 0
|
区块链 数据安全/隐私保护
CoinDesk 总结 2017 区块链行业 5 个「前所未有」
透过 160 多页数据展现,详细回顾 2017 年推动加密故事演进的关键事件。
2048 0
|
存储 安全 区块链
|
存储 安全 算法
一文看懂区块链技术安全,在安全行业区块链又有什么用
区块链技术自身尚处于快速发展的初级阶段,现有区块链系统在设计和实现中利用了分布式系统、密码学、博弈论、网络协议等诸多学科的知识。
2542 0

相关实验场景

更多