filecoin技術(shù)架構(gòu)分析之二:filecoin通用語言理解

本文作者:楊尉鞍泉;原創(chuàng)作品太惠,轉(zhuǎn)載請注明出處

[上一篇鏈接] filecoin技術(shù)架構(gòu)分析之一:1 filecoin概念
[下一篇鏈接] filecoin技術(shù)架構(gòu)分析之三:3 filecoin開發(fā)網(wǎng)絡(luò)使用

目錄

  • 2 filecoin通用語言理解
    • 2.1 為什么要把filecoin通用語言單獨列為一講
    • 2.2 存儲證明
      • 2.2.1 為什么使用存儲證明
      • 2.2.2 復(fù)制證明
      • 2.2.3 時空證明
    • 2.3 預(yù)期共識
      • 2.3.1 基礎(chǔ)前提
      • 2.3.2 使用power達成共識
      • 2.3.3 選舉方案
    • 2.4 filecoin智能合約
      • 2.4.1 文件合約
      • 2.4.2 智能合約
      • 2.4.3 與其他系統(tǒng)的兼容
    • 2.5 交易市場
      • 2.4.1 存儲市場
      • 2.4.2 檢索市場
    • 2.6 filecoin節(jié)點

2.1 為什么要把filecoin通用語言單獨列為一講

  • 筆者認為一位優(yōu)秀的軟件從業(yè)人員,必須具備兩種必備能力
    • 架構(gòu)設(shè)計能力
    • 架構(gòu)剖析能力

這兩者是相輔相成的,架構(gòu)設(shè)計師所設(shè)計之架構(gòu)不可能超過自己的認知范疇岩睁,故架構(gòu)設(shè)計師必須有效高效地拓展自己的技術(shù)認知視圖藕筋,以適應(yīng)當(dāng)代軟件架構(gòu)高速發(fā)展的現(xiàn)實翅雏。而拓展的途徑,一方面就是相關(guān)理論體系的快速學(xué)習(xí)跟進人芽;另一方面望几,就是實戰(zhàn),對有顯著價值的優(yōu)秀軟件項目進行架構(gòu)剖析萤厅。有理論橄抹、有實戰(zhàn)方是王道靴迫。理解具體架構(gòu)的通用語言就是分析他人架構(gòu)設(shè)計思維的一條捷徑。

  • 理解具體技術(shù)架構(gòu)的通用語言是分析架構(gòu)的一條捷徑
    • 通用語言是架構(gòu)設(shè)計人員為實現(xiàn)某個具體技術(shù)架構(gòu)楼誓,所高度抽象出來的名詞或者稱謂玉锌,通過理解通用語言,可以快速理解架構(gòu)設(shè)計人員的思維和設(shè)計目的疟羹。
    • 與讀書方法類似(薄讀->厚讀>再薄讀)主守,理解通用語言就是第一次的薄讀過程,非常重要榄融。
  • 對業(yè)務(wù)的理解是非常有必要的参淫,所以在第一講中,筆者鋪墊了filecoin的一些基本概念愧杯,任何架構(gòu)的設(shè)計不能脫離業(yè)務(wù)而行涎才,業(yè)務(wù)驅(qū)動開發(fā)仍是非常實用的架構(gòu)模式;filecoin 技術(shù)架構(gòu)從業(yè)務(wù)來劃分力九,可劃分為兩個大的范疇耍铜。

    • 分布式存儲解決方案
      • 存儲礦工
      • 檢索礦工
      • 存儲客戶端
      • 檢索客戶端
    • 區(qū)塊鏈項目
      • filecoin公鏈
      • filecoin actors 智能合約
  • filecoin核心通用業(yè)務(wù)組件

組件名稱 目的
DSN 保障數(shù)據(jù)安全、包括故障容錯跌前、數(shù)據(jù)完整性棕兼、數(shù)據(jù)可恢復(fù)等
新型存儲證明 證明礦工按照協(xié)議規(guī)范存儲了客戶指定的數(shù)據(jù),數(shù)據(jù)有效性
可驗證市場 對礦工與客戶組成的交易市場進行了建模舒萎,保證交易的有效性
有效工作量證明 出塊的共識機制程储,很重要,做到激勵兼容

下面各節(jié)將會對filecoin技術(shù)架構(gòu)中的核心通用語言進行解釋臂寝。

2.2 存儲證明

