礦機雙花
Ⅰ 閃電比特幣與BCH的不同之處是什麼閃電比特幣LBTC與其他分叉幣的不同是什麼
其他比特幣的分叉幣類似BCH,普遍採用PoW共識機制,普通用戶仍然需要Asic礦機挖礦。然而,這些幣種,以BSV、BTG為代表,本身極易遭到51%的雙花攻擊,網路狀態不穩定。同時,轉賬速度比較慢,區塊容量很小,難以支持大規模的商業落地應用。
LBTC的目標是實現中本聰「點對點電子現金」的願景,成為價值互聯網傳輸協議。LBTC未來會增加用戶交易的隱私性、高效性,更加便於用戶使用,成為真正大規模落地的加密貨幣。同時,LBTC將致力於改進現有的中心化交易所的運行效率,為用戶提供更多交易可能。
Ⅱ 關於比特幣的謎題(完結)
你可曾想過: 為什麼礦機算力越大越好?(既然是解數學題那為什麼不是拼誰的演算法厲害啊喂!) 比特幣的數量總和為什麼是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)所有數字貨幣系統高度依賴私鑰,私鑰在存儲、使用方面的安全性成為區塊鏈系統安全性中至關緊要的一環。
盡管區塊鏈是去中心化系統,但目前絕大多數數字交易所卻是中心化的,存在著人為安全漏洞及技術安全漏洞。這些數字交易所擁有存放大量加密貨幣的私鑰,這對於黑客來說無疑是最矚目的目標;只要黑客偷走了這些私鑰,就可以獲取到這些加密貨幣。
作者會繼續閱讀相關資料、不斷完善本文,目標是完成一篇通俗易懂的比特幣科普文章。:)
**本文系網上信息與個人理解的結合,如有偏差及誤讀,歡迎讀者指出。也歡迎給出關於文章結構上的指導~
Ⅲ ProofofWork的優點
ProofofWork的優點:
1、機制本身當然很復雜,有很多細節,比如:挖礦難度自動調整、區塊獎勵逐步減半等,這些因素都是基於經濟學原理,能吸引和鼓勵更多人參與。
2、理想狀態,這種機制,可以吸引很多用戶參與其中,特別是越先參與的獲得越多,會促使加密貨幣的初始階段發展迅速,節點網路迅速擴大。在Cpu挖礦的時代,比特幣吸引了很多人參與「挖礦」,就是很好的證明。
3、通過「挖礦」的方式發行新幣,把比特幣分散給個人,實現了相對公平。
缺點:
1、算力是計算機硬體(Cpu、Gpu等)提供的,要耗費電力,是對能源的直接消耗,與人類追求節能、清潔、環保的理念相悖。不過,如果非要給「加密貨幣」找尋「貨幣價值」的意義,那麼這個方面,應該是最有力的證據。
2、這種機制發展到今天,算力的提供已經不再是單純的CPU了,而是逐步發展到GPU、FPGA,乃至ASIC礦機。用戶也從個人挖礦發展到大的礦池、礦場,算力集中越來越明顯。這與去中心化的方向背道而馳,漸行漸遠,網路的安全逐漸受到威脅。有證據證明Ghash(一個礦池)就曾經對賭博網站實施了雙花攻擊(簡單的說就是一筆錢花兩次)。
3、比特幣區塊獎勵每4年將減半,當挖礦的成本高於挖礦收益時,人們挖礦的積極性降低,會有大量算力減少,比特幣網路的安全性進一步堪憂。
Ⅳ 在公鏈項目早期,為什麼PoW是一個更好選擇
在傳統的互聯網公司或金融機構中,如果一家公司,在一年之內,被委託的交易結算的總量為萬億美元的話,這家公司要麼擁有可靠的技術和雄厚的資本,要麼就是其它大公司及政府為其信用來做背書。而比特幣卻在沒有政府或公司背書的情況下,在過去一年內支持了相當於一萬億美元的交易。這是因為比特幣的工作量證明(PoW)機制確保了全世界的比特幣礦工以點對點的方式去分布式地維護賬本,且保證了其正確性和不可篡改性。
實際上,PoW 協議並不完美,它在運行過程中需要消耗大量的能量來計算哈希函數的結果,以保護區塊鏈系統不被攻擊。很多人認為這是一種「無用的能源消耗」。為了避免這種消耗,股權證明協議(PoS)便作為替代方案被提出。包括以太坊在內的幾個著名的項目也開始探索股權證明協議(PoS), 甚至有人認為,PoS協議在未來將完全取代PoW協議。
但是,在對PoS 協議進行了深入的技術剖析之後,我們會發現:在一個公鏈項目的早期階段,PoS 協議會帶來很多問題,而這些問題在PoW協議下是可以避免。首先,使用PoS協議啟動主網的公鏈項目,會不可避免地存在共識中心化的問題,因為主網上線的時候股權分布往往是相對集中的。此外,純 PoS 協議還面臨著遠程攻擊(Long Range attack)的威脅。最嚴重的遠程攻擊會導致新加入的節點必須信任一些中心化的網站給出的信息,而這會導致 PoS 公鏈成為一個本質上中心化的網路。去使用PoW協議啟動主網的區塊鏈則可以實現分散的共識,從而避免這些問題。當PoW公鏈經過一段時間的發展,股權分布相對分散以後,還可以選擇PoW/PoS復合機制。
除此之外,還有一點值得注意的是,很多人誤以為比特幣的擴容問題是PoW機制的局限性造成的。我們經常在媒體網站或白皮書中看到這樣的句子,「比特幣因為使用了PoW機制,所以只能處理每秒3-7筆交易」。而事實上,經過適當的設計,例如,GHOST, Conflux 這樣的PoW演算法可以顯著提高出塊效率,達到每秒處理數千筆交易,且每筆交易都能得到全網節點的驗證。
PoW v.s. PoS:如何確定投票權
關於PoW和PoS之間的主要區別,就是在於如何確定區塊鏈共識中的投票權。 在PoW中,系統中的投票權與節點的計算能力成正比。每秒可以計算哈希函數次數越多,節點就越有可能贏得區塊鏈中下一個區塊的出塊權。而在PoS中,系統的投票權與持有的股權比例成正比。節點擁有資金越多,能為確定的下一個區塊投的票數就越多。
在公鏈早期階段,股權中心化將導致共識中心化
對於一個公有鏈來說,其上線初期往往是股權最集中的時候。在主網上線伊始,創始塊中分配的幣絕大多數屬於項目方和私募投資人,而這些人的數量往往非常有限。對於PoW共識機制,初始股權的集中不會帶來安全性問題,因為它的出塊和安全性不依賴於股權持有的分散,而是依賴於算力的分散。對於使用反 ASIC 礦機的挖礦演算法的公有鏈來說,任何人只要擁有顯卡和網路就可以成為礦工,這有助於促進更多人參與挖礦,實現早期算力的分散。只要超過50%的算力來自於誠實的礦工,區塊鏈中的交易就是安全不可逆轉的。
然而,在PoS共識機制下,股權集中會導致共識協議的參與者集中。區塊鏈的出塊權只能由少數在創世塊中擁有股權的玩家決定。如果這些人合謀對區塊鏈進行攻擊,則完全可以成功的實現雙花攻擊(Double spending attack). 盡管開發者和投資人出於利益考慮不會進行這樣的攻擊來摧毀他們自己的公鏈,但PoS公鏈也無可避免的在主網上線後就被這些人壟斷和支配。更糟的是,如果出塊可以獲得大量獎勵和交易費用,這些壟斷者就會將大量股權牢牢控制在自己的手裡,使得PoS公鏈成為一個本質上由巨頭控制的網路。
我們不要忘了,區塊鏈的核心價值是什麼?是去中心化的共識協議,保證了區塊鏈系統中每筆交易的正確性、不可篡改性。如果共識協議無法保證參與者的分散,區塊鏈就無法做到無需信任的安全性,那麼區塊鏈和傳統的分布式系統相比就沒有任何優勢了,甚至傳統的分布式系統能做得更經濟更高效。因此,公鏈項目在早期使用PoW, 是避免共識中心化,保護區塊鏈核心價值的明智選擇。
「長程攻擊」與「主觀依賴」問題
在一個公有鏈中,一個攻擊者如果擁有當下足夠多的算力或股權,無疑是可以打破公有鏈安全性完成攻擊的。但是在PoS 公鏈中,如果攻擊者獲得了一些賬戶的私鑰,這些私鑰在歷史上某一時刻控制了超過51%的股權,也可以完成攻擊,這種攻擊的方式被稱為長程攻擊(Long Range Attack)。
在長程攻擊中,攻擊者首先獲得一些私鑰,只要這些私鑰在歷史上曾經獲得了足夠多的股權,便可以從這一時刻開始分叉進行51% 攻擊,製造一條分叉鏈出來。而 PoS 的出塊不需要進行工作量證明,攻擊者可以短時間內讓重寫歷史的分叉鏈追趕上原本的主鏈,從而造成PoS鏈的分叉和防篡改性被打破。
攻擊者能夠取得這些私鑰不是天方夜譚。如果PoS公鏈的早期投資人在二級市場將持有的代幣賣掉後,將賬戶私鑰賣給攻擊者,攻擊者就可以從創世塊進行長鏈攻擊,從而可以打破一個鏈的安全性。如果一些投資者追求短期收益而非價值投資,攻擊者從他們手裡獲得私鑰就成為了一個可能的事情。
而為了應對長程攻擊,則有各種各樣的解決方案被提出:例如使用密鑰演化演算法更新密鑰,以避免密鑰被盜。但是如果早期投資者一開始就決定通過出售私鑰獲利,那麼他完全可以保留密鑰種子以繞開這一限制。還有一些解決方案基於這樣一個事實:如果攻擊者挖了一條完全不同的鏈,長期在系統中運行的節點或許有能力探測出這種異常。但是,這些方案依然存在如下問題:
PoS 長程攻擊造成的分叉與 PoW 的分叉有所不同。PoW 的分叉鏈難以獲得比特幣全網算力,比特幣礦工很容易從總算力中辨別誰是真正的比特幣。鑒於PoS共識協議在實際運行時,絕大多數股權持有者只是區塊鏈的使用者,並不會一直運行一台伺服器。攻擊者只要在一個歷史節點擁有了相當與PoS實際參與者的股權比例,就可以製造出一條難以辨別的分叉鏈出來。配合女巫攻擊(Sybil Attack),攻擊者可以從區塊歷史和節點數量上都獲得和被攻擊主鏈接近的水平,令新加入的節點無法區分,只能通過人工指定的方式選擇。這樣新參與者必須咨詢受信任節點來安全地加入系統,這一問題被稱為「主觀依賴」(Weak Subjectivity)
無利害攻擊
無利害攻擊(Nothing at Stake)是另一種PoS攻擊方式。當一個 PoS 鏈因為網路延遲、長程攻擊或其他原因出現分叉時,PoS 礦工可以選擇在兩個分叉的鏈上同時出塊,以獲取最大收益。而這違反了共識協議。
在PoW 鏈中,如果一個礦工想同時在多個分叉上挖礦,就必須將自己的算力分散在多個分叉上,所有分叉上分配的算力總和不會超過礦工擁有的總算力。對於多數礦工而言,將自己的全部算力投入到協議指定的鏈上是最優的選擇。
然而,在PoS 多個分叉上同時出塊所帶來的額外成本可以忽略不計,而選擇同時出塊可以保證無論哪一條分叉鏈最終勝出都可獲得收益。如果礦工遵守共識協議,只在協議指定的鏈上挖礦。一旦這個鏈被丟棄,礦工將會失去挖礦獎勵。只追求挖礦收益最大化的礦工會在兩邊同時參與,不惜因此打破協議——這會導致鏈長時間維持分叉的狀態。
與長程攻擊不同,精巧的激勵機制設計可以避免這一攻擊。但無利害攻擊依然表明讓PoS鏈正確地運行是一件很困難的事情。
總結
雖然PoS 具有節省能源等優勢,從而很多項目表示將採用PoS。但我們在分析區塊鏈安全性假設後發現,避免了計算「無用的哈希」之後會引入很多攻擊情形,而且目前沒有很完美的解決方案。誠然PoS有能源效率的優勢,但也帶來了很多安全性威脅。在PoS很好地解決這些威脅之前,PoW消耗的能源,就像和平時期國家軍隊用掉的軍費一樣,阻擋了很多潛在的威脅。最重要的是,其中許多威脅在區塊鏈項目早期顯得尤其致命。這也是我們為什麼相信新的公鏈項目應該從PoW開始。
Ⅳ 比特幣的危機
2008年11月中本聰發布比特幣白皮書,至今比特幣已經走過了十年,這十年的發展可謂驚心動魄,經歷數百次危機,最後都轉危為安,且不斷創造歷史記錄。它帶來區塊鏈技術,已經吸引大批全球頂尖專家學者探索研究。比特幣真的可以持續創造奇跡嗎?本文從以下幾個方面闡述比特幣面臨的危機:
穩定幣替代比特幣支付
支付功能是比特幣的核心功能,特別是用作跨境支付,不僅大大降低了支付手續費,而且節省了匯款時間。然而穩定幣相對於比特幣支付功能更加強大,比特幣由於幣值不穩定,用戶使用比特幣支付時需承擔幣值下降增加的成本。穩定幣的主要特點就是幣值穩定,能很好的起到交易媒介的功能,降低交易成本。現在穩定幣正處於井噴期,已經出現上百種穩定幣,隨著穩定幣的逐漸普及,將會逐漸佔領區塊鏈支付市場。
比特幣與黃金的區別
比特幣的通縮屬性決定其更適合做價值儲存,因此也被稱為數字黃金,但比特幣又不同於黃金。黃金在被挖掘出來之後即可做價值存儲,不需要特殊的維護工作。而比特幣需要礦機算力持續維護,如果算力減小,存在51%攻擊風險,比特幣價值會受到威脅。因此比特幣用作價值存儲也存在較大的風險。
做空比特幣風險
隨著比特幣的發展,已經有越來越多的交易所開通比特幣期貨交易功能,參與比特幣期貨交易的用戶也逐漸增多。據不完全統計,比特幣期貨合約每天交易量已經達到幾十億甚至上百億元之多,而且還在持續增長。
前文已經講述,比特幣需要算力維持價值,存在51%攻擊風險。隨著比特幣期貨合約的發展額度達到幾百億美元甚至更多時,做空比特幣將會帶來巨大的收益,做空的動機也將越來越強。我們不能假設人類是善良的,假設大家不去做空比特幣。只要做空帶來的收益滿足期望值,就一定會發生的,前段時間BCH硬分叉就是擺在眼前的例證,硬分叉後BCH價格一度下跌70%之多,導致加密貨幣市值蒸發數千億美元之多。
比特幣多次度過危機的原因
十年間比特幣被死亡278次,最後都轉危為安,價格屢創新高。因此很多人相信,比特幣是不會死的,歷史就是最好的證明。但歷史不總是重復的,我們要探究本質,分析比特幣能存活的真正原因。之前比特幣出現危機幾乎都是黑客攻擊盜幣、政府監管措施造成的,比如2014年「門頭溝事件」,2017年9月14日中國政府嚴厲監管制度出台等。這些事件都沒有動搖比特幣的根基,因此在一段時間後市場消化了不利因素,比特幣又會重新崛起。
但是如果出現礦工作惡,製造51%攻擊,觸及比特幣的根基信任機制時,結果將會非常嚴重。由於市場的非理性,可能一次兩次情況的發生並不一定導致比特幣消亡,然而會嚴重製約比特幣的發展。
中本聰當年創造比特幣的時候或許並沒有想到會發展成今天這么大的規模,他只是在之前電子貨幣的基礎上用工作量證明的方式解決雙花支付的問題,卻帶來一場偉大的社會實驗。比特幣未來不一定會繼續成功,但它帶來了區塊鏈技術。區塊鏈也許不是最優解,但在當下可以作為很多社會問題的解決方案,值的去探索發展。
Ⅵ 小巴成長記-比特幣的技術來源
我們經常說比特幣具有去中心化、不可篡改、不可偽造等特點。這是為什麼呢?當然下面的文字其實並沒有看起來那麼嚇人,姑且從三個方面來講講,你也要耐著性子聽聽吧。
1、非對稱加密是比特幣去中心化的來源
中心化是需要一個類似銀行的中心機構來驗證交易的。去中心化本質上是讓所有的節點都能驗證交易的真偽,中本聰用了非對稱加密的技術來解決中心化的問題。
非對稱加密技術是什麼?是指加密和解密的時候使用不同的密鑰的加密演算法。比如:A要向B發送信息,A和B都要產生一對用於加密的公鑰和私鑰顧名思義,私鑰就是不能公開的,公鑰就是要公開的。A發送信息給B時,A就用B的公鑰對信息加密,B收到後,B用B的私鑰解密A的消息,而其他所有收到這個信息的人都無法解密,因為只有B才擁有這個私鑰。
簡單的說,公鑰和私鑰在非對稱加密機制里是成對存在的,公鑰和私鑰可以去相互驗證對方,我們可以把地址理解為公鑰,把簽名輸密碼的過程理解為私鑰的簽名。每個礦工在拿到一筆轉賬交易時,都可以時都可以驗證公鑰和私鑰到底是不是匹配的,如果是匹配的,這筆交易就合法。這樣,我們每個人只需要保管好自己的私鑰,自己的公鑰和對方的公鑰就可以安全地進行轉賬,不需要中心的機構來驗證對方發來的比特幣是不是真的。
2、工作量證明機制是比特幣不可篡改的技術來源
工作量證明 機制,是一種對在差不多時間內發生的事物的先後順序達成共識的一種演算法。監測工作的整個過程通常是效率非常低的,而通過對工作的結果進行認證來證明完成了一定工作的工作量,是一種非常高效的方式。比如我們日常中的各種證 駕駛證 學位證 結婚證就是這樣一種有結果獲悉完成工作量的證明。
工作量證明 的特點,對於執行方來說難度是適中的,對於驗證方來說是非常容易被驗證的。礦工們通過哈希計算,最先算出結果,獲得記賬權,其他節點經過非常簡單的驗證之後,就可以同樣其記賬,並同步賬本。打上時間戳後,緊接著進行下一輪計算。
如果這時候有人想把某個信息進行修改,他需要做什麼呢?他需要從這個區塊開始把之後所有的區塊都重新計算一遍,把賬本再同步給其他人。而在他進行計算的同時,其他礦工們已經在原來的的鏈上繼續往前進行計算了。因為在比特幣的網路里,大家認為最長的鏈才是正確的鏈。所以,這個惡意篡改的人,需要在很短的時間內趕上現有區塊的高度度,讓自己的這條鏈成為最長的鏈,並讓其他礦工誤以為自己的這條鏈是正確的,這基本上是一件不可能的事,除非這個惡意篡改的人擁有超強的算力,至少超過全網的50%。那麼我們來算算,現在全網的算力是8億哈希每秒,也就是每秒進行8乘10的18次方計算,現在市場上流行的主流礦機每台的算力是10T左右,如果你想擁有全網51%的算力,你最少需要40萬台最新礦機,如果按1萬元每台礦機計算,僅設備就需投入40億元人民幣,加上礦機的供不應求,老礦機算力下降,全網算力的不斷上漲等因素,如果不是為了60億以上的利潤回報並有強大的技術做支撐,一般人很難有這個動機和能力。
3、「UTXO」結構是比特幣不可偽造的技術來源
先問個問題,如果我發給你1個比特幣,你怎麼知道這個比特幣是真的而不是我偽造出來的,或者我已經同時轉給了其他人了呢,這就要說到UTXO結構了。
UTXO(Unspend Transaction Output)是個什麼鬼?意思是未花費的交易輸出。來個栗子,假設我要給你100元,其中有兩張張50元紙鈔,一張是隔壁老王給我的,另外一張是小賣部小麗找零給我的,拿到這兩張張鈔票我需要拿在手上並還未花出去時才能交易給你,這就是未花費的交易輸出。而通過這兩張鈔票往前追溯可以知道是誰交給了老王和小麗,並最終追溯到是由哪家銀行發行,什麼時候央行批准發行的源頭,比特幣里也有這樣一個原理。在比特幣世界裡的每一筆轉賬,都能夠追溯到上一筆交易。每一筆付款,都可以追溯到上一筆的收款。一直往上追溯到它誕生時礦工挖出來的那個區塊。
這個機制就保證了在比特幣網路里,比特幣是不可以偽造和重復交易的。在比特幣世界裡,重復支付被叫做「雙花」,就是花費了兩次的意思。
Ⅶ LBTC是什麼
從代碼機制層面分析 LBTC 優點
DPOS機制
近年來由於POW的資源浪費、出塊不夠穩定、存在算力攻擊等問題,雖然POW被公認為使用最廣泛、最安全的共識機制,但對於全網算力不夠大的區塊鏈,還是存在很大被攻擊的風險。越來越多的共識機制被提出運用到區塊鏈項目中加以嘗試及實驗。DPoS則是目前主流共識機制中的一個,LBTC便採用了這個機制。DPoS保障了投票權在持幣人手中,因此持幣人將可以通過投票選擇是否通過議案,從而決定項目的發展方向。這同時也意味著,項目的發展方向取決於關心項目本身的人群手中,眾智的力量將推動項目更好地發展。同時DPoS機制的優點還有不存在算力攻擊、嚴格遵守時間出塊和節約資源等。
LBTC的DPoS優點
LBTC的DPoS機制也有其項目本身的特點: LBTC的節點個數為101個,比起21或51個節點,持幣人在LBTC的錢包中最多一次可給51個節點投票,更加降低了中心化的風險; LBTC能夠穩定3秒出塊,再加上2M的區塊大小,保證了LBTC是比特幣效率的400倍,每秒的交易速度可達2000筆以上; 最重要也區別於其他項目、令人感到頗具新意的是,LBTC的DPoS機制存在不可逆塊的規則。當一輪出塊,出塊代理人數達到90%以上或連續兩人出塊,出塊代理人大於70%則都可認為上一輪的第一塊,是不可逆的,從而防止分叉。
LBTC的防禦措施
除了基於DPOS共識機制,LBTC的技術層面還有其他的亮點。
首先,LBTC可以防止【重放攻擊】。什麼是重放攻擊?每個比特幣賬戶內將根據他的比特幣余額,同時存在對應數量的LBTC。如果每條鏈上的地址和私鑰、演算法等都相同,交易格式也完全相同,導致在其中一條區塊鏈上發起的交易,完全可以放到另一條區塊鏈上去重新廣播,可能也會得到確認。這就是「重放攻擊」。簡單來說,當用戶轉賬LBTC的時候,BTC也可能同時被轉走。LBTC修改了交易簽名中的哈希演算法。在哈希演算法中,LBTC新增了「LBTC」欄位。LBTC與BTC生成的HASH將不一樣,LBTC和比特幣相互不承認彼此的交易,以此防止了重放攻擊。
其次,防止【偽造挖礦】。比特幣交易中沒有投票和余額概念,為了LBTC的最大穩定,在Coinbase交易中新增加一個由OP-return組成OUTPUT,OP-RETURN數據由Publickey、Time,Sign(Time)三個欄位組成,Time代表交易的時效性,Publickey驗證Sign(Time),即非對稱加密演算法原理防止偽造別人挖礦。LBTC有101個節點,假設攻擊者有30個節點,如果偽造剩餘71個節點,則可讓其他節點誤認為攻擊者的鏈為最長鏈,而進行出塊,這就是偽造挖礦攻擊。
第三, 防止【雙花攻擊】。雙花攻擊就是一筆錢花了兩次,也可以稱之為雙重支付攻擊。比如之前引起廣泛關注的BTG近期遭受51%攻擊。一名惡意礦工獲得了BTG網路至少51%算力,臨時控制了BTG區塊鏈,在向交易所充值後迅速提幣,再逆轉區塊,成功實施雙花。LBTC由於前文提到過的不可逆塊,當LBTC的區塊的交易確定後,將不可能回滾,以此來實現防止雙花攻擊的目的。
第四,【多線程執行】。在LBTC的交易一致性、合法性檢查中,將可以合並整合的數據合並,採用多線程執行,這大大提高了交易效率,增強了LBTC的性能。
LBTC的代碼邏輯
此外,再從代碼邏輯上來講,LBTC分為協議層、共識層和應用層。 當需要傳輸價值的時候,通過協議層鏈接,以共識層完成交易,這個過程不只是能夠作為價值的互換,也能夠在三方連接中充當價值中介。而應用層則主要是基於智能合約來實現。在未來的發展路線中,LBTC將基於智能合約實現網關的功能。支付網關實現的是資產發行、資產交易、法幣兌換、鏈上交互等。
所以LBTC才能這么有底氣地說它要做全球價值互聯網協議,通過支付網關可以實現任意貨幣間地兌換,不僅是幣幣間,法幣和數字貨幣,法幣間都可以。這不是非常方便嗎?一鍵轉換即可用越南盾買到ETH,轉給遠方的英國表妹,被她嫌棄,立即換成EOS,隔了1秒又換成英鎊,再也不用多餘的轉換步驟,一步到位,豈不美滋滋?這么一分析,其實從技術代碼層面分析LBTC還是挺靠譜的。不過比起那些專家,小編可不會忽悠你們,未來LBTC是否能實現去中心化的價值互聯網協議,關注代碼會是一種更為直觀的方式。(LBTC的Github:https://github.com/lbtcio/lbtc-core)
如何使用網關?
接下來談談網關的「轉換流通」的具體實現,可以大致分為3種:
第一,當LBTC系統搭建好網關技術後,以網關為橋梁,用戶A可以將任何的貨幣兌換成LBTC,之後可以發送給任意想發送的用戶B,而用戶B則將LBTC兌換成自己需要的任意幣種即可,這聽起來是不是很像大家平時在交易所的操作?我想這也是LBTC提出要做「去中心化交易所」的緣由之一。
第二,用戶A可以將資金存放在用戶B信任的網關,經過網關轉給B。
第三,由於LBTC在網關建設前期,將提供「任意用戶皆可發行Token」的功能。因此,在LBTC系統中,如果用戶A的信譽好,被大家認可,且又自己發行了A Token(當然這其中應該包含的是資產抵押實現的資產上鏈),A就可以把自己的A Token用於用戶B的貨幣交換。用戶A在此後也可贖回交換給B的A Token。A即是交易過程中的網關角色。
在以上提到的過程中,分別實現了資產發行、資產交易、法幣兌換、鏈上交互的功能。
網關的使用類似於銀行的功能,最主要可以解決跨境轉賬的問題,再加上LBTC的高TPS和低廉的手續費,實現跨境轉賬將變得非常便捷。比如需要在中國往美國匯款,需要向中國的LBTC網關匯入人民幣,其後美國的網關將收到到來自中國網關的LBTC,再轉換為美元,轉發給美國的賬戶。 在如上網關系統中,可以得出,支付雙方都不需要加入網路,只需要信任網關即可。
雖然網關解決了傳統轉賬支付的慢速及手續費高的難題,但同時也面臨著新的問題。
那麼問題來了
除了LBTC邀請的符合標準的機構或項目方可以成為網關之外,普通用戶之間,除了熟識者之間的相互買賣(實際上這種行為更傾向於借貸,如果僅是熟識者間的買賣,將會形成一個個相互獨立的小網路),如何證明網關是值得信賴的機構或個人?
如何將LBTC的網關推廣到與大型機構合作顯然是擺在團隊面前的問題。Ripple已經發展的較為成熟,目前已與日本的MUFG、澳洲的Westpac、英國的渣打銀行等進行了合作,在有Ripple、恆星幣等支付數字貨幣在前的鋪墊,LBTC想要走出屬於自己的路線,還需要有更多的特色,這一點可在後期的智能合約路線規劃中有所期待。
但是,Ripple也因為分配方式被指責太過中心化,LBTC卻因採用的DPOS機制擁有101個節點,並且由於是分叉幣,發行時1:1分發給比特幣的持有者,這可以說也是LBTC的先天優勢——擁有廣闊的分散性,如果在未來能夠得到大眾的支持和認可,達成共識,那麼將會形成先天性的分布廣的優勢。
此外,在資產上鏈過程中又如何證明資產是確實存在於現實之中可用作抵押的呢?除了大型的機構列如銀行之外,小型網路也會有其存在的必然性。資產上鏈的資產證明是極為重要的一部分,如果不加以規則和認證,那極有可能出現網關跑路或者虛假網關的事件。雖然網關被舉例為「淘寶」平台,理論上平台是管不了商家的買賣內容的,但是平台對於商品質量是存在監管的,否則必將引起混亂。
去中心化交易所
再接回前面的第一點,就去中心化交易所再稍微談一談我的想法。目前,礦場和中心化交易所是區塊鏈早期發展的主角,隨著越來越多的交易所的崛起,中心化交易所陷入操縱丑聞等等,都給去中心化交易所得成長帶來了空間。去中心化交易極有可能將價值真正帶到區塊鏈領域,成為區塊鏈時代真正的主角。 LBTC憑借網關技術,可以實現去中心化交易所。 在LBTC的去中心化交易所中,用戶自己的幣,將交由自己保管,防止了幣於中心化交易所丟失的可能。同時還能防止系統交易不透明、運營及技術的風險。 根據之前的網關采訪介紹文章所說,LBTC還將聯合靠譜項目方,上架交易所,為所有社區成員謀福利。總體來講LBTC的發展路線比較清晰,於支付領域的目標也很明了,拿住了,夥伴們,未來可期!