比特幣區塊鏈hash函數
① 比特幣如何算出來的
要想了解bitcoin的技術原理,首先需要了解兩個重要的密碼技術: HASH碼:將一個長字元串轉換成固定長度的字元串,並且其轉換不可逆,即不太可能從HASH碼猜出原字元串。bitcoin協議里使用的主要是SHA256。
公鑰體系:對應一個公鑰和私鑰,在應用中自己保留私鑰,並公開公鑰。當甲向乙傳遞信息時,可使用甲的私鑰加密信息,乙可用甲的公鑰進行解密,這樣可確保第三方無法冒充甲發送信息;同時,甲向乙傳遞信息時,用乙的公鑰加密後發給乙,乙再用自己的私鑰進行解密,這樣可確保第三者無法偷聽兩人之間的通信。最常見的公鑰體系為RSA,但bitcoin協議里使用的是lliptic Curve Digital Signature Algorithm。 和現金、銀行賬戶的區別? bitcoin為電子貨幣,單位為BTC。在這篇文章里也用來指代整個bitcoin系統。 和在銀行開立賬戶一樣,bitcoin里的對應概念為地址。每個人都可以有1個或若干個bitcoin地址,該地址用來付賬和收錢。每個地址都是一串以1開頭的字元串,比如我有兩個bitcoin賬戶,和。一個bitcoin賬戶由一對公鑰和私鑰唯一確定,要保存賬戶,只需要保存好私鑰文件即可。 和銀行賬戶不一樣的地方在於,銀行會保存所有的交易記錄和維護各個賬戶的賬面余額,而bitcoin的交易記錄則由整個P2P網路通過事先約定的協議共同維護。 我的賬戶地址里到底有多少錢? 雖然使用bitcoin的軟體可以看到當前賬戶的余額,但和銀行不一樣,並沒有一個地方維護每個地址的賬面余額。它只能通過所有歷史交易記錄去實時推算賬戶余額。 我如何付賬? 當我從地址A向對方的地址B付賬時,付賬額為e,此時雙方將向各個網路節點公告交易信息,告訴地址A向地址B付賬,付賬額為e。為了防止有第三方偽造該交易信息,該交易信息將使用地址A的私鑰進行加密,此時接受到該交易信息的網路節點可以使用地址A的公鑰進行驗證該交易信息的確由A發出。當然交易軟體會幫我們做這些事情,我們只需要在軟體中輸入相關參數即可。 網路節點後收到交易信息後會做什麼? 這個是整個bitcoin系統里最重要的部分,需要詳細闡述。為了簡單起見,這里只使用目前已經實現的bitcoin協議,在當前版本中,每個網路節點都會通過同步保存所有的交易信息。 歷史上發生過的所有交易信息分為兩類,一類為"驗證過"的交易信息,即已經被驗證過的交易信息,它保存在一連串的「blocks」裡面。每個"block"的信息為前一個"bock"的ID(每個block的ID為該block的HASH碼的HASH碼)和新增的交易信息(參見一個實際的block)。另外一類指那些還"未驗證"的交易信息,上面剛剛付賬的交易信息就屬於此類。 當一個網路節點接收到新的未驗證的交易信息之後(可能不止一條),由於該節點保存了歷史上所有的交易信息,它可以推算中在當時每個地址的賬面余額,從而可以推算出該交易信息是否有效,即付款的賬戶里是否有足夠余額。在剔除掉無效的交易信息後,它首先取出最後一個"block"的ID,然後將這些未驗證的交易信息和該ID組合在一起,再加上一個驗證碼,形成一個新的「block」。 上面構建一個新的block需要大量的計算工作,因為它需要計算驗證碼,使得上面的組合成為一個block,即該block的HASH碼的HASH碼的前若干位為1。目前需要前13位為1(大致如此,不確定具體方式),此意味著如果通過枚舉法生成block的話,平均枚舉次數為16^13次。使用CPU資源生成block被稱為「挖金礦」,因為生產該block將得到一定的獎勵,該獎勵信息已經被包含在這個block裡面。 當一個網路節點生成一個新的block時,它將廣播給其它的網路節點。但這個網路block並不一定會被網路接受,因為有可能有別的網路節點更早生產出了block,只有最早產生的那個block或者後續block最多的那個block有效,其餘block不再作為下一個block的初始block。 對方如何確認支付成功? 當該筆支付信息分發到網路節點後,網路節點開始計算該交易是否有效(即賬戶余額是否足夠支付),並試圖生成包含該筆交易信息的blocks。當累計有6個blocks(1個直接blocks和5個後續blocks)包含該筆交易信息時,該交易信息被認為「驗證過」,從而該交易被正式確認,對方可確認支付成功。 一個可能的問題為,我將地址A裡面的余額都支付給地址B,同時又支付給地址C,如果只驗證單比交易都是有效的。此時,我的作弊的方式為在真相大白之前產生6個僅包括B的block發給B,以及產生6個僅包含C的block發給C。由於我產生block所需要的CPU時間非常長,與全網路相比,我這樣作弊成功的概率微乎其微。 網路節點生產block的動機是什麼? 從上面描述可以看出,為了讓交易信息有效,需要網路節點生成1個和5個後續block包含該交易信息,並且這樣的block生成非常耗費CPU。那怎麼樣讓其它網路節點盡快幫忙生產block呢?答案很簡單,協議規定對生產出block的地址獎勵BTC,以及交易雙方承諾的手續費。目前生產出一個block的獎勵為50BTC,未來每隔四年減半,比如2013年到2016年之間獎勵為25BTC。 交易是匿名的嗎? 是,也不是。所有BITCOIN的交易都是可見的,我們可以查到每個賬戶的所有交易記錄,比如我的。但與銀行貨幣體系不一樣的地方在於,每個人的賬戶本身是匿名的,並且每個人可以開很多個賬戶。總的說來,所謂的匿名性沒有宣稱的那麼好。 但bitcoin用來做黑市交易的還有一個好處,它無法凍結。即便警方追蹤到了某個bitcoin地址,除非根據網路地址追蹤到交易所使用的電腦,否則還是毫無辦法。 如何保證bitcoin不貶值? 一般來說,在交易活動相當的情況下,貨幣的價值反比於貨幣的發行量。不像傳統貨幣市場,央行可以決定貨幣發行量,bitcoin里沒有一個中央的發行機構。只有通過生產block,才能獲得一定數量的BTC貨幣。所以bitcoin貨幣新增量決定於: 1、生產block的速度:bitcoin的協議里規定了生產block的難度固定在平均2016個每兩個星期,大約10分鍾生產一個。CPU速度每18個月速度加倍的摩爾定律,並不會加快生產block的速度。 2、生產block的獎勵數量:目前每生產一個block獎勵50BTC,每四年減半,2013年開始獎勵25BTC,2017年開始獎勵額為12.5BTC。 綜合上面兩個因素,bitcoin貨幣發行速度並不由網路節點中任何單個節點所控制,其協議使得貨幣的存量是事先已知的,並且最高存量只有2100萬BTC
② 終於弄明白了比特幣和區塊鏈的關系,現在還能靠挖礦得到比特幣嗎
能啊,現在買台礦機就能挖比特幣。
但我要強調的是,現在的比特幣挖礦,已經是一個很專業的行業了,一般人雖然能挖,但成本相較於專業化挖礦來說,高太多了,不如直接買幣。
③ 區塊鏈中的哈希演算法是什麼
哈希演算法是什麼?如何保證挖礦的公平性?
哈希演算法是一種只能加密,不能解密的密碼學演算法,可以將任意長度的信息轉換成一段固定長度的字元串。
這段字元串有兩個特點:
1、 就算輸入值只改變一點,輸出的哈希值也會天差地別。
2、只有完全一樣的輸入值才能得到完全一樣的輸出值。
3、輸入值與輸出值之間沒有規律,所以不能通過輸出值算出輸入值。要想找到指定的輸出值,只能採用枚舉法:不斷更換輸入值,尋找滿足條件的輸出值。
哈希演算法保證了比特幣挖礦不能逆向推導出結果。所以,礦工持續不斷地進行運算,本質上是在暴力破解正確的輸入值,誰最先找到誰就能獲得比特幣獎勵。
④ 比特幣和區塊鏈是什麼
比特幣是基於區塊鏈技術存在的一種數字貨幣,而區塊鏈技術簡單理解就是一種通過點對點實現的電子貨幣賬本系統,它能夠通過網路記錄著每一筆比特幣的交易記錄,且去中心化,沒有人可以擅自更改,因此對於其持有者具有十分穩定的安全保障性。區塊鏈是互聯網金融界一項不可思議的偉大技術,其發明者「中本聰」剛剛被經濟和金融學界提名為諾獎候選人。關注微博「數字資產與商業增值積分培訓「了解更多!
⑤ 比特幣和區塊鏈是什麼原理
比特幣是一種利用點對點技術實現的電子現金系統,它允許一個組織直接與另外一個組織進行在線支付,而不需要中間的權威的清算機構。
在比特幣的世界裡,如果你想擁有比特幣,你需要申請一個比特幣地址,就像你到銀行存款,需要開立一個賬戶,然後,你就擁有這個賬號,有了自己的賬號,你可以向你的賬號存款,別人也可以給你的賬號轉賬,當你需要提款的時候或者給別人轉賬的時候,你需要出示一個能夠打開這個地址的鑰匙,也就是你的私鑰,就像你在ATM上取款的時候需要提供密碼一樣。
與銀行發行的法定貨幣不同,法定貨幣的發行是由各國央行來統一管理的,大家都相信央行是靠譜的,不會記錯賬,也不會被人攻擊。然而,比特幣的發行並不需要央行這樣的權威機構,它允許一筆交易從一個組織直接結算給另外一個組織,省去了權威機構結算的環節,提高了交易和結算的效率,節省了交易的成本,尤其是跨境交易的成本。
區塊鏈是由多個區塊組成,每個區塊是由區塊頭和區塊體組成的,每一個區塊頭包含著區塊的元信息,同時也包含一個指向前一個區塊頭哈希值的指針,這個指針是防止區塊鏈被篡改的關鍵信息。區塊體包含比特幣的交易信息,第一個交易是特殊交易,是獎勵給挖礦節點的酬勞,這也是唯一一種可以產生比特幣的方式,也就是發行比特幣的方式,其餘的交易都是轉賬交易,比特幣從一個地址支付給另外一個地址,這也是實現比特幣價值轉移的唯一方式。總結來看,比特幣只有挖礦和轉賬兩種方式,比特幣產生以後只能從一個人轉賬給另一個人,而不能憑空消失,而且比特幣的發行總量是恆定的,一共有2100萬,是一種通索性貨幣。
⑥ 區塊鏈和哈希幣有什麼關聯
數字貨幣是區塊鏈的一種應用。
區塊鏈是一種全新的計算範式和分布基礎架構,利用快鏈式數據結構、分布式節點共識演算法、密碼學方式和基於自動化腳本代碼的智能合約來生產、驗證、存儲和傳輸數據。也可以說區塊鏈是一種分布式的賬本技術,能夠在非信任環境中提供去中心化信任機制,從而讓多方參與者在沒有中介機構的情況下進行安全的信任化交易。
區塊鏈的應用領域有數字貨幣、通證、金融、防偽溯源、隱私保護、供應鏈、娛樂等等,區塊鏈、比特幣的火爆,不少相關的top域名都被注冊,對域名行業產生了比較大的影響。
⑦ 區塊鏈技術中的哈希演算法是什麼
1.1. 簡介
計算機行業從業者對哈希這個詞應該非常熟悉,哈希能夠實現數據從一個維度向另一個維度的映射,通常使用哈希函數實現這種映射。通常業界使用y = hash(x)的方式進行表示,該哈希函數實現對x進行運算計算出一個哈希值y。
區塊鏈中哈希函數特性:
函數參數為string類型;
固定大小輸出;
計算高效;
collision-free 即沖突概率小:x != y => hash(x) != hash(y)
隱藏原始信息:例如區塊鏈中各個節點之間對交易的驗證只需要驗證交易的信息熵,而不需要對原始信息進行比對,節點間不需要傳輸交易的原始數據只傳輸交易的哈希即可,常見演算法有SHA系列和MD5等演算法
1.2. 哈希的用法
哈希在區塊鏈中用處廣泛,其一我們稱之為哈希指針(Hash Pointer)
哈希指針是指該變數的值是通過實際數據計算出來的且指向實際的數據所在位置,即其既可以表示實際數據內容又可以表示實際數據的存儲位置。下圖為Hash Pointer的示意圖

