粗略說一下bitcoin的安全機制。
先理解所謂的比特幣挖礦是指什么。
比特幣是一個塊鏈(block chain),每一次交易都會往塊鏈后加上新的交易記錄,這個交易記錄是以加密的hash形式發布到網絡。為了讓這次的交易記錄被網絡中的其他人所認可,需要有網絡中的節點(挖礦者,miner))計算出這次交易的nonce數值。計算nonce是一個十分耗時間的過程,最終計算出來的節點將獲得獎勵,即比特幣。
而比特幣挖礦算法的巧妙之處在于,由于人的逐利性,大量資源被投入進挖礦這一行為,因此當有新的交易完成被發布到網絡上時,有許多節點在競爭計算出nonce數值,因而最終計算出這個交易的節點是不確定的,(除非某個節點擁有了世界上51%的挖礦資源)。而計算出nonce的難度是根據全世界的挖礦速度而進行調整的,保證比特幣的安全性。
上面說的算法特點是針對double-spending攻擊,即一枚比特幣被花出去超過一次。
各個節點都默認最長的block chain為有效的鏈條,并在后面續上新的交易。假設現有a節點想要對交易記錄進行更改,a節點將不得不對已進行的交易進行耗時的計算過程,但在這一過程中,這筆交易記錄后又被接上多筆記錄,則a節點成功偽造交易記錄的nonce值的概率將不斷縮小,直至接近不可能。因此一般商家確認某筆交易是有效的判斷便是這筆交易后又被接上7個交易記錄。
文章參考了coursera上的bitcoin課程與維基,解釋可能存在問題,如果有發現,謝謝指出。