如上所見, Kardia 的新處理方法允許我們綜合所有部分割槽塊鏈的交易績效並在 1 秒內重新定義交易處理速度的概念 (TPS)
Ki: Kardia 可以實現交易處理效能 (i=0)
Ki: Kardia can achieve transaction processing performance (i-0)
R: 從部分割槽塊鏈交易中獲得的交易效能(i=1,…,n)
R: Transaction performance from some blockchain transactions (i-1,...,n)
E: 雙區塊的路由能力
E: Two-block routing capability
t: 區塊的組合比率
請注意,當越來越多的區塊鏈獲得 KardiaChain 的支援,t 和每個區塊鏈的Block_Size 和Block_Time將會改變。具體地,t 的範圍從 1 到絕對值。
(1…)是所有部分割槽塊鏈的組合
*t=1 是僅 1 個交易/命令被發現和處理的特殊情況,導致對 Kardia 的單一更新,因此組合為 1
KardiaChain 的技術
A. 網路節點的部分
為了更清楚地描述,我們將節點的結構分為 3 個部分,如人的生物器官結構是:心臟,動脈和靜脈。雙主節點直接使用這 3 個部分來維持區塊鏈之間的連結。心臟的效能是儲存交易並透過動脈轉移交易到成員鏈,這些交易將會透過靜脈轉回 KardiaChain。如果出於任何原因,做出選擇的節點將不會在連結區塊鏈的生態系統,它只會使用心臟部分併成為能夠處理源區塊鏈中交易的標準節點。
1) 心臟
a) Kardia 的發展工具:
Kardia 的目標是簡單化學習其他區塊鏈系統的其他智慧合約結構的過程。為了簡化學習Kardia 智慧合約的結構,我們將提供一組 UI,API 和SDK。這套工具被稱為引導系統,可以使心臟持續執行。
· 使用者友好的 UI 系統將提供模板以建立 Kardia 的智慧合約。該模板將幫助缺乏經驗的開發人員或掌握智慧合約程式語言的 深入知識(Confusing)可以自行決定更改合約的更多細節。
· 高效能的 API 將直接構建更復雜的 Kardia 智慧合約。該工具面向更專業的開發人員,允許他們同時在多個區塊鏈應用部署任何型別的邏輯應用。
· 高效能的 SDK 允許 Dapp 的開發者隨意研究和調整 Kardia 智慧合約中的所有細節。SDK 允許程式設計師完全控制 Kardia 智慧合約的所有相關活動: 從在外部區塊鏈中建立附錄合約的能力, 到隨意更新新資訊的方法,所有都將由程式設計師自由選擇。
b) Kardia 的虛擬機器(KVM)
Kardia 虛擬機器 是以太坊虛擬機器的升級版,更整合了區塊鏈之間的操作功能。在 Kardia 虛擬機器上執行的智慧合約可以從部分割槽塊鏈處理外部交易並在 總賬記錄而不需要改變Kardia 的共識機制。
Kardia 虛擬機器維護兩個收費系統,分別在主鏈的交易和側鏈的交易。適當的收費機制將適用於連鏈交易以鼓勵部分節點在處理連鏈式交易時更加活躍 為了確保整個系統的順利執行。
Kardia 虛擬機器還支援一組特殊工具幫助管理與處理相關的連鏈交易,並總結來自外部字串的更新
c) 生態系統的智慧(EcoKnow)
EcoKnow 儲存 Kardia 正在連結的區塊鏈系統指數。EcoKnow是幫助Kardia 勝過其他系統的部分,它提供大量資訊幫助 Kardia 透過智慧演算法為面向交易的機制提供出色的解決方案。除了交易更新,引數更新也將立即收集和分析。 EcoKnow 將這些引數壓縮並儲存到綜合資料點中並允許生態系統使用它們來提供最佳選擇。 EcoKnow 被認為是整個系統的知識來源, 甚至新的網路節點也可以訪問它以獲取整個系統的資訊
d) 總賬
總賬儲存在所有節點上 (標準節點和雙主節點) 幷包含主鏈的資料(閱讀更多關於塊的結構以便更好地理解). 當每個主鏈儲存一條指令到從雙主節點生成的二級分類帳時,總賬結構化為樹狀結構。總賬顯示了 Kardia 虛擬機器的一般狀態,其中任何在 Kardia 和外部區塊鏈的交易將都改變總賬的狀態。總賬的目標是提供系統歷史資料的連續概覽而不在乎哪個區塊鏈系統執行任何交易。
e) 主錢包
主錢包是一個安全的地方,用於儲存具有高保密性的使用者資產。它還允許使用者執行跨鏈交易並且無需為每個區塊鏈擁有多個個人金鑰或公鑰。
2) 動脈
動脈允許交易從 Kardia 順利流向其他區塊鏈同時確保跨鏈操作無縫完成。這是一個多步驟的過程,其中有翻譯模組和協調模組之間的雙向交換,以及透過處理模組的 smc 命令
a) 翻譯模組
翻譯模組使用演算法轉換可用的 Kardia 智慧合約成一個二進位制碼的編譯器包含與部分割槽塊鏈匹配的 SMC,以升級 Kardia 的智慧合約並處理部分割槽塊鏈上的錯誤。
b) Kardia 智慧合約語言系統(KSML)
KSML 旨在成為程式設計師的有效工具。在 Kardia 系統上建立智慧合約,並且無需大量的知識或深入的程式設計經驗。透過提供由基本語言系統(比如JSON 和 YAML)組成的全面的綜合程式設計指南,程式設計師可以輕鬆構建自己的想法而不需要使用特定語言來編寫某個區塊鏈的指令(例如,以太坊需要 Solidity 或Neo 需要 C#,Java 或Python 以及許多其他語言)。
與 KSML 語言並行釋出是測試應用程式幫助程式設計師可以快速檢查和驗證他們剛剛構建的智慧合約是準確的,並在 Kardia 平臺上順利執行。KSML和工具將整合到 SDK 中為程式設計師提供一套完整的工具,讓他們在 Kardia上自由構建產品。
將來,我們的目標不僅是支援 Kardia 智慧合約語言系統,還允許開發人員為每個區塊鏈上安裝特定的程式設計方法(例如,以太坊智慧合約的Solidity ). 這一發展將消除障礙並允許程式設計師在 KSML 提供的所有語言和邏輯系統中構建解決方法
c) 跨鏈研究機模組(CMNR): Cross-chain Machine-learning Network
Router
跨鏈研究機模組使用基於 SON 的選擇演算法為了找到最合適的區塊鏈參與跨鏈交易過程。選擇演算法基於許多因素,包括成本,確認時間,每條鏈上的交易金額。該模組使用靈活的分級演算法,從最好的分析結構建造,為了確定交易R 在時間t 的一區塊鏈 X 的總點數如下:
ScoreXt = f(h,f,v,d)
h: 塊的高度
f: 記錄最新交易的成本
v: 時間形成一塊X
d: 難度指數是根據智慧合約的難度差異計算出來的
如上所述,從 EcoKnow 直接連續獲取資料量,跨鏈研究機模組能夠在智慧合約的指導下做出有效決策,能夠在智慧合約的指導下做出有效決策,從而實現最高效能和競爭性運營成本。由於能夠自動化管理和自動最佳化,所有更改和升級到SON 的關鍵演算法無需人工干預即可自動部署。
跨鏈研究機模組將有兩個表面層:內部表面是 JSON-RPC 應用程式程式設計表面提供節點的定向功能以指示 Kardia 的交易, 外部表面或稱 RESTful應用程式程式設計表面允許程式設計師為他們的智慧合約獲得最有效的方向
d) 處理模組
處理模組負責計算最少的部分那就是上傳智慧合約的 二進位制碼編譯器,按照 CMNR 的詳細說明,透過相應的 JSON-RPC 到目標區塊鏈。
3) 靜脈
靜脈負責收集生態系統的更新,有效地處理它們並安全地將它們傳送到總賬。靜脈有如下幾個部分:
a) 吸收模組
吸收模組從特定區塊鏈系統,雙網路主節點傳送資訊的地方,獲取新區塊。相關更新將被壓縮並實時傳送到聚合模組。
b) 聚合模組
聚合模組從吸收模組接收線上更新,並將:
(1) 把定向的交易和來自外部區塊鏈的標識號序列合起來
(2) 總結一系列可以相互整合的交易成 Kardia 的新交易並將把此交易傳送到交易結合地方
c) 組合和分組賬(Group Pool and Group Ledger)
交易結合地方是雙主節點收集定向交易的地方以在下一個塊處理。分組賬記下這些交易。重新閱讀“塊構造”部分,以瞭解有關分組賬如何連線到總賬的更多資訊。
B. 系統機構
所有加入了系統的新節點將預設為標準節點。他們可以存放主代幣成為雙主節點以及幫助選擇一個外部區塊鏈。根據組合執行的雙主節點支援類似的區塊鏈。需要注意的是,有時雙主節點僅附加到特定的區塊鏈。這是因為,對於一個單節點,同時處理多個外部區塊鏈的效能是無效的,也是不可行的。關於多鏈節點的可行性,未來還需要進一步研究。
下圖顯示了同一組中的雙主節點,它們之間的距離很遠的,因為每個節點選擇一個區塊鏈來任意支援,整個系統將定期執行最佳化演算法(根據參與者的利益的流動機制的一部分) 確保節點之間的最大連結。
C. 參與者的利益的流動機制(ESWIM)
當收到塊形成總額和總交易成本以補償其複雜的工作頻率的大部分時間,建議使用雙主節點。參與者的利益的流動機制(ESWIM) 目標是確保系統發揮最佳作用,透過在每組中保持適當的雙主節點數量並確保系統的保密性,和透過劃分驗證者在組和整個系統中的影響。
ESWIM 機制鼓勵在一組中的標準節點和雙主節點之間靈活切換節點透過一些公式,如:更改區塊的獎勵分割槽,交易成本和每個鏈的節點改變的特定要求。例如,最低定金被增加將幫助節點移出一個太過重的組,最小化此級別可以吸引更多節點加入短缺的組。
如圖所示,在時間段 t1 和 t2 之間在藍色和紅色鏈上執行交易成本的變化導致 Kardia 雙主節點組的改變。因為在紅鏈上運營的成本變得更加昂貴,所以把交易指向紅鏈的需求會減少,與綠色鏈條相反。Kardia 使用的機制將適當調整 A 組和 B 組中的雙主節點數量根據預期的交易數量指向這兩個鏈。請注意,交易執行成本只是眾多因素中的一個,由參與者利益的流動機制以計算相應的改變。
D. 共識機制
KardiaChain 使用兩個共識機制 BFT + DPoS: 主要的共識機制(MCon) 和小組共識機制(GCon)。主要共識機制的成員稱為金鑰驗證者(Main
Validators - Mvals), 是那些負責維護 Kardia 總賬的人。小組共識機制的成員稱為小組核查員 (Group Validators - Gvals), 是那些負責批准連鏈交易的人並將它們新增到相應的總賬
1) 過程:
小組共識機制的 5 個步驟如下:
· 選舉:驗證者在他們之間做出選擇。
· 提案:提議者設定了一個區塊並將此塊傳送到組中的其他節點。如果提議者無法在允許的時間內建立區塊,無論區塊的結果如何,系統都將繼續進行下一步。此外,提議者將這些交易移動到下一個區塊(1)。
· 驗證:驗證者接收建議塊時,用選項<批准/拒絕/無投票>開始選舉過程以確定區塊的有效性,然後透過交換儀式傳送他們的投票。
· 批准:當提議者獲得三分之二的選票時,他們會將此塊傳送到主要提議者(2). 主區塊批准後,所有雙主節點將批准此區塊。
· 總結:如果系統上批准了新區塊,區塊的高度將增加 1 個單位以顯示這個新區塊已經完全批准。主要的共識過程採取相同的步驟,但有一些細微差別,例如:
在主要的共識機制中實施了相同的步驟:
· 選舉:驗證者在他們之間做出選擇一名主要提議者。
· 提案:主要提議者將從他們收到的區塊組建構一個主要區塊併合理化
· 批准:當建議的區塊收到足夠的投票以供批准時,所有節點將開始接受該區塊
(1) 傳送交易:該組的提議者跟交易總結地方有關,可以定位並在待機模式下處理已定向的交易並已經有對這交易的現在區塊鏈適當的目標區塊鏈。被允許傳送後,提議者將把這些 RTX 交易轉移到聚合雙主節點,雙主節點將儲存的位置並在下一個區塊鍊形成的區塊鏈中更新這些交易。
(2) 顯示批准的區塊:建議的區塊獲得三分之二的選票後,提議者會將這些區塊傳送到其他節點,專注於主要提議者將這些區塊鏈進入他們的提案中。
2) 區塊結構
· Timestamp: Creation time of the block
· Height: the length of the blockchain. Genesis block starts from 0
· Vote: Record of all the BFT votes from this block, including thesignatures for the block
· PreviousHash: Hash of its parent block
· StateRoot: Hash of trie root, representing the global state after the block transactions are finalized
· GasLimit: current gas limit for one block
· GasUsed: total gas used by transaction in this block
· Data: transactions data in the block. MainBlock keeps the transaction on the Kardia mainchain. DualBlock keeps the event happened on the dual group
雙區塊的結構可以如上所示。自不同群體的雙區塊將以自己的身份標記,例如
EK 代表Eth-Kardia,NK 代表Neo-Kardia(*此標記可以更改)主要提議者會總結已從所有雙主節點整合 TX(u)的交易和已從標準節點整合 TX(n)的交易以形成交易的彙總資料。主要提議者將使用從雙區塊收集的簽名資料和傳送交易的標準節點來確認這些交易。主要提議者在原始系統上記錄這些交易。主要區塊將根據主要提案獲得的必要資料和簽名形成。
E) 定金模型
1) 節點操作者需要鎖定錢包中的所有 Kardia(KAI)代幣,使用帳戶鎖定 (lockBalance)成為驗證者。主要節點驗證者所需的定金是 s(M),雙主節點的是 s(M+D)。我們使用“金錢時代”的概念以評估定金的可信度,意味著準備好用於 lockBalance 之前,定金必須透過一定數量的區塊儲存在賬戶中(符號mature_time) 。該模型包括許多保護系統免受攻擊的點。一方面, mature_time 幫助延長攻擊所需的時間,當新交易的代幣不允許用於定金時。另一方面,在 mature_time 時間, 定金的總額可能會有所不同, 因此, 達到大多數所需的定金可能需要適當增加。比如, 總定金現在為1,000,000 KAI,數基於上述 BFT 共識機制,駭客必須擁有 2,000,001 KAI 才能獲得超過 66%的總票。在經歷了 Mature_time 之後, 一些新帳戶作 為新驗證者加入系統,並將總儲備增加到額外的 100,000 KAI 多。這意味 著駭客需要增加 200,000KAI 再等下一 mature_time 以能夠攻擊系統。因此,無法保證對系統的攻擊能夠成功,使打算攻擊系統的使用者感到困難。
對雙主節點組的攻擊也需要控制主系統因為主要驗證者需要先驗證外部區塊鏈的更新,然後才能將其記錄在總帳中。如第 13 圖所示,以控制一組有10%的定金將需要總定金的 7%,例如,從金鍊做出個假更新。但是,要將此更新記錄在 Kardia 的總賬,它需要透過主要驗證者的驗證。這意味著需要另外 60%的定金以有機會進行攻擊。如果攻擊失敗批准此交易的所有節點上的定金或有害的區塊會被取消(這筆錢將被燒掉),讓針對 Kardia 進行任何攻擊都會變得更加昂貴。
2) 主要代幣的功能
KardiaChain 的加密公用事業代幣(KAI)是 KardiaChain 建立的生態系統的重要組成部分,它的設計功能使其成為系統中唯一的代幣。KAI 是一種無法償還的公用事業代幣,僅用作參與 KardiaChain 生態系統的成員之間的交換單位。KAI 的誕生旨在為在與 KardiaChain 生態系統互動時,成員之間溝通時提供一種方便、安全和簡單的支付方式。KAI 對基金會(Foundation),代理商(the Distributor)或其任何附屬公司, 企業或代表不代表 KAI 所有者的任何所有權(shareholding) , 參與(participation),權利(right),職位(title)或利益(interest) 。同時,KAI也沒有代表的價值或向其所有者提供任何義務或承諾關於成本(fee),股息(dividends),收入(revenue),利潤(profits)或任何投資收益(investmentreturns) , 也不構成, 不屬於新加坡或任何相關領域的任何證券(securities)。KAI 只能在 KardiaChain 的生態系統使用,KAI 所有權沒有權利或能力給出任何意見除了能夠使用 KAI 作為與 KardiaChain 互動的工具。
網路資源(computational resources) 用於在驗證區塊鏈系統上的新區塊或資訊,因此,網路資源提供商將使用網路資源活動收費(例如:
KardiaChain 的“mining” )為了保持系統的公平性和透明度,在使用網路資源後,KAI 將在付款過程中用作支付單位。KardiaChain 要求miners 在被允許參與 mining 過程之前付一定數量的 KAI 定金。KAI 是KardiaChain 不可分割的一部分,因為當沒有 KAI 出現時使用者使用網路資源以開展活動或提供有助於 KardiaChain 生態系統發展的服務沒有任何利益。
KardiaChain 的使用者和 KAI 所有者不會從 KAI 獲得利益如果不積極參加KardiaChain 的活動。具體而言,KAI 被理解並接受為:
· 無法退款並且不能兌換成現金(或其他加密代幣的任何價值) 或來自本組織,分銷商或其任何關聯公司的任何付款方式;
· 不代表或允許 KAI 所有者沒有任何權利對組織,代理商(或任何下屬單位) 或收入(revenue) , 資產(assets), 包括任何接收 股息(dividends) ,收入 (revenue) , 股 票 (shares) 權 利 , 所 有 權(ownership),股票 (shares)或證券(security),投票權,分配,贖回,付款,所有權(包括所有與智慧財產權相關的形式), 或其他財務和法律權利包括智慧財產權或以任何參與形式與 KardiaChain,組織,代理商或上述單位的服務提供商;
· 不代表任何不同合同形式的權力,或為了獲取利潤或避免損失而簽訂合同;
· 不 是 一 種 貨 幣 ( 或 電 子 貨 幣 ) , 證 券 (security) ,大宗商品(commodity),債券(bond),債務工具(debt instrument)或與之相關的任何其他形式 金融工具(financial instrument)或投資;
· 不是來自組織,代理商或下屬單位的貸款,不代表本組織,代理商或其下屬單位的貸款,不會產生利息預期;
· 不要向 KAI 所有者授予對組織,代理商或任何附屬實體的任何所有權或利益。
代幣銷售過程中的貢獻將在代幣銷售過程後由代理商(或屬於其代理商的單位)儲存。參與者在銷售過程中在代幣銷售過程之後,上述貢獻或貢獻者的貢獻資產將不會帶來經濟,法律或利益。對於 KAI 交易所二級市場(secondary market) 的發展的情況下,該市場將由一個單獨的單位維護和管理,與 KAI 和 Kardiachain 的組織,代理商或銷售流程無關。組織和代理商不會在上面提到建立二級市場,也不會成為 KAI 的交換單位。
KardiaChain 的優勢
我們提出的任務是簡化程式設計師的工作,使其不受單個區塊鏈操作的限制。Kardia 允許程式設計師建立分散的應用程式能夠同時在多個區塊上執行,而不需要為每個區塊鏈編寫不同的智慧合約。Kardia 旨在建立一個全面的系統包括私有和公有鏈。在這個系統中,區塊鏈可以與系統中的任何其他區塊鏈進行互動而不需要改變每個區塊鏈的溝通方式。因此,我們可以輕鬆提高可擴充套件性,互操作性和靈活性。
· 可擴充套件性
當智慧合約被送到 KardiaChain 時,它將被整合併傳送到系統中指定的區塊鏈。最合適的區塊鏈會被選擇來接收和處理該交易提供在傳送交易時在系統中處理交易最佳級別的能力。這也被稱為減少區塊鏈負載的解決方案,在某些時候避免區域性擁擠。
· 連結可能性
透過 Kardia, 系統中的所有區塊鏈都能夠使用其他區塊鏈上的資料和資產進行互動。跨鏈功能允許分散的應用程式應用於許多不同的區塊鏈,這將有助於在給定時間裡特定鏈上的擁塞。
· 發展能力
程式設計師可以輕鬆整合新的區塊鏈技術透過 Kardia 的智慧合約程式設計介面 來自他們熟悉的工具和語言系統。KSML 採用易於閱讀的語言設計,語言系統可用於支援智慧合約涉及的大多數活動。透過 KSML 改變智慧合約,程式設計師可以輕鬆地將他們構建的解決方案應用於所有支援的區塊鏈。
· 整合能力
任何組織或個人都可以擁有區塊鏈技術應用的第一次經驗透過智慧合約API,提供了一套易於使用的工具並完全支援語言系統幫助程式設計師可以構建,測試和應用他們構建的第一個智慧合約而不遇到任何困難。所有步驟都可以在簡單的網路平臺上完成,不需要高階設定。
· 成本
當你在某個系統中操作時, 你必須以固定的變化率支付費用。關於Kardia, 使用者使用 CMNR 選擇最合適的區塊鏈在一段時間內處理交易。包
括 Kardia 的交易費,平均成本總是低於單個區塊鏈的平均成本。
分散應用的新視野
這部分將概述分散應用程式在我們的系統上執行時的三個典型功能:
A. 具有大流量的簡單 Dapp:
公眾投票就是這 Dapp 類的一個很好的例子。在一段固定的時間內,我們期望獲得與一個國家人口相對應的大量選票。但是,安裝過程非常簡單當組織者只需要調整 Kardia 提供的可用 SMC 表格的一小部分時,然後在Kardia 系統上使用命令 Vote_smart contract_ABC(K)。除非進行進一 步 修 改 , CMNR 將 分 析 上 述 命 令 並 提 供 命 令 Vote_smartcontract_ABC(K)可以執行的區塊鏈系統列表。之後,這部分將轉 SMC代 碼 以 與 選 定 的 區 塊 鏈 集 成 , 例 如 , 為 以 太 坊 集 成 的 Vote_smartcontract_ABC(Eth)。
以下組織將收到在多個區塊鏈上的一些 Vote_smart contract_ABC 一些命令的列表並可以選擇適當的使用它們。選民可以提交投票在任何命令Vote_smart contract_ABC 的區塊鏈上執行。但是,我們建議透過最初的 Kardia 區塊鏈系統傳送投票以最佳化加密的智慧導體減少整個系統的擁塞。
比如,Kardia 在選舉期間支援兩個區塊鏈系統(E 和 N)。第一個區塊鏈能夠處理每秒 2000 個交易,每個區塊在 10 秒內形成,而剩餘的區塊鏈可以在一秒內執行 1000 個交易,區塊形成時間為 5 秒。此外,Kardia 的原始區塊鏈系統可在 1 秒內處理大約 3100 個交易,總的來說,整個系統可以確保完全接受 5000 萬人的選票(只要所有人在 8 小時內發出投票,在同一天,導致平均需求在一秒鐘內完成 1700 個交易)。
B. 多功能的 Dapp:
一個簡單的例子是 CryptoKitties 遊戲軟體,該軟體包含玩家使用的每個動作比如餵養貓,改變貓的名字將在以太坊鏈系統上使用 1 個交易並消耗時間和金錢。我們可以節省大量的時間和成本如果可以將這些小型操作移至交易較少的區塊連繫統並要求降低成本。主要業務,如買賣貓將在主要和可靠的區塊鏈系統上實施。這種方法有利於利用操作頻率的差異。例如, 餵養貓會要操作很多次,而玩家之間的貓交換將以更低的頻率完成。那麼為什麼這兩個操作都應該在同一個區塊鏈系統上執行呢?在軟體設計中, 我們知道為每個目的使用不同的引數(例如速度和連續性)的多個資料點是一種值得考慮的方法並應用此軟體時可以創造許多好處。
C. 彼此溝通的 Dapp:
Kardia 為 Dapps 提供基礎設施這樣他們就可以安全無縫地交換資料並相互溝通。下面的圖表有助於我們理解銀行陣列中 Dapp 的操作模式,當這個 Dapp 使用另一個 Dapp 的 KYC 資料時而這兩個 Dapps 執行在兩個不同的區塊鏈鏈系統(KardiaChain 和 ChainX)上。使用者A 將KYC 個人資訊上傳到 ChainX,使用者 A 可以使 Banking_Dapp 應用程式使用 KYC_A 資料從 KardiaChain 上的 KYC Dapp 資料字典。這個過程安全和分散執行以最大限度地減少軟體工程師的工作量並增強使用者體驗。