题图:by click_vision From Instagram

最近区块链大火,经常有读者问我什么是区块链,能干什么,本想给大家写一篇普及帖的,今天看到池老师写的一篇区块链技术普及帖很不错,所以今天转载分享给大家,以下是原文:

我在 2017 年 12 月 26 日写过一篇「2018 年技术趋势预测」,关于区块链我是这么写的:

区块链是可以改变世界的发明。区块链源起比特币,但并不局限在币圈。区块链技术是储存、验证和数据保护等问题的实际解决办法。区块链可被视为分散的、极度安全的数据库。更专业一点来说,区块链是分布式的点对点的基于密码学的共享账本,可以在金融服务、保险、医疗、政府等领域内被广泛应用。2018年应该是区块链技术起飞并日趋成熟的一年。

没想到 2018 年刚开始,区块链技术就像西去路上火焰山顶最高的火焰,简直火冒好几丈,红得发紫。很多人会说有这么火么,我怎么不知道。事实上 2017 年火爆的是比特币,区块链的拉升曲线确实是一月份才发生的,看下区块链的微信指数就知道了:

一个浪头打过来,最好的办法是迎上去了解个究竟,而不是漠视,或者干脆当事情没有发生。最近读了些相关资料,有了更具体一点的了解,那就写篇白话文吧。阅读时间大概九分钟。

区块链到底是啥?不明真相的群众一般都去查维基百科,上面是这么说的:

区块链(英语:blockchain 或 block chain)是用分布式数据库识别、传播和记载信息的智能化对等网络,也称为价值互联网。中本聪在 2008 年,于《比特币白皮书》中提出「区块链」概念,并在 2009 年创立了比特币社会网络,开发出第一个区块,即「创世区块」。

看完以后你是不是发现,都是中国字,怎么就搞不懂是啥意思呢?所以区块链的概念还是得解释一下。首先需要明确的是,区块链是一套协议和规范,用英文表述就是 Protocol,不是具体的代码或者项目。理解了这套协议,你可以基于不同的语言和技术去实现它,这和我们平时定义了一套 API,然后基于不同的技术实现没有什么分别。

但是区块链在不同领域的人眼里,可能是不同的东西。角度不同,我们得出的结论也不一样。金融领域的人会认为区块链是个分布式的账本,是一个分布式的去中心化的记账系统。搞安全和密码学的人会说区块链是基于密码学构建的对等网络。而我们程序员了解了区块链技术,会认为这不就是一个保证最终一致性的分布式数据库嘛。

记账系统

对于普通人来说,记账系统最容易理解,我们从账本说起。比如大家一起做生意,总要有个账本,最初这个账本由账房先生管理。但一个人管,总会出现对账不平衡的情况(比如挪用),于是大家开始轮流管。这种方式也有问题,在某个人保管账本和记账期间,一旦发生了数据丢失或账本损坏的情况,也会搞不清真实原因。最后大家决定用一种新的记账方式,每个人一个自己的账本,任何人改动了自己的账本都要告诉其他所有人,其他人也会在自己的账本记上一笔。只要有人发现新的账目不对,可以拒绝接受。最后以大多数人一致的账目为准。

这就是分布式的去中心化的记账系统。但这种做法时间长了还是会有问题,有人天天记,有人偷懒不记,会产生不公平。于是大家决定每天早上掷骰子,根据点数决定谁来记当天的账,其他人核对一下,没问题就复制过来。并且,当天的记账者会获得一点点奖励(这就是挖矿)。

去中心化的分布式数据库

把上面的记账系统用软件技术实现了,就是去中心化的分布式数据库。

什么是中心化,早期互联网大都采用 CS 架构,一个服务器 N 个客户端,Client 和 Server 之间进行通讯,系统可靠性严重依赖 Server,这叫中性化。

随着业务复杂度的增加,服务器端也开始分拆,横向和纵向扩展,读写分离等等,这就是我们常用的分布式架构系统,系统可靠性依赖分布式系统的热备份和容灾恢复能力。这时候服务器虽然分布了,但依然是中性化的。大部分商业公司都采用类似的架构和模式。

去中心化是怎么回事呢?就是数据库不属于任何机构和管理员。只要服务器端被某个机构或管理员控制,就存在宕机或数据篡改的风险。区块链和 P2P 的网络通信技术最终实现了去中心化。区块链的作用就是存储信息,可以认为是一个数据库,而任何人都可以通过 P2P 网络架设服务器,接入区块链网络,成为一个节点。这下人人平等了,大家都是 Server,也就没有了 Server,每个节点既是生产者也是消费者。

