判斷乙個提議的交易是否是一次有效的賬本更新要達到兩種型別的共識:
有效性共識是關於驗證下邊所描述的條件對於提交的 transaction 和生成該次 transaction 的 inputs 的交易鏈中的每次 transaction 都必須要滿足:
僅僅檢查提議的交易本身資訊是不夠的。我們還需要檢查跟產生當前這個 transaction 的 inputs 有關的所有以前的 transaction 鏈。
這個被稱作 walking the chain。假設,例如網路中的乙個節點提交了乙個交換債券的一筆交易。我們只有了解下邊的情況才能確保這個債券的交換是有效的:
確保兩點都滿足的唯一方式就是檢視整個交易鏈。我們可以用下圖表示:
當確認乙個提交的交易的時候,給定的一方可能沒有它需要驗證的交易鏈上的所有交易資訊。這種情況下,他可以向交易的提出方索要缺少的那部分交易。交易的提出方應該永遠會有整個的交易鏈資訊,因為他們應該在驗證之前的交易中已經獲取了相關的交易鏈資訊。
設想一下 bob 持有有效的由**銀行發行的 $1,000,000 現金 state。bob 可以建立兩個交易提案:
這會是乙個問題,因為儘管這兩筆交易都可以通過有效性共識,但是 bob 確實現了一次「雙花 double spend」 他的美元來獲得了兩倍價值的 gbp 和 eur。我們可以用下圖表示這個流程:
為了避免這樣的問題發生,乙個有效的交易提案同時也要滿足唯一性共識。唯一性共識要求乙個 transaction 的 input 不能被任何其他的 transaction 消費掉過。
當乙個交易中的乙個或多個 inputs 已經被其他的交易消費掉的情況,通常被稱為雙花 double spend,那麼相關的交易應該被視為無效的交易。
唯一性共識是有 notaries 提供的。
共識演算法4 PoS概念
pow演算法存在的問題 pow是保證位元幣 當前以太坊和許多其它區塊鏈安全的一種機制 但是pow演算法在挖礦過程中因破壞環境和浪費電力而受到指責 pos是什麼 pos proof of stake 譯為權益證明,是一種在公鏈中的共識演算法,可作為pow演算法的一種替換 基於權益證明的數字貨幣中,下乙...
Docker 核心概念
1.docker映象 docker映象 image 類似於虛擬機器映象,可以將它理解為乙個面向docker引擎的唯讀模板,包含了檔案系統。例如 乙個映象可以只包含乙個完整的ubuntu作業系統環境,可以把它稱為乙個ubuntu映象。映象也可以安裝了apache應用程式 或使用者需要的其他軟體 可以把...
Elasticsearch核心概念
elasticsearch使用lucene作為其底層的搜尋引擎,關於lucene的介紹,可以參考官方 lucene關鍵概念 lucene使用inverted index來儲存term在document中位置的對映關係。譬如如下文件 使用inverted index儲存,乙個簡單地對映關係 term ...