昨天晚上(01/23)Flowchain舉行了第六次小聚,說實在的前幾個禮拜就有兩股力量在拉扯,一方面我參加了幾次小聚收穫滿滿很想再繼續參加,可是看到小聚內容是:
• Merkle DAG 與 IPFS DAG 新手入門
• 圖解 Flowchain DAG 與 IPFS 混合共識演算法
• Filecoin 與 FlowchainCoin 獎勵層(挖礦)數學模型
感覺課程有點硬,就想偷懶,加上月底前忙著處理機械學習的驗證作業-Kaggle的預測和辨識比賽,所以就非常的掙扎,結果前幾天Angelina傳訊息邀約,盛情難卻,就欣然答應參加,昨天顧問Dave也邀我一起,先說結論,很高興昨晚有參加小聚,老實說我參加了一些說明會,大都是產品介紹的工商時間,能像Jollen這麼紮實的把底層技術詳細解說的區塊鏈負責人很少,更重要的是Jollen學識蠻淵博的,所學又多有廣,引經據典,讓一堂課變成很有趣,另外Jollen也獲邀清大工研院擔任區塊鏈技術與商機應用在職專班的講師......因此,可以聽到這麼精彩又真正落地的區塊鏈項目的課程說明,真的很棒.....很高興昨天沒有錯過這場精彩的小聚
資料來源連結: Flowchain 基金會創辦人暨執行長 Jollen 受邀擔任清大工研院「區塊鏈技術與商機在職碩士學分班」學分班講師
好了,花了這麼的開場白,大家一定想要趕快知道Jollen的上課內容........主要的分為幾大部分:
這裡先幫大家整理一些名詞解釋:
1. DAG(Directed acyclic graph) 維基: https://en.wikipedia.org/wiki/Directed_acyclic_graph
因為有向圖中一個點經過兩種路線到達另一個點未必形成環,因此有向無環圖未必能轉化成樹,但任何有向樹均為有向無環圖。
不懂是不是,其實就是在說大學時上的資料結構(好險,20多年了沒有忘記),DAG指的是一種二元樹狀資料儲存結構.......
2. 那甚麼又是Merkle DAG呢? 來幫大家科普一下基本知識:資料來源連結: 區塊鏈 Blockchain – 創世區塊、區塊、Merkle Tree、Hash
因為區塊鏈就是由Ralph Merkle利用二元的樹狀結構所產生的區塊鏈架構,因此也稱做Merkle tree。..
我們先來看甚麼是區塊,每個區塊包含了Merkle Root,Timestamp(時間戳記,稍後會提到),和其他區塊鏈資料,連結內有比特幣的資料結構內容請自行參閱
那甚麼又是Merkle Tree和Hash值呢?加密的內容值經過兩次的SHA256取值後再往上組成下一個Node(節點)直到根Root H(ABCD),一直的串上去
Hash就是雜湊函式,維基連結:https://zh.wikipedia.org/wiki/%E6%95%A3%E5%88%97%E5%87%BD%E6%95%B8, SHA256是目前最常用的雜湊函式之一
各位讀者,乖,再忍耐一下上課快要完了......這樣有比較了解區塊鏈的組成方式了吧.....最後再說明一下何謂創世區塊 Genesis Block
3. 接著Jollen就說明了何謂Merkle DAG 和 IPFS DAG的差異
這邊就要考考大家對於資料結構的熟悉度了,因為Merkle所用的是平衡二元樹的資料結構,但IPFS的DAG架構呢?我做一個比較圖比較容易了解
這裡我就不詳細說明平衡二元樹,引線樹,節點Node,根Root,葉Leaf Node的說明了,請自行Google維基.......昨天Jollen在說明差異時,沒想到我竟然全聽的懂,真開心沒有把大學學的東西都丟掉.只是當時根本不知道實際運用在哪邊,真想建議學校以後教資料結構時,把區塊鏈的應用拿出來說明,會更讓學弟妹們產生興趣
差異 |
Merkle DAG(Tree) |
IPFS DAG(Tree) |
資料結構 |
平衡二元樹 |
可以是非平衡樹 |
資料存放區 |
只有末端的葉(Leaf node)可以放資料 |
根和中間節點也可以放資料 |
子節點樹 |
只有兩個 |
不限兩個,可以多個 |
路徑 |
要到不同節點,只能往上找到共同的節點路徑才能走通 |
可以直接拉引線(只能朝向下的節點)樹 |
再來幫大家溫習一下 IPFS, 維基連結: https://zh.wikipedia.org/wiki/%E6%98%9F%E9%99%85%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F
星際檔案系統(InterPlanetary File System,縮寫IPFS)是一個旨在建立持久且分散式儲存和共用檔案的網路傳輸協定。[2]它是一種內容可尋址的對等超媒體分發協定。在IPFS網路中的節點將構成一個分散式檔案系統。它是一個開放原始碼專案,自2014年開始由Protocol Labs在開源社群的幫助下發展。[3]其最初由Juan Benet設計。[4]
所以IPFS的DAG就是一種用來儲存網路分佈式儲存的區塊鏈........和比特幣的Merkle DAG的資料結構是不同的......
而分佈式儲存的運作則是透過MIT所開發的4大P2P傳輸程式Chord所實做的。網路連結: https://en.wikipedia.org/wiki/Chord_(peer-to-peer)
Chord把複雜的網狀拓譜改為Ring的環狀網路拓譜 (拓譜說明連結:https://zh.wikipedia.org/wiki/%E7%BD%91%E7%BB%9C%E6%8B%93%E6%89%91)
而每個chunk透過Finger table指定找到下一個連結的chunk
4. Jollen說明了Flowchain,IPFS的相關實做機制和未來的趨勢
因為是透過網路所以上傳就得拆分成一個個封包或資料區塊(chunk),Jollen昨天實做了IPFS如何將一個PDF檔上傳到IPFS,被分成了6個Chunk,每個256KB,而每個Chunk都有上述說明的區塊鏈連結資料,因此它們會自動透過資料結構去尋找下一個chunk....把資料連結起來....
這裡Jollen還展示了如何實做IPFS串流資料的工具,包括如何利用HLS(HTTP Live Streaming)將串流切割成資料chunk 和用 Flowchain 上鏈 再透過IPFS 區塊鏈來儲存資料(這是本日所說的課程),下一次小聚將會是如何利用FFMPEG的來讀取IPFS內的資料,重新組成串流影像......
科普一下HLS : 維基連結:https://zh.wikipedia.org/wiki/HTTP_Live_Streaming
HTTP Live Streaming(縮寫是HLS)是一個由蘋果公司提出的基於HTTP的流媒體網絡傳輸協議。是蘋果公司QuickTime X和iPhone軟體系統的一部分。它的工作原理是把整個流分成一個個小的基於HTTP的文件來下載,每次只下載一些。當媒體流正在播放時,客戶端可以選擇從許多不同的備用源中以不同的速率下載同樣的資源,允許流媒體會話適應不同的數據速率。在開始一個流媒體會話時,客戶端會下載一個包含元數據的extended M3U (m3u8) playlist文件,用於尋找可用的媒體流。
HLS只請求基本的HTTP報文,與實時傳輸協議(RTP)不同,HLS可以穿過任何允許HTTP數據通過的防火牆或者代理伺服器。它也很容易使用內容分發網絡來傳輸媒體流。
蘋果公司把HLS協議作為一個網際網路草案(逐步提交),在第一階段中已作為一個非正式的標準提交到IETF。2017年8月,RFC 8216發布,描述了HLS協議第7版的定義。[1]
簡單的來說就是:
Flowchain 區塊鏈 => P2P 即時瀏覽區塊鏈 例如: 寫程式直播可以有娛樂和教育的效果,目前各大網紅競相開直播,而直播就是live streaming串流服務
IPFS 區塊鏈公鏈 => 分佈式儲存網路可以得幣
再講更白話一點,就是以後開放自己的儲存空間給大家可以賺幣,直播影音可以賺幣,挖礦加密可以賺幣,檢索可以賺幣
Jollen提到 IDG(國際數據集團)宣布未來的區勢是每個人需要更大的儲存空間和看完即丟的串流服務,同時資料儲存將由 集中式 轉換成 分佈式儲存 (是distribution而非去中心化 decentralize)
同時也討論到未來需要注意和解決的課題,包括: Realtime transaction (例如串流影音的即時傳書),DLT(Distributed Ledger Technology)分佈式儲存的 的 Data Trust問題,Public blockchain公有鏈的問題,Secruity安全性的問題,及Data Privacy資料隱私的問題
另外也提到目前挖礦Mining這個詞目前似乎已經被汙名化了,所以現在區塊鏈就稱這些做區塊鏈打包交易的驗證工作換取酬勞的不再說是挖礦,而是稱為Block rewards區塊激勵或獎勵
而這裡Jollen也透露出 目前採用IPFS分佈式儲存的一款幣Filecoin,目前未上市價是6 USD(由2016一直延到2019),而目前Flowchain 一枚約 2 USDT(才上交易所幾個禮拜)
Filecoin(IPFS)以後也可以和Flowchain(串流區塊鏈)搭配
5. Jollen談到了Flowchain的目標和運算方式
那就是未來是IOT 設備私有鏈透過網路聯結的時代,
- a.Flowchain OS作業系統如NAS2.0和IPFS隨身碟 存放個人資料 或 一家公司內部的區域網路LAN 的IOT(物聯網)設備產生了私有鏈的資料
- b.上鏈加密後publish到外部的公鏈(internet),比如說公司外部的其他節點, 而每個人所持有的 GPU(顯示卡), 電腦就是一個算力池和資源池負責加密和運算,所以是一個混合鏈
說白話一點就是:
data 經過 PPKI 機制 產生 Lambda值(flowchain產生) 值(就是由系統產生的驗證暗號,如:Goggle或網銀發的驗證碼) 這是亂數產生,用過即丟,且有時間切割和限制(避免破解) => 提供給IOT裝置認證
Puzzle則是隨機 發給 IOT裝置問題來確認這些IOT裝置是否是合法的節點機器和Lambda值是對的,例如: Q1.問的是驗證碼的第二碼是多少? Q2.問的是第二碼加第五碼的答案是多少.....
而取值的方式則是透過top-K的演算法方式來取值,測量差不多是對的就認證,不需要再額外驗證運算,例如:20個節點,只要6個節點來驗證,這也是拜占庭BTF共識算法(Jollen研究拜占庭共識多年提出有3大分類和5類的方案)......
科普: Top -K 算法:用來解決海量數據的推薦問題 https://www.jianshu.com/p/b6d3ef04bdd2
拜占庭算法BTF:容錯算法,多數決 http://www.bitjia.com/baike/1367.html
當然Jollen說因為是他開發的底鏈他當然有超級管理者的權限,也就是我們小時候玩科拿米(Konami code:上上下下左右左右BA就可以滿血不死....如:魂斗羅,沙羅曼蛇)....哈哈,好羨慕喔....
所以Flowchain的三大機制就是: IPFS mode + AI Mode(IOT礦機) + Hibird mode(公司混合鏈)
接下來Jollen提到了目前的區塊鏈面臨的問題,當然Flowchain都已經解決了
- 1. IOT或封包在限時內無法處理的問題, Jollen解釋假設有5個IOT裝置同時接到了chunk資料(包含Lambda值),如果有的Chunk來不及處理就會丟給其他的區塊節點來處理,而如何將chunk拚回就是靠著同一個創世區塊,(剛剛跳過前面內容的回去補課),
- 2.資料的Replication複製(備份)的問題,其實IPFS就是一種分佈式的共識備援機制,你的資料就切割加密分散到每個公有鏈和私有鏈的節點中
- 3. Timestamp時間戳記可更改的問題,如果區塊鏈有這個漏洞,程式碼寫的不嚴謹就會產生前端的ASIC晶片處理速度較快,一但出現交易問題就可以有時間更改,比如出塊共識需要30秒,但你15秒就已經完成,就可能有機會修改Timestamp獲得加倍的reward, 因此現在各大公司都是找最慢的hash程式(不是最快)給你的GPU的記憶體丟垃圾和數據,延遲ASIC或GPU的處理時效,這ˋ都是因為台灣的硬體研發能力太強太暴力了.....所以為何比特大陸的礦機號稱效能可以提高到百分之30%....等等,而現在業界使用的就是號稱 Hash X16R就是讓終端去去執行16個最慢的Hash(Blake,BMW,Grorest......),而Flowchain也解決了這個問題,在產生Lambda值驗證的chunk中會有時間戳記,而且限時作廢.....
目前乙太坊今年宣告以後出塊將由15秒變成30秒出塊,而且reward將由2枚變成0.6枚(變慢變少).....因此後勢....恩不予以評論
對於Flowchain的演算法有興趣的請參考Jollen的論文,白皮書或我的另一篇文章
區塊鏈 - 一個值得關注的區塊鏈項目 – 結合IPFS+IOT+AI的區塊鏈軟硬服務產品Flowchain
6. Jollen的工商時間和Flowchain投資模型及未來發展和QA
目前有許多幣採用POF (Proof of stake)的獎勵,簡單的說就是某幣你有1500枚,給你2%的增值,3000枚就3%的高利貸模式
所以Flowchain也有這個階段,就是分Angle Sale(天使投資), Private Sale(私募), Accredited Miner (認可礦工)
因此由官方錢包發的幣,挖礦增值量比較高,也就是俗稱的錢母(官方錢包發的錢母 放越多生越多),聽說最初的200枚在Telegram的air drop(空投已經結束了)....哭
bitcoin幣值半衰期(half-life)約四年,2013超過一半,2017最高點,2018下跌很正常 (數字幣挖出一半之後會進入成長高原期,幣價會趨緩,另外到半衰期時的下一年通常是幣值最高價...是可以預測模型的)
flowchain 的半衰期設定為6年, 2020(開始開挖,2022 年2+3 = 5億 釋放出37.5%) + 6年 = 2026會到半衰期, 生命週期+8 or 9 約到2030年
file coin 也是6年半衰期
Q: 昨天有一個朋友問了一個我也在思考的問題,那就是當上網資料的容量大於儲存空間的時候,或網路斷線停機時要怎麼處理
A: Jollen的回覆是,基本上以後會要求Local的節點也要先存一份,同時只要IPFS的硬體持續的擴展是可以解決的
Q: 是否有串流影音之外的應用
A: 目前正在研擬 P2P Payment system金流的方案,可以處理大量的金融交易數據.....但細節尚無法公開
Q: 甚麼時候上公鏈
A: 六月會上底鏈,但開挖可能要到今年3Q或4Q
Q: 後續活動?
A: 3月初會有安全測試獎勵請大家來公測和review安全性同時也會有社群推廣獎勵,會提供幣
- 最後再次提醒: 官方錢包發出的幣沒有用掉,reward權值比較高
- 測試網頁是使用node.js 在網站的開發者中心,Jollen最大的心願就是要開發出一個最簡單的SDK給開發者呼叫,真的很簡短
非廣告: 這次小聚是說明把資料放進去IPFS,下次小聚的預告,如何由IPFS撈資料和透過FFMPEG在網路上顯示直播,基本上只要程式寫的好,可以一邊錄製和存檔,一邊讀取是可達成的,不必錄播儲存再播放
目前先推出的產品是:IPFS礦機和IPFS無限容量隨身碟
請參閱我的另一篇文章.....區塊鏈 - 由Flowchain Coin(FLC)上交易所後觀看區塊鏈應用的未來
呼.....昨晚,上了7點到九點的小聚,晚上回家消化和整理大綱到12點,早上開始寫文章一直到下午13:30......呼....好充實的小聚內容,推薦給大家
留言列表