比特幣sha256d
『壹』 即使美國也「殺不死」比特幣
這篇文章的題目只是為了「報復」。
報復,3年前,美國的彭博社發的一篇《即使中國也殺不死比特幣》(Even China Can't Kill Bitcoin) 。那篇文章,把中國政府2017年規範金融市場、關閉加密貨幣交易的行為,看成是中國政府要「殺死」比特幣;把中國與土耳其、委內瑞拉、俄羅斯相提並論,一道列為對比特幣不友好的國家。但是,不友好與「殺死」是有天壤之別的,為什麼要用「殺」(kill)這種字眼呢?
2017年2月24日,彭博社《即使中國也殺不死比特幣》網路截圖
很顯然,這是在誇大其詞。所以,為了表達中國民間的不滿,我要用「即使美國也殺不死比特幣」做標題,來進行報復。
上一篇《比特幣「泡沫」11年不破的秘密!》,通過最新的學術研究,我們知道是因為比特幣累積了足夠的信任才走到今天的;我們還知道,這些 信任主要來自一種比特幣的屬性「不可更改」(immutability) 。一旦,比特幣變得可以更改了,那麼比特幣也就完蛋了。也就是說,如果美國想殺死比特幣,只需要殺死這個「屬性」就夠了。
問題一下子就變得簡單了。因為,美國政府是有辦法讓比特幣變得可以更改的,甚至完全不一樣的;又因為,比特幣有個重要前提:比特幣區塊鏈只認最長的那個區塊鏈,誰挖出的鏈最長、又合法,誰就會成為合法的比特幣。所以,如果, 美國政府,只要匯集足夠的算力,生成了最長的比特幣區塊鏈,那麼,美國政府也就完全控制了比特幣,從而將比特幣玩弄於股掌之間,讓比特幣生不如死。 而且,在控制了記賬權後,美國政府 不但可以獲得所有的區塊獎勵,而且還可以決定哪一筆交易記入區塊鏈,哪一筆不記入 。
現在你知道了,美國政府要想控制比特幣,唯一要做的就是——通過算力競賽獲得記賬權。你可能再想,算力競賽比的是什麼呢?比較復雜,一句話、兩句話說不清楚。你就當那個比賽,是地球上最公平的 游戲 ,大家機會均等,唯一比拼的,也就是算力,誰的算力大,誰就能贏,不會有例外。
當然,開展行動之前,美國政府會首先了解的是比特幣全網當前的算力,到底有多大?
為了便於理解下面的內容,需要先講一下什麼是算力。算力,是用計算機每秒可以運算SHA256哈希函數的次數來表達的,英文是hashrate。當前的最大單位是EH/s,表示1*10^18,1後面有18個0。
2016年2月2日,比特幣的全網算力,也就是所有礦池的運算能力加起來,達到了1EH/s,此後一直處於增長過程中。
這樣的算力到底有多強大呢?在2017年的時候,有人將比特幣的算力與全球前100的超級計算機進行了比較。答案是: 100台超級計算機的算力都達不到比特幣網路算力的十萬分之一 。 不過,你千萬不要以為,我們可以不要超級計算機了,有礦機就可以了。因為,礦機是專門用於SHA-256運算的,是專門設計的專用計算機,只可以用來挖礦,其他的什麼也幹不了。而超級計算機是通用計算機,可以干各種事情。請記住SHA-256,它在比特幣中的地位非同小可,後面我們專門講。
2017年6月比特幣網路與Top100台超級計算機算力比較
你也許會想,現在5年過去了,這樣的狀況是否會有所改變呢?很遺憾,沒有。
超級計算機的算力,與比特幣全網的算力之間的差距,不是縮小了,而是還在加大。2017年6月,最快的超級計算機的峰值浮點運算次數是125,435.9TFlop/s ;2019年11月,最快的是IBM的Summit,它的理論峰值是200,794.9TFlop/s ,增長2倍都不到。而比特幣網路,2017年6月的時候,算力只有5EH/s;2019年11月達到90EH/s,其算力一下子增加了18倍。
SUMMIT,排名第一的超級計算機,理論峰值200,795 TFlop/s
你可能也注意到了,這里的單位不一樣。一個是TFlop/s ,一個是 EH/s。他們之間存在一種換算關系。一次hash運算,需要12700次浮點運算。換算過程是這樣的,一次哈希計算需要6350次的整點運算,一次整點運算相當於2次浮點運算,6350 乘以 2 等於 12700。 關於Hash運算,是算力競賽找到正確答案的手段。你可以理解為,這是一種比較復雜的計算過程,詳細的後面會專門講。
2020年10月12日,比特幣全網的算力已經達到了140EH/s。從2016年2月達到1EH/s,4年多的時間,比特幣全網的算力居然增加了140倍。
2020年10月12日比特幣全網算力140EH/s
看了上面這些,你還在想用家用電腦挖礦嗎?我勸你徹底打消這樣的念頭。因為,理論上公平的事情,由於算力的懸殊,已經變成實際的不可能了。但是,美國政府不一樣,有的是錢,實在不行就發債。140Eh/s的算力,對於美國政府來說,可能真不是什麼大事。
我們來幫美國政府計算一下,要想實現140EH/s的算力,需要多少錢?下面這張圖片 ,是比特大陸宣傳所說的,當前全網最強的礦機,已經賣光了。其算力達到了110TH/s,價格是2萬多一點。
螞蟻礦機S19 Pro110T
我們先把比特幣的全網算力——140EH/s——換算一下單位,也就是在後面加6個0變成TH/s——140,000,000TH/s。美國要想實現這樣的算力,需要1272728台這種S19 Pro螞蟻礦機,人民幣25,874,560,240元,約259億人民幣,40億美元不到。電費、廠房及其他散熱設施所需要的費用暫時先不算。因為,比特幣挖出來後,還可以換成錢,經濟上問題不大。
不過讓人奇怪的是,比特幣社區對此好像並不緊張。而且,還有一個網站 ,專門把重新生成整個比特幣區塊鏈所需要的時間實時公布了。據他們估算,2020年12月8日早上7:20,誰擁有比特幣全網的算力, 只需要552.65天就可以把比特幣區塊鏈重新生成一次 。另外一個加密貨幣,BCH,用的時間更短,只需要32.67天。看來,美國政府殺死比特幣的可能性正在加大,而且不用500多天,增加礦機的數量就可以了。這樣,讓殺死比特幣的時間,會變得盡可能的短。
實時重寫比特幣、BCH區塊鏈所需天數
那麼,現在,美國政府在有了足夠的算力之後,是否就可以殺死區塊鏈了呢?
答案是:不可能。
因為有 「假定有效塊」( AssumeValid ), 這是比特幣核心(Bitcoin Core)軟體裡面的一個默認參數。
AssumeValid參數有兩個作用,第一個就是可以減少驗證開銷;另一個好處是,這個參數就像定海神針一樣告訴所有人,所有這個塊前面的區塊,包括這個區塊是可靠的,你們的賬戶上的比特幣是安全的。
這個參數是從0.14版本的時候開始有的,以後每次主要版本更新的時候,這個參數會被默認設置成幾個月前的、已經確認的有效塊。
現在的比特幣核心是0.21.0版本,2020年6月3日發布的 。在這個版本的源代碼中,已經更新了AssumeValid參數:
Bitcoin core 0.21 版本更新AssumeValid默認參數的截圖
上面一行,有「-」號的,是被替換掉的以前的程序代碼。,這個字元串代表的是寫在比特幣軟體里的一個區塊的hash,這個區塊2019年10月1日18點46分生成的,區塊的高度是597379。
下面那個有「+」號的,代表的是在代碼里增加的程序代碼,主要改變的是新的AssumeValid參數。,所代表的623950這個區塊,是2020年4月2日2點13分。
被Bitcoin core 0.20替換掉的默認AssumeValid參數所代表的區塊截圖。
Bitcoin core 0.20軟體裡面最新的默認AssumeValid參數所代表的區塊截圖。
也就是說,因為AssumeValid參數的存在。美國政府把比特幣區塊鏈重新算一遍也沒有用,它最多可以對AssumeValid參數後面的區塊產生影響。
我們來算算算看,如果美國從參數後面開始做最長的區塊鏈,是否有足夠的利益?
先算一下到目前為止的數據,從2020年4月2日零點到2020年12月12日零點,一共有365810分鍾。 比特幣區塊鏈,平均10分鍾產生一個區塊,每個區塊的比特幣獎勵從50開始,已經經歷了3次減半,現在是6.25個比特幣,比特幣的價格我們按照2萬美元一個計算。
365810 10 6.25 20000 = 45.72625億美元
正好,到目前為止所產生的比特幣差不多價值45億美元。應該說,還是很劃算的,不管怎麼說,沒有虧。而且,未來還有很多比特幣可以賺啊。且慢,即使只是從AssumeValid後面的區塊開始,即使有利可圖,美國最終還是不能殺死比特幣。
關鍵還是AssumeValid參數。剛才說了,這個參數的 默認值是新的主要版本發布的時候設定的 。它也完全可以不是默認值,當比特幣社區發現美國想殺死比特幣的企圖時,會通知大家出現的問題,讓大家設置成新的參數。只要,大家把參數一改,就會讓美國的那個最長的鏈,因為沒有人認可而失效。那條最長的鏈,就會只剩下美國一個礦工在記賬,自娛自樂。
就是這樣簡單,一個參數,就阻止了美國企圖通過算力殺死比特幣的陰謀。結論很簡單,即使是美國也殺不死比特幣。
AssumeValid參數,只是比特幣11年成長的縮影。比特幣核心軟體的版本,已經進行了21次重大更新,小修小補更是不計其數。11年來,不只是比特幣的價格在漲,比特幣社區的能力也在不斷提高。
最後,請允許我解釋一下,這篇文章與《即使中國也殺不死比特幣》不同,只是假設。實際上美國政府對比特幣的態度,是相當的友好,其友好程度不是第一、也有第二。當然,也有更合適的國家可以拿來舉例,但是我不敢。你懂的。
拿美國來舉例,還有另一種考慮。因為,美國——現在是地球上最強大的國家,如果它都殺不死比特幣了,那麼其他的國家、組織、機構也就更沒有這個可能了。那樣的話,比特幣也就可以高枕無憂了。但是,我還是要反復、再次,不厭其煩地提醒你,這一切並不能構成你——現在——就買比特幣的理由,請切記。詳細的原因,請看以前的文章:《小心!別上當!比特幣從來沒有牛市!》,很重要。
簡單說,這篇文章寫到這里的時候,是2020年12月12日凌晨,比特幣的價格是18486美元。3年前,2017年12月17日,比特幣價格開始從 歷史 高點19000多美元回落,直到現在又重新站回了 歷史 高點附近。我是想通過 歷史 數據告訴你,比特幣,還是很有可能再次跌倒1萬美元以下的。波動性是比特幣的天然屬性,所以,你應該等等看。
實際上,你和我都相信,美國政府是不可能幹這種事情的。這樣的預算,首先就不會在國會通過。但是,我們的假定還是有價值的,這至少可以讓更多的人丟掉幻想,讓更多的人安心入眠。
還記得開頭提到的《即使中國殺不死比特幣》,那篇彭博社的文章嗎?我真心希望你能親自看到那篇文章 ,可惜的是,你看不到。裡面有句話,非常好,借用一下,作為結尾。
如果你想廢除一種人們喜歡的東西,它就會在其他地方冒出來!( If you try to abolish something people like, it just pops up somewhere else. )
(待續,這是專題「比特幣還能走多遠」的第八篇)
『貳』 比特幣價值將歸零谷歌計劃2029年前量子計算商用化
(思進註: 1994年,數學家Peter Shor公布了一種量子演算法,該演算法可以打破最常見的非對稱密碼演算法的安全性假設。這意味著擁有足夠大量子計算機的任何人,都可以使用此演算法通過公鑰反算出私鑰,從而偽造任何數字簽名。這是否意味著比特幣將會被量子計算機crack down…… 事實上,中心化的密鑰體系PKI,確實會有這個風險,因為大多數應用是CA+10的6次方。海量反編譯,是可以推算出中心密碼本的!也就是說,偽造PKI數字簽名是有可能的, 拭目以待吧……再轉發下文,和大家分享……)
谷歌計劃2029年前量子計算商用化,比特幣價值將歸零?
作者 | 新浪 財經
來源 | 華爾街見聞
量子計算何以對比特幣構成威脅?
在解釋這個問題前,需要先了解以下幾個知識點。
經典計算機採用二進制,用0和1構建了底層代碼的一切。量子計算機可以同時儲存和表示0和1疊加態。比特幣挖礦基於計算一種名為SHA-256的哈希函數(一種函數演算法,把任意一個字元串輸入SHA-256函數,都會輸出一個256位的二進制數)的正確值。每一個比特幣用戶在注冊的時候,系統都會生成一個隨機數,再對這個隨機數進行SHA256再進行hash160,產生一個叫做私鑰的字元串。作為數字簽名。私鑰可以對一串字元進行加密。而公鑰可以把私鑰加密之後的數據進行和解密。加密和解密的鑰匙不一樣的這種加密方式,稱之為非對稱加密。通過公鑰反算不出私鑰。如果私鑰遺失,那麼擁有者的比特幣就無法取出。
基於上述原因,由於SHA-256的正確值十分難計算,數量有限的比特幣才會變得極為稀缺和珍貴。同時由於經典計算機無法通過公鑰反算出私鑰,私人擁有的比特幣才無法被他人獲得。
但在1994年,數學家Peter Shor公布了一種量子演算法,該演算法可以打破最常見的非對稱密碼演算法的安全性假設。這意味著擁有足夠大量子計算機的任何人,都可以使用此演算法通過公鑰反算出私鑰,從而偽造任何數字簽名。
故而,在量子計算面前,比特幣的挖礦將變得輕而易舉,通過公鑰也能反算出私鑰。這令比特幣變得不再稀缺,也不再安全。
同時意味著比特幣的共識將產生崩塌,比特幣的價值也將趨零。
關於量子力學,廣為人知的還有光的波粒二象性、觀測者效應,和一個著名的思想試驗——薛定諤的貓。
量子世界是如此不合常理,以至於它曾令說出「上帝不會擲骰子「愛因斯坦,都感到困惑不解。
無論如何,量子計算機的出現,對經典計算機形成了巨大挑戰。而隨著量子計算研究進程的遞進,比特幣的破解,或許在2029年前就將成為可能。
谷歌的量子計算進程如何?
早在2019年,谷歌發表在《自然》雜志上的論文稱,其開發的54比特(其中53個量子比特可用)超導量子晶元「Sycamore」,對53比特、20深度的電路采樣一百萬次僅需200秒,最強的經典超級計算機Summit要得到類似的結果,則需要一萬年。基於這一突破,谷歌宣稱實現了「量子霸權「。
而近日在 Google I/O 大會上,領導谷歌 Quantum AI(量子 人工智慧)團隊的的科學家Hartmut Neven表示,谷歌計劃在2029年前建造數十億美元的量子計算機並將其正式商用。
谷歌的目標是建造有著100萬個量子比特的計算機。不過,谷歌同時表示,首先需要減少量子比特產生的錯誤,然後才能考慮將1000個量子比特一起構建為一個邏輯量子比特。這將為「量子晶體管」打下基礎,「量子晶體管」是未來量子計算機的基礎。目前谷歌的量子計算機只有不到100個量子比特。但要知道,互聯網誕生至今不過52年,第一台通用計算機誕生至今不過75年.
谷歌目前正在加利福尼亞州擴建一個新園區,用以專注於量子計算方面的研究工作,擴建工程將於2020年底正式完工。
在量子計算領域大舉投資和押注的公司,除了谷歌,還有IBM、D-Wave Systems、霍尼韋爾(Honeywell)。
IBM Research總監Dario Gil曾表示,2023年將是量子計算大面積使用的轉折點,屆時將能通過軟體實時查看和更新量子計算的狀態,而不再是通過以往的硬體調整。
高德納咨詢公司 (Gartner)副總裁Chirag Dekate表示,過去五年中,量子計算的創新速度超過了此前的30年,他還預計到2025年,將有近40%的大公司制定量子計算計劃。
關於對抗量子計算,目前已出現量子密碼學的相關研究。一個名為The Open Quantum Safe (OQS)的開源項目已於2016年啟動,目標為開發抗量子的密碼形式。
『叄』 比特幣如何算出來的
要想了解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
『肆』 我了解到生成比特幣地址的十個步驟, 求問:第一步生成私鑰是隨機生成呢,還是根據你的比特幣數量信息
礦工你好