首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

区块链的随想-共识机制POW(上)

正文共:3058字预计阅读时间:8分钟

维基百科

共识,是群体讨论过程的共同认识。共识并不是所有人都同意的东西,也非多数人的偏好。即使对部分内容有异议,但是仍然能在总体上形成一致意见,以推进问题的解决。

比特币是一场伟大的社会实验,就像每时每刻无数人都在参加的婚礼,在全世界所有人见证下,广播:“这个人是我的老公,这个人是我的老婆”。这一条数据忠实记录并被广播,只要超过一定数量的人认可,这一条数据合法的,就可以登记注册,而保留所有这些数据的账本就是比特币。

比特币是一个去中心化的分布式账本,不存在某一个机构组织的服务器,而是散布全球的所有自愿提供储存的节点上,当节点足够多且分散就自然实现了去中心的目的。

如何让参与者就相同的事件或状态达成一致?如何让用户心甘情愿加入区块链成为节点?有什么激励机制?如何保证所有节点数据一致同步?如何防止虚假节点的写入与更改?回答这些问题的答案,就是共识机制。

共识机制,分两种,POW(proof of work) 和 POS(proof of stake)。 容易点理解的话,POW是按劳分配,多劳多得。POS是按钱分配,多钱多得。比特币的共识机制POW,就是需要所有的参与者对最新生成的比特币区块达成共识。

POW,工作量证明,按字面意思就是证明一个人完成多少工作,完成的越多,奖励就越多。要完成工作,前提肯定要知道工作做什么,自然需要下载比特币的完整账本,也就是作为一个节点。

大家群龙无首,不知道听谁的,怎么办?简单粗暴,PK谁拳头谁牛逼就听谁的。区块链去中心化的情况下,怎么PK呢?算,通过计算来猜一个随机数,解决以哈希值为基础的网络问题。由于哈希值的碰撞阻力,换成人话就是想取巧走捷径算随机数不可能做到,只能蛮力一个一个的去试。

哈希值:

一串二进制数值,类似现实世界的指纹,身份证可以伪造,名字可以重名,但是指纹具有唯一性,确定你是谁的标记。而信息互联网时代,海量的数据和文件,如何鉴别该文件就是你真正需要,而不是病毒或者垃圾呢?文件名可以伪造,数据可以删减,不可能将所有的数据进行对比。怎么办?在数据和文件的开头,加入一串二进制数值作为标记,由于自身的特性,无法被篡改,你只需要将确认哈希值没问题,文件就没有问题。

谁算力最多,谁就会最先可能找到那个随机数。谁最先找到谁牛逼,谁就是老大,可以要求所有比特币参与者达成共识,这份工作量是我完成的,现在要签我的名字并作为比特币新的一部分(记账权)。

以哈希值为基础的网络问题,就是一个区块。在比特币世界,每10分钟时间内2000多笔发起的交易数据组成1M大小的区块,就是一道新的带求解哈希值随机数的网络问题,一旦解答完毕达成共识,确认为新的一部分,2000笔交易就被确认完成。如果无算力去解答,区块无法确认,就是所谓拥堵问题。

最初,人人皆可参与,一般的电脑CPU就可以完成工作量,就是所谓的挖矿。比特币的创始人中本聪,用自己的电脑CPU挖出了第一个比特币创世块。挖着挖着,大家发现,挖矿只需要提供算力,电脑其他资源都浪费,还费电,慢慢的多余的东西都被去掉,变成单一的集成设备矿机。由于硬件技术发展,比特币挖矿经历五个阶段,CPU挖矿、GPU挖矿、FPGA挖矿、ASIC挖矿、大规模集群挖矿 。本着谁算力最多谁胜算大的原则,挖矿自然进入军备竞赛,最终变成大规模集群挖矿。

比特币技术核心的 core 开发组,简称码霸。开启比特币世界的中本聪神隐后,一直对比特币核心代码进行更新和维护。你懂的,都是一群要用技术改变世界的程序员,希望保证比特币的去中心化的前提,用听起来就很高大上的隔离验证、闪电网络的技术来改造比特币。

