2014年9月27日星期六

比特幣(英語:Bitcoin)一種加密電子貨幣

位元幣
位元幣用戶端程式中常見的標識
位元幣用戶端程式中常見的標識
使用地全球
通脹率有限發行(按照等比數列,發行速度每4年減半,直到2140年,總量接近2100萬)
單位
1位元幣(Bitcoins,BTC)
10−2位元分(Bitcent,cBTC)
10−3毫位元(Milli-Bitcoins,mBTC)
10−6微位元(Micro-Bitcoins,μBTC)
10−8聰(satoshi)[1]
符號
BTC、XBT[2]BitcoinSign.svg、฿[3][4]
位元幣英語Bitcoin),是一種全球通用的共識主動性加密電子貨幣[5][6][7][8]
位元幣也是一種對等網路支付系統和虛擬計價工具[9],被一些人稱為數位貨幣,最早在2009年由化名的開發者中本聰開源軟體形式推出。由於其採用密碼技術來控制貨幣的生產和轉移,因此位元幣也被認為是一種加密電子貨幣(Cryptocurrency)[10][11]。在一般情況下,首字大寫的「Bitcoin」是指其所使用的科技網路,而首字小寫的「bitcoin」才是指貨幣本身[12]
位元幣是經由一種稱為「挖礦」的過程產生,參與者透過處理交易驗證和記錄來獲取作為手續費的位元幣,或取得新產出的位元幣[13]。使用者利用個人電腦、行動裝置或網路上的電子錢包軟體來交易位元幣。位元幣可經由挖礦取得,也可用來交換貨物、服務,以及其他貨幣[14]
因為位元幣不具備貨幣的一些基本屬性:可靠性、穩定性、可控性、來源唯一性。在實行貨幣職能的時候:價值尺度、流通、貯藏、支付又存在極大風險。所以位元幣不應該被當作貨幣來使用。位元幣的使用給全人類社會的財產安全帶來了極大的隱患。

概念[編輯]



作為記賬系統,位元幣不由中央發行機構發行新錢、維護交易,這些工作由網路合作完成,由數位加密演算法保證交易安全。交易記錄以被全體網路電腦收錄維護。在每筆交易前,錢幣的有效性都必須經過檢驗確認。
作為記賬單位,位元幣的最小單位是 0.00000001 位元幣,稱為1「聰」。如有必要,也可以修改協定將其分割為更小的單位,以保證其流通方便。 最終流通中的位元幣將總是略低於2100萬個(假定其他參數不變)。

區塊鏈[編輯]

區塊鏈Blockchain)位元幣的一個重要概念,該概念在中本聰的白皮書中提出,區塊鏈是一串使用密碼學方法相關聯產生的資料塊(稱為「區塊」,block)。新增的資料塊總能連結到上一個區塊,即整條區塊鏈的尾部。位元幣對等網路將所有的交易歷史都儲存在「區塊鏈」(blockchain)中,所以區塊鏈可以看作記錄著位元幣交易的賬本。區塊鏈是一群分散的用戶端節點,並由所有參與者組成的分布式資料庫,是對所有位元幣交易歷史的記錄[15]。中本聰預計,當資料量增大之後,用戶端希望這些資料並不全部儲存自己的節點中。為了實現這一目標,他採用引入雜湊函式機制。這樣用戶端將能夠自動剔除掉那些自己永遠用不到的部分,比方說極為早期的一些位元幣交易記錄。中本聰創造了位元幣系統的第一個區塊,即「創世區塊」,並附有一句「The Times 03/Jan/2009 Chancellor on brink of second bailout for banks」,而這句是當天泰晤士報當天的頭版文章標題。
確認一項交易的過程,是由解決一系列計算難題的工作量證明機制來實現的。工作量證明機制要求電腦的計算能力為某個有限值的情況下,需要運算一定的時間才能解決,這就使得攻擊者無法重寫交易歷史,除非他能夠擁有比其位元幣對等網路系統更強大的計算能力,從而能以更快地速度產生區塊鏈。工作量證明機制的難度由系統自動調節,所以新區塊的生成平均需時10分鐘。整個位元幣P2P對等網路的節點都會自動檢測交易和區塊的有效性,並忽略任何違背規則的交易和區塊,比如那些產生錯誤數量的區塊,或多次傳送同一份額位元幣的交易行為。
參與處理區塊的用戶端可以得到一定量新發行的位元幣,以及相關的交易手續費。為了得到這些新產生的位元幣,參與處理區塊的用戶端需要付出大量的時間和計算力(為此社會有專業挖礦機替代電腦等其他低配的網路設配),這個過程非常類似於挖礦,因此中本聰將資料處理者命名為「礦工」,將資料處理活動稱之為「挖礦」。這些新產生出來的位元幣可以報償系統中的資料處理者,他們的計算工作為位元幣對等網路的正常運作提供了保障。透過挖礦,位元幣系統也向全球經濟注入了革命性貨幣。
有鑒於此,其他類似競爭幣都是用了相同的理念去處理端間交易資料,只是在工作量證明機制上進行調整,如採用權益證明(Prove of Service)和Script演算法等。

