比特幣採用的演算法
Ⅰ 比特幣收益率怎麼算
比特幣收益的計算方法就是賣出的價格減進去成本價格。
比特幣具體的計算公式:比特幣的收益等於(每日數量×價格-每日消電)×挖幣天數-電腦成本。
比特幣合約計算方式:手續費=(成交合約張數*合約面值/成交均價)*費率。
Ⅱ 比特幣的原理
比特幣系統是一個基於P2P網路的、開源的、去中心化的貨幣交易系統。比特幣的核心演算法和協議都是公開的,具體在其官網及GitHub上可以查看到源碼信息系統的每一個節點都可以參與交易、確認其他的交易合法性並將其加入到分布式賬本中。基於密碼學的基本原理,比特幣的交易安全性和用戶身份的匿名性可以得到保證。歷史上第一個產生的比特幣叫做「創始幣」於2009年1月3日誕生。
拓展資料:
1、根據中本聰的思路設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P形式的數字貨幣。比特幣的交易記錄公開透明。點對點的傳輸意味著一個去中心化的支付系統。
2、與大多數貨幣不同,比特幣不依靠特定貨幣機構發行,它依據特定演算法,通過大量的計算產生,比特幣經濟使用整個P2P網路中眾多節點構成的分布式資料庫來確認並記錄所有的交易行為,並使用密碼學的設計來確保貨幣流通各個環節安全性。
3、和法定貨幣相比,比特幣沒有一個集中的發行方,而是由網路節點的計算生成,誰都有可能參與製造比特幣,而且可以全世界流通,可以在任意一台接入互聯網的電腦上買賣,不管身處何方,任何人都可以挖掘、購買、出售或收取比特幣,並且在交易過程中外人無法辨認用戶身份信息。2009年1月5日,不受央行和任何金融機構控制的比特幣誕生。比特幣是一種數字貨幣,由計算機生成的一串串復雜代碼組成,新比特幣通過預設的程序製造。
4、每當比特幣進入主流媒體的視野時,主流媒體總會請一些主流經濟學家分析一下比特幣。早先,這些分析總是集中在比特幣是不是騙局。而現如今的分析總是集中在比特幣能否成為未來的主流貨幣。而這其中爭論的焦點又往往集中在比特幣的通縮特性上。
5、用戶可以買到比特幣,同時還可以使用計算機依照演算法進行大量的運算來「開采」比特幣。在用戶「開采」比特幣時,需要用電腦搜尋64位的數字就行,然後通過反復解謎密與其他淘金者相互競爭,為比特幣網路提供所需的數字,如果用戶的電腦成功地創造出一組數字,那麼就將會獲得25個比特幣
Ⅲ 比特幣如何算出來的
要想了解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
比特幣採用的是SHA-256加密演算法發,在挖礦的時候,比拼的是算力。為了提高算力,比特幣經歷了CPU挖礦、GPU挖礦、FPGA挖礦和現在的ASIC礦機挖礦四個階段,專業化程度越來越高。
以太坊採用的是Ethash加密演算法,在挖礦的過程中,需要讀取內存並存儲DAG文件。由於每一次讀取內存的帶寬都是有限的,而現有的計算機技術又很難在這個問題上有質的突破,所以無論如何提高計算機的運算效率,內存讀取效率仍然不會有很大的改觀。因此從某種意義上來說,以太坊的Ethash加密演算法具有「抗ASIC性」.
加密演算法的不同,導致了比特幣和以太坊的挖礦設備、算力規模差異很大。
目前,比特幣挖礦的、設備主要是專業化程度非常高的ASIC礦機,單台礦機的算力最高達到了110T/s,全網算力的規模在120EH/s以上。
以太坊的挖礦設備主要是顯卡礦機,專業化的ASIC礦機非常少,一方面是因為以太坊挖礦演算法的「抗ASIC性」提高了研發ASIC礦機的門檻,另一方面是因為以太坊升級到2.0之後共識機制會轉型為PoS,礦機無法繼續挖礦。
和ASIC礦機相比,顯卡礦機在啊算力上相差了2個量級。目前,主流的顯卡礦機(8卡)算力約為420MH/s,以太坊全網算力約為230TH/s.
從過去兩年的時間維度上看,比特幣的全網算力增長迅速,以太坊的全網算力增長相對緩慢。
比特幣的ASIC礦機被幾大礦機廠商所壟斷,礦工只能從市場上購買;以太坊的顯卡礦機,雖然也有專門的礦機廠商生產製造,礦工還可以根據自己的需求DIY,從市場上購買配件然後自己組裝。
Ⅳ 比特幣使用哪種演算法來生成比特幣錢包的地址
首先生成私鑰,再由私鑰算出公鑰,再由公鑰經過一系列哈希算出錢包地址。
Ⅵ 什麼是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)))
Ⅶ 比特幣的核心技術包括哪些
比特幣的核心技術包括1、非對稱加密技術 2、點對點傳輸技術 3、哈希現金演算法機制。
1.非對稱加密技術和對稱加密技術最大的不同就是有了公鑰和私鑰之分。非對稱加密演算法需要兩個密鑰:公開密鑰(publickey)和私有密鑰(privatekey)。公開密鑰與私有密鑰是一對,如果用公開密鑰對數據進行加密,只有用對應的私有密鑰才能解密;如果用私有密鑰對數據進行加密,那麼只有用對應的公開密鑰才能解密。公鑰是公開的,私鑰是保密的。 由於不涉及私鑰的傳輸,整個傳輸過程就變得安全多了。後來又出現了具備商業實用性的非對稱RSA加密演算法以及後來的橢圓曲線加密演算法(ECC),這些都奠定了加密演算法理論的基礎,但是美國國家安全局NSA最初認為這些技術對國家安全構成威脅,所以對這些技術進行了嚴密的監控,知道20世紀90年代末NSA才放棄了對這些技術的監控,這些非對稱技術才最終走入了了公眾的視野。這項技術對應到比特幣場景中就是比特幣的地址和私鑰。
2.點對點傳輸技術顧名思義,就是無需中心伺服器、個體之間可以相互傳輸信息的技術,P2P網路的重要目標就是讓所有客戶端都能提供資源,包括寬頻、存儲空間和計算能力。 對應到比特幣網路中就是利用點對點的技術實現真正的去中心化。
3.哈希現金演算法機制就是讓那些製造垃圾郵件的人付出相應的代價!發送者需要付出一定的工作量,比如說哈希運算,幾秒鍾時間對於普通用戶不算什麼,但對於垃圾郵件的發送者每封郵件都要花幾秒鍾的時間,這樣的成本是沒有辦法負擔的。同時每次運算都會蓋上一個獨一無二的時間戳,這樣就能保證郵件發送方不能重復使用一個運算結果。 對於比特幣而言也是同樣的道理,如何保證一筆數字貨幣沒有被多次消費(Double Spending),就類似於驗證一封郵件沒有被多次發送,所以就要保證每一筆交易順利完成,必須要付出一定的工作量(proof of Work),並且在完成交易時蓋上一個時間戳表示交易完成的時間。
Ⅷ 比特幣塊哈希是怎麼算出來的
比特幣所採用的哈希演算法,在比特幣系統中,需要大量地進行哈希函數運算。比特幣系統是這樣規定的:每隔十分鍾,大家都需要計算哈希函數,計算的值必須符合我的規定。誰計算的快,誰才會獲得作為獎勵的比特幣。