村長挖比特幣
㈠ 怎麼挖比特幣
先,需要找一個操作方便產出穩定的礦池,礦池的作用就是為各個終端細分數據包,可以通過精密的演算法將終端計算好的數據包按照比例,支付相應數量的比特幣。
賬號設置有一些注意點,電子郵件建議設定一個常用的。
然後就是最重要的礦工賬號設置了,礦工顯然指的就是CPU或者GPU,您需要為每一個CPU或GPU設定一個賬號,假設您有兩塊HD7990,就需要為4顆GPU設定4個不同的賬號。
賬號注冊完畢,就該第二步了,下載比特幣挖礦器,這里推薦小巧易用的GUIMiner,它能夠支持CPU、OepnCL、CUDA等多種計算模式,您的CPU和顯卡都能發揮出最大性能。
比特幣挖礦器GUIMiner還需要做一定的設置,界面改為中文後,就很簡單了。
設定無誤的話,點「開始挖礦」按鈕之後,顯卡很快就會進入全速運行狀態,溫度升高、風扇轉速提高,您也可以通過GPU-Z或顯卡驅動來監控狀態。
GUIMiner挖礦器顯示的運算能力只是理論值,想要知道比特幣實際產量,您需要登陸礦池網站也就是BTCGuild監控自己的賬戶信息。
現在我們假設大家已經挖到了好幾個比特幣,這些比特幣自然是存在了BTCGuild這個老外的網站裡面,暫時無法交易,也不能兌換成紙幣。
比特幣中國交易平台所提供的功能一目瞭然,大家一看就懂,所以就不多做介紹了,大家注冊後去慢慢研究下。
點擊比特幣中國交易平台的「比特幣充值」功能,系統會為您提供一個一次性的比特幣數字錢包地址,這個地址只能被充值一次(這是該平台出於安全性的考慮),充值成功後作廢,然後系統會給您提供另一個地址,記得每充值一次都要及時更新錢包地址,否則會導致充值失敗或丟失。
好了,現在我們就把顯卡挖出來的比特幣,從老外的網站導入了比特幣中國網站,然後怎麼處理這些比特幣,就全看您自己了。留著等升值、掛牌賣出換成人民幣花,都行。具體如何操作,這個中文網站很容易操作,大家慢慢研究吧。
最後再來介紹下此次做比特幣挖礦測試所使用的設備,起初筆者以為這只是一塊普通的HD7870,但運算能力確實比一般的HD7870強不少,關鍵是GUIMiner挖礦器將其識別為Tahiti核心,這是HD7900系列才有的核心,再一看GPU-Z,原來該卡擁有多達1536顆流處理器,一般Pitcairn核心的HD7870隻有1280顆流處理器,難怪迪蘭這塊顯卡的運算能力超強。
對於長時間掛機的朋友來說,性能並非最主要的,穩定性最關鍵。
㈡ 怎麼挖比特幣
挖礦步驟:
(1) 下載比特幣官方客戶端 點此下載比特幣官方客戶端
(2) 安裝好客戶端後,啟動客戶端,客戶端啟動後一般3分鍾內會開始同步網路數據,由於比特幣數據非常龐大,這可能需要若干個小時(根據網速和電腦性能決定)。圖為客戶端同步網路數據:
請保證你的C盤有10GB以上的剩餘空間,如果C盤空間不夠的話,需要將數據設置到D盤或E盤 點此查看將比特幣數據包放到D盤的方法
(3) 如果你的客戶端顯示的是英文,而你又對英文不太擅長,你可以把它設置成中文 點此查看設置比特幣客戶端為中文的方法
(4) 客戶端同步網路數據不會影響我們挖礦,我們先獲取我們的賬戶地址,點擊客戶端的「收款地址」按鈕,這時你看到的一串非常長的地址,類似,就是你的比特幣賬戶,比特幣賬戶地址是自動生成的、全世界唯一的地址。
(5) 你的賬戶里現在是0.00 BTC,意味著你還沒有比特幣,但你現在可以開始挖礦了,下載一個簡單易用的挖礦軟體CGMiner點此下載比特幣挖礦軟體CGMiner(CGMiner能挖比特幣以及大部分的貨幣,但並非所有貨幣的挖礦都能用CGMiner)
(6) 你需要確認你的顯卡型號,如果是nvidia顯卡,那麼就可以直接挖礦了,請跳過本步驟。如果是ATI顯卡,除了CGMiner你還需要安裝一個AMD SDK包 點此下載AMD SDK安裝包
(7) CGMiner是英文界面,不過這並不影響一個菜鳥來使用它,請將下載到的CGMiner解壓到電腦的任意地方,然後進入到CGMiner的文件夾。
(8) 在cgminer的文件夾裡面,新建一個文本文件(TXT),將內容代碼寫為:
cgminer -o http://pool.btc38.com:9332 -u XXXXXX -p btc38
將上面的XXXXXX修改為你的BTC錢包的賬戶地址(按照本教程第4條獲取你的地址),填寫以後如圖所示:
小編在上面的代碼中已經為您配置好了礦池和埠(該礦池是比特時代提供的完全免費的礦池),如果以後你想使用其它礦池和埠,請再自行修改礦池URL和埠。
(9) 將你剛才新建立的TXT文本文件的.txt後綴改為.bat後綴(如果你比較菜,文本文件後面不顯示後綴名而不會改文件名後綴,請點這里)。修改後,這個文件如圖所示:
(10) 然後雙擊運行上面的run.bat文件,就可以開始采礦了。你挖礦時產生的收益,比如你獲得了0.001個比特幣,會存放到你自己填寫的BTC地址中(由於現在這個階段BTC挖礦的難度非常大,你可能要等待一整天才會有BTC收益,挖礦時,電腦屏幕可能會有一些卡,是因為顯卡的資源絕大部分被佔用了)。圖為小編本人測試時挖到的比特幣:
(11) 你可能還想知道,挖礦的界面怎麼才能看得懂,下圖主要標識了你的速度和狀態:
註:實際上,比特幣挖礦的用戶數量非常龐大,而每10分鍾產出的比特幣又十分有限,因此挖礦的難度已經是非常非常大了,如果你擁有性能強勁的顯卡,那麼會有一定的收益,如果你的顯卡不好,那麼你可能需要耗費N個小時才可以獲得一點點比特幣,本教程由比特時代(btc38.com)編輯小天撰寫,目的是讓大家入門以及體驗比特幣,如果你希望通過挖礦獲得更好的收益,你需要進一步深入了解比特幣礦池和比特幣挖礦攻略。
4、比特幣礦池
如上文所說,比特幣挖礦的用戶數量非常龐大,而每10分鍾產出的比特幣又十分有限,形成了千萬人搶1個區塊的情況出現,所以,如果你用個人電腦單獨挖礦,有可能一整年也搶不到一個區塊,在這種情況下,人們就想出了一種組隊挖礦的方法,所謂的組隊挖礦,就是我們現在要講述的礦池(mining pool)。
礦池是一個通過特定演算法而設計的伺服器,所有連接到礦池伺服器的用戶,會組隊進行挖礦,個人電腦的性能雖然渺小,但是成千上萬的人進行組隊挖礦,總體性能就會變得十分強大,在這種情況,挖礦的成功率會大大提升,一旦礦池中的隊伍成功製造了一個區塊,那麼所有隊伍中的人會根據每個人的電腦性能進行分紅。比如:1000人在同一個礦池中挖礦,挖出一個區塊後,這個區塊產生的N個比特幣的報酬,會根據這1000個人的電腦性能進行分紅。如果你的電腦性能強勁,也許會分到100分之1,如果性能落後,也可能會分到10000分之1。
在這種情況,礦池的開發者一般會對每個用戶收取1%~3%的費用作為手續費,但由於這種方法讓大家更穩定得獲得比特幣,幾乎所有人都會選擇礦池挖礦,而不是單獨挖礦。
在上文挖礦教程中講到的比特時代免費提供的礦池,採用P2Pool技術架構,不向用戶收取任何費用,是主流礦池中的一個,另外還有BTC Guild和deepbit等礦池,人氣也是非常旺的。雖然每個礦池的設計都不太一樣,但是使用方法基本上是雷同並且簡單的,因此本教程不再做進一步的講述,大家可以自行摸索。即使小編在前面的教程中已經默認給大家配置了比特時代提供的礦池和埠,但為了讓大家對礦池有更深入的了解,這里再給大家介紹幾個主流的礦池供大家選擇:
比特礦池(免費,小編推薦) | BitCoin.CZ(適合新手) | BTC Guild(最老牌) | deepbit(穩定高效) | f2pool(國內)
㈢ 當初參與挖比特幣的中國人多嗎
當年比特幣紅火的時候,參與挖比特幣的中國人肯定還是有非常多的
㈣ 挖比特幣的成本是多少
比特幣礦機現在幾萬塊錢差不多就可以搞定,但是高昂的電費不是我們一般人能負擔的起的。現在挖礦的話不建議「比特幣」可以選擇一些其他幣種。
㈤ 挖比特幣犯法嗎
不違法。
《中國人民銀行
工業和信息化部
中國銀行業監督管理委員會
中國證券監督管理委員會
中國保險監督管理委員會關於防範比特幣風險的通知》(銀發〔2013〕289號)除明確比特幣的網路虛擬商品屬性外,《通知》主要明確了以下內容:
第一,明確要求現階段各金融機構和支付機構不得開展與比特幣相關的業務,不得以比特幣為產品或服務定價,不得買賣或作為中央對手買賣比特幣,不得承保與比特幣相關的保險業務或將比特幣納入保險責任范圍等。
第二,明確要求提供比特幣登記、交易等服務的互聯網站應當在電信管理機構備案,並切實履行反洗錢義務,對用戶身份進行識別、報告可疑交易。
第三,明確要求相關部門和金融機構、支付機構在日常工作中正確使用貨幣概念,注重加強對社會公眾貨幣知識的教育,將正確認識貨幣、正確看待虛擬商品和虛擬貨幣、理性投資、合理控制投資風險、維護自身財產安全等觀念納入金融知識普及活動的內容,引導社會公眾樹立正確的貨幣觀念和投資理念。
(5)村長挖比特幣擴展閱讀:
《通知》要求,現階段,各金融機構和支付機構不得以比特幣為產品或服務定價,不得買賣或作為中央對手買賣比特幣,不得承保與比特幣相關的保險業務或將比特幣納入保險責任范圍,不得直接或間接為客戶提供其他與比特幣相關的服務。
包括為客戶提供比特幣登記、交易、清算、結算等服務;接受比特幣或以比特幣作為支付結算工具;開展比特幣與人民幣及外幣的兌換服務;開展比特幣的儲存、託管、抵押等業務;發行與比特幣相關的金融產品;將比特幣作為信託、基金等投資的投資標的等。
《通知》規定,作為比特幣主要交易平台的比特幣互聯網站,應當根據《中華人民共和國電信條例》和《互聯網信息服務管理辦法》的規定,依法在電信管理機構備案。
同時,針對比特幣具有較高的洗錢風險和被犯罪分子利用的風險,《通知》要求相關機構按照《中華人民共和國反洗錢法》的要求,切實履行客戶身份識別、可疑交易報告等法定反洗錢義務,切實防範與比特幣相關的洗錢風險。
參考資料來源:
中國政府網-人民銀行等五部委發布關於防範比特幣風險的通知
中證網-央行等五部委發布《關於防範比特幣風險的通知》
㈥ 做比特幣挖礦機犯法嗎
截止至2020年7月24日,國家還沒發布任何的法律說明比特幣挖礦機違法。
比特幣挖礦機是獲取比特幣的方式之一。比特幣(Bitcoin)是一種由開源的P2P軟體產生的網路虛擬貨幣。
它不依靠特定貨幣機構發行,通過特定演算法的大量計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為。P2P的去中心化特性與演算法本身可以確保無法通過大量製造比特幣來人為操控幣值 。
(6)村長挖比特幣擴展閱讀
比特幣的發行和交易的完成是通過挖礦來實現的, 它以一個確定的但不斷減慢 的速率被鑄造出來。每一個新區塊都伴隨著一定數量從無到有的全新比特幣,它作為coinbase交易獎勵給找到區塊的礦工。
每個區塊的獎勵不是固定不變的 ,每開采210000個區塊,大約耗時4年,貨幣發行速率降低50%。在比特幣運行的第一個四年中,每個區塊創造出50個新比特幣。每個區塊創造出12.5個新比特幣。除了塊獎勵外,礦工還會得到區塊內所有交易的手續費 。
參考資料來源:網路-比特幣挖礦機
㈦ 以前有哪位高手用自己的電腦挖過比特幣,是怎麼挖的
現在省事了,不用挖了,比特幣關停了。
你的消息不靈通啊。
㈧ 挖比特幣犯法嗎
不犯法。
1、我國法律、行政法規並未禁止比特幣的生產、持有和合法流轉,也未禁止買賣比特幣礦機。
2、以比特幣為代表的「虛擬貨幣」投資及交易水漲船高,方興未艾。對於此類經互聯網技術發展後在互聯網環境中新生成的虛擬物品,相關交易存在政策與商業風險。但在在未違反法律、行政法規強制性規定前提下,當事人訂立的合同為有效合同。
3、比特幣由「礦工」「挖礦」生成,「礦工」可以由身處全世界任何地點的任何人擔任,「挖礦」是「礦工」根據設計者提供的開源軟體,提供一定的計算機算力,通過復雜的數學運算,求得方程式的特解的過程,求得特解的「礦工」得到特定數量的比特幣獎賞。
4、由於比特幣是基於工作量證明,與算力相關。要有算力,就得耗電,所以它的耗電量是很大的。也正因為有這么大的耗電量,才能保證比特幣系統的安全穩定運行。
(8)村長挖比特幣擴展閱讀:
據btc.com網站數據顯示,截至當前,整個比特幣網路算力約51.65 EH/s,通俗地說,這相當於184萬台比特大陸S15(算力28T,功率1596W)礦機在運行,一天耗電量約6992萬度。除以當前每天比特幣產量1800個幣,不計算其他成本,每個比特幣單電力就要消耗3.88萬度。」
由此看來,雖然當前比特幣價格昂貴,加密貨幣行情網站coinmarketcap.com顯示,目前單價約7900美元,但是開采一枚比特幣的成本一點也不低。
㈨ 比特幣現有價格
這篇文章不會涉及演算法和協議中比較細節的部分,打算後面會再寫一篇程序員視角下的比特幣原理,那裡會從技術人員的視角對比特幣系統中較為關鍵的數據結構、演算法和協議進行一些講解。
在這篇文章中我會給出一個虛擬的村莊叫「比特村」,整個文章會以講故事的方式,逐步告訴大家比特幣提出的動機、解決了什麼問題以及一些關鍵組件的目標和設計方案。
問題的提出
我們先從比特幣產生的動機開始。
以物易物的比特村
話說在這個世界上,有一個叫比特村的小村莊,村莊共有幾百戶人家。這個村莊幾乎與世隔絕,過著自給自足的生活。由於沒有大規模貿易,比特村村民一直過著以物易物的生活,也就是說村民之間並沒有使用統一的貨幣,互相間的貿易基本上就是老張家拿一袋麵粉換老李家一隻羊,王大嫂拿一筐野果換劉大嬸兩尺布。村民們一直就這么純朴的生活著。
實物貨幣
終於有一天,村民覺得一直這樣以物易物實在太不方便了,於是村子全員開會,討論如何解決這個問題。有人提議,以便於分割且稀有的東西,例如黃金,作為一般等價物,把其它物品和黃金的對應關系編成一張表格,例如一克黃金對應一隻羊,一克黃金對應一袋麵粉等等,此時老張再也不用扛著一袋麵粉氣喘吁吁的去老李家換羊了,他只要從家裡摸出一克金子,就可以去老李家牽回一隻羊,而老李拿著這一克黃金可以從任何願意出讓麵粉的人那裡換回一袋麵粉,當然也可以換取任何和一克黃金等值的物品。
此時比特村進入了實物貨幣時代。
符號貨幣
好景不長,過了一段時間,實物貨幣的弊端也出現了。因為比特村附近金礦並不多,開采和冶煉金子太費時費力了。而隨著使用,金子總是不斷會因為磨損、丟失或有人故意囤積而發生損耗。全村人又一次坐在了一起,開始商討對策。此時有人說,其實大家也不必一定要真的用黃金啊,隨便找張紙,寫上「一克黃金」,只要全村人都認同這張紙就等於一克黃金,問題不就解決了。其他人紛紛表示認同,但同時也有了新的問題:真實的黃金是需要開采和冶煉的,金礦有限,開采和冶煉也需要成本,所以沒有人可以短期憑空製造大量的黃金,可寫字就不同了,只要我紙夠筆夠,隨便像寫多少寫多少,那這就變成拼誰家裡紙多了,搞不好到時一萬張紙才能換一隻羊(實際上這就發生了經濟學上的通貨膨脹)。
大家一想也是啊。不過此時又有人提出了解決方案:這個紙不是誰寫都有效,我們只認村裡德高望重的老村長寫得,大家都認識老村長的字。老村長寫一些紙,同時按照各家黃金存量發給大家等量的紙,例如老張家有二百克黃金,老村長就發給老張二百張寫著「一克黃金」的紙,同時將老張家的黃金拿走作為抵押。就這樣,老村長將村裡所有黃金收歸到自己的家裡,並按各家上交的黃金數量發給等值的寫有字的紙。此時村民就可以拿著這些紙當黃金進行貿易了,而且大家都認得老村長的字,其他人偽造不出來。另外,如果誰的紙磨損太嚴重,也可拿到老村長那裡兌換新的等值的紙,另外老村長承諾任何人如果想要換成真黃金,只要拿紙回來,老村長就會把等值的黃金還給那人。因為老村長寫得紙的黃金量和真實放在家裡的黃金量是一樣的,所以只要嚴格按照銷毀多少紙新寫多少紙的原則,每一張有效的紙總能換回相應的真黃金。
此時,比特村進入了符號貨幣(紙幣)時代。而老村長就承擔了政府和銀行的角色。
中央系統虛擬貨幣
又過了幾年,老村長由於每天都要核對大量的舊紙幣,寫新的紙幣,還要把各種賬目仔細做好記錄。一來二去,老村長操勞過度不幸駕鶴西去了。
比特村再次召開全體大會,討論應該怎麼辦。此時老村長的兒子二狗子自告奮勇接過了父親的筆,承擔起貨幣發行的責任。這個年輕的村長二狗子很聰明,他做了幾天,發現好像也不用真的寫那麼多紙。完全可以這樣:村民把紙幣都交上來,銷毀,但是二狗子會記錄下每戶上交的紙幣數量。以後如果要進行付錢,例如老張要拿一克金子向老李換一隻羊,就一起給二狗子打個電話,說明要將老張名下的一克金子劃歸老李名下,二狗子拿出賬本,看看老張名下是否有一克金子,如果有就在老張的名下減掉一克,在老李的名下加上一克,這樣就完成了支付,此時老李在電話中聽到二狗子確認轉賬完成,就可以放心讓老張把羊牽走了。
此時比特村進入了中央系統虛擬貨幣時代。每個村民都不需要用實物支付,支付過程變成了二狗子那邊維護的賬本上數字的變更。
分布式虛擬貨幣
這新上任的二狗子是聰明,不過這人有時候是聰明反被聰明誤。有一天二狗子盯著這賬本,心想這全村各戶誰有多少錢就是我說的算,那我豈不是……。於是他頭腦一熱,私自從老張帳下劃了十克金子到自己名下。
本以為天衣無縫,但沒想到老張也有記賬的習慣,有一天他正要付錢卻被二狗子告知賬戶沒錢了。老張核對了一下自己的賬本,明明還有十克啊,於是拿著賬本去找二狗子理論,這一核對發現了那筆未經老張同意的轉賬。
東窗事發!比特村炸開鍋了。二狗子被彈劾是不可避免了,不過通過這件事,大家發現了賬本集中在一個人手裡的弊端:
這個體系完全依賴於賬本持有人的個人信用,如果這個人不守規矩,隨意篡改賬本,那麼整個貨幣系統就會崩潰
如果這個人家裡失火或者賬本失竊,同樣也會為整個體系帶來毀滅性的打擊
正當人們不知所措時,村裡一個叫中本聰的宅男科學家走上了台,告訴大家他已經設計了一套不依賴任何中央處理人的叫比特幣的虛擬貨幣系統,可以解決上述問題。然後他緩緩講述了自己的方案。
下面我們就來看看中本聰同學是如何設計這套系統的。
基礎設施搭建
賬簿公開機制
中本聰首先說明,要對現有賬簿進行如下改造:
賬簿上不再記載每戶村民的余額,而只記載每一筆交易。即記載每一筆交易的付款人、收款人和付款金額。只要賬簿的初始狀態確定,每一筆交易記錄可靠並有時序,當前每個人持有多少錢是可以推算出來的。
賬簿由私有改為公開,只要任何村民需要,都可以獲得當前完整的賬簿,賬簿上記錄了從賬簿創建開始到當前所有的交易記錄。
此言一出,下面立刻炸鍋了。第一條還無所謂,但是第二條簡直無法接受,因為賬簿可是記錄了所有村民的交易,這樣大家的隱私不全暴露了嗎。
中本聰倒是不慌不忙,拿出了一對奇怪的東西。
身份與簽名機制(公鑰加密系統)
中本聰說,大家不要慌。在他的這套機制下,任何人都不使用真實身份交易,而是使用一個唯一的代號交易。
他展示了手裡神奇的東西,說這兩件東西分別叫保密印章和印章掃描器。後面他會給村裡每一戶發一個保密印章和一個印章掃描器。兩者的作用如下:
保密印章可以在紙上蓋一個章,每個印章蓋出的章都隱含了一個全村唯一的一串字元,但是憑肉眼是看不出來的。也無法通過觀察來製造出相應的印章。
印章掃描器可以掃描某個已經蓋好的章,讀出隱含的信息,並在液晶屏上顯示出一串字元。
有了這兩個神奇的東西,大家就可以在不暴露真實身份的情況下進行交易了,而印章隱含的那一串字元就是這戶人家的代號。具體如何巧妙利用保密印章和印章掃描器進行交易,會在下文詳述。
成立虛擬礦工組織(挖礦群體)
下一步,中本聰面向全村招募虛擬礦工,招募要求如下:
礦工以組為單位,一組可以是單獨的一戶,也可以是幾戶聯合為一組
成為礦工不影響正常使用貨幣
礦工每天要花費一定時間從事比特幣「挖礦」活動,但是不同於挖金礦,虛擬礦工不需要拿著工具去野外作業,在家裡就可以完成工作
礦工有一定可能性獲得報酬,在挖礦活動中付出的努力越多,獲得報酬的可能性越大
礦工可以隨時退出,也可以隨時有新的礦工加進來
很快,大約有五分之一的村民加入比特幣礦工組織,共分成了7個組。
建立初始賬簿(創世塊)
下面,中本聰宣布,先根據二狗子手裡的賬簿,把抵押的所有黃金按賬簿記錄的余額退還給每位村民,然後徹底銷毀這本賬簿。
然後,中本聰拿出一本新賬簿,在賬簿的第一頁上記錄了一些交易記錄,特別的是,這些記錄的付款人一欄全都是「系統」,而收款人分別是每個印章對應的隱含字元,代表初始時刻,系統為每一戶默認分配了一定數量比特幣,但是數量非常少,都只有幾枚,甚至有些不幸的村戶沒有獲得比特幣。
接著中本聰說,由於目前市面上比特幣非常少,大家可以先回到用黃金做貨幣的時代,由於我不是村長,我也沒有權利強迫大家一定要承認比特幣,大家可以自行決定要不要接受比特幣。不過隨著比特幣的流動和礦工的活動,比特幣會慢慢多起來。
支付與交易
做了這么多鋪墊,終於說到重點了,下面說一下在這樣一個體系下如何完成支付。以老張付給老李10個比特幣為例。
付款人簽署交易單
為了支付10個比特幣,老張首先要詢問老李的標識字元串,例如是「ABCDEFG」,同時老張也有一個標識字元串例如是「HIJKLMN」,然後老張寫一張單子,內容為「HILKLMN支付10比特幣給ABCDEFG」,然後用自己的保密印章改一個章,將這張單子交給老李。另外為了便於追溯這筆錢的來源,還要在單子里註明這筆錢的來源記在哪一頁,例如這個單子里,老張的10比特幣來自建立賬簿時系統的贈送,記錄在賬簿第一頁。
收款人確認單據簽署人
老李拿到這個單子後,需要確認這個單子確實是來自「HIJKLMN」這個人(也就是老張)簽署的,這個並不困難。因為單子上必須有保密章,老李拿出印章掃描器,掃一下章,如果液晶屏顯示出的字元和付款人字元是一致的(這里是「HIJKLMN」),就可以確認單子確實是付款人簽署的。這是因為根據保密印章的機制,沒有其他人可以偽造印章,任何一個人只要掃描一下印章,都可以確認單子的付款人和蓋章人是否一致。
收款人確認付款人余額
這個系統到目前還是很有問題。通過保密印章,收款人雖然可以確認付款人確實簽署了這份單子,但是無法自行確認付款人是否有足夠的余額支付。之前的中央虛擬貨幣系統中,二狗子負責檢查付款人的余額,並通知收款人交易是否有效,現在把二狗子開了,誰來負責記賬和確認每筆交易的有效性呢?
之前說過,中本聰設計的這個系統是分布式貨幣系統,不依賴任何中央人物,所以不會有一個或少數幾個人負責這件事,最終承擔這份工作的是之前所提到的礦工組織。老張、老李和全村其他任何使用比特幣進行交易的村民都依賴礦工組織的工作才能完成交易。
礦工的工作
礦工的工作是整個系統的核心,也是最復雜性最高的地方。下面逐步介紹礦工的工作內容和目的。
礦工的工具
俗話說,工欲善其事,必先利其器。比特幣礦工雖然不用鐵撅、鐵杴和探照燈等工具,不過也要有一些必備的東西。
初始賬簿。每個組首先自己復制一份初始賬簿,初始賬簿只有一頁,記錄了系統的第一次贈送
空賬簿紙。每個小組有若干賬簿紙,每一頁紙上僅有賬簿結構,沒有填內容,具體內容的書寫規則後面講述。下面是一張空賬簿紙的樣子,各個欄位的意義後面會說到
編碼生成器(哈希函數)。中本聰又向礦工組織的每個組分發了若干編碼生成器,這個東西很神奇,將一頁賬簿填好內容的賬簿紙放入這個機器,機器會在賬簿紙的「本賬單編號」一欄自動列印一串由「0」和「1」組成的編號,共256個。最神奇的是,編號生成器有如下功能:
生成的編號僅與賬簿紙上填入的內容有關,與填寫人、字體、填寫時間等因素均無關
內容相同的賬簿紙生成的編號總是相同,但是如果內容哪怕只改一個字元,編號就會面目全非
編碼生成器在列印編碼時還需要將所有填入賬簿紙的交易單放入,機器會掃描交易單和填入交易單的一致性,尤其是保密印章,如果發現保密印章和付款人不一致,會拒絕列印編碼
將一張已列印的賬簿紙放入,機器會判定編號是否是有效的機器列印,並且判定編號和內容是否一致,這個編號無法偽造
交易單收件箱。每個礦工小組需要在門口掛一個箱子用於收集交易單。 公告板。每個礦工小組同樣需要一個公告板公示一些信息。
有了上面的工具,礦工組織就可以開工了!
收集交易單
中本聰規定,每筆交易的發起人,不但要將交易單給到收款人,還要同時復制若干份一模一樣的交易單投遞到每個礦工小組的收件箱里。
礦工小組的人定期到自己的收件箱里把收集到的交易單一並取出來。
填寫賬簿
此時小組的人拿出一張空的賬簿紙,把這些交易填寫到「交易清單」一欄,同時找到當前賬簿最後一頁,將最後一頁的編號抄寫到「上一張賬單編號一欄」。 注意還有個「幸運數字」,可以隨便填上一個數字,如12345。然後,將這樣賬簿紙放入編號生成器,列印好編號,一張賬簿就算完成了。
如果你以為礦工的工作就這么簡單,那就大錯特錯了,中本聰有個變態的規定:只有編號的前10個數均為0,這頁賬簿紙才算有效。
根據之前對編號生成器的描述,要修改編號,只能修改賬簿紙的內容,而「交易清單」和「上一張賬簿紙編號」是不能隨便改的,那麼只能改幸運數字了。於是為了生成有效的賬簿紙,小組里的礦工就不斷抄寫賬簿紙,但每張紙的幸運數字都不同,然後不斷的重復將紙放入編碼器,如果生成的編號不符合規定,這張紙就算廢了,重復這個過程直到生成一串有效的編號。
我們知道,如果編號的每一個數字都是隨機的,那麼平均寫1000多張幸運數字不同的紙才能獲得一個有效的編號。
這就奇怪了,這些礦工為什麼要拚命干這看似無意義的事情呢?還記得之前說過礦工有報酬吧,這就是礦工的動力了。中本聰規定:每一張賬簿紙的交易清單第一條交易為「系統給這個小組支付50個比特幣」。也就是說,如果你生成了一張有意義的賬簿紙,並且被所有挖礦小組接受了,那麼就意味著這條交易也被接受了,你的挖礦小組獲得了50個比特幣。
這就是礦工被叫做礦工的原因,也是為什麼之前說隨著交易和礦工的活動,比特幣的數量會不斷增多。例如下面是一個挖礦過程,這個小組的公共比特幣帳號為「UVWXYZ」。
在幸運數字嘗試到「533」時,系統生成了一頁有效賬簿。
確認賬簿
當某挖礦小組幸運的生成了一張有意義的賬簿,為了得到獎勵,必須立刻請其它小組確認自己的工作。前面說過,當前村裡有7個挖礦組,所以這個小組必須將有效賬簿紙謄抄6份快馬加鞭送到其他6個小組請求確認。
中本聰規定,當某個小組接到其他小組送來的賬簿紙時,必須立即停下手裡的挖礦工作進行賬簿確認。
需要確認的信息有三個:
賬簿的編號有效
賬簿的前一頁賬簿有效
交易清單有效
首先看第一個,這個確認比較簡單。只要將送來的賬簿紙放入編碼生成器進行驗證,如果驗證通過,則編號有效。
第二部分需要將賬簿頁上的「上一頁賬簿紙編號」和這個小組目前保存的有效賬簿最後一頁編號比對,如果相同則確認,如果不同,需要順著已有賬簿向前比對,直到找到這個編號的頁。如果沒有找到指定的「上一頁賬簿紙編號」對應的頁,這個小組會將此頁丟掉。不予確認。
注意,由上面的機制可以保證,如果各個小組手裡的賬簿紙是相同的,那麼他們都能按同樣的順序裝訂成相同的賬簿。因為後面一張紙的編號總是依賴前面的紙的編號,編碼生成器的機制保證了所有合法賬簿紙的相對先後順序在每個小組那裡都是相同的(可能會有分支,但不會出現環,後面細講)。
最後是如何確認交易清單有效,其實也就是要確認當前每筆交易的付款人有足夠的余額支付這筆錢。由於交易信息里包含這筆錢是如何來的,還包含了記錄來源交易的賬單編號。例如,HIJKLMN要給ABCDEFG10個比特幣,並註明了這10個比特幣來自之前OPQRST支付給HIJKLMN的一筆交易,確認時首先要確認之前這筆交易是否存在,同時還要檢查HIJKLMN在這之前沒有將這10個比特幣支付給別人。這一切確認後,這筆交易有效性就被確認了。
其中第一筆是系統獎勵給生成這頁賬簿的小組的50個,這筆交易大家都默認承認,後面的只要按照上述方法追溯,就可以確認HIJKLMN是否當前真有10個比特幣支付給ABCDEFG。
如果完成了所有了上述驗證並全部通過,這個小組就認可了上述賬簿紙有效,然後將這張賬簿紙並入小組的主賬簿,舍棄目前正在進行的工作,後面的挖礦工作會基於這本更新後的主賬本進行。
賬簿確認反饋
對於挖礦小組來說,當賬簿紙送出去後,如果後面有收到其他小組送來的賬簿紙,其「上一頁賬簿紙編號」為自己之前送出去的賬簿紙,那麼就表示他們的工作成功被其他小組認可了,因為已經有小組基於他們的賬簿紙繼續工作了。此時,可以粗略的說可以認為已經得到了50個比特幣。
另外,任何一個小組當新生成有效賬簿紙或確認了別的小組的賬簿紙時,就將最新被這個小組承認的交易寫到公告牌上,那麼收款人只要發現相關交易被各個小組認可了,基本就可以認為這筆錢已經到了自己的賬上,後面他就可以在付款時將錢的來源指向這筆交易了。
以上就是整個比特幣的支付體系。下面我們來分析一下,這個體系為什麼可以工作下去,以及這個體系可能面臨的風險。
工作機制分析
雖然上面闡述了比特幣的基本運作規則,但是村民們還是有不少疑問。所以中本聰同學專門開了個答疑會,解答常見問題。下面總結一下村民最集中關心的問題。
核心問題答疑
如果同時收到兩份合法的賬簿頁怎麼辦?
注意在上面的運行機制中,各個挖礦小組是並行工作的,因此完全可能出現這樣的情況:某小組收到兩份不一樣的賬簿頁,它們都基於當前這個小組的主賬簿的最後一頁,並且內容也都完全合法,怎麼辦?
關於這個問題,中本聰同學說,小組不應該以線性方式組織賬簿,而應該以樹狀組織賬簿,任何時刻,都以當前最長分支作為主賬簿,但是保留其它分支。舉個例子,某小組同時收到A、B兩份賬簿頁,經核算都是合法的,此時小組應該將兩頁以分叉的形式組織起來,如下圖所示:
黑色表示當前賬簿主幹。此時,可以隨便選擇一個頁作為當前主分支,例如選擇A:
此時如果有一個新的賬簿頁是基於A的,那麼這個主幹就延續下去:
如果這個主幹一直這么延續下去,表示大家基本都以A為主幹,B就會被遺忘。但是也有可能忽然B變成更長了:
那麼我們就需要將B分支作為當前主幹,基於這個分支進行後續工作。
從局部來看,雖然在某一時刻各個小組的賬簿主幹可能存在不一致,但大方向是一致的,那些偶爾由於不同步產生的小分支,會很快被淹沒在歷史中。
如果挖礦小組有人偽造賬簿怎麼辦
關於這個問題,中本聰同學說,只要挖礦組織中大多數人是誠實的,這個系統就可靠,具體分幾個方面給予答復。
首先,基於保密印章機制,沒有人能偽造他人身份進行付款,因為編碼生成器在列印編碼時會核對所有交易單的保密印章,印章和付款人不一致會拒絕列印。
而且誠實的礦工也不會承認不合法的交易(如某筆交易付款方余額不夠)。
所以只有一種可能的攻擊行為,即在收款人確認收款後,從另一條分支上建立另外的交易單,取消之前的付款,而將同一筆錢再次付款給另一個人(即所謂的double-spending問題)。下面同樣用一個例子說明這個問題。
先假設有一個攻擊者擁有10個比特幣,他准備將這筆錢同時支付給兩名受害者A和B,並都得到承認。
第一步,攻擊者准備從受害者A手裡買10比特幣的黃金,他簽署交易單給受害者A,轉10個比特幣給受害者A。
第二步,這筆交易在最新的賬簿頁中被確認,並被各個挖礦小組公告出來。受害人A看到公告,確認比特幣到賬,給了攻擊者10個比特幣等值的黃金。
第三步,攻擊者找到賬簿,從包含剛才交易的賬簿頁的前一頁做出一個分支,生成更多的賬單頁,超過剛才的分支。由於此時剛才攻擊者製造的分支變成了主幹分支,而包含受害者A得到錢的分支變成了旁支,因此挖礦組織不再承認剛才的轉賬,受害者A得到的10比特幣被取消了。
第四步,攻擊者可以再次簽署交易單,將同一筆錢支付給受害者B。受害者B確認錢到賬後,支付給攻擊者等值黃金。
至此,攻擊者將10個比特幣花了兩次,從兩名受害者那裡各購得等值黃金。攻擊者還可以如法炮製,取消與受害者B的轉賬,將同一筆錢再支付給其他人……
關於這種攻擊,中本聰給出的解決方案是,建議收款人不要在公告掛出時立即確認交易完成,而是應該再看一段時間,等待各個挖礦小組再掛出6張確認賬簿,並且之前的賬簿沒有被取消,才確認錢已到賬。
中本聰解釋道,之前設定變態的編號規則,正是為了防禦這一點。根據前面所述,生成有效賬簿頁不是那麼簡單的,要花費大量的人力反復試不同的幸運數字,而且過程完全是碰運氣。如果某賬簿頁包含你收到錢的確認,並且在後面又延續了6個,那麼攻擊者想要在落後6頁的情況下從另一個分支趕超當前主分支是非常困難的,除非攻擊者擁有非常多的人力,超過其他所有誠實礦工的人力之和。
而且,如果攻擊者有如此多人力,與其花這么大力氣搞這種攻擊,還不如做良民挖礦來的收益大。這就從動機上杜絕了攻擊的形成。
比特幣會一直增加下去,豈不是會嚴重通貨膨脹
中本聰說,這一點我也想到了。前面忘了說了,我給礦工組織的操作細則手冊會說明,剛開始我們協議每生成一頁賬簿,獎勵小組50個比特幣,後面,每當賬簿增加21,000頁,獎勵就減半,例如當達到210,000頁後,每生成一頁賬簿獎勵25個比特幣,420,000頁後,每生成一頁獎勵12.5個,依次類推,等賬簿達到6,930,000頁後,新生成賬簿頁就沒有獎勵了。此時比特幣全量約為21,000,000個,這就是比特幣的總量,所以不會無限增加下去。
沒有獎勵後,就沒人做礦工了,豈不是沒人幫忙確認交易了
到時,礦工的收益會由挖礦所得變為收取手續費。例如,你在轉賬時可以指定其中1%作為手續費支付給生成賬簿頁的小組,各個小組會挑選手續費高的交易單優先確認。
礦工如果越來越多,比特幣生成速度會變快嗎
不會。中本聰解釋,雖然可以任意加入和退出礦工組織,導致礦工人數變化,每個礦工也會拿到一個編碼生成器,不過我已經在編碼生成器中加入了調控機制,當前工作的編碼生成器越多,每個機器的效率就越低,保證新賬簿頁生成速率不變。
雖然每個人的代號是匿名的,但如果泄露了某個人的代號,賬簿又是公開的,豈不是他的所有賬目都查出來了
確實是這樣的。例如你要和某人交易,必然要要到他的代號才能填寫交易單。因為收款人一欄要填入那人的代號。不過中本聰說可以提供無限制的保密印章,建議每一次交易用不同的保密印章,這樣查賬簿就追查不到同一個人的所有賬目了。
答疑完畢。
說明
本文用通俗比喻的方式講解了比特幣的運行機制。有幾點需要說明:
為了便於理解,我做了很多簡化,因此有些機制細節和實際的比特幣可能不完全相同。但總體思想和關鍵原理是一致的。
由於很多計算機世界的東西(如公鑰體系、網路傳輸)在現實世界中並沒有特別好的對等物,所以故事裡難免有一些生硬和不合常理的細節。
本文描述的是比特幣網路本身的技術原理和運作機制,當在如Mtgox這種買賣市場中進行比特幣交易時,市場做了中間代理,並不遵從上述機制