在位元幣系統中,hash指標有兩個用途:指向前乙個區塊和指向某筆交易。
位元幣支付過程中,每筆交易都必須包含輸入和輸出。
在交易時,首先會從區塊中驗證交易輸入,驗證通過後才會執行交易輸出。這一步可以防止「雙花」攻擊。
區塊鏈是乙個去中心化的分布式賬本,既然是分布式,那就需要網路中的各個節點對賬本資訊達成共識,保證位元幣網路中使用的都是同乙份賬本。
在生活中,當對某個問題產生分歧時,通常會採用投票的形式來進行表決,大部分情況下採用的都是「少數服從多數」的原則。當在區塊鏈網路中是很難操作的。
假設區塊鏈網路中的大多數節點都是誠實節點,只存在少部分惡意節點。如果採用投票的形式來決定區塊的產生,那麼會面臨以下幾個問題:
針對以上問題,位元幣使用了「算力」來進行投票,決定新區塊的產生。
\[h(version,target,nonce,hash_,merkletreeroot) <= target
\]在位元幣網路中,乙個區塊的產生,需要完成上面的計算過程。只有求解出上面問題的節點才能將區塊新增到區塊鏈中。
在上面的計算式中,計算的實際是區塊的block header。對於乙個確定的區塊,區塊鏈的版本、計算難度、前乙個區塊的hash以及merkletree的根節點的hash,這些值都是確定的,只有nonce是不確定的。因此,求解上面計算公式的過程實際上就是不斷查詢符合要求的nonce的過程。
而求解過程需要耗費大量的算力,可以理解為每秒嘗試的nonce數。每秒嘗試nonce數越多的節點,出塊的概率越大。
雖然找到符合要求的nonce很困難,但是使用給定的nonce驗證結果很簡單,這也就是位元幣中要求的「puzzle friendly」。
在位元幣網路中,只有最長的鏈才是合法鏈。之後產生的區塊都需要新增到最長鏈才會被整個網路認可。因此,如果網路延遲結束後,節點會首先更新自己本地的賬本,以確保自己之後的出塊操作會被網路認可。
在當前的位元幣網路中,每個新生成的區塊中都包含了乙個鑄幣交易。鑄幣交易會憑空產生一定數量的位元幣,當有新的區塊新增到區塊鏈上,這些新生成的位元幣歸生成該區塊的節點所有。
注:位元幣設計之初就明確了其總量是固定的,為2100萬枚,每21萬枚,鑄幣交易產生的位元幣數量減半一次。最初每個區塊會產生50枚位元幣獎勵。引入了激勵策略,可以最大限度的調動各節點的積極性。
女巫攻擊是將原本需要分散備份到多個節點上的資料通過不同身份的操作全都儲存到自己的節點上。
在位元幣網路中,出塊節點需要算力的支援。女巫攻擊相當於將自己的算力分到了多個節點上,這樣降低了單個節點的算力。
在位元幣網路中,算力為王。
宣告:本作品採用署名-非商業性使用-相同方式共享 4.0 國際 (cc by-nc-sa 4.0)進行許可,使用時請註明出處。
位元幣 位元幣的實現
位元幣系統是乙個基於交易的賬本,這意味著儲存在賬本中的是一筆筆交易。那麼在使用者進行轉賬交易時,首先就需要確保使用者所持有的數量要大於或等於將要交易的。這要做的目的是為了避免雙花問題。這種基於交易的賬本好處在於隱私保護性比較好,缺點在於每次交易都需要說明幣的 在位元幣的全節點中,會在記憶體中維護乙個...
位元幣共識機制的思考
一 共識 在乙個所有參與者都認識並且信任 通過ca 驗證機構頒發的認證資料 的商業網路中,交易被校驗並進行提交到共享賬本中需要通過多種多樣的共識方式,包括以下 1 工作量證明 為了驗證該交易,驗證者需要獲得這個網路價值的一大部分。使得攻擊需要耗費很多的能力價值,這樣來避免攻擊。2 多項簽名 需要大多...
7 1 關於位元幣的共識
首先,讓我們看一下在位元幣問題上已達成的共識,它是位元幣執行的基礎。為使位元幣順暢執行,人們必須就以下三個問題達成共識 1.關於規則的共識。這裡所說的規則是指包括確保交易或區塊有效的機制,及位元幣執行時涉及的核心協議和資料格式等內容。人們需要就這些規則達成共識,這樣,位元幣系統中的所有參與者才能就發...