区块链入门:幼儿园版

12 评论 22990 浏览 151 收藏 10 分钟

区块链,其实很简单。

区块链,作为一个新事物,生来就笼罩着一层神秘的光环,看各方言论,区块链俨然有比肩工业革命和计算机革命的趋势。

奈何网络上的入门教程对文科生都不太友好,笔者每每看到一大堆的计算机术语瞬间头大。

直到最近看到阮一峰老师的《区块链入门教程》才豁然开朗。区块链,其实很简单。

接下来的内容,保证你看得懂,因为连我这个文科生都看得懂。

区块链是什么?

一句话,区块链是一种 特殊的 分布式数据库 。

这几个字你可能都认识但未必真正理解。比如,数据库是什么?它具备什么样的特性?分布式数据库又是什么意思?区块链特殊在哪里?别急,请往下看。

数据库是什么?

简单来说,数据库是一个存储数据的“仓库”,既然是仓库,那么它就必须有进货(新增)、出货(删除)这两项基本功能。

为了满足日常需求,比如需要查找某种货品,统计其数量,或者某种货品摆错了位置等等,因此还需要“查询”和“修改”功能。

这就是数据库的最基本的四项操作“增删改查”。

“分布式”数据库又是什么?

分布式即“分开”部署数据库 。这里的分开有两层含义,物理的分开和逻辑的分开。

物理的分开 很好理解,可以简单理解为数据存储在不同的主机上,在物理上是相互独立的。

为什么会产生这样的需求呢?因为在互联网全球化的大背景下,跨国性互联网公司已经屡见不鲜,而在本国本地部署服务器在改善用户体验上至关重要。

举个例子,比如前段时间苹果将iCloud服务从香港转移到云上贵州,好处之一就是访问速度的加快。

逻辑的分开 稍微难懂一些,笔者举一个简单的例子。比如说淘宝,同一个账户可能既是买家,又是卖家,买家身份产生的订单和卖家身份产生的订单在逻辑上是可以分离的。

由于淘宝的订单量巨大,一台机器无法存储所有订单,于是淘宝某程序员灵机一动,将买家订单和卖家订单分别存储在两台机器上。这个完美的解决方案在不失逻辑整体性的前提下,既克服了技术困难,又满足了业务需求,两全其美,当年该程序员拿了36个月年终奖金(本故事纯属虚构)。

分布式数据库虽然可能部署在多个地区,逻辑也可能被拆分,但是归根到底,它是一个化整为零的整体。

所以,分布式数据库可以简单地理解为,将一个数据库按照一定规则部署到多台服务器,对内可以是零散的,但对外必须是一个整体。

区块链特殊在哪里?

说了这么多,相信您对数据库和分布式数据库有了一些基本认知,那么区块链到底特殊在哪里呢?

在具体讲区块链之前,还需要对区块链的结构有一个基本理解,也是非常之简单。

区块链,顾名思义就是 由“区块”组成的链 。

其结构是一条长长的,首尾不相连的链条,类似下图。

图中每一个圆珠可看作一个区块,区块内则是记录的数据。

由于区块链是和比特币一同兴起,因此区块链还有一个不是特别严谨的别名——“分布式账本技术”。

之所以被称为账本,举个例子,“比特币区块链”所记录的内容都是这样的

B 转给 A 0.5比特币

A 转给 B 1比特币

C 转给 D 2比特币

C 转给 E 1比特币

X 被奖励50比特币

诸如此类千篇一律,像极了一篇流水帐。

有了这些基本概念,接下来我们再看看它的特殊性。

1. 数据人人可查

是的,一般的数据库都是有账号密码才能访问的,可区块链不一样。

任何人可以查询任意区块的信息。比如这里就是“比特币区块链”的第50万个区块信息。

区块的信息一目了然,所记录的交易信息也完整具体,没有一丝隐瞒。

不过与传统交易不同的是,我们不知道绿色框线宽选的“比特币钱包指纹”背后的持有者是谁,是一条狗也说不定。

