1. 程式人生 > >Corda技術核心概念之共識(Consensus)

Corda技術核心概念之共識(Consensus)

概要

  • 為了提交交易(把交易更新到賬單),交易需要達成有效性唯一性的共識
  • 有效共識需要交易的合約有效性,以及交易的相關的元件為有效的(元件包括input,output,command,attachment,signaure)
  • 唯一共識可以阻止雙花

共識的兩種型別

確定被提議的交易是一個有效的賬單更新需要達到如下兩種型別的共識:

  • 有效性共識-在簽名一個交易之前,需要驗證必須的簽名者
  • 唯一性共識-僅僅是公證人服務進行驗證

有效性共識

有效性共識是驗證的一個過程,如下兩個條件對於被提議的交易或者交易鏈上生成一個交易的input state的交易來說,都需要這兩個條件:

  • 合約需要接收交易的輸入輸出狀態
  • 交易需要必須的簽名

驗證被提議的交易它自身是不夠的。我們需要驗證交易鏈上的每一個交易以此獲取一個被提議的交易的正確的輸入狀態(input state)。

這是眾所周知的“在鏈上行走”,比如,在網路上的一個節點提議了一個交易,給我們轉移證券。我們認為證券轉移是有效的僅僅因為如下條件:

  • 在一個有效的發行交易中,這個證券是被中央銀行發行的
  • 關於這個證券後續的交易即使被他人擁有也任然有效

這是唯一的方式來確認這兩個條件是在“鏈上行走”。我們可以視覺化為如下過程:

當驗證一個被提議的交易時,節點可能沒有交易鏈上的每一個交易來進行驗證。在這種情況,他們可以向交易的發起人請求漏掉的交易。交易發起人總是有完整的交易鏈,因此當需要驗證交易的input state時,可以向交易發起人請求。

唯一共識性

想象Bob持有一個有效的中心銀行發行的現在1,000,000美元。Bob現在能夠建立兩個交易:

  • 一個交易轉移$1,000,000給Charlie,並返回800,000(GBP)
  • 另一個交易轉移$1,000,000個Dan,並返回900,000(EUR)

這是一個問題,因為儘管這兩個交易都滿足共識的有效性,但是Bob能夠管理美元的“雙花”,去得到一定數量的GBP和EUR。我們可以視覺化為如下:

為了阻止雙花,一個有效的交易提議必須達到唯一性共識。唯一性共識是必須的,因為一個交易的輸入狀態不可能存在於另一個交易中的。

如果輸入狀態的一個或者多個已經存在於另一個交易,這就是眾所周知的雙花問題,並且交易的提議被考慮為有效的。

唯一性共識公證人提供的。

相關推薦

Corda技術核心概念共識Consensus

概要 為了提交交易(把交易更新到賬單),交易需要達成有效性和唯一性的共識 有效共識需要交易的合約有效性,以及交易的相關的元件為有效的(元件包括input,output,command,attachment,signaure) 唯一共識可以阻止雙花 共識的兩種

Corda技術核心概念交易Transaction

