邱宜干
摘 要:與傳統的電子貨幣相比,比特幣具有去中心化、匿名化、存量有限、代碼開放、可追溯、不可逆等特點。在闡釋散列、工作量證明、密鑰、交易、區塊、挖礦等基本概念的基礎上,分析比特幣的生成機理。比特幣每個賬戶的余額都可以通過對主區塊鏈進行計算得到,因而不需要單獨記錄。因此,比特幣賬戶安全管理的關鍵就是用戶私鑰的管理。
關鍵詞:比特幣;生成機理;工作量證明;主區塊鏈
中圖分類號:F820 文獻標志碼:A 文章編號:1673-291X(2018)18-0071-01
比特幣(Bitcoin)是一種用戶自治的、全球通用的加密電子貨幣,2008年由中本聰(Satoshi Nakamoto)提出,其建構基礎是P2P網絡。與傳統的電子貨幣相比,比特幣具有去中心化、匿名化、存量有限、代碼開放、可追溯性、不可逆性等特點。
一、幾個重要的基本概念
1.散列(Hash)。散列函數的功能是將任意長度的不同信息轉化為長度相等但內容不同的二進制數列(由0和1組成)。以比特幣采用的SHA256為例,任意長度的信息輸入通過這個函數都可以轉換成一組長度為256個二進制數字,以便統一地存儲和識別。256個0或1最多可組合成2的256次方個不同的數,輸入信息的任何微小變動都將會導致輸出數字的巨大變化,同時也不能由輸出數字逆向推出輸入信息。這樣,就確保了輸入信息與輸出數字的一一對應。
2.工作量證明(Proof Of Work)。工作量證明就是對挖礦者的工作進行確認,防止其他服務濫用。對于比特幣而言,挖礦就是要求挖礦者通過一定量的運算,使用隨機數進行工作量證明。比特幣系統中使用的工作量證明函數就是SHA256,SHA是安全散列算法(Secure Hash Algorithm)的縮寫,是一個密碼散列函數家族。
3.密鑰。在信息傳遞過程中,發送方的信息是通過密鑰來加密的。密鑰分為公鑰和私鑰,公鑰需要向其他人公開,私鑰則由自己保存。在傳遞信息過程中,公鑰和私鑰配合使用,既可以驗證發信息方的身份,又可以確保發信人對自己所發出的信息不能抵賴,發送方將信息傳給接收方以后,接收方通過配對的另外一把密鑰解密信息,這樣保證了信息傳遞的安全和私密。
4.區塊(Block)。為了便于統計全球比特幣的交易情況,系統創造了區塊這一概念。每個區塊包含以下三要素:(1)本區塊的ID(散列);(2)若干交易單;(3)前一個區塊的ID(散列)。比特幣系統大約每10分鐘創建一個區塊,全球范圍內的所有交易都包含在這個區塊內。因此,比特幣的交易主要靠主區塊鏈來呈現。比特幣所有的交易都記錄在主區塊鏈上,以每10分鐘增長1個節點的速度擴展。而且,主區塊鏈新增1個節點后,系統會在全網廣播,每臺參與比特幣交易的電腦就會記錄下來,保存主區塊鏈信息。
5.挖礦。由于比特幣使用的是P2P網絡,網絡上每個節點都是平等的,因而參與比特幣交易的每個挖礦者通過完成工作量證明的難題和對交易的有效性進行驗證后,解決彼此之間的信任問題,從而確保新區塊所記錄的交易信息的真實。挖礦,是指產生新區塊并計算隨機數的過程。具體包括以下步驟:(1)輸入最后一個區塊的內容,計算散列值;(2)組合之前區塊沒有包含的交易,并納入一個新區塊;(3)任意猜一個隨機數,大小和長度不限;(4)將前三步產生的數據輸入SHA256散列函數,得到一個長度為256的二進制數;(5)檢查這個二進制數的前n位是否符合要求;(6)如符合要求,則該輪挖礦結束,新區塊和隨機數在網上廣播,并等待其他人的校驗和全網的接受。否則,就進行下一輪的挖礦,直到自己成功或收到別人發來的新區塊。挖礦的報酬是每個成功建立新區塊的人都將獲得相應數量的比特幣的獎勵,第一個四年獎勵50個比特幣,第二個四年獎勵25個比特幣,規律是每四年獎勵數減半,最終比特幣數量將達到上限2 100萬個,至此不再增加。
二、比特幣的生成機理
1.比特幣的信用。比特幣的信用是以P2P的網絡環境為基礎的,參與比特幣挖礦和交易的用戶通過大量的計算,需要花費時間和電力及人工等成本,花費的成本越高,對比特幣的認可程度也越高。比特幣的信用體系和其他的信用體系不同,不用個人或者機構的擔保,也不需要之(下轉73頁)(上接71頁)前的信用記錄,理論和技術是其信用的基礎保障。
2.比特幣的賬戶管理。對比特幣而言,建立賬戶就是生成一個地址。地址是由公鑰通過一系列數學計算推導出來的,賬戶、地址、公鑰均是公開的。有了地址就可查詢比特幣賬戶的余額。與銀行賬戶不同,該地址的余額并沒有特意記錄在某個地方。這是因為比特幣每個賬戶的余額都可以通過對主區塊鏈進行計算得到,因而不需要單獨記錄。在傳統銀行交易里,儲戶只通過戶名是不能查詢賬戶余額的,還需要與戶名對應的卡號。但是比特幣賬戶查詢余額的話,通過計算主區塊鏈即可。這是因為比特幣賬號是以匿名形式存在的,每個人可以擁有多個賬號,僅通過分析個人賬號是不能獲得個人信息的,保證了比特幣擁有者的個人隱私。比特幣的所有公開信息都保存在主區塊鏈中,而主區塊鏈在P2P網絡運行比特幣軟件的計算機上都有完整備份。因此,用戶的私鑰管理就是比特幣賬戶安全管理的關鍵。私鑰是獨立存在的,是由許多數字組成的,沒有規律,是用戶對賬戶所有權的唯一證明,從而通過其他方式不能將私鑰反推出來,從而保證了用戶賬戶的安全。出于方便考慮,很多用戶把私鑰保存在文件中或網絡錢包中,這就意味著私鑰有遺失或失竊的風險。為此,可通過采用“紙錢包”或“腦錢包”的方法進行防范。紙錢包,是指把私鑰寫在紙上或打印出來的方式進行保存。腦錢包,是指把私鑰轉化為一句話或一幅圖片進行保存。
3.比特幣的交易確認。傳統銀行賬戶間的交易通常在短時間內即可完成,間隔時間可能只有幾秒。但是,比特幣的交易需要得到全網的確認,進入主區塊連才能生效。在挖礦過程中,只有有效的交易才會進入區塊,失敗的交易就直接被丟棄掉。在挖礦過程中可能在同一時間段生產多個有效區塊,最終哪個有效區塊能夠成為當前時間段的正式區塊而進入主區塊鏈,就會存在分歧。因此,比特幣的交易存在一定的缺陷,交易過程有很長的時間間隔,一般需要5—6個月?;玖鞒淌窃诎硞€交易的區塊產生以后,需要等后續的區塊生成才能確認當前的區塊是否進入了主區塊鏈。