最小可行性區塊鏈原理解析

2021-08-19 21:53:24 字數 3485 閱讀 5798

chuck賬簿中的收據證明了交易發生。如果alice聲稱交易從未發生,那麼bob可以去找chuck,用他的收據來證明alice說謊。

如果chuck的賬簿中沒有收據,就證明交易未發生過。alice和bob都不能偽造交易。他們可以偽造交易收據,聲稱對方說謊,但同樣的,他們可以去找chuck,檢視他的賬簿。

alice和bob都不能篡改當前的交易。如果任意一方篡改了交易,他們可以去chuck那兒,用儲存在chuck賬簿中的副本核實他們的副本。 

以上操作就是「三式記賬法」,操作簡便,對參與雙方都能提供很好的保障。但你也看到了它的缺點,對吧?我們對中間人寄予了很大的信任。如果chuck決定和另一方串通,那麼整個系統就土崩瓦解了。

不可否認性: 事實發生後,參與方不能聲稱交易沒有發生過。

完整性:事實發生後,不能再修改交易收據。

alice和bob公布出他們的公鑰。

alice以純文字的形式寫乙個交易收據。

alice用她的私鑰對交易資訊的純文字進行加密。

alice在密碼文字上新增乙個「由……簽名」的純文字備註。

alice和bob都儲存相應的輸出結果。 

注意只有在多方參與的時候才需要第五步:如果你不知道是誰簽署了資訊,就不知道該用誰的公鑰來解密,這個問題很快就會變得有關緊要。 

這看起來像是沒什麼特別理由的大量工作,但我們還是來檢驗一下新收據的屬性:

bob不知道alice的私鑰,但問題不大,因為他可以查詢她的公鑰(公鑰是全世界共享的),然後用公鈅來解密交易的密碼文字。

alice並不是真的在給交易內容「加密」,而是通過使用她的私鑰給她「簽名」的交易編碼:任何人都可以用她的公鑰對密碼文字進行解密,由於她是唯一擁有私鑰的人,這個機制保證了只有她能生成交易的秘密文字。

只有alice知道她的私鑰,因此alice不能否認交易的發生——她已經簽名了。

沒有alice的私鑰,bob或任何其他人都不能偽造或修改交易。

注意第二條,alice可以否認她是那個有爭議的公鑰——私鑰對的真正所有者。

alice和bob只儲存了簽名交易的副本,消除了對中間人的需要。「神奇」的公鑰密碼和雙方以物易物系統完美匹配。

藍色郵票和紅色郵票等值。

john證實了bob轉移的是乙個「有效」交易: 

2-1. 待轉移交易的位址是bob。 

2-2. bob此前沒有把這個交易轉移給任何其他人。

alice可以核實轉移的交易是對她和bob乙個有效交易的引用。

時區問題可以通過軟體解決,我們不需要每個人手動更新分類賬簿。相反,我們可以建立乙個軟體,它能在每個參與者的計算機上執行並代表他們自動接收、批准以及向分類賬簿新增交易。

在實踐中,我們不知道p2p網路的全域性狀態:參與者人數,個體是暫時離線還是決定離開網路等。

假設我們可以解決上述限制,系統仍然可能受到sybil攻擊,惡意使用者可以偽造許多身份行使不公平的投票權。

系統最終必須收斂於所有交易的整體序(線性一致性);

系統必須以可**的方式解決分類賬簿衝突;

系統必須強制執行全域性不變數——例如,沒有重複消費;

系統應該免受sybil和類似的攻擊。

或者,假設提交投票給你帶來了一些其他成本(例如支付費用)。如果成本足夠高,那麼再次的,執行大規模sybil攻擊的障礙也增強了。

他人驗證工作量證明的步驟應該是「便宜的」。

生成具有給定雜湊值的訊息很昂貴。

我們可以用同樣的sha-256演算法來為我們的投票生成乙個雜湊值。 

**1生成的雜湊值無效因為它沒有以我們要求的兩個零子串開頭。

我們修改一下投票陳述,附加乙個任意字串再試一下: 

**2生成的雜湊值也不滿足我們的條件,我們更新值,一次又一次地嘗試…… 155次嘗試之後我們最終得到了: 

**3為了生成有兩個零字首的有效雜湊,傳送者平均需要256 (16^2)次嘗試。

將要求變為5個零平均會需要1,000,000 (16^5) 多次嘗試……關鍵是,我們可以輕易提高成本,讓傳送者找到乙個有效雜湊需要耗費更多cpu週期。

bob和john完成乙個交易,他將alice的收據轉移給john。bob和john都更新了賬簿,但是alice對交易尚不知情。 