你可以向任何一个节点读写数据,一旦写入就是历史,最后所有的节点都会同步数据,保证「账本」的一致性。

区块链是没有管理员的,也不需要人工审核和干涉。那人人都能写数据,数据的可信度怎么保证呢?数据被篡改了咋办?别担心,P2P 网络只是进行信息通讯,保证数据安全的还有共识算法和加密算法。

共识算法

关于共识算法、拜占庭将军问题,大家可以参考这一篇文章,很长,但容易看懂。

分布式一致性与共识算法(https://draveness.me/consensus)

简单来说,共识算法就是保证少数服从多数,也就是我在记账系统中写过的「最后以大多数人一致的账目为准」。大多数人认可的事情,就是事实。这种规则听起来挺吓人的,比如我们常常在文学作品和历史经验中知道,真理往往掌握在少数人手里。但是在 P2P 的网络里,有无数的节点,要想大部分节点一起作恶,除非这些节点都被某个组织控制了。这种可能性虽然不是没有,但几率非常小。

总的来说,共识算法解决的是对某个提案(Proposal)达成一致意见的过程。提案的含义在分布式系统中十分宽泛,包括多个事件发生的顺序、某个键对应的值…等等,可以认为任何需要达成一致的信息都是一个提案。

有了共识算法和相关的加密算法,就可以保证数据的安全性和一致性。

为什么会挖矿?

谈到比特币,大家耳熟能详的就是挖矿和矿机这种事。那为什么会挖矿呢?挖矿其实是一种激励和竞争机制。

在区块链系统中,总有些节点被选中进行数据整理、验证、打包,并把相关的改动广播出去,这个工作还是挺耗资源的,所以会有奖励机制。负责打包的节点会获得系统的奖励,类似积分,对于比特币系统来说,就是奖励比特币。有了奖励,很多节点都希望获得这样的奖励,于是有些区块链系统,比如比特币就会设计出一种竞争机制,让各个节点凭借自己的算力和资源去抢,能抢到这个数据打包的机会,就会获得奖励,也就是比特币。这个竞争的过程就是挖矿。

什么是算力呢?就是计算机每秒产生 hash 碰撞的能力。也就是说,手里的矿机每秒能做多少次 hash 碰撞。算力越高,获得的奖励越多。

区块链的未来

很多人觉得区块链的唯一应用就是发行虚拟货币,最近国内外市场也是烽烟四起,比如超过百年历史的伊士曼柯达公司宣布推出基于区块链技术的「柯达币」(KodakCoin)和 KodakOne 平台,让全球的摄影师能够更好的控制图片的版权和交易。然后股价就飙升了……

了解了区块链的技术特点,我们就知道,区块链的能力远不止虚拟货币领域,未来的 金融服务、物流、保险、医疗、共享经济、智能合约领域,应该都会有区块链的身影。

繁华落尽,洗尽铅华,所有的技术都将经历时间的洗礼。历经爆发期、衰退期并进入成熟期的技术,才是真正能具备生命力的技术。


想详细了解区块链技术,一篇文章是远远不够的,推荐一节免费直播课给感兴趣的读者。

分享者是冯贵彬:

(株)LinkJapan IoT新事业研究室技术主管

主要研究方向:

直播课内容:

1、什么是区块链

2、区块链的发展史

3、区块链基础

4、区块链的缺点

5、区块链的典型应用 —— 以比特币为首的数字货币

7、区块链技术的未来发展应用

直播时间:2018年1月24日晚20:30

报名方式:长按识别二维码

或添加【Sky区块链技术分享群】群号:695649062

从技术的角度看区块链相关推荐

  1. 学术角度看区块链:数字广告行业的“他山之石”

    时至今日,区块链已不再是专属于技术人员和金融从业者的狂欢.随着比特币的"爆红",区块链技术被人们所知悉,但这从不代表着区块链被定义为一项金融科技--作为一个去中心化的协议体系,其所 ...

  2. 从业务架构师角度看区块链为什么以及如何改变世界

    前言 区块链技术是当前炙手可热的新兴技术,关于该技术的介绍比比皆是,但是介绍往往是从技术实现的角度来阐述区块链的优势,本文是从一个业务架构师的角度,来努力说明因为区块链,这个世界将会看到的新变化,或者 ...

  3. 从社会契约论的角度看区块链开发的属性

    "世上本无路,走的人多了,也就有了路:世上本有路,走的人多了,也就没了路".比特币令牌本身没有价值,屯.用的人多了也就有了价值,价值纯粹存在于社会层面.但比特币令牌还远远没有走到世 ...

  4. 从区块技术的发展历史看区块链是什么?

    哲学的终极三问:"我是谁?我从哪里来?我要到哪里去?" 耗费古今中外多少人的心血. 作为区块链的从业者,也面临有三个根本性问题:区块链是什么?区块链怎么产生的?区块链有什么用? 追 ...

  5. 区块链正本清源 – 从计算机科学评看区块链的起源和发展

    比特币在理论上并没有解决计算机科学上的共识问题,是用经济杠杆促成的实用系统:比特币链的结算慢速是有根据的特殊设计,是不可以加速的:以太坊不可能作为通用链支持全世界的应用: 以太坊这么做智能合约是不科学 ...

  6. IoTeX 对话 高校区块链技术社区:物联网区块链的超级落地应用在哪里?

    IoTeX 对话 高校区块链技术社区:物联网区块链的超级落地应用在哪里? 原创: Raullen Chai  IoTeX社区 8月17日下午,IoTeX联合创始人Raullen做客"高校区块 ...

  7. 视频教程-区块链技术原理精讲-区块链

    区块链技术原理精讲 5年JAVA/Go研发工程师经验.目前作为公司技术负责人从事区块链架构设计.研发工作. 熟悉分布式系统/区块链.云计算/虚拟化技术.敏捷开发等领域技术,开源软件爱好者. 荆帅帅 ¥ ...

  8. 从2018年以太坊统计数据看区块链发展趋势

    今年6月,我们发布了"以太坊网络状态",重点介绍了整个网络的一些关键数据和统计数据.六个月后,即将在2018年结束时,我们处于长期"加密货币冬天"的尾声,201 ...

  9. 看区块链如何完善征信制度

    "一旦有适当的利润,资本就胆大起来.如果有10%的利润,它就保证到处被使用:有50%的利润,它就铤而走险:为了100%的利润,它就敢践踏一切人间法律:有300%的利润,它就敢犯任何罪行,甚至 ...

  10. 第一届区块链技术及应用峰会“区块链核心技术”分论坛预告大放送

    技术苍穹,迭代未休,区块链技术乘破竹之势而来,已然问鼎2018年技术圈开年"关键词Top榜".当爆炸式的知识需求,遇上业内资源捉襟见肘的困窘现状,区块链技术及应用峰会(BTA)·中 ...

最新文章

  1. AI算法起家的今日头条为何败给了色情?一文告诉你机器学习何以搞不定鉴黄
  2. Spring中的Controller ,Service,Dao是不是线程安全的?
  3. 大系统化小之后,微信如何解决大规模微服务下的难题?
  4. Java I/O模型从BIO到NIO和Reactor模式
  5. 碉堡完整的高性能PHP应用服务器appserver
  6. STL常用的算术和生成算法
  7. Error opening/initializing the selected video_out (-vo) device.
  8. ./ . 和#!/bin/bash 辨析Linux如何选择当前执行脚本的shell
  9. 代码的坏味道之一——译自《重构》
  10. 数据结构与算法--最小的k个数
  11. C语言十五位正整数相加,二个超长正整数的相加
  12. 学习笔记: Django之初见
  13. linux tty 软件包,Linux TTY framework(2)_软件架构
  14. 四阶段法——城市交通需求预测
  15. led灯条串联图_10个LED灯并联再串联
  16. 用java实现查询年份的生肖
  17. 从零开始的WTL入门教程(1) WTL的简介,环境搭建
  18. python敏感字替换_python如何实现敏感词替换
  19. pvm虚拟机基本原理
  20. Vue04- 样式使用

热门文章

  1. Ember.js 入门指南——model简介1
  2. 使用emacs作为mysql的客户端
  3. mysql的binary安装
  4. 「leetcode」383. 赎金信:哈希表的经典题目
  5. 在 Mac 中 使用 Safari 常出现「此网页正使用大量内存...」如何修复?
  6. Mac电脑如何添加管理员账户?
  7. 浅谈React Hooks
  8. vue 组建中data函数的思考
  9. 【Atcoder】ARC082 E - ConvexScore
  10. 什么时候应该避免注释代码?