喵懂区块链21期 | Monoxide:在突破不可能三角的边缘试探?

640?wx_fmt=gif



写在文前:本期Monoxide这个单词发音有误,重音应落在第二音节,而非第一音节,请不要向小喵学习!


640?wx_fmt=png上集我们说到区块链不可能三角,那么现在是否存在可行性的解决方案呢?欸,今天我们就来聊一聊被国际网络系统顶级会议NSDI 2019收录的论文 “Monoxide”。 640?wx_fmt=png


在上集中,我们已经讲到想要破解区块链不可能三角,第一件事情就是定义,在王嘉平博士《Monoxide原理详解: 突破区块链不可能三角的极简架构》文章当中,他在进入正题之前就给出了安全,性能和去中心三者的定义。

安全

以比特币为参考坐标,众所周知如果想要攻击比特币,就要掌握全网50%以上的算力,那么在Monoxide中,我们要保障这个安全壁垒不会显著降低!

性能或者叫伸缩性

用直观的数据说话,就落实到两个指标的提升:1.吞吐量,即我们经常说到的TPS---最高每秒处理多少笔交易 2.在同一状态下,全网交易状态存储的提升。


伸缩性的关键在于,允许你加一堆普通的服务器进去,联合工作,把性能顶上去。而不是像诸如比特币那样的单链系统,你矿机铺得再多,设备性能再好,10分钟还是只能出一个块!

去中心化

公链必须是permissionless系统,也就是说谁都可以参与进来,无需任何人批准。然后,作为网络的最基本的参与者,全节点,必须有个比较低的壁垒,至少要允许大家弄个还可以的笔记本,接上家里的宽带网就可以入网,监控链上的状态。当然,对于矿工,可以有比较高的要求,但是这里要保证的就是参与门槛一定要低。


说完工作目标,我们再来聊一聊Monoxide是如何完成以上KPI的!

Monoxide是一种异步、对等的多链架构,每条链(共识组)之间保持并行并且都独立工作,从前呢,在比特币单链架构当中,10分钟出一个块,在Monoxide架构当中,相同时间内,多条链同时并行出块,效率自然是噌噌噌up!

如果要成功实现这种模型,那么就归结到两个关键点(分别对应到安全和效率):


1.Monoxide的账本被分成了多条链架构,假设有n条链(共识组),那么每个共识组的算力将是全网算力的1/n,这就意味着全网矿工的算力会变得分散,原来攻击全网需要51%的算力,现在攻击单个共识组就只需51/n %!这是绝对不被允许的,那么如何保证攻击单个共识组壁垒不明显降低则是第一个关键点。

2.既然账本被分成多条链(共识组),就意味着难免会出现跨链交易。事实上王嘉平博士在文章中表示“当共识组数量达到64的时候,跨链交易的比例已经超过了95% 。”于是,如何实现高效安全的跨共识组交易则成了第二大关键点!


我们一个个来解释一下:


640?wx_fmt=png

在多共识组的架构下,如何保证攻击单个共识组的攻击壁垒不明显降低?


在Monoxide的设计中,王嘉平教授引入了“连弩挖矿”的概念,诸葛连弩是一种可以连发数箭的兵器,而在Monoxide场景中,也十分形象:


在比特币的PoW挖矿中,矿工们需要进行哈希运算,寻找正确的nonce随机数,从而获取该区块的记账权;


640?wx_fmt=png


而“连弩挖矿”的场景下,矿工可以同时参与多个编号连续的共识组,矿工只需要寻找出一个正确的nonce随机数,就可以获得参与的所有共识组的记账权。那么这是怎么实现的呢?


640?wx_fmt=png


假设矿工喵参与了6个连续编号的共识组(比如序号2~7)挖矿,首先构造这6个区块的区块头哈希值merkle tree,merkle tree在我们讲挖矿的时候已经讲到过,我们再复习一遍,就是把区块头信息按顺序排排坐,两两配对进行哈希运算,直至得到一个最终的merkleroot(merkle 根)


640?wx_fmt=png


求出MerkleRoot之后,我们就可以正式进入传统的“挖矿”----也就是寻找nonce随机数的过程,具体的公式是这样滴数学小白照常请忽略这一段,只需要知道这个哈希运算交给矿机爸爸来运算即可。):


Hash(MerkleRoot+ b+m+ Nonce)< Target(目标值)


同时大家如果感兴趣的话也可以对比一下比特币挖矿的公式(如下):SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET


综上,我们可以清晰看到通过连弩挖矿,矿工只需寻找一个nonce随机数,就可以挖出多个区块,当然也会相应获得多份收益,这样就会鼓励矿工尽可能多的挖掘多个共识组的区块,理想状态下,矿工连接所有共识组是利益最大化的做法。


