2020-10-12

2020-10-14 14:00:28

節點軟體文字版解析
~一起交流討論

技術要點解析目錄
一、BFChain區塊鏈網路架構二、行動端公有鏈和PC公有鏈的行動端DAPP本質差異和邏輯拓撲圖三、針對行動端公有鏈的技術難點,BFChain的解決方案四、共識機制解析五、證明是否為行動端公有鏈的關鍵點六、BFChain的TPS 和事務處理能力七、秒級交易確認八、離線註冊、離線交易九、BFChain如何防止雙花十、BFChain的分散式特性十一、BFChain的安全機制十二、BFChain的效率效能十三、BFChain多維度獎勵機制 一、BFChain區塊鏈網路架構當下絕大多數區塊鏈網路在提供對外服務時依然需要一箇中心化的伺服器(比如移動錢包),BFChain網路設計中提出NAAS(Node As A Service 節點即服務)BFChain 網路中,節點分為The R-Node(實時節點)、The S-Node(服務節點)與 The D-Wallet(分散式錢包)的概念,分別實現對高效能網路節點以及分散式服務節點提供支援,實時節點為礦機節點,服務節點為移動裝置節點,服務節點為鏈上錢包提供支撐, 礦機和移動裝置在區塊鏈網路中不同分工,共同共同作業,都可以參與鏈上治理和共識機制。二、行動端公有鏈和PC公有鏈的行動端DAPP本質差異和邏輯拓撲圖 1. 行動端直接上鍊,以鏈上節點參與區塊鏈治理,人人可以參與共識獲得挖礦獎勵2. PC公有鏈的行動端DAPP(如ETH移動錢包imtoken)1) 偽去中心: 因為行動終端無法直接存取區塊鏈(ETH),實際的資料請求和業務過程由其他區塊鏈節點完成,資料的可信度由參與節點是否作弊來保證,這樣有違區塊鏈去中心化的初衷。2) 偽節點: 行動終端如果不能接入區塊鏈網路,或接入了區塊鏈網路而資料不全,將不能有效參與網路的治理(傳統共識機制下),雖然看上去是一個節點,在一定程度上也可以通過橋接手段完成間接通訊,但依然算不上一個合格的參與節點。3) 無法參與共識:當終端網路與資料有一個缺失時,將導致終端失去參與共識的基礎,不能參與共識往往代表著不能參與區塊的建立,而這意味著伴隨區塊建立的獎勵將無緣獲得,對於貢獻相同參與度的此類終端來說,某種意義上有失公平。(拓撲圖如下)三、行動端公有鏈的技術難點,即移動裝置上鍊的三大技術難點:行動終端(智慧手機為主)的儲存小、計算能力差、網路不穩定。在技術方面,BFChain的解決方案如下:1. P2P網路BFChain重新設計了 P2P 網路,叫它Full Link Duplex Communication(全鏈路雙工通訊)。 區塊鏈網路是建立整個BFChain 的基礎,傳統區塊鏈網路基本上都採用 Socket 的方式。1) 引入WebSocket 機制,能有效提高資料的通訊能力和廣播效率,並順帶解決了伺服器到終端的主動通訊能力,為我們提供高可靠高效能的 IFMChain 提供了基礎。2) 網際網路使用最廣泛的協定「HTTP 協定」與 WebSocket 協定有機結合了起來,讓BFChain的網路能力不僅能在節點之間提供高效互通,還能為跨區域網路、跨終端型別提供有效互通,為 NAAS 提供支援,併為我們開發真正意義上的分散式用 DAPP 提供了基礎。基於上述P2P網路設計,不斷有效解決了行動終端上鍊後對等傳輸問題,還提供了更高效能更可靠的傳輸能力,同時為跨區域跨終端提供有效互通。2. 資料儲存:專屬的RSD移動儲存機制。行動端主要儲存區塊雜湊樹和關鍵檢查點。用兩種資料庫分工進行儲存,區塊雜湊樹為共識機制執行過程提供快速查詢和識別的能力;對於需要參與共識的行動終端,需要在本地儲存部分完整區塊資料,並通過這部分資料參與到共識機制中。為了儘可能的減少終端儲存的資料量,我們建立了關鍵檢查點,終端只需要儲存檢查點後的區塊資料即可,對於關鍵檢查點的確立我們採用和區塊一致的共識機制進行完成。3. 計算能力通過BFChain專屬的RSD網路機制,行動終端以服務節點參與到區塊鏈的共識機制裡,服務節點擁有除打塊之外的完整事務處理能力,如投票,同步,中轉等,這些普通的事務處理對計算能力沒有太多要求。總結而言,BFChain是通過解決了網路節點設計和共識機制基礎上,有效極致地解決了P2P網路和資料儲存的技術難題,從而實現了行動終端上鍊並參與鏈上共識機制。四、共識機制解析BFChain的鏈上共識機制採用DPOP-delegate proof of Participation (委託參與度權益證明機制)。簡單的說,DPOP共識就是權益證明(擁有的權益數量)和參與度證明(包括線上時長、貢獻頻寬、交易量等)2種機制的組合形成的共識機制。 它除了有效繼承了 POS 的經濟屬性、DPOS 的高效屬性、PBFT 的全員參與屬性外,還能有效避免無權益節點和高權益集體作惡成本低的問題,同時還為 The D-Wallet (分散式去中心化錢包)終端參與共識提供了基礎。共識機制對比五、證明是否為行動端公有鏈的關鍵點通過三點來判斷是否為行動端公有鏈1. 行動端直連(參與鏈上治理)1) 行動端區塊必須可見2) 行動端同步必須可見3) 行動端節點直接參與中轉驗證方式:關掉手機的網際網路網路,只留一臺手機可以跟礦機聯網互通,其他手機通過其他連線方式接入區塊鏈網路,證明行動端節點直接參與中轉2. 行動端鏈上權益獎勵(行動端人人可以參與共識挖礦)3. 離線交易、註冊(行動端裝置就是一臺伺服器)六、BFChain的TPS 和 事務處理能力1. BFChain的TPS:指每秒支援同時線上交易挖礦的使用者量2. BFChain的事務處理能力:包括使用者在鏈上所有的註冊、同步、轉發、查詢、賬務處理的行為3. BFChain的TPS實驗室數值超過10000,意味著兩個小時內(每一輪打塊2個小時,57個區塊)可支援同時線上交易挖礦的使用者量超過7000萬。 實際上支援的總使用者量(包含交易挖礦和事務處理的使用者)數億。七、秒級交易確認分層交易確認:在BFChain網路中,通過「同源交易」技術專利,一筆交易發生時先檢查發起方的資產是否滿足交易額,滿足則通過網路層完成對等支付(並沒有完成交易);同時把該交易資訊廣播給全網,(礦機節點)區塊層通過「區塊預處理」技術對該交易進行確認並廣播結果,確認結果滿足共識機制後接收方賬戶即可到賬該交易的權益。 然後在最新區塊生成過程中由打塊節點把該交易寫入區塊。更通俗的解釋,區塊鏈中任何一筆交易都需要經過共識機制確認後才真正有效。 很多傳統的區塊鏈的交易確認採用的是交易確認和打塊過程不分離的, 即接收方在交易記錄寫入區塊後到賬, BFChain是先通過區塊層對交易記錄進行預確認,接收方即可到賬,然後在等待新的區塊生成過程中寫入。八、離線註冊、離線交易1. BFChain 中,BFT服務節點安裝在手機後,系統把手機設定成一臺伺服器,可以完成除了打塊之外的註冊私鑰,同步區塊,查詢區塊,投票挖礦,中轉路由,鏈上交易等完整的事務處理。2. 手機連上BFChain網路的方式包括不限於:網際網路連網,藍芽,NFC,隔空投送等。即使沒有網際網路,只要手機能通過其他連線方式連上區塊鏈網路,就不是離線狀態。3. 真正的離線狀態,指手機所有的連線方式均無法連上區塊鏈網路(如飛航模式狀態),依然可以進行註冊和交易等在地化事務。 但需要手機連上區塊鏈網路後,註冊和交易資訊才能傳送到鏈上確認後儲存。 這個技術主要用於證明BFT服務節點本身就是伺服器,也是鏈上節點。九、BFChain如何防止雙花BFChain和FINChain採用賬務設計,權益以總量來參與計算,不關心賬戶中具體某一筆的權益來源,賬戶支出時只需要提供總量憑證,從根源上杜絕了雙花的可能。離線交易時,傳送方即使生成多個交易憑證,但只有第一個接收方承兌了該筆交易,傳送方的錢包賬戶上的資產將直接減去該筆交易金額, 其他的交易憑證會根據最新的賬戶餘額進行賬務處理。所以不會出現離線交易雙花。十、BFChain的分散式特性1. 行動端節點:人人可參與,無法控制2. 礦機節點:對礦機效能要求低,讓普通使用者也可以購買普通礦機接入區塊鏈3. 礦機節點:多維度競爭打塊機制不依賴權益的高低,低權益礦機通過高投票來獲得打塊挖礦權十一、BFChain的安全機制1. 雙重私鑰:登入密碼和支付密碼雙重私鑰,提供絕對的安全保障2. 鏈上資產安全:資產和交易全部在鏈上,無法篡改3. 密語密碼:自定義密碼,可以按照每個人通俗易記的密碼格式,如:姓名,生日,一首詩,一句歌詞等組合十二、BFChain的效率效能BFChain在儲存,事務處理,交易速度,網路層,區塊層,共識層綜合方面把效率提升到極致。十三、BFChain多維度獎勵機制BFChain設計了 The R-Node(實時節點)、The S-Node(服務節點)與 The D-Wallet(分散式錢包)。 參與節點根據參與方式的不同可以獲得不同型別的獎勵,如 The R-Node 主要獲取打塊獎勵、The S-Node 主要獲取服務獎勵(為 The D-Wallet 提供服務),讓不同維度的參與度貢獻者都可以獲得獎勵。在獎勵分配中,目前通過權益獲得的獎勵和提供參與度獲得的獎勵各佔50%,在打塊時進行分配(塊中包含手續費時也將一起進行分配),權益獲得的獎勵將會直接分配到權益賬戶上,參與度獎勵將會按權重分配到節點上的所有賬戶(包括 The D-Wallet 的賬戶),服務節點每提供一次服務都將增加服務節點獲取獎勵的權重,這樣可以在服務節點少時鼓勵服務節點的接入,服務節點充足時鼓勵提供更高效率的實時節點,從而通過多維獎勵機制從多個維度動態平衡BFChain網路。

共識機制對比
在這裡插入圖片描述
節點連結拓撲圖
在這裡插入圖片描述

節點分類
在這裡插入圖片描述