概要 交易是應該提議更新到賬單 一個可以被更新到賬單的交易,需要滿足如下條件: 不能包含雙花。(在Corda中,雙花問題是通過公證人(Notary)解決的) 合約一定是有效的 參與方一定是簽名了的 概覽 Corda使用UTXO(unsp

Corda技術核心概念網路The Network

概要 一個Corda的網路是由很多的節點組成,並且這些節點都執行著Corda和CorDapps。 一個節點是否可以加入這個網路,是由Doorman決定的。目的:保證一定隱私。不像比特幣任何人都可以加入網路中。 節點之間的通訊是P2P(Peer to Peet),而不是像

Corda技術核心概念賬單The legder

概要 從每一個點(peer)的觀點來看賬單是屬於個人的。 兩個點(peers)總是確保他們在賬單上分享的事實(facts)必須是確切的同一版本。 概觀 在Corda中,是沒有單一資料儲存中心的。相反,每一個節點都應該知道他需要知道的事實(有效的交易)(facts

ts核心基礎介面Interface

作為一個純粹的前端攻城獅,有時候很難理解面向物件的思維,所以,有些功能你能夠用JS完成,但是轉換成TS就有點不知所措了。面向物件設計和程式設計遵循的幾個原則: SOLID原則:SRP(Single Responsibility Principle) 單一職責原則;OCP(Op

核心程式設計SSDTHook3Hook NtCreateSection監控所有可執行模組載入

在上兩篇博文中,我介紹了SSDTHook的原理,並給出了一個例項--通過Hook NtOpenProcess來實現程序保護:http://blog.csdn.net/zuishikonghuan/article/details/50765464 這次我們玩個更好玩的,攔截

核心程式設計SSDTHook1原理

說驅動開發這麼長時間了,也玩玩核心鉤子,鉤子(Hook)技術是一種截獲對某一物件訪問的技術,不僅在Windows平臺,Linux平臺上也有Hook技術。Hook技術種類繁多,實現細節也不同,還可以靈活使用。 我之前寫過兩篇Ring3下的API Inline Hook的博文

Unity學習筆記——基本概念場景Scene

場景,顧名思義就是我們在遊戲中所看到的物品、建築、人物、背景、聲音、特效等,基本上和我們玩遊戲時所看到的遊戲“場景”是同一個概念。 Unity 3D中,“場景”是一個檢視,我們通過“場景”這個檢視,來編輯、佈置遊戲中玩家所能見到的影象和聲音。 安裝完並執行Unity 3D,

Corda 核心概念共識 Consensus

概要 為了交易能夠被提交,transaction 必須要同時滿足有效性(validity) 和 唯一性(uniqueness)的共識 Validity consensus 需要 transaction 和 它的所有依賴都是合約有效(contractual v

《Java核心技術》第10版讀書筆記Chap52——方法呼叫過程、final、型別轉換、abstract與訪問識別符號

方法呼叫過程 假設在原始碼中有這樣一行: manager.setBonus(2300); 下面來看看javac編譯器是如何處理的: 檢查根據物件型別和函式名稱,在該類成員方法及其父類中有呼叫權的成員方法中尋找到所有名字匹配的方法。在本例中,mana

BAT解密:互聯網技術發展8- 用戶層技術剖析

用戶管理 相同 開源 大廠 cookie alt 之間 平臺 之路 互聯網業務用戶層技術主要包括:用戶管理、消息推送、存儲雲、圖片雲。用戶管理互聯網業務的一個典型特征就是通過互聯網將眾多分散的用戶連接起來。因此用戶管理是互聯網業務不可缺少的一部分。略微大一點的互聯網業務

Ajax技術XMLHttpRequest【XMLHttpRequest常用方法和屬性】

tro 沒有 body htm 事件 thead 指定 response date 一、XMLHttpRequest中常用的方法: (1)open()方法:用於設置進行異步請求目標的URL、請求方法以及其他參數信息。 函數原型:open("method","URL",asy

Kubernetes核心概念Replication Controller詳解

kubernetes docker 虛擬化 replication controll Replication Controller簡稱RC,它能夠保證Pod持續運行,並且在任何時候都有指定數量的Pod副本,在此基礎上提供一些高級特性,比如滾動升級和彈性伸縮? ? 它在k8s中的架構如圖:? ?

FPGA小白學習1 System Verilog的概念以及與verilog的對比

函數返回 enable 傳遞 轉換操作符 st2 輸出 時間值 擴展 isa 轉自CSDN:http://blog.csdn.net/gtatcs/article/details/8970489 SystemVerilog語言簡介 SystemVerilog是一種硬件描

從零開始學 Web DOMDOM的概念,對標簽操作

關註 1.5 pan 什麽 tin p標簽 nod text == 大家好,這裏是「 Daotin的夢囈 」從零開始學 Web 系列教程。此文首發於「 Daotin的夢囈 」公眾號,歡迎大家訂閱關註。在這裏我會從 Web 前端零基礎開始,一步步學習 Web 相關的知識點,

Kubernetes核心概念Service詳解

clusterip ips aml 開放 lan font led IT 架構 Service是k8s中非常重要的組成單元,作用是作為代理把在POD中容器內的服務發布出去,提供一套簡單的發現機制和服務代理,也就是運維常說的‘前端’概念,那麽它如何實現代理功能以及自動

Kubernetes核心概念Volume存儲數據卷詳解

gin creat 自己的 當前 ges 訪問路徑 服務器 tor type 在Docker中就有數據卷的概念,當容器刪除時,數據也一起會被刪除,想要持久化使用數據,需要把主機上的目錄掛載到Docker中去,在K8S中,數據卷是通過Pod實現持久化的,如果Pod刪除

《SpringBoot從入門到放棄》篇——SpringBoot整合Mybatis大型專案開發技術首選

一千個讀者有一千個哈姆雷特。 你們的專案中,傾向於把資料庫的語句寫在Java類裡,還是使用Mybatis框架呢? 相對來說,做一些複雜的大專案,用第三方開源的Mybatis會比較好。把資料庫操作語句抽取出來,寫在xml檔案,方便管理。 個人比較傾向於使用Mybatis,還有Mybat

基於Springboot技術的部落格系統實踐及應用Elasticsearch

本部落格從全文搜尋、ES簡介、ES核心概念、ES與SpringBoot整合以及ES實戰共五個方面進行詳細介紹和應用。 1、全文搜尋介紹 全文搜尋搜尋的物件主要有兩種: 1、結構化資料:具有固定格式或固定長度的資料,例如,資料庫,元資料 2、非結構化資料:無固定格式或者無固定長度的

基於Springboot技術的部落格系統實踐及應用thymleaf

一、概念             Thymleaf是一個jave模板引擎,與SpringBoot整合 非常方便,類似於Freemarker,但是比Freemarker效能要好一些;Thymleaf支援自然語言,即:原型就是