解读区块链底层优美设计理念

作者: 零售商论 | 来源:发表于2018-08-09 23:21 被阅读3次

自2009年中本聪发布比特币白皮书起,区块链开始逐步走入公众视野,而更多人了解区块链去中心化、不可篡改、共识机制、分布式账本等基本标签,其实,区块链设计还包含许多其它优美模型,比如证明机制、签名机制、激励机制、空间自动释放机制等等,其设计理念涵盖经济学、投资心理学、数学、网络安全、密码学等多矩阵行业思想,是权衡利弊后所作出的最终解决策略。

工作量证明机制(POW

区块链中证明机制大致可以分为三大主要阵营,工作量证明(POW),代表币有比特币、以太坊;权益证明(POS),代表币有点点币、未来币;代理权益证明(DPOS),代表币有EOS。下面主要介绍下以比特币为代表的POW证明机制。

PoW机制的核心在于强迫攻击者作出一定量的工作才能进行接下来的交互操作,这样无形中就给攻击者提高了攻击成本。通过消耗计算机硬件设备资源来获得证明,大致有三个分类:

消耗CPU、GPU等资源。例如,反垃圾邮件的Hashcash方案以及受此启发而诞生的比特币;

消耗内存资源。例如,为了防止与比特币采用相同的共识机制所可能导致的51%攻击,以太坊目前就使用了一种需要占用大量内存资源的PoW算法;

消耗网络资源。攻击者在进行拒绝服务攻击之前,必须要获取多个远程服务器发送的命令;

比特币采用POW共识,利用硬件资源来计算(猜测)一个数值(nonce),解决一个既定的数学问题(哈希值)。用哈希碰撞难度,控制工作量,保证在一段时间内,系统中只有一部分节点得出答案。同时,这些少量的合理答案会在网络中进行广播,收到的用户进行哈希验证后会基于它认为的最长链上继续难题的计算,节点计算过程:

1、在网络广播中找到未被处理的交易,与其它交易打包进区块组成交易列表,通过Merkle Tree算法生成Merkle Root Hash值;

2、把Merkle Root Hash及相关字段组装为80字节长度的区块头,并且把该头部作为值输入进工作量证明函数计算;

3、不停改变Nonce值,每次变更后重新做双重SHA256计算,与目标值(数学问题的答案)进行对比;

4、问题难度会随着网络算力加强而弹性变动;

比特币的证明完成,需要满足最终得出的哈希值小于目标值的条件,问题难度灵活变动,这样保证了工作量,攻击者的攻击成本也随着算力加强不断攀升。

激励与回收机制

比特币网络中最重要一部分当属于矿工,矿工挖矿维护了整个比特币网络持续运作稳定,交易、联系、写入数据、货币流通等都是通过它们来完成。

矿工数量越多、算力越强、分布越广泛,其数字货币网络运作越安全,而要使得矿工主动、持续贡献算力,就需要高价值的激励制度,目前的比特币有四个优势:

1、通过在比特币网络中挖矿可以获得挖矿奖励,以及处理交易时,对方支付的交易费用,货币通过这种方式实现流通效应;

2、数字货币市面价值高昂。比特币价值发布后呈指数上升,利于吸引更多矿工加入比特币网络运作;

3、货币可以多单位分级。比如比特币可以有多层级单位,比特分、毫比特、微比特、聪,最小可以精确到聪,1比特等价于0.00000001聪(satoshi)(基本单位),有利于货币交易、流通;

4、数量恒定。比特币数量恒定为2100万个,每四年挖矿奖励减半,其挖矿年份上限为2140年,这意味着可以在一定程度对抗金融通货膨胀风险;

在中本聪提出的比特币白皮书-《一种点对点的电子现金系统》中提到,关于硬盘回收机制,当最近交易被纳入足够多区块之中,就可以丢弃该交易之前数据。

其中提到的交易之前的数据,指的是一些无关项,要知道,分布式账簿所记载的是一笔数字货币所有分支项,也就意外着这笔货币从挖矿诞生后就可以被无限分割,而被分割后的货币从一方到另一方流转时所需要记载的数据,随着时间的推移也会逐渐叠加。

但如果仅仅是保留一部分,比如确保不损害区块随机散列值,交易信息被随机散列时,被构建成Merkle树的形态,使得只有根节点被纳入到随机树散列值,通过根节点可以溯源,满足区块链追溯需求,同时也减轻分布式账簿承受的压力(存储、带宽、运算)。

交易与分叉机制

节点收到交易广播后,对交易进行验证,通过后则收录进内存,打包进block,等待六个及以上确认后,将其接入区块链当中,交易分为多个交易类型:

1、产量交易(Generation):也就是矿工不断挖出的数字货币,属于网络与矿工之间的交易。

2、合成地址交易:这种方式适用于智能合约执行。比如三对公、私钥,用三把公钥对合约内容进行数字签名,设定至少需要两把私钥才能够使得合约执行,平衡机制为少数服从多数。

3、通用地址交易:属于常见交易类型,及N个输入,M个输出。由交易方输出一笔交易,可以将货币分割输送至多个地址,这也是比特币运作的交易模型。

同样,交易签名也有多种不同方式,交易签名指的是对某笔交易认同,但是前提必须满足交易条件,该交易才会生效,有三种签名类型:

1、SIGHASH_ALL:用N个私钥消费N笔(主流),针对输入、输出有特定要求,表示认可该交易并且只认可该交易中的指定货币值,满足交易双方需求才会执行交易。

2、SIGHASH_NONE:仅对输入签名,不对输出签名,持有输入签名,可以花费到任何地址,即同意这笔花费,至于花费到哪个地址,并不关心。

3、SIGHASH_SINGLE:仅对自己的输入、输出签名,比如同意该笔花费,但是必须花费到自己认可的交易中去。

区块链主链分叉问题一直存在,虽说比特币自诞生以来从未发生过分叉,但由于矿场、矿池的存在,历史上也出现过发生分叉的可能,不过都由社区集体开会自发解决。

2014年初,比特币矿池Ghash.io的算力浩浩荡荡的逼近了50%,也就是说全球有一半的比特币算力是他的,这使得理论上Ghash.io将会拥有攻击系统的能力。通过集体矿工表态以及Ghash.io也表示不想继续提升算力,后续矿工撤离一部分,没有造成分叉。

到了2015年7月,国内的几个大矿池连续挖出了5个低版本区块,这几乎会造成事实上的分叉,因为连续挖到6个区块理论上就可以分叉了,而国外矿池没有承认,然后最终集体放弃了这几个区块,这次比特币还是没有分叉。

其实区块链链上发生分叉,其算力需要达到整个网络运作比例51%,也就是常说的51%攻击,才有造成分叉的可能。为了防止攻击(DDos),中本聪设计模型时设定,交易需要等待六个甚至六个以上的确认,交易才会被放行接入到区块链当中,通过概率计算,其作恶概率接近为零,区块链设计理念涉及到选择主链原则:

1、不同高度的分支,接受最长的那条。

2、相同高度,接受难度最大的。

3、高度难度一直,接受网络广播最早的。

4、所有均相同,按照网络接受(节点验证)的顺序。

原则上很难出现两条或多条并行分链,破坏主链稳定需要极高的成本输出,并且所有挖出比特币的事件属于概率事件,也就是说即便占据了网络极大部分算力,也只能表示有大机率获得货币奖励、记账权限、改变交易走势。

区块链设计模式在权衡利弊,考究理性经济人思维后,最大限度保障整个体系运作安全。当然,其设计理念仍然存在一些问题,比如后期扩容问题,处理交易时间冗长问题,51%攻击问题等等,这些都需要后期团队不断完善。比特币作为区块链落地于现实世界最成功的实例场景,它的成功带给未来更多实用场景诸多想象空间。

 招募|“区块链技术分析群”微信社群招募成员中

进入区块链技术分析群请加“wujietmt”

无界评论家推荐关注

无界TMT:关注TMT行业新动向

链区空间:让每个人了解区块链

无界评论家,链区评论员,知名科技自媒体人,犀利独特的观察意识,立志成为一个专业的、全面的、深入的媒体评论者,在微信公众平台、大鱼号、快传、360众媒平台、钛媒体、链头条、百度百家、今日头条、搜狐IT、砍柴网、虎嗅、钛媒体、原创基地、界面新闻、蓝鲸TMT、一点资讯、知乎、网易新闻、UC自媒体、简书等平台开设专栏,用别具一格的视角评论TMT行业。

相关文章

网友评论

    本文标题:解读区块链底层优美设计理念

    本文链接:https://www.haomeiwen.com/subject/mzshbftx.html