比特幣挖礦經驗
家用電腦怎麼挖比特幣?近日比特幣又火熱了起來,很多朋友在了解了挖礦行業以及挖礦賺錢後,也想著挖礦,但是看著礦機太貴,也不想入手礦機,就想用家用電腦挖礦,但是不知道家用電腦挖礦一天收益多少,也不知道家用電腦挖礦傷電腦嗎?下面就為大家詳細的介紹一下,一起來看看吧!
首先了解一下,電腦是怎麼挖礦的,以比特幣挖礦舉個例子,假設你有一台能聯網的計算機,那麼你可以從比特幣官方網站下載一個比特幣挖礦的程序,你的電腦首次運行這個比特幣挖礦程序的時候會產生一個數字賬號,然後你只需要保持電腦的運行,這個比特幣挖礦程序就會一直不停地計算上一系列「數學題」,當你成功地計算完「一道數學 題」之後,就有可能得到一定數量的比特幣。
雖然看起來簡單,但是其實不然,家用電腦挖礦的限製取決於電腦的GPU、CPU、內存,現在挖礦的難度已經很大了,比特幣也減半了,所以很難挖礦了。如今挖礦都是相當耗錢的事,因為要配置專門的礦機才行,每台機器掛著6~8塊顯卡,以一台比較新的計算能力是13個T的礦機來計算,一天24小時運行,能挖出0.004549382個比特幣。而且這樣的礦機,只要數十台,每月的耗電量就會高達1萬度。
而且正常情況下,每台挖礦機400瓦功耗,你算算需要多少電費?
就現在的比特幣行情來說,雖然不是之前一萬美元的時候了,現在折半了幣值,也值3萬多人民幣一枚,那麼,如果用家用電腦挖礦,多久才能挖到一枚?
曾經有專業的比特幣挖礦玩家計算,如果使用家用電腦想要挖到一枚比特幣,至少需要800天以上連續工作挖礦才可以 ,單成本消耗可能就超過比特幣本身的價值。
不要以為一台幾千的電腦,800天換3萬挺劃算啊,其實你還要考慮你的電費,挖礦可不是待機,一天幾十塊錢的電費跑起來很容易,算起來,比特幣挖出來也就能賺個幾千塊錢,去掉電腦錢,好的情況下可能也就賺個一兩千塊錢吧。
更何況,考慮到設備成本損耗,專職挖幣很可能一個賠本買賣。值得一提的是,比特幣的價值其實有很大浮動,而且隨著國家對虛擬貨幣監管力度的加強,比特幣的應用前景充滿著不確定性。
❷ 怎麼挖礦獲得比特幣
(以小米手機8為例,基於安卓操作系統)
首先注冊一個數字錢包:在開始挖礦之前,需要注冊一個靠譜的數字錢包用來存儲你的挖礦成果,這里可以根據自己的需要使用一些支持手機端的錢包工具,不過一定要格外注意安全。目前最通用也最安全的數字錢包中,比較推薦使用火幣網的充幣地址做數字錢包。
接著完整注冊之後,在右上角找到充幣提幣,點擊進入。
最後這里找到需要挖的貨幣,點擊充幣,出現的一長串代碼就是你的錢包地址,將它輸入挖礦工具軟體中,挖礦收益就會定期存入你的火幣賬戶。
拓展資料:1、比特幣(Bitcoin)的概念最初由中本聰在2008年11月1日提出,並於2009年1月3日正式誕生 。根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。
比特幣是一種P2P形式的數字貨幣。比特幣的交易記錄公開透明 。點對點的傳輸意味著一個去中心化的支付系統。
2、與大多數貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。
3、P2P的去中心化特性與演算法本身可以確保無法通過大量製造比特幣來人為操控幣值。基於密碼學的設計可以使比特幣只能被真實的擁有者轉移或支付。這同樣確保了貨幣所有權與流通交易的匿名性。比特幣其總數量非常有限,具有稀缺性。該貨幣系統曾在4年內只有不超過1050萬個,之後的總數量將被永久限制在2100萬個 。
4、比特幣挖礦,就是用於賺取比特幣的電腦,這類電腦一般有專業的挖礦晶元,多採用燒顯卡的方式工作,耗電量較大。用戶用個人計算機下載軟體然後運行特定演算法,與遠方伺服器通訊後可得到相應比特幣,是獲取比特幣的方式之一。
❸ 比特幣怎麼挖礦
比特幣通過挖礦產生。每10分鍾,全網礦工一起計算一道算術題,誰先算出答案,就相當於挖到了這個區塊,該礦工便能獲得系統新生的比特幣獎勵。
在比特幣剛誕生的時候,通過計算機的CPU便可以挖礦。隨著挖礦的礦工越來越多,目前用CPU已經不能挖出比特幣了,大家開始用礦機挖礦。
如果你想挖礦,首先需要准備好礦機、比特幣地址、挖礦軟體等。但是目前比特幣網路算力太大,個人購置少量礦機也很難挖出區塊。很多礦工加入礦池一起挖礦,礦場只負責計算,礦池負責信息打包。
礦池挖到比特幣之後根據礦場的算力佔比分配收益,以此保證更加穩定的投入產出。
❹ 比特幣能用電腦挖礦挖出來具體要怎麼挖
用高性能電腦,控制一把或多把鋤頭(數量視電腦性能而定),在直接接地位置(無地基基礎),日夜工作不停開挖,運氣好即可獲得比特幣。
需要高速顯卡,大量電能!
主要是最近漲價了,比較貴,所以你買個好的銀勺子,比耳挖勺大點就行,一點點摳,先CPU再內存,慢慢挖...
首先,什麼是比特幣。簡單的來說,就是一種代幣,就象我們去游樂場玩,會花錢的那種 游戲 幣一樣。不過,不同的是,比特幣是去中心化的幣,它不由哪個主體來發行,而是依靠演算法來發布的一種虛擬代幣。
什麼是挖礦?因為比特幣是由演算法來發行的,它規定每20分鍾全世界加入該玩法的節點一起來算一道數學題。這個數學題沒有訣竅,只能依靠枚舉法,去試出來答案。系統會根據這20分鍾內大家總體的算力的佔比,按照同樣的概率來分配這個時段的比特幣獎勵歸屬。算力所佔比例越高,獲得獎勵的機會越多。
挖礦分為幾個階段。第一階段,依靠CPU就能拿到獎勵。那是因為參與挖礦的人非常少。第二階段,依靠硬碟就能挖礦。第三階段,使用GPU。第四階段,使用專門的礦機。目前,已經發展到第五階段,就是礦池,也就一個大集團把算力集合在一起,利用群體效應提升比特幣的獲取機率,然後再根據大家在礦池當中的算力進行分配,確保是只要礦池能拿到獎勵,人人都有份。
因此,在現在的礦圈,你想再依靠個人的力量進行挖礦,那就是徒勞。因為整個算力已經提升非常多,你個人力量在當中基本上是可微的。
據我所知 這東西就像做一個非常難的數學題 它的答案就是一個比特幣 當然 計算機的運算能力太慢了可不行
拿個小鏟,把電腦主機打開,從CPU開始挖
買個鋤頭,一鋤頭一鋤頭的挖,挖慢了就遭人家挖跑了。嘿嘿
❺ 比特幣挖礦,到底如何挖- 解析虛擬貨幣挖礦流程和原理
網路上有許多種加密貨幣在流通說到底是什麼意思?像是比特幣(Bitcoin)、以太幣(Ether)、瑞波幣(Ripple)等等,但大家最常聽到的還是非比特幣莫屬,可以說是全球的「礦工」們都在想盡辦法獲得它,許多人不只是把它看作是單純的熱潮跟風,甚至有些人將它視為資產在投資,比特幣同時也是造成目前全球顯示卡大缺貨的主因,全世界有無數的礦工、礦場無時無刻不在運作,他們大量購買顯卡,為得就是要搶在其他競爭對手前奪得先機。
然而,到底比特幣挖礦在挖什麼?如果現在想要進場挖礦會不會太晚?又要准備什麼硬體設備才能開始挖礦呢?
身為目前最火紅數位貨幣之一的比特幣,由於獲取難度高,且物以稀為貴的條件下,導致比特幣的相對價值非常高。在數位貨幣市場上,比特幣被當成一種「股票」操作,它可以用來當作保值品投資,也可以將其轉換成各國貨幣並存入現行銀行 帳戶 ,許多網路商店甚至支持直接使用比特幣購買商品。想要獲得比特幣的話,最直接快速的方法就是金錢購買,目前一個比特幣的價值大約等同於30萬左右,這是近一年來,價格最低的一段時間,想要直接用金錢購買比特幣加入這股數位貨幣風潮的話,現在或許是最好的時機。
購買比特幣的方法其實很簡單,首先需要先在網路上建立一個可以儲存比特幣的電子錢包,關於電子錢包的種類網路上十分多樣,本文我們將以「幣托」(BitoEX)為例說明。進入幣托首頁以後,直接點擊畫面中央的「免費申請」並輸入賬號和密碼建立電子錢包,完成信箱帳號認證以後你就會獲得一個專屬於你的電子錢包,登入後即可進入該電子錢包並瀏覽目前的余額,因為是剛申請的緣故,因此賬戶余額為零,這時候可以直接選擇「購買比特幣」功能開始交易。
不過此頁面中最重要的是信息其實是位於右上方的「錢包地址」,這不僅是在交易時會使用到,後續挖礦時也會使用這個錢包地址作為比特幣的儲存目標。
不過,由於比特幣單價價格昂貴,動輒二三十萬以上,如果不想要直接用金錢購買比特幣的話,另一個方法就是用挖礦的方式獲得了。
1.進入幣托網頁以後,點擊畫面中央的「免費申請」開始建立個人電子錢包。
2.輸入用來登入錢包的電子信箱以及密碼,建議使用強度高的各種符號或數字字母作為密碼組合。
3.完成步驟以後即可進入個人的電子錢包頁面,這里可以隨時關注自己錢包內的金額數量。
比特幣的發行有它自己的時間以及數量,大約每十分鍾會由代碼執行新比特幣的發行,並且授予給參與比特幣交易的某(群)人,因此,獲得新發行的比特幣就好比是獲得剛出土的金礦,所以才會將這些獲得比特幣的人比喻為礦工。而礦工們「挖礦」的動作在英文中稱為「mining」,這是一種比特幣使用者可以考慮、但是只有專業挖礦者才「有可能」獲取比特幣的方法。
想要開始挖礦的話,在開始之前有一些事前准備要做,包含硬體投入成本以及運作成本。
前者是指硬體的購入、安裝、電費、折舊、場地以及散熱等等;
而後者則是維持這些硬體持續運作,所需付出的成本。
兩者綜合以後,可以發現其實挖礦所需的成本非常龐大,這也就造成部分擁有大量資金成立挖礦專用硬體設備的以「出租」的方式來回收成本,這種挖礦模式被包裝成一種「商品」並在公開的網路市場上進行買賣,當挖到比特幣時,會依每位承租人的付出比例來分礦,這樣的挖礦模式也就是所謂的「雲端挖礦」。
開采比特幣的做法主要有三種,除了雲端挖礦外,還有「獨立挖礦」以及「合力挖礦」,不過由於目前的挖礦難度不斷提升,且有越來越多競爭者擠入,時至今日想要單靠自己的力量獨立挖到礦的可能已經不大,雖然一旦成功挖礦便可獨自獲得全部利益,但一般比較可行的做法是採用後者「合力挖礦」,也就是團隊挖礦的概念,挖到礦時全團依照每個人付出的比例來分礦。
由於挖礦難度與日俱增,個人想要藉由顯卡挖礦獲得比特幣難如登天。
擁有大量資本的礦工會租挖礦機,最後甚至會把挖礦機承租給其他人,藉此獲利。
雲端挖礦逐漸被塑造成一種金融商品,以月租或年租的方式收取承租費,挖到礦時再按比例分給承租人。
礦池 :早期比特幣還不興盛的時候,大部分人都用自己的電腦來挖礦,最早當然是用盡CPU的能力來運算,接著有人發現用顯示卡的GPU Stream Processors來計算會快更多,可是當大家紛紛投入挖礦以後,出現了很多為挖礦優化的設備,一般個人電腦根本拼不過,因此需要加入礦池(Mining Pool)來挖礦,由伺服器集合所有使用者的運算力量來挖,再由一定比例回饋使用者(礦工),才不會發生挖了老半天卻拼不過專業挖礦機,花了電費卻什麼都得不到的情形。
礦機 :由於顯卡雖然挖礦速度較快,但是顯示晶片原本並不是專門用於挖礦,因此用顯卡挖礦不僅很耗電而且發熱量又高,如果是3、4張顯卡所組成的挖礦電腦,更是耗電,最後計算起來很可能挖比特幣的收益都還不夠付電費呢!因此從2013年開始,挖比特幣的重心逐漸轉移到專業礦機上,這種礦機區分為兩大類型:
挖礦的過程並不復雜,只需要下載「挖礦程序」其實就能開始挖礦。網路上的挖礦軟體百百款,這里我們將以NiceHash Miner 這款軟體舉例說明。
首先,根據手上顯卡廠商下載對應的NiceHash Miner 版本並開啟軟體,在正式開始挖礦以前,有幾個步驟要先設定。
電子錢包頁面中最重要的信息就是錢包地址,這除了是比特幣買賣家交易時須使用的信息以外,同時也是挖礦時比特幣儲存的目標位址,點擊幣托頁面中的錢包地址後,就會獲得一串「未命名的錢包地址」,請復制這串數位碼並好好保存。
接下來在挖礦程序中點擊「錢包」(Wallet)選項,將剛剛復制的數位碼貼上後即可完成儲存目標設定。在左下方的「硬體信息」(Hardware Details)選項中,系統預設會找到你電腦使用的顯卡型號,也可以在這里開啟處理器加入挖礦的行列,可根據需求和喜好設定。
在「錢包」的選項中,貼上個人電子錢包位置,一旦挖到比特幣時便會儲存在該錢包中。
一切都准備就緒後,就可以按下中間的「開始挖礦」(Start),你的電腦會自動開啟命令執行視窗進行挖礦,不同的挖礦軟體無論每次挖礦的動作成功與否,都會釋出不同的通知指令,以NiceHash 為例,成功挖礦時視窗上將會出現的綠色的指令通知。但這時候軟體挖到的比特幣數額其實非常小,需要長時間連續不間斷的挖礦才能挖到完整一個比特幣。
每個軟體在挖礦時,顯示的通知不盡相同,NiceHash是以綠色文字提示挖到比特幣的通知信息。
根據挖礦的規模,每次成功挖礦時獲得的比特幣數額不同,需要長時間不間斷開挖才能獲得完整一個比特幣。
無論你是使用金錢直接購買,還是使用各種不同的挖礦模式,在獲得比特幣以後該如何使用它?首先你可以把它當成是一種投資品保存,由於全世界幾乎無時無刻都有人在進行比特幣交易,因此,它的幣值也在不斷波動,你可以在它未來價格漲到最高點時脫手賣出,以去年一整年最高的平均價格50多萬來看,現在一個比特幣大約是25萬,有可能可以獲得大於成本兩倍的獲利。
如果沒有打算將比特幣當作保值品來看的話,你可以到幣托或是MaiCoin 等網站里,將獲得的比特幣轉換成人民幣,換取現金到現行的銀行帳戶中供其他使用,如果不想換成人民幣的話,也可以將比特幣轉換成其他虛擬貨幣來持有;此外,目前網路上還有許多網站或服務是支持比特幣付款的。
其他還有很多網路零售商也支持買家使用比特幣在平台上購買商品,國外電子產品零售業龍頭之一的newegg 就是其中之一,它們和Bitpay 電子錢包合作,讓消費者可以在購買商品時,選擇使用比特幣進行支付。其他還有像是NASDAQ 的線上百貨零售商Overstock、紐約地產公司邦德紐約或是利用信用卡定世界各國旅館獲得比特幣現金回饋的PointHound 等等,種類非常多。
比特幣過去一年最高曾有突破50萬的可觀價值,將其視為一保值品也是不錯的選擇。
由於比特幣在全世界造成的熱潮至今還未間斷,無論是用團隊挖礦還是雲端挖礦模式,仍有許多比特幣使用者正在挖礦。在這樣的熱潮下,也間接導致了不少問題。
顯卡嚴重缺貨
首先最直接的問題就是顯卡,由於顯卡是礦工們最主要的挖礦工具,它們需要大量顯卡加快挖礦的速度,藉此搶在他人以前獲得比特幣,也導致目前無論是NVIDIA 還是AMD 顯卡在全球都出現缺貨的情形,同時也造成顯卡價格上漲,尤其是高階的顯卡問題更嚴重,常常會需要以比廠商建議售價高出許多的價格購買,也讓想要單買顯卡幫電腦升級的民眾購買困難。
挖礦的過程是將顯卡以及電腦的效能發揮到最極致,如果能成功獲得比特幣那也就罷了,更慘的就是不僅沒挖到礦,甚至還多花冤枉錢。挖礦的過程不僅需要隨時保持電腦主機的溫度,甚至主機還需要放在通風的室內運作來避免主機過熱,長時間連續挖礦下,對於顯卡的產品壽命也有害。
此外,挖礦過程中還必須考量到電費的問題,根據「比特幣能源消耗指數」報告的統計,比特幣在過去一年內挖礦的電力總消耗已累積達29.51兆瓦小時,約佔全球總電力消耗的0.13%,聽起來佔比不大,但該數字已經超過全球近160個國家一年的電力消耗,可見挖礦的耗電量有多大。雖然說比特幣確實有它的吸引力存在,但在通往致富的挖礦路上,礦工們仍要考慮許多成本付出的問題以及帶來的影響。
在零售商的網頁上,可以看到無論是NVIDIA還是AMD的顯卡,高階版本幾乎都為缺貨狀態。
挖礦的過程中,會大量耗費處理器和顯卡的性能,導致其溫度升高,降低其產品壽命。
根據統計,比特幣過去一年的耗電量已超過圖中黃色國家和地區的耗電量。
# 科技 日報#
❻ 挖礦怎麼挖到比特幣
比特幣作為一種網路虛擬貨幣,十分受歡迎,很多人都會去「挖」比特幣。今天就來介紹一下比特幣的挖礦教程。
第一步:准備礦機、礦池
想要挖到比特幣,就必須要准備專業的設備,目前市面上已經有不少專業礦機在出售,而礦池也是必不可少的,大家在選擇礦池的時候也要對比各個礦池的產出和收益差距,然後選擇最適合的一種礦池。
第二步:注冊礦池賬號並進行設置
准備好礦池後,就要注冊礦池賬號,要設定一個常用的電子郵件,而在設置礦工賬號的時候,每一個CPU或GPU都需要設定一個礦工賬號。
第三步:下載比特幣挖礦器
在注冊並設置完賬號後,就需要下載比特幣挖礦器,而在下載挖礦器的時候,一定要選擇能夠讓你的CPU和顯卡發揮出最大機能的挖礦器。 下載好之後,再設置伺服器、用戶名、密碼、設備等等。
第四步:進行挖礦
在設置好挖礦機之後,點擊「開始挖礦」按鈕,礦機會進入全速運行的狀態,挖礦器就會自動開始挖礦了。
❼ 如何自己挖礦(入比特幣)
第一步:准備礦機、礦池
想要挖到比特幣,就必須要准備專業的設備,目前市面上已經有不少專業礦機在出售,而礦池也是必不可少的,大家在選擇礦池的時候也要對比各個礦池的產出和收益差距,然後選擇最適合的一種礦池。
挖比特幣的電費成本:
挖比特幣是通過高力計算機特定的加密演算法來挖掘的,所以說挖比特幣的速度還是要看你計算機的算力。
自2018年7月起,數字幣市場持續低迷。比特幣價格從9000美元連續跌至6000美元關口。較年初19000美元關口下跌近60%。受比特幣等主流數字幣影響,整個數字幣市場的泡沫逐漸被擠破。如果按照每台礦機每月耗電1000度,每度電0.35元計算.
每100台礦機每月需繳納電費35000元,則礦工每月利潤僅為36100元,需要1年的時間才可收回購買礦機所需成本。受低迷行情影響,礦工的收入也急劇下降。按照30日內比特幣價格最高點8376美元計算,每100台礦機的挖礦收入銳減約42300元。
以上內容參考:
網路-比特幣
❽ 詳解比特幣挖礦原理
可以將區塊鏈看作一本記錄所有交易的公開總帳簿(列表),比特幣網路中的每個參與者都把它看作一本所有權的權威記錄。
比特幣沒有中心機構,幾乎所有的完整節點都有一份公共總帳的備份,這份總帳可以被視為認證過的記錄。
至今為止,在主幹區塊鏈上,沒有發生一起成功的攻擊,一次都沒有。
通過創造出新區塊,比特幣以一個確定的但不斷減慢的速率被鑄造出來。大約每十分鍾產生一個新區塊,每一個新區塊都伴隨著一定數量從無到有的全新比特幣。每開采210,000個塊,大約耗時4年,貨幣發行速率降低50%。
在2016年的某個時刻,在第420,000個區塊被「挖掘」出來之後降低到12.5比特幣/區塊。在第13,230,000個區塊(大概在2137年被挖出)之前,新幣的發行速度會以指數形式進行64次「二等分」。到那時每區塊發行比特幣數量變為比特幣的最小貨幣單位——1聰。最終,在經過1,344萬個區塊之後,所有的共20,999,999.9769億聰比特幣將全部發行完畢。換句話說, 到2140年左右,會存在接近2,100萬比特幣。在那之後,新的區塊不再包含比特幣獎勵,礦工的收益全部來自交易費。
在收到交易後,每一個節點都會在全網廣播前對這些交易進行校驗,並以接收時的相應順序,為有效的新交易建立一個池(交易池)。
每一個節點在校驗每一筆交易時,都需要對照一個長長的標准列表:
交易的語法和數據結構必須正確。
輸入與輸出列表都不能為空。
交易的位元組大小是小於MAX_BLOCK_SIZE的。
每一個輸出值,以及總量,必須在規定值的范圍內 (小於2,100萬個幣,大於0)。
沒有哈希等於0,N等於-1的輸入(coinbase交易不應當被中繼)。
nLockTime是小於或等於INT_MAX的。
交易的位元組大小是大於或等於100的。
交易中的簽名數量應小於簽名操作數量上限。
解鎖腳本(Sig)只能夠將數字壓入棧中,並且鎖定腳本(Pubkey)必須要符合isStandard的格式 (該格式將會拒絕非標准交易)。
池中或位於主分支區塊中的一個匹配交易必須是存在的。
對於每一個輸入,如果引用的輸出存在於池中任何的交易,該交易將被拒絕。
對於每一個輸入,在主分支和交易池中尋找引用的輸出交易。如果輸出交易缺少任何一個輸入,該交易將成為一個孤立的交易。如果與其匹配的交易還沒有出現在池中,那麼將被加入到孤立交易池中。
對於每一個輸入,如果引用的輸出交易是一個coinbase輸出,該輸入必須至少獲得COINBASE_MATURITY (100)個確認。
對於每一個輸入,引用的輸出是必須存在的,並且沒有被花費。
使用引用的輸出交易獲得輸入值,並檢查每一個輸入值和總值是否在規定值的范圍內 (小於2100萬個幣,大於0)。
如果輸入值的總和小於輸出值的總和,交易將被中止。
如果交易費用太低以至於無法進入一個空的區塊,交易將被拒絕。
每一個輸入的解鎖腳本必須依據相應輸出的鎖定腳本來驗證。
以下挖礦節點取名為 A挖礦節點
挖礦節點時刻監聽著傳播到比特幣網路的新區塊。而這些新加入的區塊對挖礦節點有著特殊的意義。礦工間的競爭以新區塊的傳播而結束,如同宣布誰是最後的贏家。對於礦工們來說,獲得一個新區塊意味著某個參與者贏了,而他們則輸了這場競爭。然而,一輪競爭的結束也代表著下一輪競爭的開始。
驗證交易後,比特幣節點會將這些交易添加到自己的內存池中。內存池也稱作交易池,用來暫存尚未被加入到區塊的交易記錄。
A節點需要為內存池中的每筆交易分配一個優先順序,並選擇較高優先順序的交易記錄來構建候選區塊。
一個交易想要成為「較高優先順序」,需滿足的條件:優先值大於57,600,000,這個值的生成依賴於3個參數:一個比特幣(即1億聰),年齡為一天(144個區塊),交易的大小為250個位元組:
High Priority > 100,000,000 satoshis * 144 blocks / 250 bytes = 57,600,000
區塊中用來存儲交易的前50K位元組是保留給較高優先順序交易的。 節點在填充這50K位元組的時候,會優先考慮這些最高優先順序的交易,不管它們是否包含了礦工費。這種機制使得高優先順序交易即便是零礦工費,也可以優先被處理。
然後,A挖礦節點會選出那些包含最小礦工費的交易,並按照「每千位元組礦工費」進行排序,優先選擇礦工費高的交易來填充剩下的區塊。
如區塊中仍有剩餘空間,A挖礦節點可以選擇那些不含礦工費的交易。有些礦工會竭盡全力將那些不含礦工費的交易整合到區塊中,而其他礦工也許會選擇忽略這些交易。
在區塊被填滿後,內存池中的剩餘交易會成為下一個區塊的候選交易。因為這些交易還留在內存池中,所以隨著新的區塊被加到鏈上,這些交易輸入時所引用UTXO的深度(即交易「塊齡」)也會隨著變大。由於交易的優先值取決於它交易輸入的「塊齡」,所以這個交易的優先值也就隨之增長了。最後,一個零礦工費交易的優先值就有可能會滿足高優先順序的門檻,被免費地打包進區塊。
UTXO(Unspent Transaction Output) : 每筆交易都有若干交易輸入,也就是資金來源,也都有若干筆交易輸出,也就是資金去向。一般來說,每一筆交易都要花費(spend)一筆輸入,產生一筆輸出,而其所產生的輸出,就是「未花費過的交易輸出」,也就是 UTXO。
塊齡:UTXO的「塊齡」是自該UTXO被記錄到區塊鏈為止所經歷過的區塊數,即這個UTXO在區塊鏈中的深度。
區塊中的第一筆交易是筆特殊交易,稱為創幣交易或者coinbase交易。這個交易是由挖礦節點構造並用來獎勵礦工們所做的貢獻的。假設此時一個區塊的獎勵是25比特幣,A挖礦的節點會創建「向A的地址支付25.1個比特幣(包含礦工費0.1個比特幣)」這樣一個交易,把生成交易的獎勵發送到自己的錢包。A挖出區塊獲得的獎勵金額是coinbase獎勵(25個全新的比特幣)和區塊中全部交易礦工費的總和。
A節點已經構建了一個候選區塊,那麼就輪到A的礦機對這個新區塊進行「挖掘」,求解工作量證明演算法以使這個區塊有效。比特幣挖礦過程使用的是SHA256哈希函數。
用最簡單的術語來說, 挖礦節點不斷重復進行嘗試,直到它找到的隨機調整數使得產生的哈希值低於某個特定的目標。 哈希函數的結果無法提前得知,也沒有能得到一個特定哈希值的模式。舉個例子,你一個人在屋裡打檯球,白球從A點到達B點,但是一個人推門進來看到白球在B點,卻無論如何是不知道如何從A到B的。哈希函數的這個特性意味著:得到哈希值的唯一方法是不斷的嘗試,每次隨機修改輸入,直到出現適當的哈希值。
需要以下參數
• block的版本 version
• 上一個block的hash值: prev_hash
• 需要寫入的交易記錄的hash樹的值: merkle_root
• 更新時間: ntime
• 當前難度: nbits
挖礦的過程就是找到x使得
SHA256(SHA256(version + prev_hash + merkle_root + ntime + nbits + x )) < TARGET
上式的x的范圍是0~2^32, TARGET可以根據當前難度求出的。
簡單打個比方,想像人們不斷扔一對色子以得到小於一個特定點數的游戲。第一局,目標是12。只要你不扔出兩個6,你就會贏。然後下一局目標為11。玩家只能扔10或更小的點數才能贏,不過也很簡單。假如幾局之後目標降低為了5。現在有一半機率以上扔出來的色子加起來點數會超過5,因此無效。隨著目標越來越小,要想贏的話,扔色子的次數會指數級的上升。最終當目標為2時(最小可能點數),只有一個人平均扔36次或2%扔的次數中,他才能贏。
如前所述,目標決定了難度,進而影響求解工作量證明演算法所需要的時間。那麼問題來了:為什麼這個難度值是可調整的?由誰來調整?如何調整?
比特幣的區塊平均每10分鍾生成一個。這就是比特幣的心跳,是貨幣發行速率和交易達成速度的基礎。不僅是在短期內,而是在幾十年內它都必須要保持恆定。在此期間,計算機性能將飛速提升。此外,參與挖礦的人和計算機也會不斷變化。為了能讓新區塊的保持10分鍾一個的產生速率,挖礦的難度必須根據這些變化進行調整。事實上,難度是一個動態的參數,會定期調整以達到每10分鍾一個新區塊的目標。簡單地說,難度被設定在,無論挖礦能力如何,新區塊產生速率都保持在10分鍾一個。
那麼,在一個完全去中心化的網路中,這樣的調整是如何做到的呢?難度的調整是在每個完整節點中獨立自動發生的。每2,016個區塊(2周產生的區塊)中的所有節點都會調整難度。難度的調整公式是由最新2,016個區塊的花費時長與20,160分鍾(兩周,即這些區塊以10分鍾一個速率所期望花費的時長)比較得出的。難度是根據實際時長與期望時長的比值進行相應調整的(或變難或變易)。簡單來說,如果網路發現區塊產生速率比10分鍾要快時會增加難度。如果發現比10分鍾慢時則降低難度。
為了防止難度的變化過快,每個周期的調整幅度必須小於一個因子(值為4)。如果要調整的幅度大於4倍,則按4倍調整。由於在下一個2,016區塊的周期不平衡的情況會繼續存在,所以進一步的難度調整會在下一周期進行。因此平衡哈希計算能力和難度的巨大差異有可能需要花費幾個2,016區塊周期才會完成。
舉個例子,當前A節點在挖277,316個區塊,A挖礦節點一旦完成計算,立刻將這個區塊發給它的所有相鄰節點。這些節點在接收並驗證這個新區塊後,也會繼續傳播此區塊。當這個新區塊在網路中擴散時,每個節點都會將它作為第277,316個區塊(父區塊為277,315)加到自身節點的區塊鏈副本中。當挖礦節點收到並驗證了這個新區塊後,它們會放棄之前對構建這個相同高度區塊的計算,並立即開始計算區塊鏈中下一個區塊的工作。
比特幣共識機制的第三步是通過網路中的每個節點獨立校驗每個新區塊。當新區塊在網路中傳播時,每一個節點在將它轉發到其節點之前,會進行一系列的測試去驗證它。這確保了只有有效的區塊會在網路中傳播。
每一個節點對每一個新區塊的獨立校驗,確保了礦工無法欺詐。在前面的章節中,我們看到了礦工們如何去記錄一筆交易,以獲得在此區塊中創造的新比特幣和交易費。為什麼礦工不為他們自己記錄一筆交易去獲得數以千計的比特幣?這是因為每一個節點根據相同的規則對區塊進行校驗。一個無效的coinbase交易將使整個區塊無效,這將導致該區塊被拒絕,因此,該交易就不會成為總賬的一部分。
比特幣去中心化的共識機制的最後一步是將區塊集合至有最大工作量證明的鏈中。一旦一個節點驗證了一個新的區塊,它將嘗試將新的區塊連接到到現存的區塊鏈,將它們組裝起來。
節點維護三種區塊:
· 第一種是連接到主鏈上的,
· 第二種是從主鏈上產生分支的(備用鏈),
· 第三種是在已知鏈中沒有找到已知父區塊的。
有時候,新區塊所延長的區塊鏈並不是主鏈,這一點我們將在下面「 區塊鏈分叉」中看到。
如果節點收到了一個有效的區塊,而在現有的區塊鏈中卻未找到它的父區塊,那麼這個區塊被認為是「孤塊」。孤塊會被保存在孤塊池中,直到它們的父區塊被節點收到。一旦收到了父區塊並且將其連接到現有區塊鏈上,節點就會將孤塊從孤塊池中取出,並且連接到它的父區塊,讓它作為區塊鏈的一部分。當兩個區塊在很短的時間間隔內被挖出來,節點有可能會以相反的順序接收到它們,這個時候孤塊現象就會出現。
選擇了最大難度的區塊鏈後,所有的節點最終在全網范圍內達成共識。隨著更多的工作量證明被添加到鏈中,鏈的暫時性差異最終會得到解決。挖礦節點通過「投票」來選擇它們想要延長的區塊鏈,當它們挖出一個新塊並且延長了一個鏈,新塊本身就代表它們的投票。
因為區塊鏈是去中心化的數據結構,所以不同副本之間不能總是保持一致。區塊有可能在不同時間到達不同節點,導致節點有不同的區塊鏈視角。解決的辦法是, 每一個節點總是選擇並嘗試延長代表累計了最大工作量證明的區塊鏈,也就是最長的或最大累計難度的鏈。
當有兩個候選區塊同時想要延長最長區塊鏈時,分叉事件就會發生。正常情況下,分叉發生在兩名礦工在較短的時間內,各自都算得了工作量證明解的時候。兩個礦工在各自的候選區塊一發現解,便立即傳播自己的「獲勝」區塊到網路中,先是傳播給鄰近的節點而後傳播到整個網路。每個收到有效區塊的節點都會將其並入並延長區塊鏈。如果該節點在隨後又收到了另一個候選區塊,而這個區塊又擁有同樣父區塊,那麼節點會將這個區塊連接到候選鏈上。其結果是,一些節點收到了一個候選區塊,而另一些節點收到了另一個候選區塊,這時兩個不同版本的區塊鏈就出現了。
分叉之前
分叉開始
我們看到兩個礦工幾乎同時挖到了兩個不同的區塊。為了便於跟蹤這個分叉事件,我們設定有一個被標記為紅色的、來自加拿大的區塊,還有一個被標記為綠色的、來自澳大利亞的區塊。
假設有這樣一種情況,一個在加拿大的礦工發現了「紅色」區塊的工作量證明解,在「藍色」的父區塊上延長了塊鏈。幾乎同一時刻,一個澳大利亞的礦工找到了「綠色」區塊的解,也延長了「藍色」區塊。那麼現在我們就有了兩個區塊:一個是源於加拿大的「紅色」區塊;另一個是源於澳大利亞的「綠色」。這兩個區塊都是有效的,均包含有效的工作量證明解並延長同一個父區塊。這個兩個區塊可能包含了幾乎相同的交易,只是在交易的排序上有些許不同。
比特幣網路中鄰近(網路拓撲上的鄰近,而非地理上的)加拿大的節點會首先收到「紅色」區塊,並建立一個最大累計難度的區塊,「紅色」區塊為這個鏈的最後一個區塊(藍色-紅色),同時忽略晚一些到達的「綠色」區塊。相比之下,離澳大利亞更近的節點會判定「綠色」區塊勝出,並以它為最後一個區塊來延長區塊鏈(藍色-綠色),忽略晚幾秒到達的「紅色」區塊。那些首先收到「紅色」區塊的節點,會即刻以這個區塊為父區塊來產生新的候選區塊,並嘗試尋找這個候選區塊的工作量證明解。同樣地,接受「綠色」區塊的節點會以這個區塊為鏈的頂點開始生成新塊,延長這個鏈。
分叉問題幾乎總是在一個區塊內就被解決了。網路中的一部分算力專注於「紅色」區塊為父區塊,在其之上建立新的區塊;另一部分算力則專注在「綠色」區塊上。即便算力在這兩個陣營中平均分配,也總有一個陣營搶在另一個陣營前發現工作量證明解並將其傳播出去。在這個例子中我們可以打個比方,假如工作在「綠色」區塊上的礦工找到了一個「粉色」區塊延長了區塊鏈(藍色-綠色-粉色),他們會立刻傳播這個新區塊,整個網路會都會認為這個區塊是有效的,如上圖所示。
所有在上一輪選擇「綠色」區塊為勝出者的節點會直接將這條鏈延長一個區塊。然而,那些選擇「紅色」區塊為勝出者的節點現在會看到兩個鏈: 「藍色-綠色-粉色」和「藍色-紅色」。 如上圖所示,這些節點會根據結果將 「藍色-綠色-粉色」 這條鏈設置為主鏈,將 「藍色-紅色」 這條鏈設置為備用鏈。 這些節點接納了新的更長的鏈,被迫改變了原有對區塊鏈的觀點,這就叫做鏈的重新共識 。因為「紅」區塊做為父區塊已經不在最長鏈上,導致了他們的候選區塊已經成為了「孤塊」,所以現在任何原本想要在「藍色-紅色」鏈上延長區塊鏈的礦工都會停下來。全網將 「藍色-綠色-粉色」 這條鏈識別為主鏈,「粉色」區塊為這條鏈的最後一個區塊。全部礦工立刻將他們產生的候選區塊的父區塊切換為「粉色」,來延長「藍色-綠色-粉色」這條鏈。
從理論上來說,兩個區塊的分叉是有可能的,這種情況發生在因先前分叉而相互對立起來的礦工,又幾乎同時發現了兩個不同區塊的解。然而,這種情況發生的幾率是很低的。單區塊分叉每周都會發生,而雙塊分叉則非常罕見。
比特幣將區塊間隔設計為10分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易清算更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,更長的間隔會減少分叉數量,卻會導致更長的清算時間。
❾ 跪求比特幣挖礦攻略誰知道
先准備個數字錢包,然後上世鏈礦業買一台好用的礦機,最後下載一個挖礦軟體,按照網上的步驟進行就可以了。最關鍵的還是買礦機這部分,一台好的礦機就已經事半功倍了⋅▫。
❿ 比特幣之挖礦與共識(二)
比特幣共識機制的第三步是通過網路中的每個節點獨立校驗每個新區塊。當新區塊在網路中傳播時,每一個節點在將它 轉發到其節點之前,會進行一系列的測試去驗證它。這確保了只有有效的區塊會在網路中傳播。
獨立校驗還確保了誠實 的礦工生成的區塊可以被納入到區塊鏈中,從而獲得獎勵。行為不誠實的礦工所產生的區塊將被拒絕,這不但使他們失 去了獎勵,而且也浪費了本來可以去尋找工作量證明解的機會,因而導致其電費虧損。
當一個節點接收到一個新的區塊,它將對照一個長長的標准清單對該區塊進行驗證,若沒有通過驗證,這個區塊將被拒 絕。這些標准可以在比特幣核心客戶端的CheckBlock函數和CheckBlockHead函數中獲得
它包括:
為什麼礦工不為他們自己記錄一筆交易去獲得數以千計的比特幣?
這 是因為每一個節點根據相同的規則對區塊進行校驗。一個無效的coinbase交易將使整個區塊無效,這將導致該區塊被拒 絕,因此,該交易就不會成為總賬的一部分。礦工們必須構建一個完美的區塊,基於所有節點共享的規則,並且根據正 確工作量證明的解決方案進行挖礦,他們要花費大量的電力挖礦才能做到這一點。如果他們作弊,所有的電力和努力都 會浪費。這就是為什麼獨立校驗是去中心化共識的重要組成部分。
比特幣去中心化的共識機制的最後一步是將區塊集合至有最大工作量證明的鏈中。一旦一個節點驗證了一個新的區塊, 它將嘗試將新的區塊連接到到現存的區塊鏈,將它們組裝起來。
節點維護三種區塊:第一種是連接到主鏈上的,第二種是從主鏈上產生分支的(備用鏈),最後一種是在已知鏈中沒有 找到已知父區塊的。在驗證過程中,一旦發現有不符合標準的地方,驗證就會失敗,這樣區塊會被節點拒絕,所以也不 會加入到任何一條鏈中。
任何時候,主鏈都是累計了最多難度的區塊鏈。在一般情況下,主鏈也是包含最多區塊的那個鏈,除非有兩個等長的鏈 並且其中一個有更多的工作量證明。主鏈也會有一些分支,這些分支中的區塊與主鏈上的區塊互為「兄弟」區塊。這些區 塊是有效的,但不是主鏈的一部分。 保留這些分支的目的是如果在未來的某個時刻它們中的一個延長了並在難度值上超 過了主鏈,那麼後續的區塊就會引用它們。
如果節點收到了一個有效的區塊,而在現有的區塊鏈中卻未找到它的父區塊,那麼這個區塊被認為是「孤塊」。孤塊會被 保存在孤塊池中,直到它們的父區塊被節點收到。一旦收到了父區塊並且將其連接到現有區塊鏈上,節點就會將孤塊從 孤塊池中取出,並且連接到它的父區塊,讓它作為區塊鏈的一部分。當兩個區塊在很短的時間間隔內被挖出來,節點有 可能會以相反的順序接收到它們,這個時候孤塊現象就會出現。
選擇了最大難度的區塊鏈後,所有的節點最終在全網范圍內達成共識。隨著更多的工作量證明被添加到鏈中,鏈的暫時性差異最終會得到解決。挖礦節點通過「投票」來選擇它們想要延長的區塊鏈,當它們挖出一個新塊並且延長了一個鏈, 新塊本身就代表它們的投票。
因為區塊鏈是去中心化的數據結構,所以不同副本之間不能總是保持一致。區塊有可能在不同時間到達不同節點,導致節點有不同的區塊鏈全貌。
解決的辦法是,每一個節點總是選擇並嘗試延長代表累計了最大工作量證明的區塊鏈,也就 是最長的或最大累計工作的鏈(greatest cumulative work chain)。節點通過累加鏈上的每個區塊的工作量,得到建立這個鏈所要付出的工作量證明的總量。只要所有的節點選擇最長累計工作的區塊鏈,整個比特幣網路最終會收斂到一致的狀態。分叉即在不同區塊鏈間發生的臨時差異,當更多的區塊添加到了某個分叉中,這個問題便會迎刃而解。
提示由於全球網路中的傳輸延遲,本節中描述的區塊鏈分叉自動會發生。
然而,倒三角形的區塊不會被丟棄。它被鏈接到星形鏈的父區塊,並形成備用鏈。雖然節點X認為自己已經正確選擇了獲勝鏈,但是它還會保存「丟失」鏈,使得「丟失」鏈如果可能最終「獲勝」,它還具有重新打包的所需的信息。
這是一個鏈的重新共識,因為這些節點被迫修改他們對塊鏈的立場,把自己納入更長的鏈。任何從事延伸星形-倒三角形的礦工現在都將停止這項工作,因為他們的候選人是「孤兒」,因為他們的父母「倒三角形」不再是最長的連鎖。
「倒三角形」內的交易重新插入到內存池中用來包含在下一個塊中,因為它們所在的塊不再位於主鏈中。
整個網路重新回到單一鏈狀態,星形-三角形-菱形,「菱形」成為鏈中的最後一個塊。所有礦工立即開始研究以「菱形」為父區塊的候選塊,以擴展這條星形-三角形-菱形鏈。
從理論上來說,兩個區塊的分叉是有可能的,這種情況發生在因先前分叉而相互對立起來的礦工,又幾乎同時發現了兩個不同區塊的解。
然而,這種情況發生的幾率是很低的。單區塊分叉每周都會發生,而雙塊分叉則非常罕見。比特幣將區塊間隔設計為10分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易清算更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,更長的間隔會減少分叉數量,卻會導致更長的清算時間。
2012年以來,比特幣挖礦發展出一個解決區塊頭基本結構限制的方案。在比特幣的早期,礦工可以通過遍歷隨機數 (Nonce)獲得符合要求的hash來挖出一個塊。
難度增長後,礦工經常在嘗試了40億個值後仍然沒有出塊。然而,這很容 易通過讀取塊的時間戳並計算經過的時間來解決。因為時間戳是區塊頭的一部分,它的變化可以讓礦工用不同的隨機值 再次遍歷。當挖礦硬體的速度達到了4GH/秒,這種方法變得越來越困難,因為隨機數的取值在一秒內就被用盡了。
當出現ASIC礦機並很快達到了TH/秒的hash速率後,挖礦軟體為了找到有效的塊, 需要更多的空間來儲存nonce值 。可以把時間戳延後一點,但將來如果把它移動得太遠,會導致區塊變為無效。
區塊頭需要信息來源的一個新的「變革」。解決方案是使用coinbase交易作為額外的隨機值來源,因為coinbase腳本可以儲存2-100位元組的數據,礦工們開始使用這個空間作為額外隨機值的來源,允許他們去探索一個大得多的區塊頭值范圍來找到有效的塊。這個coinbase交易包含在merkle樹中,這意味著任何coinbase腳本的變化將導致Merkle根的變化。
8個位元組的額外隨機數,加上4個位元組的「標准」隨機數,允許礦工每秒嘗試2^96(8後面跟28個零)種可能性而無需修改時間戳。如果未來礦工穿過了以上所有的可能性,他們還可以通過修改時間戳來解決。同樣,coinbase腳本中也有更多額外的空間可以為將來隨機數的擴展做准備。
比特幣的共識機制指的是,被礦工(或礦池)試圖使用自己的算力實行欺騙或破壞的難度很大,至少理論上是這樣。就像我們前面講的,比特幣的共識機制依賴於這樣一個前提,那就是絕大多數的礦工,出於自己利益最大化的考慮,都會 通過誠實地挖礦來維持整個比特幣系統。然而,當一個或者一群擁有了整個系統中大量算力的礦工出現之後,他們就可以通過攻擊比特幣的共識機制來達到破壞比特幣網路的安全性和可靠性的目的。
值得注意的是,共識攻擊只能影響整個區塊鏈未來的共識,或者說,最多能影響不久的過去幾個區塊的共識(最多影響過去10個塊)。而且隨著時間的推移,整個比特幣塊鏈被篡改的可能性越來越低。
理論上,一個區塊鏈分叉可以變得很長,但實際上,要想實現一個非常長的區塊鏈分叉需要的算力非常非常大,隨著整個比特幣區塊鏈逐漸增長,過去的區塊基本可以認為是無法被分叉篡改的。
同時,共識攻擊也不會影響用戶的私鑰以及加密演算法(ECDSA)。
共識攻擊也 不能從其他的錢包那裡偷到比特幣、不簽名地支付比特幣、重新分配比特幣、改變過去的交易或者改變比特幣持有紀錄。共識攻擊能夠造成的唯一影響是影響最近的區塊(最多10個)並且通過拒絕服務來影響未來區塊的生成。
共識攻擊的一個典型場景就是「51%攻擊」。想像這么一個場景,一群礦工控制了整個比特幣網路51%的算力,他們聯合起來打算攻擊整個比特幣系統。由於這群礦工可以生成絕大多數的塊,他們就可以通過故意製造塊鏈分叉來實現「雙重支 付」或者通過拒絕服務的方式來阻止特定的交易或者攻擊特定的錢包地址。
區塊鏈分叉/雙重支付攻擊指的是攻擊者通過 不承認最近的某個交易,並在這個交易之前重構新的塊,從而生成新的分叉,繼而實現雙重支付。有了充足算力的保證,一個攻擊者可以一次性篡改最近的6個或者更多的區塊,從而使得這些區塊包含的本應無法篡改的交易消失。
值得注意的是,雙重支付只能在攻擊者擁有的錢包所發生的交易上進行,因為只有錢包的擁有者才能生成一個合法的簽名用於雙重支付交易。攻擊者在自己的交易上進行雙重支付攻擊,如果可以通過使交易無效而實現對於不可逆轉的購買行為不予付款, 這種攻擊就是有利可圖的。
攻擊者Mallory在Carol的畫廊買了描繪偉大的中本聰的三聯組畫(The Great Fire),Mallory通過轉賬價值25萬美金的比特幣 與Carol進行交易。在等到一個而不是六個交易確認之後,Carol放心地將這幅組畫包好,交給了Mallory。這時,Mallory 的一個同夥,一個擁有大量算力的礦池的人Paul,在這筆交易寫進區塊鏈的時候,開始了51%攻擊。
首先,Paul利用自己礦池的算力重新計算包含這筆交易的塊,並且在新塊里將原來的交易替換成了另外一筆交易(比如直接轉給了Mallory 的另一個錢包而不是Carol的),從而實現了「雙重支付」。這筆「雙重支付」交易使用了跟原有交易一致的UTXO,但收款人被替換成了Mallory的錢包地址。
然後,Paul利用礦池在偽造的塊的基礎上,又計算出一個更新的塊,這樣,包含這 筆「雙重支付」交易的塊鏈比原有的塊鏈高出了一個塊。到此,高度更高的分叉區塊鏈取代了原有的區塊鏈,「雙重支付」交 易取代了原來給Carol的交易,Carol既沒有收到價值25萬美金的比特幣,原本擁有的三幅價值連城的畫也被Mallory白白 拿走了。
在整個過程中,Paul礦池裡的其他礦工可能自始至終都沒有覺察到這筆「雙重支付」交易有什麼異樣,因為挖礦程序都是自動在運行,並且不會時時監控每一個區塊中的每一筆交易。
為了避免這類攻擊,售賣大宗商品的商家應該在交易得到全網的6個確認之後再交付商品。或者,商家應該使用第三方 的多方簽名的賬戶進行交易,並且也要等到交易賬戶獲得全網多個確認之後再交付商品。一條交易的確認數越多,越難 被攻擊者通過51%攻擊篡改。
對於大宗商品的交易,即使在付款24小時之後再發貨,對買賣雙方來說使用比特幣支付也 是方便並且有效率的。而24小時之後,這筆交易的全網確認數將達到至少144個(能有效降低被51%攻擊的可能性)。
需要注意的是,51%攻擊並不是像它的命名里說的那樣,攻擊者需要至少51%的算力才能發起,實際上,即使其擁有不 到51%的系統算力,依然可以嘗試發起這種攻擊。之所以命名為51%攻擊,只是因為在攻擊者的算力達到51%這個閾值 的時候,其發起的攻擊嘗試幾乎肯定會成功。
本質上來看,共識攻擊,就像是系統中所有礦工的算力被分成了兩組,一 組為誠實算力,一組為攻擊者算力,兩組人都在爭先恐後地計算塊鏈上的新塊,只是攻擊者算力算出來的是精心構造 的、包含或者剔除了某些交易的塊。因此,攻擊者擁有的算力越少,在這場決逐中獲勝的可能性就越小。
從另一個角度 講,一個攻擊者擁有的算力越多,其故意創造的分叉塊鏈就可能越長,可能被篡改的最近的塊或者或者受其控制的未來 的塊就會越多。一些安全研究組織利用統計模型得出的結論是,算力達到全網的30%就足以發動51%攻擊了。全網算力的急劇增長已經使得比特幣系統不再可能被某一個礦工攻擊,因為一個礦工已經不可能占據全網哪怕的1%算 力。
待補充
待補充