錢包[編輯]

「位元幣錢包」使用戶可以檢查、儲存、花費其持有的位元幣,其形式多種多樣,功能可繁可簡, 它可以是遵守位元幣協定執行的各種工具,如電腦客戶端、手機客戶端、網站服務、專用裝置,也可以只是儲存著位元幣私鑰的介質,如一張紙、一段暗號、一張USB隨身碟、一個檔案,因為只要掌握了位元幣的私鑰,就可以處置其對應位址中包含的位元幣。
「Electrum」是許多位元幣客戶端軟體的其中之一
部分位元幣錢包
用戶端名稱網址許可協定
Multibit(雲資料區塊功能)http://multibit.org/MIT
Bitcoin-Qt(中本聰用戶端、官方客戶端、核心客戶端、QT客戶端)http://sourceforge.net/projects/bitcoin/MIT
My Wallet(線上錢包,on-chain)https://blockchain.info/wallet專有軟體
Coinbase(線上錢包,混合式)http://coinbase.com專有軟體
Electrumhttp://electrum.ecdsa.org/GPL
Armory(具有離線支付功能)http://bitcoinarmory.comAGPL

軟體客戶端[編輯]

位元幣官方客戶端從0.4.0版本開始,支援錢包檔案加密儲存。加密的錢包在每次付款的時候,都必須輸入密碼。但如果用加密之前備份的錢包檔案(wallet.dat)替換回來,還是可以正常交易。考慮到位元幣的原理可得出,掌握私鑰即擁有對相應位址中位元幣的處置權,不管對錢包檔案(內容包括各個位址對應的私鑰)是進行了加密還是刪除,都不能否定它。
其他錢包軟體通常支援雲端儲存區塊,避免用戶花費大量時間和磁碟空間下載舊交易資訊。並且各自提供進階功能。
例如,為了確保安全,Armory客戶端支援將錢包檔案離線保存,線上客戶端需花費位元幣時,需使用離線錢包簽名,再透過線上客戶端廣播。
除電腦客戶端外,位元幣也有執行在智慧型手機上的客戶端。

硬體錢包[編輯]

位元幣提款機
硬體錢包是專門處理位元幣的智慧裝置,例如只安裝了位元幣客戶端與聯網功能的樹莓派。硬體錢包通常可以提供更多的安全保障措施。

線上錢包服務[編輯]

線上錢包服務可以讓你在任何瀏覽器和行動裝置上使用位元幣,通常它還提供一些額外功能,這使位元幣的使用更加方便。 選擇線上錢包服務時必須慎重,因為此時位元幣將由錢包服務商來管理。 Blockchain.info雖然是線上錢包服務,但是每個用戶的私鑰都在用戶的網頁瀏覽器內進行加密,blockchain.info只儲存加密後的金鑰檔案。這樣用戶不必十分信任Blockchain.info的管理員,就可以放心使用這個線上錢包。

紙錢包、腦錢包[編輯]