Proof-of-Storage包含復(fù)制證明(PoR)和時空證明(PoSt)章鲤,其作用主要有兩點:

  • 證明礦工做了有效存儲

  • 競爭區(qū)塊打包出塊,獲取區(qū)塊獎勵

2.2.1 為什么使用存儲證明

  • 相對于PoW(Proof-of-Work)或者PoC

    • PoW耗能嚴(yán)重咆贬;PoC以空間換時間败徊,同樣存在耗能嚴(yán)重問題
    • 而filecoin網(wǎng)絡(luò)的耗能必須遠低于類似比特幣的PoW,參見第一講filecoin的對標(biāo)對象掏缎,filecoin必須實現(xiàn)以更低的成對去應(yīng)對商業(yè)競爭皱蹦,同時提供相同級別的安全性,以及文件存儲的效用
    • 存儲證明需要做要與實體經(jīng)濟掛鉤眷蜈,減少無謂浪費
  • 相對于PoS(Proof-of-Stake)

    • Proof-of-Storage在定向領(lǐng)域(分布式存儲)以更簡單方式沪哺,協(xié)調(diào)激勵,并驅(qū)使礦工以有競爭力的價格提供真實的新存儲酌儒,它促使礦工積極保證filecoin網(wǎng)絡(luò)的效用
    • 當(dāng)然Proof-of-Stake是區(qū)塊鏈領(lǐng)域的熱點研究問題
  • Proof-of-Storage阻止網(wǎng)絡(luò)攻擊

攻擊類型 說明 阻止攻擊原理
女巫攻擊Sybil attack 作惡節(jié)點創(chuàng)造多個女巫身份辜妓,謊稱存儲了多個副本 每個節(jié)點的副本都是有簽名的,想通過復(fù)制證明,就相當(dāng)于真實做了有效存儲
外包攻擊outsourcing attacks 作惡節(jié)點快速從其他節(jié)點獲取內(nèi)容籍滴,謊稱他們存儲了比他們實際存儲更多的內(nèi)容 針對外包攻擊酪夷,從其他節(jié)點獲取的整個過程,滿足不了證明人隨機挑戰(zhàn)的要求孽惰,依然需要重新生成副本(重新seal需要時間)晚岭,從而阻止外包攻擊
生成攻擊generation attacks 作惡節(jié)點宣稱將要存儲超過其實際容量的內(nèi)容但并未存儲內(nèi)容,以此增加出塊的概率 宣稱無用勋功,存儲證明一定要確認密封動作并能應(yīng)對隨機挑戰(zhàn)才能OK坦报,如果重新密封就來不及證明,每次挑戰(zhàn)是有時間要求的

2.2.2 復(fù)制證明

2.2.2.1 基礎(chǔ)

  • 復(fù)制證明本質(zhì)上可以理解為一種零知識證明酝润,既然是零知識證明燎竖,我們在后面需要理解filecoin復(fù)制證明的題目和答案

zk-SNARK zero knowledge Succinct Non-interactive ARgument of Knowledge
zero knowledge:零知識,即在證明的過程中不透露任何內(nèi)情
succinct:簡潔的要销,主要是指驗證過程不涉及大量數(shù)據(jù)傳輸以及驗證算法簡單
non-interactive:無交互构回。

  • 生成證明的方法在filecoin架構(gòu)中稱之為seal密封

密封過程是需要時間的,Seal過程串行加密的過程疏咐,無法并行操作纤掸,seal密封過程是有意設(shè)計慢的,主要目的是為了防攻擊浑塞。

2.2.2.2 filecoin復(fù)制證明的題目和答案

  • 公開的信息

    • 礦工的節(jié)點公鑰借跪、密封公鑰、存儲公鑰酌壕、原始Data哈希掏愁、該礦工存儲的副本根哈希
  • 隱含因素理解:

    • 特有節(jié)點的副本哈希是由哪些哈希組成(DAG),任意挑戰(zhàn)者或者攻擊者是不知情的
    • 挑戰(zhàn)隨機參數(shù)卵牍,通過CRH(防碰撞的哈希散列Collision-resistant hashing)生成哈希之后傳遞給證明者果港,作用是確定特定的葉子節(jié)點的哈希,比如讓證明者自行計算離H(c))最近的葉子節(jié)點哈希糊昙。
  • 復(fù)制證明的題目與答案

    • 挑戰(zhàn)參數(shù):副本哈希rt辛掠,挑戰(zhàn)隨機參數(shù)c -> H(c)
    • 證明者輸入(題目):
      • H(c)(每一次挑戰(zhàn)都會變)
      • 隱含信息比喻:該葉子節(jié)點是與H(c)最近的節(jié)點
    • 證明者輸出(答案):
      • H(c)對應(yīng)的葉子節(jié)點 ——> rt的路徑(攻擊者是很難反推的)

