比特幣如何去中心
打個比方,一個村裡 我向你借錢,正常情況是如果我怕你借錢不還,可以找一個大家都認可的中間人比如村長作為擔保方並簽訂一張欠條,這樣如果你到時候你賴賬了,我可以找中間人證明你確實欠我錢來要錢,但是其中有2個問題 1.萬一村長發現對面是他失散多年的兒子 串通的就是來騙你錢咋辦,2.第二天中間人當場去世咋辦!這就涉及到信任和安全的問題。如果用區塊鏈的手段就是給你做證明人的是全村(分布式),這樣每個人都知道這件事,對方無法賴賬,第二就算有少部分人或者村長否認(部分節點作惡)丟了欠條或者篡改內容還是會有其他人做依據。
以上,解釋樓主的2個問題 1.去中心化因為賬本記錄在每個參與人的手裡沒有中心化 並且你儲存了記賬了自然會得到報酬 2.既然我儲存並記賬可以獲得獎勵,那我只記賬不想儲存可不可以?就有了礦池 你幫礦池一起記賬,礦池幫你儲存這樣你還是可以獲得很好的獎勵 礦池全球就那麼幾個,所以說又是中心化的
B. 去中心化的數據怎麼調節
從設置調節, 「去中心化」是一種現象或結構,其只能出現在擁有眾多用戶或眾多節點的系統中,每個用戶都可連接並影響其他節點。通俗的講,就是每個人都是中心,每個人都可以連接並影響其他節點,這種扁平化、開源化、平等化的現象或結構,稱之為「去中心化」。
同時「去中心化」是區塊鏈的典型特徵之一,其使用分布儲存和算力,整個網路節點的權力和義務相同,系統中數據本質為全網節點共同維護,從而區塊鏈不再依靠於中央處理節點,實現數據的分布式存儲、記錄與更新。而每個區塊鏈都遵循統一規則,該規則基於密碼演算法而不是信用證書,且數據更新過程都需用戶批准,由此奠定區塊鏈不需要中介與信任機構背書。區塊鏈是分布式數據存儲、點對點傳輸、共識機制、加密演算法等計算機技術的新型應用模式。 區塊鏈(Blockchain),是比特幣的一個重要概念,它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一批次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。 比特幣白皮書英文原版[1]其實並未出現 blockchain 一詞,而是使用的 chain of blocks。最早的比特幣白皮書中文翻譯版[2]中,將 chain of blocks 翻譯成了區塊鏈。這是「區塊鏈」這一中文詞最早的出現時間。
C. 區塊鏈技術
背景:比特幣誕生之後,發現該技術很先進,才發現了區塊鏈技術。比特幣和區塊鏈技術同時被發現。
1.1 比特幣誕生的目的:
①貨幣交易就有記錄,即賬本;
②中心化機構記賬弊端——可篡改;易超發
比特幣解決第一個問題:防篡改——hash函數
1.2 hash函數(加密方式)
①作用:將任意長度的字元串,轉換成固定長度(sha256)的輸出。輸出也被稱為hash值。
②特點:很難找到兩個不同的x和y,使得h(x)=h(y)。
③應用:md5文件加密
1.3 區塊鏈
①定義
區塊:將總賬本拆分成區塊存儲
區塊鏈:在每個區塊上,增加區塊頭。其中記錄父區塊的hash值。通過每個區塊存儲父區塊的hash值,將所有的區塊按照順序連接起來,形成區塊鏈。
②區塊鏈如何防止交易記錄被篡改
形成區塊鏈後,篡改任一交易,會導致該交易區塊hash值和其子區塊中不同,發現篡改。
即使繼續篡改子區塊頭中hash值,會導致子區塊hash值和孫區塊中不同,發現篡改。
1.4 區塊鏈本質
①比特幣和區塊鏈本質:一個人人可見的大賬本,只記錄交易。
②核心技術:通過密碼學hash函數+數據結構,保證賬本記錄不可篡改。
③核心功能:創造信任。法幣依靠政府公信力,比特幣依靠技術。
1.5如何交易
①進行交易,需要有賬號和密碼,對應公鑰和私鑰
私鑰:一串256位的二進制數字,獲取不需要申請,甚至不需要電腦,自己拋硬幣256次就生成了私鑰
地址由私鑰轉化而成。地址不能反推私鑰。
地址即身份,代表了在比特幣世界的ID。
一個地址產生之後,只有進入區塊鏈賬本,才能被大家知道。
②數字簽名技術
簽名函數sign(張三的私鑰,轉賬信息:張三轉10元給李四) = 本次轉賬簽名
驗證韓式verify(張三的地址,轉賬信息:張三轉10元給李四,本次轉賬簽名) = True
張三通過簽名函數sign(),使用自己的私鑰對本次交易進行簽名。
任何人可以通過驗證韓式vertify(),來驗證此次簽名是否有由持有張三私鑰的張三本人發出。是返回true,反之為false。
sign()和verify()由密碼學保證不被破解。·
③完成交易
張三將轉賬信息和簽名在全網供內部。在賬戶有餘額的前提下,驗證簽名是true後,即會記錄到區塊鏈賬本中。一旦記錄,張三的賬戶減少10元,李四增加10元。
支持一對一,一對多,多對已,多對多的交易方式。
比特幣世界中,私鑰就是一切!!!
1.6中心化記賬
①中心化記賬優點:
a.不管哪個中心記賬,都不用太擔心
b.中心化記賬,效率高
②中心化記賬缺點:
a 拒絕服務攻擊
b 厭倦後停止服務
c 中心機構易被攻擊。比如破壞伺服器、網路,監守自盜、法律終止、政府幹預等
歷史 上所有有中心化機構的機密貨幣嘗試都失敗了。
比特幣解決第二個問題:如何去中心化
1.7 去中心化記賬
①去中心化:人人都可以記賬。每個人都可以保留完整的賬本。
任何人都可以下載開源程序,參與P2P網路,監聽全世界發送的交易,成為記賬節點,參與記賬。
②去中心化記賬流程
某人發起一筆交易後,向全網廣播。
每個記賬節點,持續監聽、持續全網交易。收到一筆新交易,驗證准確性後,將其放入交易池並繼續向其它節點傳播。
因為網路傳播,同一時間不同記賬節點的交一次不一定相同。
每隔10分鍾,從所有記賬節點當中,按照某種方式抽取1名,將其交易池作為下一個區塊,並向全網廣播。
其它節點根據最新的區塊中的交易,刪除自己交易池中已經被記錄的交易,繼續記賬,等待下一次被選中。
③去中心化記賬特點
每隔10分鍾產生一個區塊,但不是所有在這10分鍾之內的交易都能記錄。
獲得記賬權的記賬節點,將得到50個比特幣的獎勵。每21萬個區塊(約4年)後,獎勵減半。總量約2100萬枚,預計2040年開采完。
記錄一個區塊的獎勵,也是比特幣唯一的發行方式。
④如何分配記賬權:POW(proof of work) 方式
記賬幾點通過計算一下數學題,來爭奪記賬權。
找到某隨即數,使得一下不等式成立:
除了從0開始遍歷隨機數碰運氣之外,沒有其它解法,解題的過程,又叫做挖礦。
誰先解對,誰就得到記賬權。
某記賬節點率先找到解,即向全網公布。其他節點驗證無誤之後,在新區塊之後重新開始新一輪的計算。這個方式被稱為POW。
⑤難度調整
每個區塊產生的時間並不是正好10分鍾
隨著比特幣發展,全網算力不算提升。
為了應對算力的變化,每隔2016個區塊(大約2周),會加大或者減少難度,使得每個區塊產生的平均時間是10分鍾。
#歐易OKEx# #比特幣[超話]# #數字貨幣#
D. 科普:什麼是比特幣
1.比特幣是一種P2P方式的加密貨幣
2.比特幣是一種去中心化的資產
3.比特幣經過挖礦取得
4.比特幣是中本聰創立
5.比特幣是經過記賬保證資產平安
6.關於挖礦
7.各個國度比照特幣的態度
8.比特幣的缺陷
自己接觸數字貨幣也有幾年了,比照特幣的理解也不能說有多麼的深化。我將盡我所能把什麼是比特幣寫分明,用小白能明白的文字來表述比特幣。
假如有錯的中央還望不吝賜教
1.比特幣的由來
比特幣的由來這里就必需要提到一個人:中本聰。中本聰是比特幣的開創人,但是關於誰是中本聰直到我寫這邊文章的時分,依然是一個未解之謎。
倒是有很多自稱是中本聰的人,但是一個個都禁不起琢磨。目前知名度最高的一個人是"澳本聰",由於人在澳大利亞,所以大家給他取了一個略帶
挖苦意味的名字。
先借用一下網路上面的引見:
比特幣(Bitcoin)的概念最初由中本聰在2008年11月1日提出,並於2009年1月3日正式降生 。依據中本聰的思緒設計發布的開源軟體以及建構其上的P2P網路。比特幣是一種P2P方式的虛擬的加密數字貨幣。點對點的傳輸意味著一個去中心化的支付系統。
與一切的貨幣不同,比特幣不依託特定貨幣機構發行,它根據特定演算法,經過大量的計算產生,比特幣經濟運用整個P2P網路中眾多節點構成的散布式資料庫來確認並記載一切的買賣行為,並運用密碼學的設計來確保貨幣流通各個環節平安性。P2P的去中心化特性與演算法自身能夠確保無法經過大量製造比特幣來人為操控幣值。基於密碼學的設計能夠使比特幣只能被真實的具有者轉移或支付。這同樣確保了貨幣一切權與流通買賣的匿名性。比特幣與其他虛擬貨幣最大的不同,是其總數量十分有限,具有極強的稀缺性。
我對上面的文字解釋一下:
【P2P】網路是點對點,再文言一點是個人對個人的意義。
中心化:普通的像支付寶這樣的系統是中心化系統,一切信息都控制在支付寶公司的效勞器中。
去中心化:就是沒有一個中心化的系統。網路中的一切個體都對這個賬本都有完好的記載。這里有個關鍵詞【賬本】。
什麼是賬本?比特幣的一切轉賬挖礦信息加起來是一個賬本。賬本就是數據的意義。比特幣網路中的每一台效勞器都有完成的比特幣轉賬記載【賬本】。
什麼是轉賬?假如你有一個比特幣錢包,並且有比特幣資產,那麼你就能夠轉賬到另一個地址。每個地址都是特有的不反復的。就像支付寶賬號,但是地址並不記載個人信息,所以轉賬是匿名的不可查的。但是轉賬記載【賬本】是公開的可查。
什麼是錢包?你能夠了解是一個軟體。目前用的做多的是imtoken,用imtoken你能夠生成本人的比特幣賬號【地址】。然後他人就能夠給你轉賬。錢包並不是中心化的東西。錢包生成的私鑰才是最重要的數據。你能夠用私鑰導入到其他錢包。留意密碼,密碼遺忘就不可找回。就無法轉賬。目前比特幣總量1800多萬。但是有可能比特幣丟失了,比方私鑰沒有了。所以一定要保管好你的私鑰。
2.如何取得比特幣
獲取比特幣的辦法目前有2種
1.用電腦挖礦
比特幣的產生就是挖礦而來,挖礦文言文就是:用電腦運轉特定軟體來運算數據,算對了就給你比特幣獎勵。挖礦需求高端顯卡,挖礦設備首先就是根絕NV顯卡。挖礦肯定是用顯卡挖礦。挖礦設備的整體構造和普通PC機器不一樣的中央就是顯卡數量。當然你也能夠用家用的電腦來挖礦感受一下。詳細的挖礦教程這里不做引見。
2.購置
購置相對就簡單不少。但是目前市面上買賣所成百上千家,優劣不齊。選擇的時分要謹慎。要選排名靠前的買賣所。這里引見幾個大型買賣所:火幣,幣安。這兩個曾經能夠滿足你的一切需求。
3.比特幣寄存在哪
比特幣能夠寄存在恣意一個數據存儲介質里,包括手機、U盤、挪動硬碟、電腦等。比特幣在停止買賣的時分,只需求運用比特幣買賣軟體發送比特幣地址即可。比特幣軟體能夠自動生成地址,同時在生成地址時不需求聯網。比特幣地址和私鑰是成對呈現的,他們的關系就像銀行卡號和密碼。比特幣地址是用來記載你在該地址上有幾比特
4.比特幣的價值所在
比特幣的價值十分大。說幾點適用的價值。
1.去中心化的貨幣,沒人能夠隨意凍結你。不用擔憂哪個國度凍結你的資產
2.隱秘的買賣 購置東西只需轉賬比特幣,沒人能夠查到你。其中的美好能夠自行想像
3.升值潛力 總量2100W,假如成世界貨幣。價值難以估量。目前比特幣價值:6700美圓 (2020年3月25日數據)
主要價值在上面幾點,曾經是充溢無限想像
5.如何買賣比特幣
能夠在買賣平台買賣,比方上面提到的買賣所。
買賣所分為中心化買賣所,和去中心化買賣所。比照來說中心化買賣所便當很多。事實也是這樣,去中心化買賣所的買賣量很少。
6.關於挖礦
比特幣是由挖礦產生的。但是目前個人電腦想挖礦的話難度真的不是普通的大。由於比特幣全網的運算水準在不時的呈指數級別上漲,單個設備或少量的算力都無法在比特幣網路上獲取到比特幣網路提供的區塊獎勵。在全網算力提升到了一定水平後,過低的獲取獎勵的概率。所以不是說你挖就能挖到的。就比方個人電腦你挖個十天半個月收獲的數量極極大約率還是0.
這里就不得不說一下【礦池】
過低的獲取獎勵的概率,促使一些「bitcointalk」上的極客開發出一種能夠將少量算力兼並結合運作的辦法,運用這種方式樹立的網站便被稱作「礦池」(Mining Pool)。
在此機制中,不管個人礦工所能運用的運算力多寡,只需是透過參加礦池來參與挖礦活動,無論能否有勝利發掘出有效材料塊,皆可經由對礦池的奉獻來取得少量比特幣獎勵,亦即多人協作挖礦,取得的比特幣獎勵也由多人按照奉獻度分享。
所以說過你個人想體驗挖礦的話,參加一個大型礦池是一個十分不錯的主見。
7.各個國度比照特幣的態度
友好的國度:日本,澳大利亞,韓國,新加坡等
日本是第一個使比特幣合法化的國度,並賦予了其法定貨幣位置。
澳大利亞是繼日本之後的第二個比照特幣友好的國度,在2017年宣布比特幣和加密貨幣為法定貨幣。
韓國買賣所也佔比特幣總買賣量的10%以上,世界上吸收比特幣買賣量最大的一些買賣來自韓國,這一事實自身就闡明了該國比照特幣的友好態度。
新加坡的比特幣不被視為貨幣,但被視為商品。因而,需求支付商品及效勞稅。
不友好的國度:中國,孟加拉,卡達等
中國在94的時分取消了一切境內買賣所,並明文制止買賣比特幣行為。
在孟加拉買賣比擬幣的話有可能會被拘捕
卡達,阿富汗這樣是神權國度在宗教上被以為是非法的
8.比特幣的缺陷
1.比特幣系統目前來看曾經相當的強健平安。但是並不是不可竄改的。有數據標明,破費幾十萬美圓購置算力,就可能使比特幣網路的買賣發作竄改。由於比特幣買賣的正確性
是有算力來決議的。假如攻擊方的算力佔領超越50%那麼就有可能竄改相關的轉賬信息。 歷史 上也發作了這樣的事情,固然不是攻擊的比特幣。攻擊的是ETC,但是這也證明了
BTC並不是無懈可擊的系統。
2.比特幣轉賬很慢,假如運用人數少的話能夠很快的轉賬,但是轉賬用戶多了之後會形成網路的阻塞。目前轉賬比特幣的時間是以小時來計算。
3.比特幣的算力如今由少局部人控制。這背叛了中本聰的初衷,少局部控制也就意味著中心化,而中本聰的初衷是去中心化系統。
E. 比特幣是什麼東西,怎麼產生的
比特幣不是真正的貨幣,而是互聯網技術產生的一種數字貨幣。比特幣的概念最早由中本聰於2008年11月1日提出,2009年1月3日正式誕生。
比特幣的特點:
1.它的特點是去中心化;
2.它具有全球化的特徵;
3.它的特點是匿名。
[擴展信息]
與大多數貨幣不同,比特幣不是由特定的貨幣機構發行的。它是根據特定的演算法通過大量的計算產生的。比特幣經濟利用整個P2P網路中眾多節點組成的分布式資料庫來確認和記錄所有交易,並利用密碼學的設計來保證貨幣流通各個環節的安全。P2P本身的去中心化特徵和演算法,可以通過大量製造比特幣來保證幣值不被人為操縱。基於密碼學的設計可以使比特幣只被真正的所有者轉移或支付。這也保證了貨幣所有權和流通交易的匿名性。比特幣的總量非常有限,非常稀缺。貨幣體系一度四年不超過1050萬,之後總數將永久限制在2100萬。
交易手段
比特幣是類似電子郵件的電子現金,交易雙方都需要一個類似電子郵件地址的「比特幣錢包」和一個類似電子郵件地址的「比特幣地址」。就像收發電子郵件一樣,發件人通過電腦或智能手機,按收件人的地址直接向對方支付比特幣。
消費模式
許多面向科技玩家的網站已經開始接受比特幣交易。比如火幣、幣安、OKEx等網站,以及部分淘寶店鋪甚至可以接受比特幣兌換美元、歐元等服務。毫無疑問,比特幣已經成為真正的貨幣,而不是騰訊q幣那樣的虛擬貨幣。國外已經有專門的比特幣第三方支付公司,類似於國內的支付寶,可以提供API介面服務。
你可以用錢買比特幣,也可以當礦工,用電腦搜索64位數字來「挖礦」。通過計算機反復解密,可以和其他淘金者競爭,為比特幣網路提供所需的數字。如果計算機能成功創建一組數字,將獲得12.5個比特幣。比特幣是去中心化的,單位計算時間需要創造固定數量的比特幣,即每10分鍾可以獲得12.5個比特幣。到2140年,流通的比特幣最大數量將達到2100萬。換句話說,比特幣系統可以自給自足,翻譯成代碼可以抵禦通貨膨脹,防止他人破壞。
F. 區塊鏈的去中心化是什麼意思
區塊鏈的去中心化是指區塊鏈發展過程中形成的社會關系形態和內容產生形態,是相對於「中心化」而言的新型網路內容生產過程。
區塊鏈是比特幣的一個重要概念,它本質上是一個去中心化的資料庫,同時作為比特幣的底層技術,是一串使用密碼學方法相關聯產生的數據塊,每一個數據塊中包含了一批次比特幣網路交易的信息,用於驗證其信息的有效性(防偽)和生成下一個區塊。
區塊鏈是全網統一的,因此從邏輯上看是中心化的。從架構上看,區塊鏈是基於對等網路的,因此是架構去中心化的。從治理上看,區塊鏈通過共識演算法使得少數人很難控制整個系統,因此是治理去中心化的。
(6)比特幣如何去中心擴展閱讀:
區塊鏈去中心化的特點:
去中心化,不是不要中心,而是由節點來自由選擇中心、自由決定中心。簡單地說,中心化的意思,是中心決定節點。節點必須依賴中心,節點離開了中心就無法生存。
在去中心化系統中,任何人都是一個節點,任何人也都可以成為一個中心。任何中心都不是永久的,而是階段性的,任何中心對節點都不具有強制性。
隨著網路服務形態的多元化,去中心化網路模型越來越清晰,也越來越成為可能。Web2.0興起後,Wikipedia、Flickr、Blogger等網路服務商所提供的服務都是去中心化的,任何參與者,均可提交內容,網民共同進行內容協同創作或貢獻。
參考資料來源:網路-區塊鏈
參考資料來源:網路-去中心化
G. 什麼是比特幣的去中心化
比如說,我通過支付寶給你轉了1000塊錢,我這里一發送,你那裡立刻就收到了。這樣看似咱倆直接打交道的金融交易,其實是有的。
第一,轉賬用的人民幣有中心的。人民幣在現實中是一張紙,在互聯網上是一個數字,只有中國人民銀行才能發行人民幣。如果有人自己印一張人民幣,畫得再像也是違法行為,所有的人民幣都離不開中國人民銀行這個中心。
第二,支付寶的轉賬交易有中心。雖然是咱們兩個在手機上轉賬,但背後是通過支付寶的伺服器來實現的,相當於我現把錢交給支付寶這個中心,然後支付寶再把錢交給你。如果某一天支付寶的伺服器出故障了,我們的支付寶也就不通了,所以用支付寶轉賬離不開支付寶這個中心。
以上說的兩個中心,比特幣完全不存在。有沒有一個中心去負責比特幣轉賬?沒有,兩個人之間轉賬就是通過互聯網,只要能上網,沒辦法阻止交易,比特幣轉賬交易是通過使用比特幣的人一起確認的。
在日常的交易中,「去中心化」和「中心化」都有各自的利弊,它們都在各自的領域中發揮著自己的作用,關鍵是看未來運用的規則誰能佔得先機,更加方便安全的融入市場,我們就拭目以待了。
相關信息
中心化的問題很多,比如央行不需要經過你的同意,就可以無窮無盡地印鈔票,掠奪你的財富;你在銀行的錢,實際上不是你的錢,而是銀行對你的負債。你並不總能從銀行里取出你的錢,銀行有可能一天只允許你取60歐元,甚至有可能強制沒收你的存款。
雖說私有財產神聖不可侵犯,但人們對此毫無辦法。在比特幣中這些劣行將不復存在,比特幣是一個完全脫離銀行,只依靠互聯網運行的貨幣系統,即使是政府執法部門,也無法查封或沒收比特幣;除非徹底關停互聯網,否則也無法封殺比特幣網路。
在比特幣系統里,你能真正掌握你的錢,而不是通過銀行間接掌握你的錢,比特幣在人類歷史上第一次用技術手段保證了私有財產神聖不可侵犯。
H. 關於比特幣的謎題(完結)
你可曾想過: 為什麼礦機算力越大越好?(既然是解數學題那為什麼不是拼誰的演算法厲害啊喂!) 比特幣的數量總和為什麼是2100萬? 比特幣盜竊是怎麼回事? 我不玩比特幣,就真的與比特幣無關了嗎…… 🤔️
關於大眾不再感到陌生的比特幣,背後還有許多巧妙之處。本文介紹了比特幣的基本原理和主要原則,並結合對部分技術細節的剖析,來對上述的一些疑問作出解答。全文較長,約7000字,閱讀時間約為22分鍾,建議收藏後閱讀😁
文章可以分成以下幾個部分:
* 比特幣先驗知識
-- 密碼學相關
-- 比特幣重要概念
* 交易的生命周期
* 區塊鏈的構成
* 區塊鏈的生長
-- 「挖礦」的數學本質
-- 「礦工」的收益
* 比特幣的共識機制
-- 比特幣的去中心化共識
-- 「最長鏈優先」原則
* 比特幣安全性
比特幣作為第一個去中心化的數字貨幣,其設計中運用了不少的密碼學相關知識,主要包括非對稱加密技術、哈希函數等等。理解這些密碼學知識,能幫助我們更好地理解比特幣中的一些概念及規則。
以下是比特幣的一些定義及概念解說,了解過的小夥伴們可以直接跳過~
在比特幣這個創新的支付網路中,一個交易的生命周期大概可以分為幾個階段:創建、傳播和被驗證交織、被打包進區塊記錄到區塊鏈中、獲得更多的確認。圖1對這幾個階段做出了示意。
註:
1⃣️一個支付方A在發起一個比特幣交易時,會使用自己的私鑰對交易信息的哈希值進行簽名。因此A向全網廣播的內容除了交易信息之外,還有自己的公鑰信息、對消息的簽名。其他礦工只要利用A的公鑰即可對這個交易進行驗證,判斷是否真的由A創建。
2⃣️」交易傳播和交易驗證「交替意味著 各個節點基於一定的規則獨立驗證每個交易(共識基礎1) , 一個節點只有認為這個交易有效才會把它繼續傳播出去。
比特幣的底層技術是區塊鏈。區塊鏈系統是一種分布式共識系統,區塊鏈網路中所有的參與節點將就交易的狀態達成一致。
區塊鏈到底是什麼呢?你可以把它理解成一種分布式的交易的共享賬本,以區塊為基本單位鏈接在一起。交易信息將被整理並打包記錄在區塊中。每一個區塊,包含區塊頭,以及緊跟其後的交易列表。區塊頭包含3個區塊元數據集合:前序區塊哈希(嚴格來說是前序區塊頭哈希,因為只有區塊頭被用於哈希運算)、元數據集(包括難度、時間戳、隨機數等)、一個基於加密哈希來高效概括區塊中所有交易的默克爾樹(merkle tree)。了解這個結構,將幫助我們更好地理解挖礦的數學本質。
你可能聽說過「挖礦」這個詞,或者聽說眾人爭相購買挖礦機器來發家致富。但讓人疑惑的是:都說打包區塊的本質是解數學難題,但單憑那些看似簡陋的機器嗡嗡嗡瘋狂耗費電力,就能確保自己解出比特幣難題的勝率高了嗎?比特幣技術原理中,礦工們解決的數學題,難道是一個暴力破解題?
看了一圈,發現礦工們解決的題,還真有點暴力破解的意思,每次嘗試解題的過程幾乎都是茫茫然、去碰運氣的。拼的是誰足夠幸運,也拼誰算的足夠快;算的快了么,試錯次數多,自然勝算也就大了。
解題的背景是這樣的—— 挖礦節點通過基於工作量證明演算法(Proof-of-Work,POW)的證明運算,獨立將交易匯聚到新區塊中(共識基礎2)。 當礦工從網路中接收到一個新的區塊的時候,他發現自己已經在上一輪競爭中失敗了,所以立即開始新區塊的挖礦過程。為了創建一個新的區塊,他從內存池中選擇交易來填充區塊(加入區塊的第一筆交易是一個「鑄幣交易」,3.2節會給出詳相關細節)。接下來是填充欄位來創建區塊頭(包括前序區塊的區塊頭哈希、交易的默克爾樹(Merkel樹)、時間戳、難度目標值、隨機數),然後開始計算這個新區塊的工作量證明。
這個計算的過程簡單來說是對區塊頭部進行兩次sha256運算,得到一個RESULT,如果這個RESULT滿足特定要求,這個人才能算是算對了、才有權利去記賬。滿足要求的RESULT被稱為「工作量證明」(中本聰論文中稱為「proof of work」)。
關於這個計算過程,強調以下幾點:
第一,區塊頭部,包含了前序區塊頭部的哈希、本區塊交易信息的默克爾樹、時間戳、難度目標值、隨機數等信息(見圖2)。
第二,哈希運算具有「知道y,無法推出使得h(x)=y成立的x」、「即使輸入只改變一點點,輸出也會差很多」、「利用任意長度的數據作為輸入,生成一個固定長度的確定結果」的特性。所以大家也不知道什麼樣子的輸入才能產生自己想要的結果,礦工只能不斷嘗試。
第三,前面說到,區塊頭哈希值需要滿足一個特定要求才能成為工作量證明——小於某一閾值,或者說哈希值含有給定前綴。閾值的大小求和挖礦難度有關:挖礦難度是一個動態參數,其值越大,則閾值越小,說明哈希值符合要求的概率更小,礦工每次計算能成為工作量證明的概率越小。比特幣有一個自我調節過程——通過對現有的挖礦算力情況進行估算,來對應調整挖礦難度,可以保證區塊鏈每十分鍾出一個塊,達到控制發行速度的目的。(這個過程的基本思想類似產品筆試的數據估算題,根據「一個提供、一個需要「的思路去構造一個等式,然後求解等式一邊的一個因子;想了解挖礦難度系統和調整方式的同學可以進一步查閱~)
綜合以上三點來看,為了產生工作量證明,用戶基本上會通過調整隨機數來碰運氣(因為其他欄位基本不變)、進行多次運算直至符合要求,別無他法。如此一看,隨機數就具有「幸運數字」的意味了。因此,平均來講,誰計算的能力越強(嘗試的次數越多),就更有希望打包塊。
你可能會想,礦工這么心甘情願地消耗算力去維護區塊鏈,是受到怎樣的利益驅使呢?簡單來說,礦工的收益來源有二:1、計算出工作量證明,創造一個新區塊所獲得的新幣獎勵;2、記賬礦工費。
當礦工找到工作量證明、打包一個新區塊,並把區塊傳送給他的所有對等節點。 每一個挖礦節點都獨立驗證新區塊、把合格的新區塊整合進區塊鏈(共識基礎3) ,並把這個區塊繼續傳給自己的對等節點。結果是,只有經過驗證的區塊才會在網路當中廣泛傳播,保證了誠實礦工挖出的新區塊能被區塊鏈所接納。挖礦成功的個體節點或集體節點,可以同時獲得新幣獎勵和記賬礦工費。
新幣獎勵類似於貨幣的發行,其遵循規則是,第一個四年每一個新區塊產生50btc,第二個四年每一個新區塊產生25btc,第三個四年每個新區塊產生12.5btc,如此周期指數遞減。按照等比數列求和可知,到2140年,比特幣產生的總和約為21000000(所以說比特幣數量有限,天生緊縮)。屆時,不再隨區塊的產生增加新的比特幣,礦工不再擁有第一項收益。但現實中,由於挖礦成本高昂,挖礦成功的往往是是一個礦池的所有參與者。收益被分給礦池地址,礦池按照組內算力貢獻比例來分攤收益的。
記賬礦工費又稱交易費用,以交易輸入和交易輸出之間的差值的形式存在;一個區塊的總交易費用是對加入區塊的所有交易的(交易輸入-交易輸出)求和。一般來說,礦工費越高的交易,會越快被處理。而礦工費在這里起到兩個作用,一個是獎勵礦工,另一個是防止主鏈濫用(防止大家發送交易垃圾信息,因為提出交易是有一定代價的)。
礦工的收益以什麼樣的形式被驗證呢?這里不得不提到 「鑄幣交易」 。每個計算機節點在進行工作量證明計算之前加入區塊的第一筆交易,正是「鑄幣交易」。這個交易從無到有生成比特幣,其金額是新幣獎勵與記賬礦工費的總和,被支付到挖礦礦工自己的比特幣地址。如果礦工找到了一個工作量證明使區塊有效,他就贏得了這個獎勵,因為他構造的「鑄幣交易」生效了。
關於鑄幣交易和「新幣獎勵」,之前有一個讀者問我:一個礦工把自己挖到新區塊的消息公布出去,他的工作量證明 不會被別人剽竊 嗎?
個人認為,至少「鑄幣交易」能防止這件事情發生。讓我們來重申一下計算工作量證明的過程——一個礦工E在新區塊里加入了獎賞自己的「鑄幣交易」,並利用時間戳、前序區塊頭哈希、隨機數、本區塊交易的merkle樹等信息計算出一個符合要求的工作量證明。
在這個過程中,merkle樹啥樣子,取決於包括「鑄幣交易」在內的本區塊所有交易信息。因此可以把鑄幣交易視為工作量證明的間接變數之一。那麼,即使其他人拿到了E的工作量證明,這個工作量證明也是帶有E的印記的、與獎賞E的鑄幣交易相關的,別人根本無法納為己用。
你還可以通過設想以下的場景來加深對共識基礎2「挖礦節點通過基於工作量證明演算法的證明運算,獨立將交易匯聚到新區塊中」的理解。
為什麼一個挖出新區塊的礦工不悄悄使個心眼,在創建區塊之初就把鑄幣交易的金額設成1000BTC呢?原因在於每個節點都是基於相同的規則來獨立驗證區塊的。礦工必須創建完美的、符合公共規則的、正確依據工作量證明方法的區塊;而一個無效的鑄幣交易會導致整個區塊無效,並被其他節點拒絕,永遠無法成為賬本的一部分。可以預想,為了生成這個工作量證明,礦工們已經投入了巨大的算力和電量去挖礦,如果涉嫌欺詐而被否決,其為挖礦付出成本都付諸東流。
綜上所述,礦工不能冒領他人的獎勵,而拿到獎勵的礦工也必須只能拿取符合規定的數額。
比特幣的卓越之處,在於建立了一種去中心化的自發共識。這種共識是自發產生的,是成千上萬在網路中遵循著共同規則的節點,在非同步交互中形成的,不依賴於任何中央機構的調解和干涉。
關於比特幣的4項主要共識基礎,本文在講解對應細節時有提及,下面做一個整合:
這四個過程相輔相成、互相作用,形成了自發的全網共識,促使全網節點組合出可信、公開、權威的總賬。
你可能會想,比特幣是一個去中心化的、基於大眾信任的、依靠眾人力量運轉的一個東西。萬一有一部分礦工被壞人收買了咋辦呢?「51%攻擊」指的又是什麼?比特幣交易所要求的「6個確認」又是怎麼回事?
這里首先要提到比特幣的一個規則「 最長鏈優先 」。意思是, 比特幣的賬單鏈在出現分叉的時候,每個礦工會獨立選擇長(累積了最多工作量證明)的鏈條,在上面繼續挖礦工作(共識基礎4) 。
這個原則主要涉及到兩個問題:
當有兩個礦工A和B同時挖礦成功(算出符合要求的數學答案)時,他們分別把自己計算出來的工作量證明作為下一個塊的前序區塊哈希,生成一個塊銜接到原有的鏈後面,由此出現了兩個分支。
這個時候,這兩個成功的礦工廣播了自己打包成功的消息。由於區塊鏈是一個去中心化的數據結構,區塊消息到達不同節點的時間點不一致,故不同的節點可能擁有不完全一樣的區塊鏈視圖——有的礦工會先收到A的消息,有的則先收到B的消息。為了解決這個問題,收到消息的礦工們遵循一個原則:選擇並嘗試延長最長的鏈。
因此,這兩條分支會各自成長一小段時間,直到他們的長度出現差異(不可能長度一直相同),比如說其中一條鏈的礦工們,更快地打包在支鏈後面又加上一塊。按照「最長鏈優先「的規則,較短的鏈會被拋棄,原本工作在短鏈上的礦工們都回到長鏈上工作。
換言之,分叉只是不同節點暫時的不一致現象,當新區塊被加入到其中某一分支時,最終收斂將解決這一個問題。[讀者可以思考一下,為什麼區塊鏈被設置成每十分鍾挖出來一個塊:如果時間短了,是不是就增加了分支產生的次數?如果時間長了,是不是交易結算的效率就太低了?]
雙重支付的本質其實也是區塊鏈的分叉,但這種分叉卻是「非自然惡意蓄謀」的產物。
我們假設小敏是密謀雙重支付的一方,她把自己僅有的10BTC先給小強、交換一塊黃金,待這條交易信息P被打包進區塊Q後,她從小強手中拿到了黃金。這時,小敏使了個心眼,她想偷偷抹去、篡改區塊Q上的交易信息P,「白嫖」這塊黃金。為了實現這樣的目的,根據「最長鏈優先」法則,小敏必須剔除該筆交易P後、重新進行結算工作,集中算力來形成分叉,並讓分叉以更快的增速超過並取代Q所在的主鏈。如果小敏確實能讓分叉更長,分叉就成為了主鏈,其他節點也會轉向新主鏈上繼續工作。這樣,小強付出了黃金,卻沒有收到這10個比特幣,「賠了夫人又折兵」。
在這個過程中,小敏需要和原鏈進行「抗爭」,使新分叉成為最長的主鏈,這被稱為「共識攻擊」。「共識攻擊」本質上是對下一區塊的爭奪,攻擊方越「強壯」、哈希算力越大,就越容易成功。
「共識攻擊「成功的可能性有多大呢?
大多數比特幣交易所規定,一個交易傳送到區塊鏈上後需要6個「確認」來完成驗證該筆交易。這一規定的根據是,假設意圖造假的礦工擁有10%的算力(挖礦成功概率0.1),那麼造假礦工要構造另一條偽鏈實施長度超越,必須至少成功挖礦6次。那麼原鏈被取代、被拋棄的概率約為0.1的6次方,趨近於0。你可以把比特幣理解為地質構造層,表層可能因為季節變換而有所改變,甚至可能被風颳走,但一旦深入到地下,地質層就能更加穩定、不受干擾。
而假設有一群擁有了51%算力的礦工,他們控制了一半以上的全網哈希算力,可以故意在區塊鏈中製造分叉、進行雙重支付交易 。但事實是,全網哈希算力的大量增加,個體礦工幾乎不可能控制哪怕1%的哈希算力了(但礦池帶來的算力集中化控制,存在一定的風險)。更何況,如果真有擁有如此強大算力的組織,他完全可以憑借自己強大的算力投入到挖礦中去獲取開發新區塊所獲的的比特幣獎勵,誠實挖礦比雙花更有利可圖。
盡管實際上並未出現51%攻擊的問題,但不可否認的是,算力的集中違背了比特幣去中心化這一初衷,並成為其繼續發展的一大隱患。
一個系統的安全性,往往取決於系統安全的最薄弱環節,這也就是所謂的「木桶原理「。與區塊鏈系統相關的安全性問題包括但不限於以下幾項:
(1)在區塊鏈上被廣泛使用的公鑰系統基本上是安全的,但量子演算法在理論上能夠破解公鑰系統;因此,區塊鏈的演算法安全性是相對的。
(2)區塊鏈協議本身存在邏輯缺陷,例如受到黑客攻擊的區塊鏈系統共識機制。
(3)所有數字貨幣系統高度依賴私鑰,私鑰在存儲、使用方面的安全性成為區塊鏈系統安全性中至關緊要的一環。
盡管區塊鏈是去中心化系統,但目前絕大多數數字交易所卻是中心化的,存在著人為安全漏洞及技術安全漏洞。這些數字交易所擁有存放大量加密貨幣的私鑰,這對於黑客來說無疑是最矚目的目標;只要黑客偷走了這些私鑰,就可以獲取到這些加密貨幣。
作者會繼續閱讀相關資料、不斷完善本文,目標是完成一篇通俗易懂的比特幣科普文章。:)
**本文系網上信息與個人理解的結合,如有偏差及誤讀,歡迎讀者指出。也歡迎給出關於文章結構上的指導~
I. 比特幣是如何去中心化的
比特幣白皮書《比特幣:一個點對點電子現金系統》中,中本聰詳細地解釋了他是如何設計這個系統的。在其中,他確立了此後所有區塊鏈系統的主要設計原則。
一個真正的點對點電子現金應該允許從發起方直接在線支付給對方,而不需要通過第三方的金融機構。
現有的數字簽名技術雖然提供了部分解決方案,但如果還需要經過一個可信的第三方機構來防止(電子現金的)「雙重支付」,那就喪失了(電子現金帶來的)主要好處。
針對電子現金會出現的「雙重支付」問題,我們用點對點的網路技術提供了一個解決方案。
該網路給交易記錄打上時間戳(timestamp),對交易記錄進行哈希散列處理後,將之並入一個不斷增長的鏈條中,這個鏈條由哈希散列過的工作量證明(hash-based proof-of-work)組成,如果不重做工作量證明,以此形成的記錄無法被改變。
最長的鏈條不僅僅是作為被觀察到的事件序列的證明,並且證明它是由最大的CPU處理能力池產生的。只要掌控多數CPU處理能力的計算機節點不(與攻擊者)聯合起來攻擊網路本身,它們將生成最長的鏈條,把攻擊者甩在後面。
這個網路本身僅需要最簡單的結構。信息盡最大努力在全網廣播即可。節點可以隨時離開和重新加入網路,只需(在重新加入時)將最長的工作量證明鏈條作為在該節點離線期間發生的交易的證明即可。
鏈喬教育在線旗下學碩創新區塊鏈技術工作站是中國教育部學校規劃建設發展中心開展的「智慧學習工場2020-學碩創新工作站 」唯一獲準的「區塊鏈技術專業」試點工作站。專業站立足為學生提供多樣化成長路徑,推進專業學位研究生產學研結合培養模式改革,構建應用型、復合型人才培養體系。
J. 關於「比特幣」,你需要了解的一些知識
08年的金融危機,全球的經濟受到嚴重的打擊。中心化的弊端開始展現,基於去中心化的思想,比特幣的概念被中本聰提出,並在2009年正式落地。比特幣的獨特性在於他的去中心化機制,可以不依靠特定金融機構發行,可以實現點對點的傳輸, 又 網路中眾多的節點構成的分布式賬本記錄了所有的交易行為。運用密碼學等知識建立的信任機制,確保了比特幣在各個流通環節中的安全性;同時比特幣的嚴重稀缺的,總量只有2100萬個。
比特幣具有獨特的「挖礦」機制,這里的挖礦不是你傳統思想中所認為的背著工具,去到礦洞中挖煤、銅、金銀那種的原始挖礦。而是運用計算機來計算解決一道極難的數學題,所有的礦工同時來做一道題,先計算出哈希值,也就是數學題的答案的人,就能夠獲得相應的挖礦獎勵。這里的礦工當然是指所有運用計算機來計算數學題的人。
挖礦的獎勵當然就是比特幣了,但是挖礦獎勵分為兩部分,一部分是區塊獎勵,礦工挖礦的同時需要負責把用戶的交易行為打包封裝成為區塊並連接在比特幣的網路上。區塊獎勵並不是固定不變的,比特幣設計了一個減半機制,最初的區塊獎勵為50個比特幣,每四年發生一次減半,目前已經發生了三個減半,最近的一次發生在今年的五月份,目前區塊獎勵已經降低至6.25個了; 令一 部分是所封裝的交易行為中,用戶會支付一定的比特幣作為給礦工的記錄小費,但這個費用不是固定的,而是用戶自行設置的,就像點外賣需要配送費一樣,當然現在是商家設定好的,如果可以用戶可以自行設定的話,自然是配送費出的越高,越有人願意接單為你配送,送的就會快一些,但如果配送費低,願意接單的就會少,送的也會慢。比特幣交易也是同樣的 到底 ,手續費出的高,礦工會優先處理你的交易,手續費低,就會相對靠後一些。
回到前面所有的用戶挖礦解數學題的問題上,為什麼有的計算的快,有的計算的慢呢?這就要談到「算力」的概念了,算力就好比計算能力,算力高,計算能力高,算出的答案會又快有準,既然是計算機在計算數學題,算力就是指的計算機的計算能力,專門用來提供算力的被稱為「礦機」。順便提一句,最開始的挖礦,可沒有復雜到需要礦機哦,簡單的家庭電腦就能挖。想想最高價達到19000美元的比特幣,是不是感覺自己錯過了一個億了呢。
說了那麼多的比特幣交易,這個點對點的系統又是如何進行交易的呢?這一點可以類比一下我們現實中的銀行轉賬,從一個銀行卡賬號通過輸入金額,輸入密碼轉到目標銀行卡賬號上去。在比特幣的世界裡,有公鑰和私鑰兩種密碼,公鑰類比銀行卡號,私鑰類比銀行卡密碼。轉賬時需要用到「錢包」,就好比網銀APP,輸入私鑰登錄自己的賬戶,輸入對方的公鑰並輸入轉賬金額和設置一定的手續費,就可以將自己賬戶中的比特幣轉到對方賬戶中去了。
( 歐科雲鏈鯤鵬計劃 第二天 打卡)