我们再回过头来看,为什么说连弩挖矿让攻击单个共识组的壁垒提高了呢?


单个共识组原本攻击壁垒:每个共识组的算力变为1/n,则攻击壁垒则为51/n%


使用了连弩挖矿之后,我们按照最理想的情况,那就是每个矿工都连接了所有的共识组,则单个共识组的算力增加了n倍,那么理想状态下的单个共识组攻击壁垒则回升至51/n%*n=51%。这里的关键是,被放大之后的算力平均分配到了每个共识组,没法拿去集中起来,攻击特定的单个共识组。


640?wx_fmt=png

如何实现高效安全的跨共识组交易?


为了实现这一功能,王嘉平博士引入了“最终原子性”的概念,首先什么叫原子性?


区块链当中任何一笔交易都是要满足原子性的, 比如说我转1btc给你,我失去1你得到1,这是一个整体的,不能只完成一半,两个地址的数据都要同时更新。


但是在monoxide中,很可能会出现转账方的扣款记录在共识组A里,而收款方的收款记录在共识组B中的情况,那要如何操作呢?


640?wx_fmt=png


比如,地址 A 向 地址 B 支付一笔数额为 x 的代币,因为地址 A 在共识组 A 中,而地址 B 在共识组 B 中,这就涉及到跨共识组的信息同步的问题。


首先矿工在共识组A中记录“A完成扣款操作”,然后再携带一个出块证明<ZoneId, Height, RelayMerklePath_t, t>来到共识组B进行接力交易,这个“证明”是代表在共识组A中扣款已完成并且是合法的,交易广播出去之后,矿工将会同等对待普通的交易和接力交易,进行打包并挖矿。


我们可以看到这笔交易的完成不是及时的,是异步的,处于两个不同的共识组的交易地址需要依次完成扣款操作和接力交易操作,才算完成完整的交易,这就叫做最终原子性。有了最终原子性,A共识组就可以不断地处理交易,不用等B共识组完成后续操作,无需任何的同步和锁定,这样多链系统的高效能才能真正展现出来。


这就是Monoxide如何通过“连弩挖矿”和“最终原子性”两个关键因素实现区块链去中心化,安全,效率,三者平衡的方法!


如果有任何问题欢迎扫下方二维码,随时勾搭我们哦~我是不靠颜值靠才华的胖小喵,我们下期再见喽~


想要了解更多,请戳“阅读原文”


640?wx_fmt=png

荐阅读:

为比特币打上“合法”标签?三星证实Galaxy S10支持私钥存储

比特币最强后盾!管理着$7.2万亿的富达成为第一家机构"闪电火炬手"

PlatON与Keystore达成战略合作,共同拓展企业级加密资产服务

炸裂!三星Galaxy S10默认支持BTC和ETH,数千万潜在用户将体验区块链

矿池界的亚当斯法则,MatPool三大业务浮出水面

粉丝267万+!微博“红人”李永乐科普比特币,他用板书教你挖矿

比特币要涨到$100万?IBM透露或将在跨境支付中纳入BTC

回复 区块链报告 免费下载 《37份国内证券行业发布的区块链研究报告》

回复 工信部 免费下载 《中国区块链技术和应用发展白皮书》

回复 超级账本 免费下载《超级账本Hyperledger白皮书》

回复 比特币白皮书免费下载《比特币:一种点对点的电子现金系统》

回复 以太坊免费下载《以太坊白皮书》

回复 侧链 免费下载《侧链白皮书:用楔入式侧链实现区块链的创新》

回复 欧洲央行 免费下载《欧洲央行分布式账本技术报告》

回复 高盛 免费下载 《高盛区块链报告:区块链 从理论走向实践》

回复 闪电网络查看《详解最近大热的闪电网络、雷电网络和CORDA到底是什么》

回复 闪电网络白皮书 免费下载《比特币闪电网络白皮书:可扩展的 off-chain 即时支付》

回复 麦肯锡 免费下载《麦肯锡区块链报告:银行业游戏规则的颠覆者》

回复 IBM  免费下载《IBM 区块链热点技术与应用》

回复 毕马威 免费下载《毕马威区块链研究报告:价值互联的不变协议 》

回复 金融科技 免费下载《中国领先金融科技50强》

回复 直播间 查看往期所有大咖视频+文字版集合

回复时戳资本可获得时戳资本所有研报下载链接

回复喵懂可获得从0到1区块链进阶课程视频链接

640?wx_fmt=png



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值