比特幣是用什麼演算法
⑴ 比特幣的原理
比特幣系統是一個基於P2P網路的、開源的、去中心化的貨幣交易系統。比特幣的核心演算法和協議都是公開的,具體在其官網及GitHub上可以查看到源碼信息系統的每一個節點都可以參與交易、確認其他的交易合法性並將其加入到分布式賬本中。基於密碼學的基本原理,比特幣的交易安全性和用戶身份的匿名性可以得到保證。歷史上第一個產生的比特幣叫做「創始幣」於2009年1月3日誕生。
拓展資料:
1、根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。比特幣的交易記錄公開透明。點對點的傳輸意味著一個去中心化的支付系統。
2、與大多數貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。
3、和法定貨幣相比,比特幣沒有一個集中的發行方,而是由網路節點的計算生成,誰都有可能參與製造比特幣,而且可以全世界流通,可以在任意一台接入互聯網的電腦上買賣,不管身處何方,任何人都可以挖掘、購買、出售或收取比特幣,並且在交易過程中外人無法辨認用戶身份信息。2009年1月5日,不受央行和任何金融機構控制的比特幣誕生。比特幣是一種數字貨幣,由計算機生成的一串串復雜代碼組成,新比特幣通過預設的程序製造。
4、每當比特幣進入主流媒體的視野時,主流媒體總會請一些主流經濟學家分析一下比特幣。早先,這些分析總是集中在比特幣是不是騙局。而現如今的分析總是集中在比特幣能否成為未來的主流貨幣。而這其中爭論的焦點又往往集中在比特幣的通縮特性上。
5、用戶可以買到比特幣,同時還可以使用計算機依照演算法進行大量的運算來「開采」比特幣。在用戶「開采」比特幣時,需要用電腦搜尋64位的數字就行,然後通過反復解謎密與其他淘金者相互競爭,為比特幣網路提供所需的數字,如果用戶的電腦成功地創造出一組數字,那麼就將會獲得25個比特幣
⑵ 比特幣到底在計算什麼
人人富財商院這樣告訴你:每一個比特幣的節點都會收集所有尚未確認的交易,並將其歸集到一個數據塊中,這個數據塊會和前面一個數據塊集成在一起。礦工節點會附加一個隨機調整數,並計算前一個數據塊的SHA-256哈希運算值。挖礦節點不斷重復進行嘗試,直到它找到的隨機調整數使得產生的哈希值低於某個特定的目標。
由於哈希運算是不可逆的,尋找到符合要求的隨機調整數非常困難,需要一個可以預計總數的不斷試錯過程。這時,工作量證明機制就發揮作用了。當一個節點找到了符合要求的解,那麼它就可以向全網廣播自己的結果。其他節點就可以接收這個新解出來的數據塊,並檢驗其是否符合規格。如果其他節點通過計算哈希值發現確實滿足要求,那麼該數據塊有效,其他節點就會接受該數據塊,並將其附加在自己已有的鏈條之後。
比特幣挖礦採用的是SHA-256哈希值運算,這種演算法會進行大量的32位整數循環右移運算
窮舉,驗證,直到找到某個符合要求的的數據,這個毫無意義的數據就是一塊錢了
⑶ 比特幣到底是什麼
比特幣(Bitcoin)是一種基於去中心化,採用點對點網路與共識主動性,開放源代碼,以區塊鏈作為底層技術的虛擬加密貨幣,由中本聰在2008年提出,2009年誕生。 比特幣沒有一個集中的發行方,由網路節點的計算生成,可以在任意一台接入互聯網的電腦上買賣,並且具有極強的稀缺性。
從比特幣的本質說起,比特幣的本質其實就是一堆復雜演算法所生成的特解。特解是指方程組所能得到有限個解中的一組。而每一個特解都能解開方程並且是唯一的。以鈔票來比喻的話,比特幣就是鈔票的冠字型大小碼,你知道了某張鈔票上的冠字型大小碼,你就擁有了這張鈔票。而挖礦的過程就是通過龐大的計算量不斷的去尋求這個方程組的特解,這個方程組被設計成了只有 2100 萬個特解,所以比特幣的上限就是 2100 萬個。
要挖掘比特幣可以下載專用的比特幣運算工具,然後注冊各種合作網站,把注冊來的用戶名和密碼填入計算程序中,再點擊運算就正式開始。完成Bitcoin客戶端安裝後,可以直接獲得一個Bitcoin地址,當別人付錢的時候,只需要自己把地址貼給別人,就能通過同樣的客戶端進行付款。在安裝好比特幣客戶端後,它將會分配一個私鑰和一個公鑰。需要備份你包含私鑰的錢包數據,才能保證財產不丟失。如果不幸完全格式化硬碟,個人的比特幣將會完全丟失。
貨幣特徵
去中心化:比特幣是第一種分布式的虛擬貨幣,整個網路由用戶構成,沒有中央銀行。去中心化是比特幣安全與自由的保證 。
全世界流通:比特幣可以在任意一台接入互聯網的電腦上管理。不管身處何方,任何人都可以挖掘、購買、出售或收取比特幣。
專屬所有權:操控比特幣需要私鑰,它可以被隔離保存在任何存儲介質。除了用戶自己之外無人可以獲取。
低交易費用:可以免費匯出比特幣,但最終對每筆交易將收取約1比特分的交易費以確保交易更快執行。
無隱藏成本:作為由A到B的支付手段,比特幣沒有繁瑣的額度與手續限制。知道對方比特幣地址就可以進行支付。
跨平台挖掘:用戶可以在眾多平台上發掘不同硬體的計算能力。
優點
完全去處中心化,沒有發行機構,也就不可能操縱發行數量。其發行與流通,是通過開源的p2p演算法實現。
匿名、免稅、免監管。
健壯性。比特幣完全依賴p2p網路,無發行中心,所以外部無法關閉它。比特幣價格可能波動、崩盤,多國政府可能宣布它非法,但比特幣和比特幣龐大的p2p網路不會消失。
無國界、跨境。跨國匯款,會經過層層外匯管制機構,而且交易記錄會被多方記錄在案。但如果用比特幣交易,直接輸入數字地址,點一下滑鼠,等待p2p網路確認交易後,大量資金就過去了。不經過任何管控機構,也不會留下任何跨境交易記錄。
山寨者難於生存。由於比特幣演算法是完全開源的,誰都可以下載到源碼,修改些參數,重新編譯下,就能創造一種新的p2p貨幣。但這些山寨貨幣很脆弱,極易遭到51%攻擊。任何個人或組織,只要控制一種p2p貨幣網路51%的運算能力,就可以隨意操縱交易、幣值,這會對p2p貨幣構成毀滅性打擊。很多山寨幣,就是死在了這一環節上。而比特幣網路已經足夠健壯,想要控制比特幣網路51%的運算力,所需要的CPU/GPU數量將是一個天文數字。
缺點
交易平台的脆弱性。比特幣網路很健壯,但比特幣交易平台很脆弱。交易平台通常是一個網站,而網站會遭到黑客攻擊,或者遭到主管部門的關閉。
交易確認時間長。比特幣錢包初次安裝時,會消耗大量時間下載歷史交易數據塊。而比特幣交易時,為了確認數據准確性,會消耗一些時間,與p2p網路進行交互,得到全網確認後,交易才算完成。
價格波動極大。由於大量炒家介入,導致比特幣兌換現金的價格如過山車一般起伏。使得比特幣更適合投機,而不是匿名交易。
大眾對原理不理解,以及傳統金融從業人員的抵制。活躍網民了解p2p網路的原理,知道比特幣無法人為操縱和控制。但大眾並不理解,很多人甚至無法分清比特幣和Q幣的區別。「沒有發行者」是比特幣的優點,但在傳統金融從業人員看來,「沒有發行者」的貨幣毫無價值。
⑷ 高中生如何理解比特幣加密演算法
加密演算法是數字貨幣的基石,比特幣的公鑰體系採用橢圓曲線演算法來保證交易的安全性。這是因為要攻破橢圓曲線加密就要面對離散對數難題,目前為止還沒有找到在多項式時間內解決的辦法,在演算法所用的空間足夠大的情況下,被認為是安全的。本文不涉及高深的數學理論,希望高中生都能看懂。
密碼學具有久遠的歷史,幾乎人人都可以構造出加解密的方法,比如說簡單地循環移位。古老或簡單的方法需要保密加密演算法和秘鑰。但是從歷史上長期的攻防斗爭來看,基於加密方式的保密並不可靠,同時,長期以來,秘鑰的傳遞也是一個很大的問題,往往面臨秘鑰泄漏或遭遇中間人攻擊的風險。
上世紀70年代,密碼學迎來了突破。Ralph C. Merkle在1974年首先提出非對稱加密的思想,兩年以後,Whitfield Diffie和Whitfield Diffie兩位學者以單向函數和單向暗門函數為基礎提出了具體的思路。隨後,大量的研究和演算法涌現,其中最為著名的就是RSA演算法和一系列的橢圓曲線演算法。
無論哪一種演算法,都是站在前人的肩膀之上,主要以素數為研究對象的數論的發展,群論和有限域理論為基礎。內容加密的秘鑰不再需要傳遞,而是通過運算產生,這樣,即使在不安全的網路中進行通信也是安全的。密文的破解依賴於秘鑰的破解,但秘鑰的破解面臨難題,對於RSA演算法,這個難題是大數因式分解,對於橢圓曲線演算法,這個難題是類離散對數求解。兩者在目前都沒有多項式時間內的解決辦法,也就是說,當位數增多時,難度差不多時指數級上升的。
那麼加解密如何在公私鑰體系中進行的呢?一句話,通過在一個有限域內的運算進行,這是因為加解密都必須是精確的。一個有限域就是一個具有有限個元素的集合。加密就是在把其中一個元素映射到另一個元素,而解密就是再做一次映射。而有限域的構成與素數的性質有關。
前段時間,黎曼猜想(與素數定理關系密切)被熱炒的時候,有一位區塊鏈項目的技術總監說橢圓曲線演算法與素數無關,不受黎曼猜想證明的影響,就完全是瞎說了。可見區塊鏈項目內魚龍混雜,確實需要好好洗洗。
比特幣及多數區塊鏈項目採用的公鑰體系都是橢圓曲線演算法,而非RSA。而介紹橢圓曲線演算法之前,了解一下離散對數問題對其安全性的理解很有幫助。
先來看一下 費馬小定理 :
原根 定義:
設(a, p)=1 (a與p互素),滿足
的最下正整數 l,叫作a模p的階,模p階為(最大值)p-1的整數a叫作模p的原根。
兩個定理:
基於此,我們可以看到,{1, 2, 3, … p-1} 就是一個有限域,而且定義運算 gi (mod p), 落在這個有限域內,同時,當i取0~p-2的不同數時,運算結果不同。這和我們在高中學到的求冪基本上是一樣的,只不過加了一層求模運算而已。
另一點需要說明的是,g的指數可以不限於0~p-2, 其實可以是所有自然數,但是由於
所以,所有的函數值都是在有限域內,而且是連續循環的。
離散對數定義:
設g為模p的原根,(a,p) = 1,
我們稱 i 為a(對於模p的原根g)的指數,表示成:
這里ind 就是 index的前3個字母。
這個定義是不是和log的定義很像?其實這也就是我們高中學到的對數定義的擴展,只不過現在應用到一個有限域上。
但是,這與實數域上的對數計算不同,實數域是一個連續空間,其上的對數計算有公式和規律可循,但往往很難做到精確。我們的加密體系裡需要精確,但是在一個有限域上的運算極為困難,當你知道冪值a和對數底g,求其離散對數值i非常困難。
當選擇的素數P足夠大時,求i在時間上和運算量上變得不可能。因此我們可以說i是不能被計算出來的,也就是說是安全的,不能被破解的。
比特幣的橢圓曲線演算法具體而言採用的是 secp256k1演算法。網上關於橢圓曲線演算法的介紹很多,這里不做詳細闡述,大家只要知道其實它是一個三次曲線(不是一個橢圓函數),定義如下:
那麼這里有參數a, b;取值不同,橢圓曲線也就不同,當然x, y 這里定義在實數域上,在密碼體系裡是行不通的,真正採用的時候,x, y要定義在一個有限域上,都是自然數,而且小於一個素數P。那麼當這個橢圓曲線定義好後,它反應在坐標系中就是一些離散的點,一點也不像曲線。但是,在設定的有限域上,其各種運算是完備的。也就是說,能夠通過加密運算找到對應的點,通過解密運算得到加密前的點。
同時,與前面講到的離散對數問題一樣,我們希望在這個橢圓曲線的離散點陣中找到一個有限的子群,其具有我們前面提到的遍歷和循環性質。而我們的所有計算將使用這個子群。這樣就建立好了我們需要的一個有限域。那麼這里就需要子群的階(一個素數n)和在子群中的基點G(一個坐標,它通過加法運算可以遍歷n階子群)。
根據上面的描述,我們知道橢圓曲線的定義包含一個五元祖(P, a, b, G, n, h);具體的定義和概念如下:
P: 一個大素數,用來定義橢圓曲線的有限域(群)
a, b: 橢圓曲線的參數,定義橢圓曲線函數
G: 循環子群中的基點,運算的基礎
n: 循環子群的階(另一個大素數,< P )
h:子群的相關因子,也即群的階除以子群的階的整數部分。
好了,是時候來看一下比特幣的橢圓曲線演算法是一個怎樣的橢圓曲線了。簡單地說,就是上述參數取以下值的橢圓曲線:
橢圓曲線定義了加法,其定義是兩個點相連,交與圖像的第三點的關於x軸的對稱點為兩個點的和。網上這部分內容已經有很多,這里不就其細節進行闡述。
但細心的同學可能有個疑問,離散對數問題的難題表現在求冪容易,但求其指數非常難,然而,橢圓曲線演算法中,沒有求冪,只有求乘積。這怎麼體現的是離散對數問題呢?
其實,這是一個定義問題,最初橢圓曲線演算法定義的時候把這種運算定義為求和,但是,你只要把這種運算定義為求積,整個體系也是沒有問題的。而且如果定義為求積,你會發現所有的操作形式上和離散對數問題一致,在有限域的選擇的原則上也是一致的。所以,本質上這還是一個離散對數問題。但又不完全是簡單的離散對數問題,實際上比一般的離散對數問題要難,因為這里不是簡單地求數的離散對數,而是在一個自定義的計算上求類似於離散對數的值。這也是為什麼橢圓曲線演算法採用比RSA所需要的(一般2048位)少得多的私鑰位數(256位)就非常安全了。
⑸ 比特幣如何算出來的
要想了解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
⑹ 比特幣的挖礦到底在計算什麼
比特幣的挖礦計算其實就是大家一起做數學題,題干是需要被記錄的交易,大家通過做題搶奪記賬權,搶到的礦工就能獲得系統獎勵和交易手續費。比特幣用的SHA256演算法的特點是已知答案驗證正確很容易,但是要得到答案非常麻煩,需要一個一個數字去試。最先得到答案的礦工大家就都認可他是搶到了記賬權,獎勵就歸他了。大家繼續搶下一題的記賬權。簡單來說這些計算的意義只在於保證整個系統的穩定安全,並沒有更多的意義。
把比特幣看作是計算的副產品是不全面的,比特幣的產生發行、比特幣鏈上所有的交易流通、比特幣系統的穩定性,都是計算的目的,是一體的。當然除了維護這個系統之外,的確並沒有產生其他的價值和產物。這也是比特幣被指責不環保浪費資源的一個黑點。總的來說,比特幣作為一個里程碑式的區塊鏈數字貨幣,其源於大量的算力投入和用戶信任的巨大價值。這一點還是毋庸置疑的。
⑺ 比特幣的核心技術包括哪些
比特幣的核心技術包括1、非對稱加密技術 2、點對點傳輸技術 3、哈希現金演算法機制。
1.非對稱加密技術和對稱加密技術最大的不同就是有了公鑰和私鑰之分。非對稱加密演算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。公鑰是公開的,私鑰是保密的。 由於不涉及私鑰的傳輸,整個傳輸過程就變得安全多了。後來又出現了具備商業實用性的非對稱RSA加密演算法以及後來的橢圓曲線加密演算法(ECC),這些都奠定了加密演算法理論的基礎,但是美國國家安全局NSA最初認為這些技術對國家安全構成威脅,所以對這些技術進行了嚴密的監控,知道20世紀90年代末NSA才放棄了對這些技術的監控,這些非對稱技術才最終走入了了公眾的視野。這項技術對應到比特幣場景中就是比特幣的地址和私鑰。
2.點對點傳輸技術顧名思義,就是無需中心伺服器、個體之間可以相互傳輸信息的技術,P2P網路的重要目標就是讓所有客戶端都能提供資源,包括寬頻、存儲空間和計算能力。 對應到比特幣網路中就是利用點對點的技術實現真正的去中心化。
3.哈希現金演算法機制就是讓那些製造垃圾郵件的人付出相應的代價!發送者需要付出一定的工作量,比如說哈希運算,幾秒鍾時間對於普通用戶不算什麼,但對於垃圾郵件的發送者每封郵件都要花幾秒鍾的時間,這樣的成本是沒有辦法負擔的。同時每次運算都會蓋上一個獨一無二的時間戳,這樣就能保證郵件發送方不能重復使用一個運算結果。 對於比特幣而言也是同樣的道理,如何保證一筆數字貨幣沒有被多次消費(Double Spending),就類似於驗證一封郵件沒有被多次發送,所以就要保證每一筆交易順利完成,必須要付出一定的工作量(proof of Work),並且在完成交易時蓋上一個時間戳表示交易完成的時間。
⑻ 比特幣是什麼
比特幣的概念。比特幣(BitCoin)的概念最初由中本聰在2009年提出,根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。與大多數貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。P2P的去中心化特性與演算法本身可以確保無法通過大量製造比特幣來人為操控幣值。基於密碼學的設計可以使比特幣只能被真實的擁有者轉移或支付。這同樣確保了貨幣所有權與流通交易的匿名性。比特幣與其他虛擬貨幣最大的不同,是其總數量非常有限,具有極強的稀缺性。該貨幣系統曾在4年內只有不超過1050萬個,之後的總數量將被永久限制在2100萬個。
比特幣可以用來兌現,可以兌換成大多數國家的貨幣。使用者可以用比特幣購買一些虛擬物品,比如網路游戲當中的衣服、帽子、裝備等,只要有人接受,也可以使用比特幣購買現實生活當中的物品。
比特幣的產生原理。從比特幣的本質說起,比特幣的本質其實就是一堆復雜演算法所生成的特解。特解是指方程組所能得到無限個(其實比特幣是有限個)解中的一組。而每一個特解都能解開方程並且是唯一的。[以人民幣來比喻的話,比特幣就是人民幣的序列號,你知道了某張鈔票上的序列號,你就擁有了這張鈔票。而挖礦的過程就是通過龐大的計算量不斷的去尋求這個方程組的特解,這個方程組被設計成了只有 2100 萬個特解,所以比特幣的上限就是 2100 萬。
比特幣的瘋狂漲勢。要挖掘比特幣可以下載專用的比特幣運算工具,然後注冊各種合作網站,把注冊來的用戶名和密碼填入計算程序中,再點擊運算就正式開始。完成Bitcoin客戶端安裝後,可以直接獲得一個Bitcoin地址,當別人付錢的時候,只需要自己把地址貼給別人,就能通過同樣的客戶端進行付款。在安裝好比特幣客戶端後,它將會分配一個私有密鑰和一個公開密鑰。需要備份你包含私有密鑰的錢包數據,才能保證財產不丟失。如果不幸完全格式化硬碟,個人的比特幣將會完全丟失。
比特幣的貨幣特徵。去中心化:比特幣是第一種分布式的虛擬貨幣,整個網路由用戶構成,沒有中央銀行。去中心化是比特幣安全與自由的保證 。
全世界流通:比特幣可以在任意一台接入互聯網的電腦上管理。不管身處何方,任何人都可以挖掘、購買、出售或收取比特幣。
專屬所有權:操控比特幣需要私鑰,它可以被隔離保存在任何存儲介質。除了用戶自己之外無人可以獲取。
低交易費用:可以免費匯出比特幣,但最終對每筆交易將收取約1比特分的交易費以確保交易更快執行。
無隱藏成本:作為由A到B的支付手段,比特幣沒有繁瑣的額度與手續限制。知道對方比特幣地址就可以進行支付。
跨平台挖掘:用戶可以在眾多平台上發掘不同硬體的計算能力。
比特幣如何用通俗易懂的話表述?訪問即刻得到答案網頁鏈接
⑼ 比特幣是如何產生的
比特幣是依據特定演算法,通過大量的計算產生的。它的本質就是一堆復雜演算法所生成的特解,而挖比特幣的過程就是通過龐大的計算量去不斷地尋求這個方程組的特解。
挖比特幣都是利用計算機去挖的,下載專用的比特幣運算工具就可以進行運算來挖比特幣。越專業的設備,能夠挖到的幾率也就越大,比如國外的BTC Guild礦池就非常有名。至於礦機,就是用來賺取比特幣的電腦,只是電腦里安裝了專業的挖礦晶元,一台礦機的價格從兩三百元到20萬元不等。
一.比特幣目前的4個用處
1、貴金屬:購買白銀和黃金有數十家公司可以通過比特幣來購買銀條和金條,可以在網路上的多個比特幣交易所購買,在世界已經很多國家可以支付。相信以後比特幣的支付方式更加廣泛
2、房地產:購買物業和土地說到購買奢侈品,房地產是另一個完全可以使用加密貨幣的行業。最近,許多房地產經紀人開始接受比特幣付款,甚至還有以比特幣為主題的房地產公司。該網站幫助客戶將其房屋投放市場並以比特幣的價格出售。
3、旅行:預訂住宿和門票旅遊業是全球增長最快的業務之一,它也是最具創新的行業之一。像CheapAir和Expedia這樣的網站都接受酒店,汽車旅館和旅行的比特幣付款,CheapAir甚至為比特幣用戶提供了專用伺服器。除了預訂外,您還可以使用多種加密貨幣為航班付款。去年,英國的航空公司(AlternativeAirlines)與瑞士數字支付公司Utrust合作創建了第一個網站,該網站可讓人們以加密貨幣為自己的航班付款。
4、游戲:裝備和升級游戲縱觀整個歷史,游戲行業一直都高度重視新的前沿技術。還記得80年代末和90年代初的VR熱潮嗎?因此,該行業會催生接受加密支付和小額支付的公司,這並不令人感到意外。
⑽ 什麼是SHA256
SHA 家族
SHA (Secure Hash Algorithm,譯作安全散列演算法) 是美國國家安全局 (NSA) 設計,美國國家標准與技術研究院 (NIST) 發布的一系列密碼散列函數。正式名稱為 SHA 的家族第一個成員發布於 1993年。然而現在的人們給它取了一個非正式的名稱 SHA-0 以避免與它的後繼者混淆。兩年之後, SHA-1,第一個 SHA 的後繼者發布了。 另外還有四種變體,曾經發布以提升輸出的范圍和變更一些細微設計: SHA-224, SHA-256, SHA-384 和 SHA-512 (這些有時候也被稱做 SHA-2)。
SHA-0 和 SHA-1
最初載明的演算法於 1993年發布,稱做安全散列標准 (Secure Hash Standard),FIPS PUB 180。這個版本現在常被稱為 "SHA-0"。它在發布之後很快就被 NSA 撤回,並且以 1995年發布的修訂版本 FIPS PUB 180-1 (通常稱為 "SHA-1") 取代。根據 NSA 的說法,它修正了一個在原始演算法中會降低密碼安全性的錯誤。然而 NSA 並沒有提供任何進一步的解釋或證明該錯誤已被修正。1998年,在一次對 SHA-0 的攻擊中發現這次攻擊並不能適用於 SHA-1 — 我們不知道這是否就是 NSA 所發現的錯誤,但這或許暗示我們這次修正已經提升了安全性。SHA-1 已經被公眾密碼社群做了非常嚴密的檢驗而還沒發現到有不安全的地方,它現在被認為是安全的。
SHA-0 和 SHA-1 會從一個最大 2^64 位元的訊息中產生一串 160 位元的摘要然後以設計 MD4 及 MD5 訊息摘要演算法的 MIT 教授 Ronald L. Rivest 類似的原理為基礎來加密。
SHA-0 的密碼分析
在 CRYPTO 98 上,兩位法國研究者展示了一次對 SHA-0 的攻擊 (Chabaud and Joux, 1998): 散列碰撞可以復雜到 2^61 時被發現;小於 2^80 是理想的相同大小散列函數。
2004年時,Biham 和 Chen 發現了 SHA-0 的近似碰撞 — 兩個訊息可以散列出相同的數值;在這種情況之下,142 和 160 位元是一樣的。他們也發現了 SHA-0 在 80 次之後減少到 62 位元的完整碰撞。
2004年8月12日,Joux, Carribault, Lemuet 和 Jalby 宣布了完整 SHA-0 演算法的散列碰撞。這是歸納 Chabaud 和 Joux 的攻擊所完成的結果。發現這個碰撞要復雜到 2^51, 並且用一台有 256 顆 Itanium2 處理器的超級電腦耗時大約 80,000 CPU 工作時 。
2004年8月17日,在 CRYPTO 2004 的 Rump 會議上,Wang, Feng, Lai, 和 Yu 宣布了攻擊 MD5、SHA-0 和其他散列函數的初步結果。他們對 SHA-0 攻擊復雜到 2^40,這意味著他們攻擊的成果比 Joux 還有其他人所做的更好。該次 Rump 會議的簡短摘要可以在 這里找到,而他們在 sci.crypt 的討論,例如: 這些結果建議計劃使用 SHA-1 作為新的密碼系統的人需要重新考慮。
更長的變種
NIST 發布了三個額外的 SHA 變體,每個都有更長的訊息摘要。以它們的摘要長度 (以位元計算) 加在原名後面來命名:"SHA-256", "SHA-384" 和 "SHA-512"。它們發布於 2001年的 FIPS PUB 180-2 草稿中,隨即通過審查和評論。包含 SHA-1 的 FIPS PUB 180-2,於 2002年以官方標准發布。這些新的散列函數並沒有接受像 SHA-1 一樣的公眾密碼社群做詳細的檢驗,所以它們的密碼安全性還不被大家廣泛的信任。2004年2月,發布了一次 FIPS PUB 180-2 的變更通知,加入了一個額外的變種 "SHA-224",定義了符合雙金鑰 3DES 所需的金鑰長度。
Gilbert 和 Handschuh (2003) 研究了新的變種並且沒有發現弱點。
SHAd
SHAd 函數是一個簡單的相同 SHA 函數的重述:
SHAd-256(m)=SHA-256(SHA-256(m))。它會克服有關延伸長度攻擊的問題。
應用
SHA-1, SHA-224, SHA-256, SHA-384 和 SHA-512 都被需要安全散列演算法的美國聯邦政府所應用,他們也使用其他的密碼演算法和協定來保護敏感的未保密資料。FIPS PUB 180-1 也鼓勵私人或商業組織使用 SHA-1 加密。Fritz-chip 將很可能使用 SHA-1 散列函數來實現個人電腦上的數位版權管理。
首先推動安全散列演算法出版的是已合並的數位簽章標准。
SHA 散列函數已被做為 SHACAL 分組密碼演算法的基礎。
SHA-1 的描述
以下是 SHA-1 演算法的偽代碼:
(Initialize variables:)
a = h0 = 0x67452301
b = h1 = 0xEFCDAB89
c = h2 = 0x98BADCFE
d = h3 = 0x10325476
e = h4 = 0xC3D2E1F0
(Pre-processing:)
paddedmessage = (message) append 1
while length(paddedmessage) mod 512 > 448:
paddedmessage = paddedmessage append 0
paddedmessage = paddedmessage append (length(message) in 64-bit format)
(Process the message in successive 512-bit chunks:)
while 512-bit chunk(s) remain(s):
break the current chunk into sixteen 32-bit words w(i), 0 <= i <= 15
(Extend the sixteen 32-bit words into eighty 32-bit words:)
for i from 16 to 79:
w(i) = (w(i-3) xor w(i-8) xor w(i-14) xor w(i-16)) leftrotate 1
(Main loop:)
for i from 0 to 79:
temp = (a leftrotate 5) + f(b,c,d) + e + k + w(i) (note: all addition is mod 2^32)
where:
(0 <= i <= 19): f(b,c,d) = (b and c) or ((not b) and d), k = 0x5A827999
(20 <= i <= 39): f(b,c,d) = (b xor c xor d), k = 0x6ED9EBA1
(40 <= i <= 59): f(b,c,d) = (b and c) or (b and d) or (c and d), k = 0x8F1BBCDC
(60 <= i <= 79): f(b,c,d) = (b xor c xor d), k = 0xCA62C1D6
e = d
d = c
c = b leftrotate 30
b = a
a = temp
h0 = h0 + a
h1 = h1 + b
h2 = h2 + c
h3 = h3 + d
h4 = h4 + e
digest = hash = h0 append h1 append h2 append h3 append h4
注意:FIPS PUB 180-1 展示的構想,用以下的公式替代可以增進效能:
(0 <= i <= 19): f(b,c,d) = (d xor (b and (c xor d)))
(40 <= i <= 59): f(b,c,d) = (b and c) or (d and (b or c)))