区块链入门

本文旨在科普区块链的本质是什么。希望大家读完之后,能弄懂什么是区块链、什么是挖矿、区块链的出现到底解决了什么痛点、未来可能的落地场景等问题。

为了方便理解,我在描述时做了很多简化,论述不是特别严谨。见谅。如有问题,可直接联系我。

开始之前

开始之前,先给大家普及一些术语。

  • Hash(哈希)

Hash,也叫做散列。就是把任意长度的输入,通过散列算法转换成固定长度的输出。不同的散列算法也就是对应不同的Hash算法,目前常见的有MD5,SHA1,SHA256等。举个例子,“blockchain”的SHA256值是ef7797e13d3a75526946a3bcf00daec9fc9c9c4d51ddc7cc5df888f74dd434d1。这种算法的好处就是,我可以很容易计算出某个输入的哈希值,但是很难通过哈希值还原出原始的输入。

区块链的本质

在我看来,区块链是由三大块内容构成,即分布式数据库、不可更改的数据结构和共识算法。很像是一个超慢的分布式数据库,只是这个数据库中的数据无法修改,往这个数据库里添加数据需要经过节点共识。

我们分开看

  • 分布式数据库

拿比特币举例,它的账单数据对整个网络都是透明公开的,任何人都可以拥有它的备份。

  • 不可更改的数据结构

刚刚提到钱包中其实存储着账单数据,那这么多条账单数据,我们如何串联起来,同时又要保证里面的每一条数据都没被修改过呢?

Block信息

我找了一个比较新的区块(可以理解成是「单条账单记录」),我们可以看到这里面有四个哈希。其中Previous Block和Next Block分别表示当前区块的上一个区块的哈希值和下一个区块的哈希值。如下图所示:

[图片上传失败...(image-211a0-1545826223773)]

你看,每一个区块都是这样串起来的。完全就是一堆「区块」的链条。这样设计的好处就是已经上链的区块,它的内容都不能篡改,一旦篡改某一个上链的区块,就需要把该区块之后的所有区块的hash值全部计算,而且还需要通过工作量证明(POW)。这个工作量实在太大了。

  • 共识算法

我们仍以比特币举例。比特币在Block的生成过程中使用了工作量证明(POW)机制。就是说获取正确的Block Hash需要进行大量的计算(即挖矿),计算时间也是跟计算机的哈希运算速度有关。当某一个节点算出的时候,它就会得到相应的奖励(目前是12.5个BTC)。所以计算正确的Block Hash其实就是一个概率事件。

这三块内容构成了区块链。

区块链的特点

从上述的介绍中,我们可以看出区块链具有以下特点:

  • 去中心化
  • 账本公开透明
  • 不可篡改
  • 匿名性
  • 区块确定有延迟
  • 需要大量的底层节点

分叉

分叉可分为硬分叉和软分叉。软分叉可以算是对区块链网络的升级,而且向前兼容。硬分叉则是链的参与者意见不一,通过代码升级,分叉成两条完全不同的链,不再向前兼容。举个例子,城市扩建一条窄路,既可以新增辅路(软分叉),又可以直接换个地方建一条更大更宽的路(硬分叉)。

[图片上传失败...(image-4514b4-1545826223774)]

上图就是在硬分叉下,区块的下一个Hash指向了两条链,而且这两条链都在各自增长。比特币现金就是比特币分叉的产物。

现存问题

  • 51%攻击是怎么回事?

我们假想一个场景,我拿着手机去瑞幸咖啡买了一杯咖啡,我给收银员Jolie转了0.00081个币(0.00008个币是用来购买咖啡,0.000001个币用来支付手续费)。我给Jolie展示转账之后,Jolie把咖啡端给了我,我就离开了咖啡馆。

正常情况下,这笔交易会被广播到整个比特币网络中,等待上链。此时,矿工拿到这个交易请求之后,会尽快通过计算哈希值来争取记账权,然后将交易打包成一个区块,并上传到整个区块链网络中。同时,矿工也会拿到这笔手续费。

但是,我是个超级大Boss,手中握有整个网络50%的算力,我不想付这笔咖啡钱了。就在一些节点收到矿工的广播并记录到自己的账本时,我发动自己的算力,把这笔交易中的接受地址改成自己,并把这个交易请求广播到网络中,这个请求也会被矿工记录到区块上。因为我手中拥有51%的算力,这个伪造的区块加入主链之后,这条链会比之前的那条正常链要长,根据比特币的原则,这条伪造的链会成为主链,这笔交易也就成真实的了。

当然,在这一切发生时,我已经端着我的咖啡到公司开始搬砖了。但是,大家发现没有,我使用手中的全部算力,仅仅是更改了一笔交易(这里发生的场景也就是「双花」)。与其这样,我远不如遵守规则,收取手续费,而不是破坏规则。

  • 如果参与挖矿的人更多,或者更少,挖矿的收益会怎么样?

在Block Data中,其实还有一个字段,叫做difficulty,它决定了挖矿的难度。全网算力越大,这个值越大,挖矿难度越大;算力越小,这个值越小,挖矿难度越小。根据算力的变化,每两周会调整一次难度。

[图片上传失败...(image-2d9520-1545826223774)]

从创世区块开始到现在的难度变化可以见下图:

难度变化
  • 比特币会被挖完吗?

准确来说,比特币并非是被挖完了,而是说算出新的区块,获取不到对应的奖励了。
按照当前的设计来算,2040年比特币会被「挖完」。

通过本文,大概介绍了区块链技术层面的一些细节。下一节,我们将介绍一下当前区块链的应用以及问题。

本文首发于kii.io
专注数字货币、高并发、中间件。欢迎关注微信公众号。

技术公众号

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 218,525评论 6 507
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 93,203评论 3 395
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 164,862评论 0 354
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,728评论 1 294
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,743评论 6 392
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,590评论 1 305
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,330评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,244评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,693评论 1 314
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,885评论 3 336
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,001评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,723评论 5 346
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,343评论 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,919评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,042评论 1 270
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,191评论 3 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,955评论 2 355