hash(hash值 a, 上乙個區塊) = > hash值 b,以此為規則,根據交易次數傳遞下去可以實現區塊。
賬戶所有權問題
賬戶 < - 位址,json格式轉賬記錄
"付款位址 ": "da5dsa5g54rjk9"
"收款位址":「f8g75h3ht9rmh」
"金額" : "0.2btc"
乙個位址就是乙個賬戶,乙個位址有乙個私鑰,私鑰是怎麼產生的呢?rsa加密演算法,實現rsa加密演算法?
私鑰經過兩次雜湊運算可以得到賬戶位址,但是反過來就不行。
那麼問題是,賬戶所有者怎麼證明擁有這個賬戶,也就是說證明自己擁有這個私鑰,而又不洩露私鑰呢?通過非對稱
加密技術做交易簽名 。簽名過程:
hash(交易記錄) => 摘要
hash('
"收款位址":「dad34sdafg」
"金額" : "0.2btc"
') -> 8a9dg5f1jh7h87
sign("摘要","付款方位址(私鑰)") -> 簽名;(簽名函式實現過程?)
交易發生後,付款的節點會在整個網路中廣播,廣播內容包括交易記錄 + 簽名,節點傳遞廣播內容,其他節點驗證交易記錄。
節點驗證過程:
verify("簽名資訊","付款方位址(公鑰)") -> 摘要(verify函式實現?)
if(verify("簽名資訊","付款位址")
== hash('
"收款位址":「dad34sdafg」
"金額" : "0.2btc"
#寫入賬本(競爭記賬,挖礦)
#廣播else:
#do nothing
挖礦:記賬的節點會獲取位元幣獎勵,記賬獎勵的過程就是位元幣發行的過程、一次記賬獎勵12.5btc。位元幣10分鐘記賬一次
通過工作量證明競爭獲得唯一記賬權。其他節點複製記賬結果。
工作量證明:
hash(上乙個hash值,交易記錄集) = hash值
hash(上乙個hash值,交易記錄集,隨機數) = 滿足前18位是0的雜湊值。最新找打滿足條件的hash值的節點就獲得唯一記賬權(給自己挖礦獎勵的轉賬)。
共識機制:如果兩個節點同時完成工作量證明,使用誰的區塊?節點工作量只有在其他的節點認同才是有效的。
累計工作量最大的區塊鏈。(工作量怎麼度量?)
如果鏈出現分叉,會在廣播過程中發現最長的子鏈。
位元幣原理詳解
一 什麼是位元幣 位元幣是一種電子貨幣,是一種基於密碼學的貨幣,在2008年11月1日由中本聰發表位元幣 文中提出了一種去中心化的電子記賬系統,我們平時的電子現金是銀行來記賬,因為銀行的背後是國家信用。去中心化電子記賬系統是參與者共同記賬。位元幣可以防止主權危機 信用風險。其好處不多做贅述,這一層面...
位元幣原理一(四個問題)
一 賬本如何驗證 哪乙個賬本是有效的 假如有這樣乙個賬本 賬號收入 支出餘額 王二100 100張三 10030 李四120 90110 趙五300 600這樣的乙個賬本,分別存在於王 二 張三 李 四 趙五的電腦中。在這時可能有人會增加自己的餘額,比如張三偷偷把自己的餘額從30改為300,這樣網路...
一段程式看懂位元幣原理
自從位元幣火起來以後,網上對位元幣的解釋可謂汗牛充棟,紛繁複雜。但對於程式設計師來說,最直接的方式莫過於直接看程式 了。嫌位元幣 龐雜沒關係,我找到一段簡明扼要的 用來理解位元幣再好不過了。以下這段程式 知乎上wu hao的回答。function mine function sendbtc amou...