2-1. 皆大歡喜的情景:john要求alice償還他的新借據,然後alice得到bob的公鑰,核實了他的交易,如果交易有效,她向john支付所需金額。 

2-2. 不太歡樂的情景:bob用沒有記錄他和john交易的舊賬簿與katy建立了乙個重複消費交易,然後katy和john同時出現在alice家卻發現只有乙個人能得到報償。

法定人數一致:提高網路的處理速度和可用性(即如果有人離線,仍然可以處理交易),我們可以將上述全體一致的情況放寬到法定人數一致(整個網路的50%)。

我們不知道要聯絡誰來獲得他們的同意。

我們不知道在與誰通話。

n確認交易:我們可以聯絡網路中(已知)參與者的一部分子集,讓他們驗證我們的交易。 我們聯絡的節點越多,抓住企圖欺詐我們的惡意方的可能性越大。

生成偽造身份和交易響應的成本是0.001chroma:維持電腦執行的能源成本,支付網路連線等。

katy如何為確認進行支付?如果那是它自己的交易,就會有乙個遞迴問題。

chris正在等著聽新交易通知,每個交易通知包含傳送方願意支付於網路驗證和確認交易的交易費用: 

2-1. 直到有直接的經濟激勵(交易費用總額大於他的成本)來完成必要工作來驗證未決交易,chris對未確認的交易進行彙總。 

2-2. 一旦過了這個門檻,chris首先驗證每個未決交易,方法是核實所有的輸入都不是重複消費。 

2-3. 所有交易都被核實後,chris在未決列表上再新增乙個交易(上圖中用綠色標識),將所發布交易的費用額轉移給他自己。 

2-4. chris生成乙個包含未決交易列表的區塊,引用前一區塊(使我們可以遍歷區塊並看到整個分類賬簿),並執行工作量證明挑戰,來生成符合網路既定規則的區塊雜湊值,例如n個前導零的部分雜湊衝突。 

2-5. 最後一旦chris發現有效區塊,他就分發給所有的其他參與者。

alice和bob在等著監聽新的區塊公告,尋找他們在列表中的交易: 

3-1. alice和bob驗證區塊的完整性,也就是驗證工作量證明和區塊所包含的交易。 

3-2. 如果區塊有效,他們的交易在列表中,那麼交易就被確認了!

重複以上步驟直到宇宙熱寂。

在某一時刻,有人會發現新的區塊,開始在網路中傳播。 

2-1. 其他節點接受新的區塊時,與乙個不同的最高區塊合作的那部分網路將檢測到現在有乙個更長的鏈可替換,這意味著它們需要切換到更長的鏈上面。 

2-2. 作為被丟棄區塊的一部分但尚未被確認的任何交易都被放在未決列表中,重新開始這個過程。 

2-3. 可能的情況是,競爭狀況會持續多個區塊,但最終某個分支會超過另乙個,網路的其餘部分將收斂到同乙個最長的鏈上。

chris生成乙個確認她交易的有效區塊。 

但 是鏈中有乙個分叉,當稍後網路收斂在kent的分支鏈上時,chris的區塊會被「移除」。因此,即使當alice接收到乙個有她交易的區塊,她也不能確定這個區塊將來不會被撤消!

1確認交易:最新的有效區塊包含交易。

n確認交易:有乙個包含交易的有效區塊,以及n-1個區塊建立在那個有效區塊上。

可行性分析

做任何事情,都必須要做可行性分析,可行性分析能確保你做的事情在未來的努力過程中不會因為錯誤的方向而導致的夭折。人為什麼會有去學習某種知識的衝動?我覺得大部分的原因是因為虛榮心,自尊心,有些時候你看到別人擁有某種能力,你覺得非常的羨慕,那麼就有一種想去學的衝動,而不管自己是否有能力 有時間,是否適合自...

可行性分析

可行性分析 1.專案概述 1 專案名稱 智慧型宿舍管理系統 2 專案團隊 齊魯工業大學飛漾團隊 3 專案人員 王剛,陳楓,常瑜,梅寒,李振,楊宗信 4 專案建設目標 解決大學生實際學習,生活中所遇到的問題 5 專案內容 智慧型宿舍管理系統採用刷卡進門,進門後自動供電,出門時刷卡斷電。既保證了宿舍安全...

專案可行性報告

不論是在國營企業還是外資企業,在決定上乙個新的產品,乙個新的產品線,或者建乙個新的工程時,總要提交乙份可行性報告供上級審批。國企的可行性報告 國企的可行性報告是為了說服上級領導並得到相應的批准和支援,並假定上級領導比他們自己更了解情況。而報告一旦被批准,上級領導就要承擔相應的責任。目的上的差別自然導...