2.2.3 時空證明

  • 時空證明可以理解為礦工持續(xù)性地生成復(fù)制證明
    • 挑戰(zhàn)者輸入一個隨機參數(shù)c,后面的隨機參數(shù)由證明者基于上一個的挑戰(zhàn)答案去生成释牺。(不用與挑戰(zhàn)者持續(xù)交互)
    • 下圖中變量i會輪詢生成新的時間變量產(chǎn)生隨機挑戰(zhàn)萝衩。
post.png

2.3 預(yù)期共識

2.3.1 基礎(chǔ)前提

  • filecoin基于存儲證明(有效存儲量)來作為礦工在整個網(wǎng)絡(luò)中的power
power屬性 說明
公開 1 某一時刻,整個網(wǎng)絡(luò)存儲總量是公開的
2 單個礦工某一時刻没咙,有效存儲總量是公開的
可公開驗證的 對于每個存儲任務(wù)猩谊,礦工都需要生成”時空證明“,證明持續(xù)提供服務(wù)祭刚。通過讀取區(qū)塊鏈预柒,任何人都可以驗證礦工的power聲明是否是正確的队塘。
變化 在任意時間點,礦工都可以通過增加新增扇區(qū)和扇區(qū)補充的抵押來增加新的存儲宜鸯。這樣礦工就能變更他們能提供的power。

2.3.2 使用power達成共識

  • 目的:

每一輪選舉一個(或多個)礦工遮怜,使得贏得選舉的概率與每個礦工分配的存儲成比例

  • filecoin預(yù)期共識(Expected Consensus,EC)
    • 預(yù)期共識的基本直覺是確定性的淋袖,不可預(yù)測的
    • 預(yù)期的期望是每個周期內(nèi)當(dāng)選的Leader是1,但一些周期內(nèi)可能有0個或者許多的Leader锯梁。
    • 在每個周期即碗,每個區(qū)塊鏈被延伸一個或多個區(qū)塊
    • 區(qū)塊線性擴展,但是數(shù)據(jù)結(jié)構(gòu)是DAG
    • EC是一個概率共識陌凳,每個周期都使得比前面的區(qū)塊更加確定剥懒,最終達到了足夠的確定性

2.3.3 選舉方案

預(yù)期共識通過選舉方案產(chǎn)生

sle.png
sle2.png
選舉方案屬性 說明
公平 每個參與者每次選舉只有一次試驗,因為簽名是確定性的合敦,而且t和rand(t)是固定的初橘。隨機值rand(t)在時刻t之前是未知的
保密 由于有能力的攻擊者不擁有Mi用來計算簽名的秘鑰
公開可驗證 當(dāng)選Leader i ∈ Lt 可以通過給出t,rand(t)充岛,H(i)/2L保檐,來說服一個有效的驗證者。鑒于前面的觀點(復(fù)制證明與時間證明)崔梗,有能力的攻擊者在不擁有獲勝秘密秘鑰的情況下不能生成證明夜只。

2.4 filecoin智能合約

2.4.1 文件合約

允許用戶對他們提供的存儲服務(wù)進行條件編程,會形成一個多樣化市場蒜魄。

  • 承包礦工:客戶可以提前指定礦工提供服務(wù)而不參與市場
  • 付款策略:客戶可以為礦工設(shè)計不同的獎勵策略扔亥,例如合約可以給礦工支付隨著時間的推移越來高的費用
  • 票務(wù)服務(wù):合約可以允許礦工存放token和用于代表用戶的存儲/檢索的支付
  • 更復(fù)雜的操作:客戶可以創(chuàng)建合約來運行數(shù)據(jù)更新

2.4.2 智能合約

用戶可以將程序關(guān)聯(lián)到其他系統(tǒng)(如以太坊)的交易上,他們不直接依賴存儲的使用谈为。

2.4.3 與其他系統(tǒng)的兼容