位元幣需要保護的核心部分是私鑰,儲存私鑰的介質也可以稱為錢包。
紙錢包即把私鑰列印在紙上存放,再刪除電腦上的錢包檔案,實現錢包的網路隔離。
腦錢包則是針對用戶自行設定的口令進行雜湊運算,生成對應的私鑰與位址,以後只需記住這個短語即可控制其中的位元幣。

位址[編輯]

位址用於接收位元幣,它類似銀行卡的卡號。只公開位址不必擔心裏面的位元幣被盜走。它是由英文字母和數位組成的一串字元,由「1」或者「3」開頭,區分大小寫,不包括「IlO0」,「1」開頭的位址長26~34位元,「3」開頭的位址長34位元,例如"1DwunA9otZZQyhkVvkLJ8DV1tuSwMF7r3v"。位元幣客戶端可以離線生成位元幣位址[3] 。可用的位元幣位址數量接近2161個。形象地說,地球上約有263粒沙,[16]如果每一粒沙中有一個地球,那麼位元幣位址總數遠遠超過所有這些「地球」上的所有的沙子的數量。

私鑰[編輯]

位元幣私鑰用於證明位元幣的擁有者。私鑰可以給訊息(最常見的,花費位元幣的訊息)簽名,以證明訊息的發行者是相應位址的所有者。掌握了私鑰就等於掌握了其對應位址裡面存放的位元幣,所以私鑰必須保密。位元幣私鑰通常由51位或52位字元表示,其編碼方式與位元幣位址相似。51位表示法由數位「5」開頭,52位表示法由「K」或「L」開頭。位元幣位址是由位元幣公鑰進行雜湊運算得出的,公鑰是可以透過私鑰推算出的。所以掌握私鑰就可以推算出私鑰對應的位址(不可逆)。

挖礦[編輯]

位元幣礦工透過解決具有一定工作量的工作量證明機制問題,來管理位元幣網路:確認交易並且防止雙重支付。中本聰在他的論文中闡述說,「在沒有中央權威存在的條件下,既鼓勵了礦工支援位元幣網路,又讓位元幣的貨幣流通體系也有了最初的貨幣注入源頭。」中本聰把透過消耗CPU的電力和時間來產生位元幣,比喻成金礦消耗資源將黃金注入經濟。[17]
位元幣的挖礦與節點軟體主要是透過對等網路數位簽名互動式證明系統來進行發起零知識證明[來源請求]與驗證交易。每一個網路節點向網路進行廣播交易,這些廣播出來的交易在經過礦工(在網路線上的電腦)的驗證後,礦工用自己的工作證明結果來表達確認,確認後的交易會被打包到資料塊中,資料塊會串起來形成連續的資料塊鏈。中本聰本人設計了第一版的位元幣挖礦程式,[18]這一程式隨後被開發為廣泛使用的第一代挖礦軟體Bitcoin,這一代軟體從2009年到2010年中旬都比較流行。[19]每一個位元幣的節點都會收集所有尚未確認的交易,並將其歸集到一個資料塊中,礦工節點會附加一個隨機調整數,並計算前一個資料塊的SHA-256雜湊運算值。挖礦節點不斷重複進行嘗試,直到它找到的隨機調整數使得產生的雜湊值低於某個特定的目標。由於雜湊運算是不可逆的,尋找到符合要求的隨機調整數非常困難,需要一個可以預計總次數的不斷試錯過程。這時,工作量證明機制就發揮作用了。當一個節點找到了符合要求的解,那麼它就可以向全網廣播自己的結果。其他節點就可以接收這個新解出來的資料塊,並檢驗其是否符合規則。如果其他節點透過計算雜湊值發現確實滿足要求(位元幣要求的運算目標),那麼該資料塊有效,其他的節點就會接受該資料塊。

挖礦產出[編輯]

