区块链认识一、拜占庭问题

引言

最近几年,区块链领域可谓是热火朝天啊。越来越多的机构开始重视并参与区块链的技术研发当中去。17年开始,区块链、比特币和加密币、ICO等概念逐渐走入公众视野,同时也引起了资本市场的广泛关注。
而区块链技术,也成为软件开发行业的热点;作为一个程序猿,我也投入了学习区块链的热潮中。
在学习区块链技术之前,要认识区块链到底是什么,里面的节点、块、挖矿等名字又有什么样的意义?
参考了henciyou的博客我对其有了一个基础的认识;

拜占庭问题

说起区块链,不得不提起一个故事--拜占庭将军问题;

假设在中世纪,拜占庭帝国拥有巨大的财富,周围国家垂诞已久。但拜占庭高墙耸立,固若金汤,没有一个单独的国家能够成功入侵。任何单个国家入侵的都会失败,同时也有可能自身被其他国家入侵。拜占庭帝国防御能力如此之强,至少要有一半以上国家同时进攻,才有可能攻破。

然而,即使一个或者几个国家一起进攻,实际过程中也会有问题,因为一旦出现背叛,那么所有的入侵者都可能会被歼灭。于是每一方都小心行事,不敢轻易相信邻国。(其实这与原文所描述有些偏差,但这样说更易于理解)

在拜占庭问题中,各国最重要的事情,就是所有的将军如何达到共识,去攻占拜占庭帝国。
而达成共识并非那么简单,每个人都想独享所有的财富,还想法设法的去干掉自己的同盟,以求获取更大的利益;而这里最大的问题,就是里面可能会有叛徒。

拜占庭问题的解决

假设将军总数为m,叛徒数量为n,当m>3n+1的时候(即叛徒数量小于总数的三分之一),才能攻陷拜占庭帝国,拜占庭问题才能解决。

假设有4个将军(A、B、C、D),同时假设其中有1个叛徒。当4个将军包围了帝国,为了成功攻陷帝国,要协商一个统一的时间发起进攻;

第一种情况,假设B是叛徒

3719463-fd7304f53fcc100d.png
  • A通知B、C、D,下午1点发起进攻;
  • 而B收到A的信息后,告诉C和D,自己收到的通知是2点;
  • C和D又分别告诉了其他两人,自己收到的通知是1点;
  • 结果就是C与D收到了两个1和一个2,对于二者而言,不用去管谁是叛徒,只需要执行收到多的那个命令就行;
  • 而对于A来说,他知道自己发出的通知,只要有两个人会去执行;
  • 所以下午1点,A、C、D三人同时进攻,帝国被攻陷。

第二种情况,假设A是叛徒

3719463-287840ecdff72813.png
  • A告诉B是2点,告诉C、D是1点;
  • 那么B会收到1个2点,两个1点;
  • C和D会受到1个2点,两个1点;
  • 于是B、C、D三个人会在1点同时发起进攻,帝国被攻陷。

不管叛徒是哪个人,只要按照这种方法执行,结果都是没问题的。

区块链

上边拜占庭问题的解决中,有一个假设,ABCD四人之间传递的是口头消息;就会出现B欺骗CD的情况;
但如果所有的消息是书信的方式就不一样了,A在书信上写上“1点进攻”,把书信传给B,B在书信上签名表示同意,然后传给C,C再传给D。最后把签名过的书信展示给每个人。这样每个人都会知道所有人的意见了。

这种采用书面消息的方式,对算法的要求简单的多,但前提是:每个人都知道其他人的笔迹,且笔迹没办法模仿。

中本聪根据这一原理,发明了区块链
假设每个将军都有一台电脑(相当于分布式的节点);为了避免混乱,一段时间内只能有一位将军发送消息;

  • 首先确定谁先发送消息

区块链系统一般通过工作量证明(POW)来确定谁先发言;
我们可以想象这是一个数独游戏,谁先解出来,谁就可以发送消息;这个数独的难度可以调整(增删行和列),通过调整数独的难度,来控制这个一段时间是一个确定的数字。(在比特币中,这个数字是10分钟);

  • 消息确认

当A(某个节点)发出1点进攻的消息时,其他人(其他节点)收到消息后,必须签名盖章,确认各自的身份。(比特币这里引用了非对称加密技术,为这个信息签名)。
这个过程就像A在向其他将军发起“1点进攻”的提议书,其他人收到提议书后,同意的就在上面签上自己的名字,而不会发起自己新的进攻协议(例如B发起2点进攻)。那么即使这里叛徒发起2点提议,也不会被其他人认可;
在这里,信息在经过每个人之后,都对其进行了备份,每个人(节点)都保存了相同的完整数据,义防止被叛徒篡改。

结果

每个将军分配了一台电脑,A将军第一个解出数独游戏拥有了第一个发言权,A发出1点进攻的信息,并立即广播至所有将军,所有人可以根据A的公钥来验证A的身份,确保信息的可信性,并发出自己赞成或反对的选票,在全网验证后得出结果。

于是,一个不可信的信息传递,就变成了一个分布式的可信网络,参与者都有权发表意见,并在一件事上达成一致。

拜占庭问题延伸到互联网

在互联网中,但需要与不熟悉的对手进行交易时,人们如何才能防止不会被其中的恶意破坏欺骗、迷惑从而错误决策。
在缺少可信任中央节点和可信任通道情况下,分布在网络中的各节点应如何达成共识。
这一对于拜占庭将军问题的解决方案,可以推广到任何核心问题是在分布式网络上缺乏信任的领域。

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

推荐阅读更多精彩内容