2. 数据人人可写(去中心化)

又是一个无比熟悉的词汇。也许你知道,区块链是无管理员的,无中心的,但是很少有人去介绍它的具体运作方式。

是的,区块链理论上是人人可写的。但写入的前提是要拥有足够的“计算能力”去从无穷无尽的数字海洋中 穷举 出那个符合要求的数字。

计算数字的过程叫做挖矿,其从业者被称为矿工

“比特币区块链”的设计者中本聪在顶层设计上保证了大概每10分钟才能产生一个新的区块,而一个区块的大小被限制为1MB(1024KB,512*1024个汉字)。

也就是说,不管全球有多少比特币的交易需求,就只能记录1MB大小的账。

这样的数据量对于一家超市来说可能都难以满足。

而且更要命的是,由于区块链的人人可写,那么如果两个矿工同时写入就会产生一个链分叉的问题。

那么,谁写入的数据是真正的区块呢?由于去中心化没有统一的管理员,现在的规则是这样,哪条分支先达到6个区块 (称为”六次确认”) 就是正宗的主链,而其它的区块链将被无情舍弃。按照10分钟一个区块计算,一小时才能确认。

可以看到,即便倾全球的计算能力,交易速率也只能达到每秒钟2次多交易

3. 数据人人备份

前面说过区块链是分布式的,而区块链的设计方式简单粗暴,每个人都有所有人交易的备份。

举个例子,你有一张信用卡,月底的时候想看看自己的账单,结果银行把全球的账单都发给你了。

也许你问,干嘛要把别人的账单也发给我?我只需要自己的呀!

初次听闻确实有点荒谬,有点反人类。

但数据人人备份才是区块链去中心化的根基。试想一下,如果银行的交易系统发生故障,把你的账户金额清空了,如果银行自身无法查出真相,估计你只能血本无归,因为能证明自己账户曾经有钱的人只有你自己。

中心化的好处在于有一个统一的中心,替我们承担了很多不必要的管理工作。对个体而言有诸多便利,可要知道,由于居中的管理者依然是有血有肉有欲望的人,所以难免会有垄断后的各种弊病。

目前看来,中本聪去中心化的初衷是实现了的。从“2009-01-09 10:54:25”创世区块产生,到现在九年多的时间,这个系统在全球人的参与下平稳运行。

最后

你也许听说过,区块链一旦被确认写入,就无法再修改

虽然这九年的时间,从来没有人反映自己的区块被修改了,但并不意味着一定不行。

一个区块所在的链是否为主链,是由“算力”投票决定的。

假如一个矿工拥有全网51%以上算力,那么他将会有一家独大的可能。也就是说,他生成的区块,无论记录的数据多么荒谬,在规则上,其他人必须被迫承认其正统地位。

中本聪的设计初衷是去中心化,可最终却可能 得到 一个中心化地位无法撼动的怪物。

 

来源:http://www.cyzone.cn/a/20180128/323322.html

本文来源于人人都是产品经理合作媒体@创业邦

题图来自unsplash,基于CC0协议

更多精彩内容,请关注人人都是产品经理微信公众号或下载App
评论
评论请登录
  1. 为什么是人人可写,可以理解为人人可去挖掘数据吗?写不是指的是写入数据吗?

    来自广东 回复
  2. 还是不懂区块链的数据有什么价值,一个比特币能值那么多钱

    来自陕西 回复
    1. 可能这个问题需要学前班的课程才会解释…

      来自四川 回复
    2. 那你解释解释

      来自陕西 回复
    3. 呵呵

      来自四川 回复
    4. 呵呵哒

      来自陕西 回复
    5. 因为大家都觉得值钱 所以值钱

      来自浙江 回复
  3. 果然是幼儿园版,哈哈

    来自江苏 回复
  4. 信仰区块链😄

    回复
  5. 游戏后台数据流水,也可以算是区块链吗

    来自广东 回复
    1. 当然不算啊,后台管理人员可以随意更改数据啊

      来自广东 回复