規(guī)格支持跨鏈交互旅挤,以便能將filecoin存儲帶入其他基于區(qū)塊鏈的平臺,同時也將其他平臺的功能帶入filecoin峦阁。

2.5 交易市場

  • 存儲需求和供給組成了兩個Filecoin市場:存儲市場和檢索市場谦铃。這兩個市場是兩個去中心化交易所,簡而言之榔昔,客戶和礦工們通過向各自的市場提交訂單來設(shè)定他們請求服務(wù)或者提供服務(wù)的訂單的價格驹闰。交易所為客戶和礦工們提供了一種方式來查看匹配出價并執(zhí)行訂單。如果服務(wù)請求被成功滿足撒会,通過運行管理協(xié)議嘹朗,網(wǎng)絡(luò)保證了礦工得到報酬,客戶將被收取費用诵肛。
  • 可以類比為淘寶商城

2.5.1 存儲市場

  • 交易數(shù)據(jù)會上鏈屹培,包含于區(qū)塊之中默穴。
  • 本質(zhì)上也屬于filecoin智能合約中的文件合約。
  • 20190214上線的開發(fā)網(wǎng)絡(luò)已支持

2.5.2 檢索市場

  • 交易數(shù)據(jù)不會上鏈褪秀,屬于offchain的方式蓄诽。
  • 本質(zhì)上也屬于filecoin智能合約中的文件合約。

2.6 filecoin節(jié)點

  • filecoin節(jié)點相關(guān)
    • node id表示filecoin網(wǎng)絡(luò)節(jié)點
    • account id并表示賬號媒吗,默認與錢包地址一致
    • wallet addr表示錢包地址
    • miner id表示礦工id
filecoin-1.png

[上一篇鏈接] filecoin技術(shù)架構(gòu)分析之一:1 filecoin概念
[下一篇鏈接] filecoin技術(shù)架構(gòu)分析之三:3 filecoin開發(fā)網(wǎng)絡(luò)使用

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末仑氛,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子闸英,更是在濱河造成了極大的恐慌锯岖,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,539評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件甫何,死亡現(xiàn)場離奇詭異出吹,居然都是意外死亡,警方通過查閱死者的電腦和手機辙喂,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,594評論 3 396
  • 文/潘曉璐 我一進店門捶牢,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人加派,你說我怎么就攤上這事叫确。” “怎么了芍锦?”我有些...
    開封第一講書人閱讀 165,871評論 0 356
  • 文/不壞的土叔 我叫張陵竹勉,是天一觀的道長。 經(jīng)常有香客問我娄琉,道長次乓,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,963評論 1 295
  • 正文 為了忘掉前任孽水,我火速辦了婚禮票腰,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘女气。我一直安慰自己杏慰,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,984評論 6 393
  • 文/花漫 我一把揭開白布炼鞠。 她就那樣靜靜地躺著缘滥,像睡著了一般。 火紅的嫁衣襯著肌膚如雪谒主。 梳的紋絲不亂的頭發(fā)上朝扼,一...
    開封第一講書人閱讀 51,763評論 1 307
  • 那天,我揣著相機與錄音霎肯,去河邊找鬼擎颖。 笑死榛斯,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的搂捧。 我是一名探鬼主播驮俗,決...
    沈念sama閱讀 40,468評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼异旧!你這毒婦竟也來了意述?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤吮蛹,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后拌屏,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體潮针,經(jīng)...
    沈念sama閱讀 45,850評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,002評論 3 338
  • 正文 我和宋清朗相戀三年倚喂,在試婚紗的時候發(fā)現(xiàn)自己被綠了每篷。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,144評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡端圈,死狀恐怖焦读,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情舱权,我是刑警寧澤矗晃,帶...
    沈念sama閱讀 35,823評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站宴倍,受9級特大地震影響张症,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜鸵贬,卻給世界環(huán)境...
    茶點故事閱讀 41,483評論 3 331
  • 文/蒙蒙 一俗他、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧阔逼,春花似錦兆衅、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,026評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至周伦,卻和暖如春夕春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背专挪。 一陣腳步聲響...
    開封第一講書人閱讀 33,150評論 1 272
  • 我被黑心中介騙來泰國打工及志, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留片排,地道東北人。 一個月前我還...
    沈念sama閱讀 48,415評論 3 373
  • 正文 我出身青樓速侈,卻偏偏與公主長得像率寡,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子倚搬,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,092評論 2 355