Filecoin技术文档学习12 共识算法

Filecoin的去中心化存储网络可以建立在很多共识协议上,只要能够实现存储证明的验证功能即可。本节推荐使用Proof-Of-SpaceTime这个机制来实现共识,而不是资源浪费很严重的POW机制。

关于现有共识机制的讨论:

保证区块链的安全性是至关重要的,但是POW通过猜数字的方式虽然解决了安全问题,但是导致了大了的算力浪费,无法重用。

无法重用:POW机制通过反向推测一个hash函数的方式,来确保区块网络的安全性,但是这个计算除了确保网络安全之外,并没有任何内在的价值。有很多方案尝试着复用这种计算能力,比如把一些计算工作夹在POW计算中,而有些则把POW计算转变为寻找大素数的算力,以太网要求POW执行同时要执行一些小的智能合约程序,有的还把算力用于数据的压缩工作。但是所有的这些尝试都无法避免算力浪费占压到性比例的问题。

算力浪费:pow的算法对设备和电力是极大的浪费,尤其是挖矿的算法都是可以并行执行的,这导致更严重的资源浪费。有许多方案尝试着减少这种浪费,比如有一种存储空间挖矿,通过填充垃圾数据到磁盘的方式提高算力,虽然减少了电力的浪费,但是也浪费了磁盘空间。还有一种是改进的拜占庭协议,使用POS投票的方式来根据自己手里的股票多少作为权重,随机选择投票者产生区块。

Filecoin的共识算法:

通过重用有意义的工作量作为共识协议,引导矿机投资于数据存储空间,并鼓励他们将磁盘用于存储有意有价值的数据。

1,算力容错能力: Filecoin重构了拜占庭容错机制。n表示全网所有算力,f表示恶意或者失败节点的算力。Filecoin设计并定义了一个容错能力为(f-n)的算力网络。

2,算力的特点:a,公开:因为每个矿机当前正在使用的磁盘空间全部保存在区块链上,因此所有人都知道矿机当前的算力和总算力;b,可公开检验:因为在之前的章节中我们说过,矿机需要根据Post协议,每隔固定的时间生成一个当前正在存储数据的证据到区块链上,那么这样所有人都可以通过检查Post证据的方式证明矿机的算力;

c,算力不固定:因为Filecoin采用的是当前正在使用的磁盘空间当做算力,因此不同的时刻,会有不同磁盘扇区释放掉或者重新被封存,因此每个矿机的算力在每个时间间隔都不是固定不变的。

通过Proof-of-SpaceTime的方式计算矿机的算力

因为在每一个生成区块的周期,旷工Mi都被要求生成一个存储证明到网络,只有被网络中的大多数验证通过,存储证明才会被添加到区块链上。然后所有Filecoin全功能节点更新磁盘分配情况,并将过期的记录删除和记录失效的分配记录。因此矿机Mi的算力可以通过累加并检验磁盘分配情况得到。

对于全功能节点,因为他拥有所有的交易记录,因此通过累计从创始区块到当前区块的关于Mi的有效磁盘存储就可以计算出Mi的算力

对于轻节点,他可以通过信任的全功能节点读取关于Mi的所有磁盘分配记录,一个关于最新区块的hash树路径,和一个从创始区块到当前区块的区块头信息。通过这种方式轻节点可以把验证Post证据的工作委托网络。

如果一个恶意节点想要伪造自己的算力,就需要伪造自己的存储时空证明,如果要伪造存储时空证明,就需要执行数据的setup阶段,在setup阶段需要伪造数据封存seal操作,并将seal操作的证据上传到区块链上。整套下来其实就是真实的存储了数据。真实的存储了数据就不是恶意算力攻击者了,由此可见Filecoin的算力计算安全性依赖于PoSt协议。而这个协议已经被前面几个章节证明是安全的。

Filecoin通过算力达成共识的方式

把矿机当前的有效存储算作矿机的股份,根据股份每一轮选举一个矿机进行出块,选举的概率与股份的多少成正比,因此这是一种改进的POS机制。叫做预期共识-EC。EC最直观的功能就是通过秘密并无法预测的方式,选举一些在某一个区块时间内的矿机领袖,我们期望最好能够选出1位领袖,但是有时会有0个领袖,有时会有多个领袖。领袖的作用就是在一个出块周期,创建区块并广播到全网。每个出块周期可能有1个或者多个区块被链接到主链上。在没有领袖的出块周期内,一个空的区块被挂在主链上。EC是个概率共识,数据块以DAG的数据结构管理,因此随着区块的增多,主链就会越来越安全,因为主链上累计的大多数人的共识随着链的加长在变多。

共识算法的实现:

矿机通过上面的不等式来确认自己是否是当选的出块领导。其中表达式1是根据当前区块的时间生成一个随机数。表达式2是本矿机的算力在全网中算力的占比。表达1的计算逻辑是:根据时间生成一个随机数,然后对随机数hash,Mi对hash值签名,然后再做一次hash2,将hash2的值除以2的L次方,得到一个0~1之间的数字。

各个变量不再赘述。这个公式有三个特点:

公平:每个参与者在一个区块周期内只有一次被选举机会,所有参数都是确定的无法被操纵的,并且rand(t)在时间t之前是无法被预测的,计算是无法并行的,因此也不会被矿池操控。

私密:恶意矿机是无法伪造其它矿机的签名的,因为他们无法获知其他矿机的私钥

公开可验证的:矿机如果计算自己是胜出者,那么他需要把证据交给全网去验证,而任何都可以验证矿机的算力和他产生的随机数hash值,因此这些公开的数据很容被验证并且与矿机的公钥计算,可以明确对证据进行私钥加密的矿机的身份。

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

推荐阅读更多精彩内容

  • FileCoin技术文档学习笔记1 1. 概述: FileCoin协议是在IPFS存储协议基础之上增加的奖励协议层...
    西二旗李老师阅读 1,696评论 0 2
  • 好长时间不写东西,以至于话到嘴边总感觉不知道怎么表达,只能把想到的一点一点挤出来,可能写的琐碎而杂乱。 最...
    zoe_婳阅读 307评论 0 2
  • 华晨宇是我高中时候的朋友最喜欢的歌手,喜欢的原因还是因为他们长得有点像。当时我对于华晨宇的了解仅限于“快乐男声”的...
    兔纸Elf阅读 551评论 2 6
  • 第二日去了从没去过的天坛(明王朝所建),这里是古代皇帝祭祀的地方。 东门进入首先看到的是七星石,实际有八颗(另外有...
    古力_金阅读 166评论 0 1
  • 因为我是一只狼,所以一开始在一起你总是受伤。 因为我是一只狼,所以夜里才会露出我的本性。 因为我是一只狼,所以你时...
    无忧无虑的大鲸鱼阅读 143评论 0 2