粗略說一下bitcoin的安全機制铭若。
先理解所謂的比特幣挖礦是指什么冻晤。
比特幣是一個塊鏈(block chain)洲炊,每一次交易都會往塊鏈后加上新的交易記錄吨悍,這個交易記錄是以加密的hash形式發(fā)布到網(wǎng)絡定拟。為了讓這次的交易記錄被網(wǎng)絡中的其他人所認可于微,需要有網(wǎng)絡中的節(jié)點(挖礦者,miner))計算出這次交易的nonce數(shù)值青自。計算nonce是一個十分耗時間的過程株依,最終計算出來的節(jié)點將獲得獎勵,即比特幣延窜。
而比特幣挖礦算法的巧妙之處在于恋腕,由于人的逐利性,大量資源被投入進挖礦這一行為逆瑞,因此當有新的交易完成被發(fā)布到網(wǎng)絡上時荠藤,有許多節(jié)點在競爭計算出nonce數(shù)值,因而最終計算出這個交易的節(jié)點是不確定的获高,(除非某個節(jié)點擁有了世界上51%的挖礦資源)哈肖。而計算出nonce的難度是根據(jù)全世界的挖礦速度而進行調(diào)整的,保證比特幣的安全性念秧。
上面說的算法特點是針對double-spending攻擊牡彻,即一枚比特幣被花出去超過一次。
各個節(jié)點都默認最長的block chain為有效的鏈條出爹,并在后面續(xù)上新的交易。假設現(xiàn)有a節(jié)點想要對交易記錄進行更改缎除,a節(jié)點將不得不對已進行的交易進行耗時的計算過程严就,但在這一過程中,這筆交易記錄后又被接上多筆記錄器罐,則a節(jié)點成功偽造交易記錄的nonce值的概率將不斷縮小梢为,直至接近不可能。因此一般商家確認某筆交易是有效的判斷便是這筆交易后又被接上7個交易記錄轰坊。
文章參考了coursera上的bitcoin課程與維基铸董,解釋可能存在問題,如果有發(fā)現(xiàn)肴沫,謝謝指出粟害。