⑧ 類似比特幣這種區塊鏈的虛擬貨幣有哪些
1、萊特幣
萊特幣 (Litecoin, LTC) 是受比特幣(BitCoin, BTC) 的啟發而推出的改進版數字貨幣,由一名曾任職於谷歌的程序員設計並編程實現 , 2011年11月9日發布運行。萊特幣與比特幣在技術上具有相同的實現原理,但萊特幣的創造和轉讓基於一種開源的加密協議,不受到任何中央機構的管理。
2、陽光幣
陽光幣(SUNSCOIN)簡稱SSC,發起人為浙江省金華市快遞協會副會長,快遞行業實業企業家、慈善家劉春陽,其為法人的浙江省東陽市悅音科技有限公司為正規工商局注冊,注冊資金一千萬元。以此為後盾和支撐,隸屬該公司的陽光精英團隊推出了第一款虛擬幣--陽光幣。
3、維卡幣
維卡幣英文名為Onecoin,一種創造出來的網路虛擬貨幣名詞,被政府認為涉嫌傳銷類詐騙。
2017年央視公布350個資金傳銷組織名單,維卡幣在名單中。
2018年5月,湖南省株洲縣檢察院將公安部督辦的「3·15」維卡幣特大網路傳銷案第三批次的最後4名涉案嫌疑人向法院提起公訴。
4、亞馬遜幣
亞馬遜2013年2月初宣布,預計於2013年5月在美國推出亞馬遜幣Amazon Coins。Amazon Coins是一種新的虛擬貨幣,可以供美國用戶購買Kindle Fire里的應用程序、游戲和應用程序中的道具物品。亞馬遜屆時將提供數千萬美元的亞馬遜幣,免費讓用戶試用消費Kindle Fire上的應用程序、游戲、應用程序中的道具物品。
5、以太幣
以太幣(ETH)是以太坊(Ethereum)的一種數字代幣,被視為「比特幣2.0版」,採用與比特幣不同的區塊鏈技術「以太坊」(Ethereum),一個開源的有智能合約成果的民眾區塊鏈平台,由全球成千上萬的計算機構成的共鳴網路。開發者們需要支付以太幣(ETH)來支撐應用的運行。和其他數字貨幣一樣,以太幣可以在交易平台上進行買賣。
⑨ 區塊鏈跟ipfs有什麼關系嗎比特幣呢
IPFS和區塊鏈的區別主要有以下幾點:
區塊鏈是一種記錄交易數據並在區塊中維護歷史的技術;IPFS旨在取代HTTP,它是一種協議和網路,設計用於共享和存儲媒體的點對點方法。
區塊鏈技術不適合存儲大量數據;IPFS由需要可公開訪問的資料庫的區塊鏈應用程序使用,IPFS將大量數據存儲在不同的節點上,它使用區塊鏈的通證經濟來保持這些節點在線。
在區塊鏈上輸入數據後,無法更新或刪除,使用先前塊散列函數的鏈接創建新塊;在IPFS中,只有在另一個節點選擇不重新託管時,才能刪除網路數據。同時,IPFS支持版本控制。
區塊鏈將數據存儲在具有數據、哈希函數和先前哈希的塊中;文件存儲在IPFS對象中。這些對象可以存儲高達256KB的數據,還可以鏈接到其他IPFS對象。
比特幣的交易信息都被記錄在一個去中心化的賬本上面,這個賬本就是區塊鏈。