除了將接收到的交易資訊打包到資料塊,每個資料塊都會允許發行一定數量的新位元幣,用來激勵成功發現資料塊的礦工。位元幣系統按照預定的貨幣增發節奏決定發行的位元幣數量。如果其他支付交易有給手續費的,那麼礦工還會獲得手續費。由於礦工可以自行決定是否將某一個交易資料打包到資料塊中,因此礦工有可能優先選擇手續費較高的交易來打包。資料塊產生速率的預期為每10分鐘一個,但每個資料塊中新發行的位元幣不能超過50個,而這個數位每隔4年就會減半,因此位元幣的總數量不會超過2100萬個。[20]隨著新發行位元幣數量的下降,手續費將成為挖礦的主要動機。
那些在較早時期將電腦資源投入到位元幣挖礦活動中的用戶,相對於較晚加入的礦工而言,獲得位元幣容易得多。這樣設計的原因,主要是為了保證在位元幣的早期發展階段可以吸引足夠的計算力來處理資料塊。事實上,如果沒有人挖礦,位元幣的初期交易活動就無法處理,位元幣經濟也將停止執行。[21]

挖礦難度[編輯]

為了使得資料塊產生的速度大體均勻,產生新資料塊的難度會定期調整。如果資料塊產生的速度加快了,那麼就提高挖礦難度;如果資料塊產生速度變慢了,那麼就降低難度。由於ASIC計算裝置的爆炸式加入,目前挖礦難度呈現幾何級數的上升,目前平均每15天增加50%難度,讓普通個人挖礦者的挖礦工作變得異常困難。

挖礦裝置[編輯]

位元幣礦工最早都是透過IntelAMDCPU產品來挖礦。但由於挖礦是運算密集型應用,且隨著挖礦人數與裝置效能的不斷提升難度逐漸增加,現在使用CPU挖礦早已毫無收益甚至負收益。截至2012年,從2013年第一季度後,礦工們逐漸開始採用GPUFPGA等挖礦裝置[22]。同時,ASIC裝置也在2013年中旬大量上市[22]。從2013年7月起,全網算力由於ASIC裝置大量投入運營呈現直線上漲,以2013年7月的平均算力計算,所有GPU挖礦裝置均已經無法產生正收益,而FPGA裝置也接近無收益。2013年9月平均算力估算,現有的針對個人開發的小型ASIC挖礦裝置在未來1-2個月內也接近無正收益。大量算力被5THash/s以上的集群式ASIC挖礦裝置壟斷。個人挖礦由於沒有收益,幾乎被擠出挖礦群體。

礦池[編輯]

由於位元幣全網的運算水平在不斷的呈指數級別上漲,單個裝置或少量的算力都無法在位元幣網路上獲取到位元幣網路提供的區塊獎勵。在全網算力提升到了一定程度後,過低的獲取獎勵的機率。促使一些bitcointalk上的極客開發出一種可以將少量算力合併聯合運作的方法,使用這種方式建立的網站便被稱作「MiningPool」,中文即礦池

手續費[編輯]

位元幣礦工會對每筆交易收取少量費用。其主要目的是防止有人大量傳送無聊的小額交易,浪費網路資源,同時,在將來位元幣區塊獎勵較少時,手續費將成為礦工收入的主要來源。 在2014年3月,每筆交易的手續費一般是0.0001btc。將來,位元幣的手續費會與該交易佔用的位元組數相關。

交易[編輯]

位元幣對等網路將所有的交易歷史都儲存在區塊鏈中,位元幣交易就是在區塊鏈賬單上「記賬」,通常它由位元幣客戶端協助完成。
付款方需要對交易進行數位簽名,證明其認可該交易。 位元幣會被記錄在收款方的位址上,交易無需收款方參與,收款方可以不線上上,甚至不存在。
交易的資金來源稱為「輸入」,資金去向稱為「輸出」。 如有輸入,輸入必須大於等於輸出,輸入大於輸出的部分即為交易手續費。
礦工產出交易沒有輸入,只有輸出,除礦工產出交易外,一個輸入必然是另一筆交易的一個輸出。 一個輸出沒有成為另一筆交易的輸入時,它是「未花費的」,也就是「帳戶餘額」。
收錄此交易的區塊被廣播後,此交易就有了「1個確認」。礦工們平均每10分鐘產生一個區塊,每一個新區塊的誕生會使此交易的確認數加1。當確認數達到6時,通常這筆交易被認為足夠安全、難以逆轉。[23]

没有评论:

发表评论