隔离验证(Segregated Witness):

每一个比特币交易,由交易状态数据和签名数据(验证)组成。将1M区块中签名数据隔离移出,多出来的空间可以容纳更多的交易笔数。

闪电网络(Lightning Network):

通过在主链外建立很多直接通道,使得小额高频的交易在主链外就可以进行,从而实现交易秒到的效果,但陌生人之间则必须使用中间人通道,中间人实现陌生人之间交易通道的打通,这种中间节点必将会有一些越来越壮大,闪电网络就会变得多中心化是很多人都担忧的问题。

想到奥卡姆剃刀原则:如无必要,勿增实体。当一个东西足够简单的时候,人们容易理解,也更容易信任。采用新技术,增加比特币的复杂性,某种程度会不会降低人们的信任?

而矿霸注重当下,希望做好现有的比特币,升级到16M或者更大,可以容纳4W笔交易。原来可能2000笔,每笔手续费是0.001btc,一个区块的手续费是2btc。现在是4W笔,每笔手续费是0.0005btc,一个区块的手续费是20btc。手续费降低,转账人数增加,矿工收益增加,自然比特币的优势会大大增加。

反对者可能会说,现在完整的比特币账本大概是150G,下载保存完整账本的电脑就是一个节点。如果直接扩容到16M,账本大小必然增加2400G,需要更大的硬盘空间,大多数普通人大概不会无偿提供如此大的硬盘空间来做一个节点。账本存储更集中在矿霸手中,一旦节点数达到51%,是可以直接变为比特币的领导者。

真的会这样吗?其实不会,神隐的中本聪可没有说区块大小永远保持1M,给的方案就是在指定高度扩容。而在最新的技术版本中,已经可以对账本进行裁剪,保存部分而不影响整体节点的运行。

针尖对麦芒,为什么矿霸和码霸,不直接放弃重新弄,一定要在比特币上面折腾呢?因为比特币在区块链的世界里,获得大部分人的信任,而信任本身在现实世界就是最高的门槛,温大大不也说,信任比黄金重要。

战争已经开始,比特币的硬分叉(矿霸)和软分叉(码霸)。对应到现实世界,一个是要另起炉灶,一个是要慢慢改良。

硬分叉:

指比特币区块格式或交易格式(这就是广泛流传的“共识”)发生改变时,未升级的节点拒绝验证已经升级的节点生产出的区块,不过已经升级的节点可以验证未升级节点生产出的区块,然后大家各自延续自己认为正确的链,所以分成两条链。

软分叉:

指比特币交易的数据结构(这就是被广泛流传的“共识”)发生改变时,未升级的节点可以验证已经升级的节点生产出的区块,而且已经升级的节点也可以验证未升级的节点生产出的区块。

如果以上看着太枯燥,看看下面的形象比喻,不一定全部对,但是从通俗易懂的角度去讲述比特币战争。

某条告诉公路,一直按车辆通行次数收费,收费站(矿工)也很愉快。后来车流量越来越大,高速越来越堵,拓宽道路(扩容)是最直接的解决办法,但是拓宽存在上限(16M?32M?)。

后来在技术社区(core)有人提出新的改良方案(软分叉),考虑用可以多拉人的公交车(隔离验证)或者专门的ETC快速通道(闪电网络),路上就不会那么堵,也得到大部分群众包括部分收费站的支持,但这种方案的缺点就会造成收费站无法享受流量增长的红利。

这个当然遭到部分收费站的强烈反对,改革舆论呼声越来越大,反对方牵头成立一个组织(硬分叉),分叉出一条新路(BCH),拓宽了几倍(8M),但路上不支持跑公交。

战争还在继续,踏踏实实搞好当下用户体验,还是选择技术改良底层?过去已去,未来未来,谁知道呢?拿好门票,看场大戏。

下一篇,区块链的随想 - 共识机制POS(下)

引用:

https://zhuanlan.zhihu.com/p/27467579/

欢迎关注区块链大湾区联盟

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180216G0IDRL00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券