當前位置:首頁 » 挖礦知識 » 私鏈挖礦失敗

私鏈挖礦失敗

發布時間: 2023-11-30 14:49:52

㈠ 為什麼比特幣需要挖礦

很多人很好奇,為什麼人們說比特幣是挖出來的。下面我給你解釋下,為什麼比特幣這樣的區塊鏈項目需要「挖礦」。

交易需要記賬人

為了達成交易,買賣雙方轉賬需要有可信賴的人、機構來記賬清算。

比如你通過支付寶把100元轉賬給朋友,支付寶就把你的賬戶減少100元,而朋友的賬戶增加100元。這個場景支付寶就是記賬人。

信息不對稱問題

可是比特幣生來沒有支付寶、微信、銀行來支持它。比特幣也不準備依賴於這些中心化機構。

其發明者中本聰設計,任何都可以來幫助記賬,記賬就可以獲取比特幣作為獎勵。可是問題來了,想要幫助記賬獲取比特幣的人很多,選擇誰來記賬出錯概率低呢?這實際是一個信息不對稱問題。

比特幣系統想選出可信的人來記賬,卻不了解想來記賬的眾多參與者。為了解決這個問題,眾多區塊鏈項目想出了不同招數。

為了使得記賬人可信,部分區塊鏈乾脆僅僅讓個別使用者自己記賬,這類項目稱為私有鏈,實際上區塊鏈用處不大

部分區塊鏈項目,加入前需要先經過其他成員審核同意,這類項目叫做聯盟鏈

還有一類區塊鏈項目,允許任何人自由加入記賬,被稱為公鏈,比特幣就屬於這一類

挖礦減少信息不對稱

公鏈要解決「記賬人是否可信」這個信息不對稱問題,就要用到一些手段。實際上各自挖礦方式就是在想辦法解決這個問題。

下面簡單介紹下常用的挖礦手段,以及解決信息不對稱問題的原理。

1、工作量證明(POW)

POW是Proof of Work的簡稱,參與者需要證明自己確實花費了足夠工作成本。

中本聰設計了一個解謎 游戲 ,要解開必須得花費大量的計算,需要購買設備、消耗電量、花費時間。誰最先解開了謎,就證明誰確實花費了不少的成本,於是讓他負責記賬並獲得獎勵。然後重新開始新一輪解謎,如此往復。這個過程你開著機器(電腦),在無數數字中尋寶,人們形象地比喻為「挖礦」。

POW其實是生活常用的減少信息不對稱的手段。比如:

你肯定想到了,POW證明不是那麼牢靠。早期就算付出了成本,當真的掌權也可能亂來,人性使然。對應地比特幣設計了一定的防攻擊措施,比如記賬內容至少要超過半數的算力認可。

2、權益證明(POS)

POS是Proof of Stake的簡稱,參與者需要證明自己擁有足夠的份額。

其假設是你有一個系統不少的股權,則你更加可信。每輪在參與者中,根據其持股的比例,給予相應概率被選為記賬人。

POS也是生活常用的減少信息不對稱的手段。比如:

3、POI、DPOS等其他方法

除了以上解決信息不對稱的方法,一些項目對以上方法進行組合,改進衍生出一些新方法。比如:

#比特幣[超話]# #數字貨幣# #歐易OKEx#

以太坊多節點私有鏈部署

假設兩台電腦A和B
要求:
1、兩台電腦要在一個網路中,能ping通
2、兩個節點使用相同的創世區塊文件
3、禁用ipc;同時使用參數--nodiscover
4、networkid要相同,埠號可以不同

1.4 搭建私有鏈
1.4.1 創建目錄和genesis.json文件
創建私有鏈根目錄./testnet
創建數據存儲目錄./testnet/data0
創建創世區塊配置文件./testnet/genesis.json

1.4.2 初始化操作
cd ./eth_test
geth --datadir data0 init genesis.json

1.4.3 啟動私有節點

1.4.4 創建賬號
personal.newAccount()
1.4.5 查看賬號
eth.accounts
1.4.6 查看賬號余額
eth.getBalance(eth.accounts[0])
1.4.7 啟動&停止挖礦
啟動挖礦:
miner.start(1)
其中 start 的參數表示挖礦使用的線程數。第一次啟動挖礦會先生成挖礦所需的 DAG 文件,這個過程有點慢,等進度達到 100% 後,就會開始挖礦,此時屏幕會被挖礦信息刷屏。
停止挖礦,在 console 中輸入:
miner.stop()
挖到一個區塊會獎勵5個以太幣,挖礦所得的獎勵會進入礦工的賬戶,這個賬戶叫做 coinbase,默認情況下 coinbase 是本地賬戶中的第一個賬戶,可以通過 miner.setEtherbase() 將其他賬戶設置成 coinbase。

1.4.8 轉賬
目前,賬戶 0 已經挖到了 3 個塊的獎勵,賬戶 1 的余額還是0:

我們要從賬戶 0 向賬戶 1 轉賬,所以要先解鎖賬戶 0,才能發起交易:

發送交易,賬戶 0 -> 賬戶 1:

需要輸入密碼 123456

此時如果沒有挖礦,用 txpool.status 命令可以看到本地交易池中有一個待確認的交易,可以使用 eth.getBlock("pending", true).transactions 查看當前待確認交易。

使用 miner.start() 命令開始挖礦:
miner.start(1);admin.sleepBlocks(1);miner.stop();

新區塊挖出後,挖礦結束,查看賬戶 1 的余額,已經收到了賬戶 0 的以太幣:
web3.fromWei(eth.getBalance(eth.accounts[1]),'ether')

用同樣的genesis.json初始化操作
cd ./eth_test
geth --datadir data1 init genesis.json

啟動私有節點一,修改 rpcport 和port

可以通過 admin.addPeer() 方法連接到其他節點,兩個節點要要指定相同的 chainID。

假設有兩個節點:節點一和節點二,chainID 都是 1024,通過下面的步驟就可以從節點二連接到節點一。

首先要知道節點一的 enode 信息,在節點一的 JavaScript console 中執行下面的命令查看 enode 信息:

admin.nodeInfo.enode
" enode://@[::]:30303 "

然後在節點二的 JavaScript console 中執行 admin.addPeer(),就可以連接到節點一:

addPeer() 的參數就是節點一的 enode 信息,注意要把 enode 中的 [::] 替換成節點一的 IP 地址。連接成功後,節點一就會開始同步節點二的區塊,同步完成後,任意一個節點開始挖礦,另一個節點會自動同步區塊,向任意一個節點發送交易,另一個節點也會收到該筆交易。

通過 admin.peers 可以查看連接到的其他節點信息,通過 net.peerCount 可以查看已連接到的節點數量。

除了上面的方法,也可以在啟動節點的時候指定 --bootnodes 選項連接到其他節點。 bootnode 是一個輕量級的引導節點,方便聯盟鏈的搭建 下一節講 通過 bootnode 自動找到節點

參考: https://cloud.tencent.com/developer/article/1332424

㈢ 專業開發礦機挖礦系統模式|區塊鏈DAPP挖礦模式開發

礦機挖礦系統軟體開發搭建,礦機挖礦系統軟體開發案例,礦機挖礦系統源碼開發,礦機挖礦系統APP開發需求,礦機挖礦軟體系統開發案例,礦機挖礦定製系統開發,礦機挖礦系統軟體開發,區塊練中所有數據前後相連成能夠構成一個無法篡改的時間節點,這樣所有的在區塊上發生的事件都能夠貼上一套無可偽造的真實記錄,區塊練技術的去中心化能夠解決數據追蹤以及信息的防偽問題

一、區塊鏈挖/礦系統是什麼?

區塊鏈挖礦系統主要採用「 娛樂 即挖/礦」的全新玩法,為 娛樂 賦能,打破傳統游/戲商/業模式。用戶在平台通過玩游/戲即可產生「算力」,從而實現「挖/礦」,挖到的礦可用於游/戲內道/具購/買,也可到交/易所進行區/塊鏈資/產兌/換。

二、區塊鏈挖礦有哪些類型?

1、主鏈挖/礦系統:

致力於主鏈、聯盟鏈、私有鏈搭建。基於分布式部署、各種智能合約、共識機制、可擴展性強、高TPS的性能搭建商/業化主鏈系統

2、錢/包挖/礦系統:

區塊鏈錢/包挖/礦系統開發支持多鏈、多幣種、多語言、多模式。私鑰自持,唯一助記詞,安全無憂!支持錢/包內置各類DAPP,持/幣生/息、共振模式、分/銷經濟等多種模式

3、交/易系統:

支持幣/幣交/易、OTC交/易、合/約交/易、杠/桿交/易等多種交/易形式。專業、多維度的安全系統、市值管理系統、預/警系統以及財/務多個管理系統。支持PC、iOS、Android多端同時登陸。

4、區塊鏈瀏覽器:

是瀏覽區塊鏈信息的主要窗口,每一個區塊所記載的內容都可以從區塊鏈瀏覽器上進行查閱。方便數字資產用戶使用區塊鏈瀏覽器查詢記錄在區塊中的交易信息,信息全網公開透明

5、DAPP挖/礦系統:

結合行業特定需求,定製開發去中心化應用。方案設計、通證模型設計、生態角色設計以及Token流通設計等。包含區塊鏈商城、虛擬挖/礦、公益事業等多款行業類型應用

6、挖/礦系統:

實體挖/礦服務提供機器購買、轉售、回購、運輸、維修服務。對接國國內外合規礦場,礦池、電力等資源,不限礦機台數,資/金隨進隨出,挖礦收/益日結

7、虛擬挖/礦服務:

提供定製化的虛擬挖/礦系統開發,支持中心化服務和去中心化服務。

8、行業解決方案:

根據行業定製化符合企業現狀的區塊鏈解決方案。其中包括供應鏈金/融、內容版權、電商積分、跨境支/付、通用溯源以及各類行業,為企業持續發展共創價值生態你所有的想法和需求。

二、區塊鏈挖礦APP怎麼玩?

目前市場上的區塊鏈挖礦模式千變萬化,呈現了各種各樣的挖礦模式,今天我將要介紹的區塊鏈挖礦系統系統,它是一種主流的挖礦模式,商戶可以在這個基礎上去自定義玩法。

例如,在區塊鏈礦機APP平台,用戶可以通過注冊會員成為礦工,礦工可以通過各種行為挖礦賺取收益,比如購買一台專用的挖礦設備,就可以開始挖礦了,再比如:購買即挖礦、交易即挖礦、簽到即挖礦、評價即挖礦、買礦機即挖礦、邀人即挖礦等。也就是說,用戶在區塊鏈平台上任務操作都可視為挖礦行為。

用戶每一次的挖礦行為,都在為平台做貢獻值,平台理應給予幣的獎勵。而用戶挖到的礦可以在商戶自己的生態里流轉,例如,可在平台進行買入、賣出等理財交易,亦可用來購買抵扣、提現等。

㈣ 為什麼區塊鏈將重新定義世界

比特幣背後的技術建立起了一個可依賴的賬薄,從而改變很多人的生活,其意義遠遠超過加密貨幣的范疇。
1,當宏都拉斯警方在2009年某天沖進Mariana Catalina Izaguirre家裡並要驅逐她離開的時候,她已經在這個破舊的房屋住了三十多年。與她的鄰居不同,Mariana Catalina Izaguirre甚至都有政府的房屋證明,但很不幸,來自當地政府房屋委員會的資料顯示,該房屋署與另外一個人,而這個「房主」向法院申請驅逐令,最終 Lzaguirre女士被迫離開。
由於登記不詳或記錄丟失,這類扯皮的事情在全球都很普遍。房屋所有權保障的缺失也是不公正的源頭。也從讓利用房屋或土地作為抵押物進行融資等等變得困難。
比特幣可以讓這類問題消失,比特幣是一種基於加密演算法的「聰明」貨幣,我們更應該關注的是比特幣背後的技術:區塊鏈。它的意義要遠遠超越貨幣或現金。它創造的一種解決彼此之間不信任的記賬方式。
這正是政客們咨詢Factom公司來清理宏都拉斯財產機構的原因,Factom是一家美國的創業公司,為基於區域鏈的土地登記提供一種原型。希臘也對此產生了興趣,它沒有合適的土地登記政策,只有7%的土地在繪出的地圖上是正確的。
2,區塊鏈與相似的「分布式賬簿」的其他應用可以擴展到阻止鑽石偷竊與超市流水線。NASDAQ交易所很快就會用區塊鏈系統來記錄私有企業的交易。英國銀行以不喜歡科技文明,但看起來也被刺激了:它在去年的研究報告中寫到,分布式賬簿是個了不起的創新,會對金融業有著深遠的影響。
政客則想得更遠:當合作夥伴與左翼聚集在今年的巴黎的OuiShare Fest來討論草根企業是如何撼動了大型數據公司如Facebook的時候,區域鏈出現在了每一場演說中。在世界的自由夢想里,更多的政府規范被個人間的私人合同所取代——加密演算法會自行加強。
區塊鏈由Satoshi Nakamoto所設想,了不起且至今唯一被確認身份的比特幣創始人——「完全對等的電子貨幣」,他在2008年發表的文章里寫道。為了讓它像貨幣一樣,比特幣必須要從爭取的賬戶里轉移,可以被同一個人消費兩次。為了實現Nakamoto這樣去中央化的系統的夢想,比特幣必須避免任何對第三方的依賴,例如隱藏在普通支付系統背後的銀行。
而區塊鏈可以替代第三方。它可以容納每個比特幣的交易歷史,提供任何時間任何人物的證據。分配系統可以在幾千台電腦中復制——比特幣的「節點」——在全世界的每個地方,並可以公開。但即使有如此的公開性,它依然是可信的,安全的。數學演算法的復雜性與建在它的「共識機制」——節點同意根據比特幣流通來升級區塊鏈的處理過程——內的計算暴力破解保證了這一點。
舉個例子,Alice希望給Bob支付租賃服務。他們都有著比特幣錢包——一種直接通往區塊鏈,而不是像瀏覽器通往網頁但沒有識別系統內的用戶的軟體。Alice的錢包開始提出申請的時候交易開始了,區塊鏈開始改變,以顯示Alice的錢包少了一些,而Bob的多了一些。

網路在此過程中需要通過數個階段來完成改變。當申請通過網路內多個節點檢查,檢查賬本,確認Alice是否有她想要花費的比特幣。如果一切看起來沒問題,特定節點會指令miners捆綁Alice的請求連通其他相似的有信譽的交易,在區塊鏈中創造一個新的模塊。
這其中牽涉到需要通過給加密一個散列函數來將模塊分解為一系列指定長度的數據(見圖表)。像許多加密一樣,這種散列是一條單行路。數據分散可以,但反過來由分散聚合為數據是不可能的。但是盡管散列並不容納數據,它依然是獨特的。通過任何一種方法來改變進入模塊——通過簡單的一個數碼來改變交易——散列就會不同。
3,隨著其他的數據一起,散列會被放置在制定模塊的首位(header)。首位繼而變成切實數學謎題的基本,又一次涉及到散列函數。謎題只能被測試與錯誤解開。通過網路,miners要實驗上億種可能來尋找答案。當一個miner終於找出答案時,其他節點會迅速檢查(又一次通過單行路:解決很難,但檢查容易),每個節點會確認解決方法隨之升級到區塊鏈。首位的散列會成為新模塊的確認線,這個模塊現在是賬簿的一部分了。Alice支付給Bob,模塊里容納的其他所有交易都被確認。
解密階段引進了三種大大加強比特幣安全性的東西。一個是偶然性。你無法預測哪個礦工會解決謎題,因此無法預測誰會在指定時間升級區塊鏈,除了它必定是最用功的一個礦工,而不是其他隨機的怠工者。這讓作弊很困難。
第二點是歷史。每一個新的首位容納了之前模塊首位的散列函數,其容納了後者之前的散列函數,如此循環往復直至起點。這種關聯讓模塊成了一個循環鏈。從賬簿里的所有數據開始,重新產生最新模塊的首位是一件小事。盡管在任何地方製造一個改變——甚至返回到最早的幾個模塊之一——改變了的模塊首位會變得不同。這意味著下一個模塊也是如此,以及所有以後的模塊。賬簿將不會通過最新的模塊識別器,並被拒絕。
有沒有解決的辦法呢?想像一下Alice改變了支付Bob的主意,試著重寫歷史,這樣的比特幣就會還在她的錢包里。如果她是一個有能力的礦工,她可以解決亟待處理的謎題,並製作出一個區塊鏈新版本。但是在她這樣做的時間內,網路中的其餘人會已經延長了原始的區塊鏈。節點會一直在區塊鏈最長的版本中工作。這個規定阻止了兩個礦工同時找到了解決辦法的情況並導致了鏈中出現比臨時叉更糟的後果。它還會阻止作弊。為了讓系統接受她的新版本,Alice需要比其他人更快地延長它。無法控制一半以上的電腦——專業術語叫做「51%的攻擊」——那應該是不可能做到的。
4,且不說顛覆上述網路的可能性,另一個深層次的問題是:為什麼要成為這個網路的一員呢?這個答案就是第三個「解密」步驟,而且還是有獎勵的,每個新區塊有新的比特幣,解開謎題的人會得到25個比特幣獎勵,約合7500美元。
所有上述精巧的設計並非比特幣真正吸引人的原因。其價值在於不穩定性和不可預測性,如下圖所示,但比特幣的總量卻是一定的。區塊鏈的機制也運行良好。根據一家名叫blockchain.info的網站數據,平均每天有超過12萬的交易記錄被添加到區塊鏈中,這意味著大約有7500萬美元的交易。目前有38萬區塊,這個帳本的大小將近45GB。

大多數位於區塊鏈里的數據都是比特幣,但這也不是必須的。Mr Nakamoto 也創造一種分布式系統,並且撰寫了相關闡釋。科技極客們稱之為:開放式平台。這個平台仿照的就是就是互聯網,也包括諸如Android或Windows這樣的操作系統。開發者可以開發基於區塊鏈上基本功能的應用程序,並不用得到任何人的許可。投資多家比特幣創業公司的Andreessen Horowitz公司Chris Dixon表示:這種網路最後會變成一個公開的資料庫。據了解,Andreessen Horowitz公司已經投資了比特幣錢包公司Coinbase以及面向大眾的比特幣硬體設備公司21。
目前基於區塊鏈的應用有三大領域。第一種就是將所有建議都通過區塊鏈的方式完成。創業公司Colu押注在這個模式,他們開發了一種演算法去「潤色」一些小額的比特幣交易,從而使得這些交易可以代表諸如證券、貴金屬交易。
保護土地或房屋簽名有效性成為第二類的典型應用。比特幣交易都會將簽名一起加入到區塊鏈的賬本上。一家名叫everledger的創業公司用這種方式保護奢侈品,比如他們在區塊鏈數據中記錄一塊寶石的質地屬性,假如寶石丟失可以提供最直觀的證明。Onename使用類似方式存儲個人信息;注意,由於這種應用並非純粹的比特幣交易,因此你需要首先賦予更多信任,比如你需要將自己的一些准確信息告訴應用開發者。
第三種應用則有著更大的雄心,「智能合同」能夠自動檢測是否具備生效的各種環境。這是因為,比特幣可以被編程,這樣就能保證在特殊情境下的可用或不可用。
由一位知名比特幣工程師Mike Hearn開創的Lighthouse就是一個去中心化眾包的項目。如果足夠多的資金進入這個項目,那麼一切就啟動,如果目標沒有達到,就停止。Heran認為,他的項目能夠比那些以比特幣協議的友商們更便宜也更獨立。
5,在紐約風險資本公司Albert Wenger of USV看來,分布式賬本的出現開啟了一個幾乎是全新象限的可能性,這家公司已經投資了多家去中心化的公司,比如提供P2P交易的OpenBazaar。在對區塊鏈一片歡呼聲之外,也有人質疑其的安全性和擴展性。區塊鏈在比特幣上很適用,但在一些小眾的應用程序上,還無法承載數百萬用戶的使用。
盡管 Nakamoto的對區塊鏈的設計到目前為止證明是攻堅不摧的,學術研究也認為,假如沒有控制整個區塊鏈的51%,想在區塊鏈上做壞事幾乎也是不可能的。過去比特幣的玩家都局限在很小的圈子裡,如今的比特幣挖礦被各種大比特幣池把持,在這里「池」里,小的挖礦者分享他們的努力並獲得獎勵。
另一個對擔心則是對環境。為了獲得更多比特幣,挖礦者對於計算能力的要求很高,也這意味著要不斷增加計算機的功耗。根據blockchain.info的數據顯示,挖礦者每秒要進行45萬次的計算嘗試,這些都會帶來巨大的能量消耗。
由於礦工們對於硬體的情況守口如瓶,外界很難知道這些計算機的具體功耗。一份粗略的計算顯示,如果每個人都採用最具效率的硬體,每比特的電力消耗為2兆瓦,一年的電力消耗約為加州15000居民的用電量。
但這些圍繞比特幣的揮霍都是有極限的。Nakamoto當時對於比特幣的設計是這樣的:每兆數據中約有1400次交易,這意味著每秒的交易數為7次。相比於目前美國的確每秒1736次的Visa卡交易,比特幣區塊還能更大,不過更大的區塊要通過花費更長時間去生成,也會增加一定的風險。
以前的一些經驗或許可以參考。當上世紀90年代網路瀏覽器發明後,數百萬的人開啟了在線生活,很多預言家都預測互聯網會停滯發展。但事實上互聯網一直在發展中,同樣道理,比特幣的發展也不會停滯。更多可用於挖礦的計算設備會更節能,開發者們也會更熱衷於基於比特幣的平台上開發應用,並使用比特幣交易,更快的網路連接也會加速比特幣區塊的擴大速度。
關於比特幣的很多問題並非是缺乏解決方案,比特幣機制的任何變化都需要得到比特幣社區的許可,而要達成意見並不容易。一方主張盡快擴大比特幣區塊的規模從而能夠成為傳統支付的顛覆者,但另一方卻認為如果不進行調整,現有的系統可能會在明年崩潰。
6,Hearn先生與Gavin Andresen是兩位比特幣大亨,是比特幣大交易的領頭人。他們呼籲挖礦企業來安裝比特幣的新版本,支持更大的交易規格。一些礦工們的確遭受到了網路攻擊,並且在廣泛證明其需求與危險下,這次升級與系統正在被浩如煙海的微小交易逼到極限。
這一切都為比特幣區塊鏈建立一個替代品的提出奠下基礎,可以優化存儲分布式賬簿而不是加密運行。復試鏈(multichain),Coin Science所提供的一個定製區塊鏈的平台證明了可能的方向。它還提供了建立一個像比特幣一樣的區塊鏈的所需資源,並可以用來建立私有鏈,僅對特定用戶開放。如果所有用戶開始相信礦工的需求,工作證據被減少或消除,那麼現有對賬簿的連接就變成了多餘的選擇。
第一個採用這樣的區塊鏈的後代的企業也許正是那些最開始失敗並啟發了Nakamoto的公司之一:金融。在最近的幾個月,私有區塊鏈以防止破壞的銀行融資熱情開始漲高。比諷刺還要諷刺的是,其中一個原因是反政府自由人士的技術誕生可以讓銀行在知曉它們的客戶與反洗錢規則後更好地符合政府需求。但是這里還有一個更深層的吸引存在。
工業歷史家們指出新能源早在最高效的處理方法產生前就存在。當電動機第一次研發時,它們就像之前出現過的巨大的蒸汽引擎機器一樣。生產商花費了數十年才看到了分散的電動機可以重組他們做事的任何方面。英國銀行在它的數字貨幣報告中寫到,它也在金融行業中看到了相似的東西正在前進中。這要感謝便宜的計算金融公司已經將它們內部的工作數字化,但是它們還沒有將自己的組織改變到足以與之相匹配。支付系統目前仍然是中心化的:貨幣的轉移要通過中央銀行。當金融公司彼此生意往來時,同步內部的賬簿是個耗時幾天的繁重任務,桎梏住了資本並帶來了風險。
分布式賬簿在幾分鍾甚至幾秒鍾就完成交易,對解決這些問題和實現數字化銀行的承諾可能大有幫助。賬簿還可以幫助銀行節省很多錢:Santander銀行,到2022年這些賬簿可以降低行業每年高達200億美元的賬簿。供應商仍然需要證明,他們可以處理過高的比特幣交易價格;但大銀行已經開始推動比特幣這種新興技術標准化。其中瑞銀聯合銀行,已提議建立一個標準的「結算貨幣」。R3 CEV的第一要務是塊環鏈的啟動,瑞士投資銀行與高盛、摩根大通和其它22家銀行聯合投資,為私人帳開發標准化的架構。
7,銀行的問題也並不是唯一的。很多公司和公共機構都難以維護,同時還有經常不兼容的資料庫和相互交流的高成本問題。這就是Ethereum想解決的問題,可以說是最雄心勃勃的分布帳項目。21歲的加拿大編程天才Vitalik Buterin的創作品,Ethereum的分布式分類帳可以比「比特幣」處理更多的數據。它有一個編程語言,允許用戶編寫更復雜的智能合約,當貨物到達自動支付並列印發票,或如果利潤達到一定水平,自動發送給業主股息。Buterin先生希望,如此聰明的「去中心化的自治組織」的形成——基本上,虛擬企業只是給「Ethereum blockchain」設置一些運行的規則。
這樣的想法可能有激進影響的領域之一就是在「物聯網」——數十億之前靜音日常用品,如冰箱、門閂和草坪灑水裝置。從IBM最近的一份題為「設備民主」的報告,認為不可能集中跟蹤和管理這些數以十億美元計的設備,這樣的嘗試也不明智;這種嘗試會讓他們容易受到黑客攻擊以及政府的監督。分布式寄存器似乎是一個不錯的選擇。
Ethereum提供的可編程性,不僅僅是讓人們的財產被跟蹤和注冊。它有一些新的用途。在各種各樣的方法規則下,車鑰匙中嵌入Ethereum blockchain,就可以被出售或出租,產生出租或共享汽車的新P2P。更遠,一些人談論應用該項技術,使自動駕駛的汽車成為社會公共資源。根據預先設置的程序規則,這樣的車輛可以自己存儲一些數字的錢來支付他們從出租燃料,維修和停車位。
8,不出所料,一些人認為這些計劃過於激進。Ethereum1(「創世紀」),8月才被開發,目前只是一個小的啟動生態系統集群。雖然Buterin先生在最近的博客中承認這有點缺錢,但區塊鏈最終繁榮的特定細節,遠遠少於廣泛分布式帳的激情,而真實這些激情帶領著初創企業和現有的大型企業,檢查他們各自的潛力。盡管社會對會計師的能力總是嘲笑,但帳目確實重要。
當今世界深深依賴著復式記賬法。其記錄著借方和貸方的標准化系統,是理解一個公司核心財務狀況的必然選擇。在20世紀早期,德國社會學家的維爾納?桑巴特聲稱,現代資本主義為了發展,是否絕對需要這樣的簿記,值得更深入地去討論。雖然復式記賬系統始於文藝復興時期的義大利商人,也剛好是一個時間巧合;那時候,復式記賬在世界各地的傳播比資本主義的傳播更緩慢,直到在19世紀末才開始廣泛使用。但毫無疑問,技術的根本重要性,不僅僅在於記錄一個公司做什麼,而是能夠定義公司的未來。
帳目,不再需要由公司或政府維護,可以及時刺激新公司和政府關於工作方式的變化、對未來的期望以及當下能做的工作。沒有集中記錄的系統,可以一樣值得信賴,因為他們也能帶來徹底的改變。
這些想法雖然仍是一個只適用在幾個領域的新奇事物,和他們傳播能力以及被擴大的可能性。他們還面臨一些未知的阻力。一些比特幣的批評人士一直將其視為最新「加州意識形態」的嘗試。(加州意識形態意指那種以技術拯救世人的使命感)。這只是一個編碼的信任機制,而並非民主政治、合法性和問責制,很難吸引人或者授權。
與此同時,整個世界都會被數字化地記錄,這也將有很多好處。如果區塊鏈有一個基本的矛盾,也就是:即使提供了相同的過去和現在,區塊鏈的未來會很不一樣。
本文選自《經濟學人》,機器之心編譯出品,參與成員:黃志臻、Chen、趙賽坡
瑞泰幣、萊特幣、狗狗幣等數字加密貨幣也都是利用了區塊鏈技術。

㈤ 區塊鏈與公鏈、私鏈、聯盟鏈有啥區別

區塊鏈嚴格定義上被劃分為3種類型:公有鏈,私有鏈、和聯盟鏈。這三種類型的區塊鏈的核心區別在於訪問許可權的開放程度,或者叫去中心化程度不同。一般來說,去中心化程度越高、信任和安全程度越高,交易效率則越低。

總的來說,每一種類型的區塊鏈都有自己特定的模式和價值,不能說哪一種更好,只要誰解決了需求誰就是有價值的。

㈥ 區塊鏈的挖礦是什麼意思

2009年中本聰發明比特幣,並且設定了比特幣只有2100萬個,加入到比特幣網路中,通過參與到區塊的生產中,提供工作量證明(PoW),即可獲得比特幣網路的獎勵。這個過程即是挖礦。

「挖礦」的概念取自於我們現實經濟生活中已有的概念,黃金挖礦、白銀挖礦等,因為礦物是有價值的,所以才驅使人們去付出勞動力來挖。

比特幣挖礦還有一個重要的點是因為參與挖礦的礦工認可比特幣的價值,他們挖礦挖到的比特幣市場上有人願意花錢。所以,比特幣的挖礦是有意義的。



(6)私鏈挖礦失敗擴展閱讀

比特幣的貨幣特徵

1,去中心化

比特幣是第一種分布式的虛擬貨幣,整個網路由用戶構成,沒有中央銀行。去中心化是比特幣安全與自由的保證。

2,全世界流通

比特幣可以在任意一台接入互聯網的電腦上管理。不管身處何方,任何人都可以挖掘、購買、出售或收取比特幣。

3,專屬所有權

操控比特幣需要私鑰,它可以被隔離保存在任何存儲介質。除了用戶自己之外無人可以獲取。

4,低交易費用

可以免費匯出比特幣,但最終對每筆交易將收取約1比特分的交易費以確保交易更快執行。

5,無隱藏成本

作為由A到B的支付手段,比特幣沒有繁瑣的額度與手續限制。知道對方比特幣地址就可以進行支付。

6,跨平台挖掘

用戶可以在眾多平台上發掘不同硬體的計算能力。

㈦ 共識演算法系列之一:私鏈的raft演算法和聯盟鏈的 pbft 演算法

對數據順序達成一致共識是很多共識演算法要解決的本質問題
Fabic的pbft演算法實現
現階段的共識演算法主要可以分成三大類:公鏈,聯盟鏈和私鏈
私鏈,所有節點可信
聯盟鏈,存在對等的不信任節點
私鏈:私鏈的共識演算法即區塊鏈這個概念還沒普及時的傳統分布式系統里的共識演算法,比如 zookeeper 的 zab 協議,就是類 paxos 演算法的一種。私鏈的適用環境一般是不考慮集群中存在作惡節點,只考慮因為系統或者網路原因導致的故障節點。

聯盟鏈:聯盟鏈中,經典的代表項目是 Hyperledger 組織下的 Fabric 項目, Fabric0.6 版本使用的就是 pbft 演算法。聯盟鏈的適用環境除了需要考慮集群中存在故障節點,還需要考慮集群中存在作惡節點。對於聯盟鏈,每個新加入的節點都是需要驗證和審核的。

公鏈:公鏈不僅需要考慮網路中存在故障節點,還需要考慮作惡節點,這一點和聯盟鏈是類似的。和聯盟鏈最大的區別就是,公鏈中的節點可以很自由的加入或者退出,不需要嚴格的驗證和審核。

在公有鏈中用的最多的是pow演算法和pos演算法,這些演算法都是參與者的利益直接相關,通過利益來制約節點誠實的工作,解決分布式系統中的拜占庭問題。拜占庭容錯演算法是一種狀態機副本復制演算法,通過節點間的多輪消息傳遞,網路內的所有誠實節點就可以達成一致的共識。

使用拜占庭容錯演算法不需要發行加密貨幣,但是只能用於私有鏈或者聯盟鏈,需要對節點的加入進行許可權控制;不能用於公有鏈,因為公有鏈中所有節點都可以隨意加入退出,無法抵擋女巫攻擊(sybil attack)

raft 演算法包含三種角色,分別是:跟隨者( follower ),候選人(candidate )和領導者( leader )。集群中的一個節點在某一時刻只能是這三種狀態的其中一種,這三種角色是可以隨著時間和條件的變化而互相轉換的。

raft 演算法主要有兩個過程:一個過程是領導者選舉,另一個過程是日誌復制,其中日誌復制過程會分記錄日誌和提交數據兩個階段。raft 演算法支持最大的容錯故障節點是(N-1)/2,其中 N 為 集群中總的節點數量。

國外有一個動畫介紹raft演算法介紹的很透徹,鏈接地址為: http://thesecretlivesofdata.com/raft/ 。這個動畫主要包含三部分內容,第一部分介紹簡單版的領導者選舉和日誌復制的過程,第二部分內容介紹詳細版的領導者選舉和日誌復制的過程,第三部分內容介紹的是如果遇到網路分區(腦裂),raft 演算法是如何恢復網路一致的。

pbft 演算法的提出主要是為了解決拜占庭將軍問題
要讓這個問題有解,有一個 十分重要的前提 ,那就是 信道必須是可靠的 。如果信道不能保證可靠,那麼拜占庭問題無解。關於信道可靠問題,會引出兩軍問題。兩軍問題的結論是,在一個不可靠的通信鏈路上試圖通過通信以達成一致是基本不可能或者十分困難的。
拜占庭將軍問題最早是由 Leslie Lamport 與另外兩人在 1982 年發表的論文《The Byzantine Generals Problem 》提出的, 他證明了在將軍總數大於 3f ,背叛者為f 或者更少時,忠誠的將軍可以達成命令上的一致,即 3f+1<=n 。演算法復雜度為 o(n^(f+1)) 。而 Miguel Castro (卡斯特羅)和 Barbara Liskov (利斯科夫)在1999年發表的論文《 Practical Byzantine Fault Tolerance 》中首次提出 pbft 演算法,該演算法容錯數量也滿足 3f+1<=n ,演算法復雜度為 o(n^2)。

首先我們先來思考一個問題,為什麼 pbft 演算法的最大容錯節點數量是(n-1)/3,而 raft 演算法的最大容錯節點數量是(n-1)/2 ?

對於raft演算法,raft演算法的的容錯只支持容錯故障節點,不支持容錯作惡節點。什麼是故障節點呢?就是節點因為系統繁忙、宕機或者網路問題等其它異常情況導致的無響應,出現這種情況的節點就是故障節點。那什麼是作惡節點呢?作惡節點除了可以故意對集群的其它節點的請求無響應之外,還可以故意發送錯誤的數據,或者給不同的其它節點發送不同的數據,使整個集群的節點最終無法達成共識,這種節點就是作惡節點。

raft 演算法只支持容錯故障節點,假設集群總節點數為n,故障節點為 f ,根據小數服從多數的原則,集群里正常節點只需要比 f 個節點再多一個節點,即 f+1 個節點,正確節點的數量就會比故障節點數量多,那麼集群就能達成共識。因此 raft 演算法支持的最大容錯節點數量是(n-1)/2。

對於 pbft 演算法,因為 pbft 演算法的除了需要支持容錯故障節點之外,還需要支持容錯作惡節點。假設集群節點數為 N,有問題的節點為 f。有問題的節點中,可以既是故障節點,也可以是作惡節點,或者只是故障節點或者只是作惡節點。那麼會產生以下兩種極端情況:

第一種情況,f 個有問題節點既是故障節點,又是作惡節點,那麼根據小數服從多數的原則,集群里正常節點只需要比f個節點再多一個節點,即 f+1 個節點,確節點的數量就會比故障節點數量多,那麼集群就能達成共識。也就是說這種情況支持的最大容錯節點數量是 (n-1)/2。
第二種情況,故障節點和作惡節點都是不同的節點。那麼就會有 f 個問題節點和 f 個故障節點,當發現節點是問題節點後,會被集群排除在外,剩下 f 個故障節點,那麼根據小數服從多數的原則,集群里正常節點只需要比f個節點再多一個節點,即 f+1 個節點,確節點的數量就會比故障節點數量多,那麼集群就能達成共識。所以,所有類型的節點數量加起來就是 f+1 個正確節點,f個故障節點和f個問題節點,即 3f+1=n。
結合上述兩種情況,因此 pbft 演算法支持的最大容錯節點數量是(n-1)/3

pbft 演算法的基本流程主要有以下四步:

客戶端發送請求給主節點
主節點廣播請求給其它節點,節點執行 pbft 演算法的三階段共識流程。
節點處理完三階段流程後,返回消息給客戶端。
客戶端收到來自 f+1 個節點的相同消息後,代表共識已經正確完成。
為什麼收到 f+1 個節點的相同消息後就代表共識已經正確完成?從上一小節的推導里可知,無論是最好的情況還是最壞的情況,如果客戶端收到 f+1 個節點的相同消息,那麼就代表有足夠多的正確節點已全部達成共識並處理完畢了。

3.演算法核心三階段流程
演算法的核心三個階段分別是 pre-prepare 階段(預准備階段),prepare 階段(准備階段), commit 階段(提交階段)

流程的對比上,對於 leader 選舉這塊, raft 演算法本質是誰快誰當選,而 pbft 演算法是按編號依次輪流做主節點。對於共識過程和重選 leader 機制這塊,為了更形象的描述這兩個演算法,接下來會把 raft 和 pbft 的共識過程比喻成一個團隊是如何執行命令的過程,從這個角度去理解 raft 演算法和 pbft 的區別。

一個團隊一定會有一個老大和普通成員。對於 raft 演算法,共識過程就是:只要老大還沒掛,老大說什麼,我們(團隊普通成員)就做什麼,堅決執行。那什麼時候重新老大呢?只有當老大掛了才重選老大,不然生是老大的人,死是老大的鬼。

對於 pbft 演算法,共識過程就是:老大向我發送命令時,當我認為老大的命令是有問題時,我會拒絕執行。就算我認為老大的命令是對的,我還會問下團隊的其它成員老大的命令是否是對的,只有大多數人 (2f+1) 都認為老大的命令是對的時候,我才會去執行命令。那什麼時候重選老大呢?老大掛了當然要重選,如果大多數人都認為老大不稱職或者有問題時,我們也會重新選擇老大。
四、結語
raft 演算法和 pbft 演算法是私鏈和聯盟鏈中經典的共識演算法,本文主要介紹了 raft 和 pbft 演算法的流程和區別。 raft 和 pbft 演算法有兩點根本區別:

raft 演算法從節點不會拒絕主節點的請求,而 pbft 演算法從節點在某些情況下會拒絕主節點的請求 ;
raft 演算法只能容錯故障節點,並且最大容錯節點數為 (n-1)/2 ,而 pbft 演算法能容錯故障節點和作惡節點,最大容錯節點數為 (n-1)/3 。

pbft演算法是通過投票來達成共識,可以很好的解決包括分叉等問題的同時提升效率。但僅僅比較適合於聯盟鏈私有鏈,因為兩兩節點之間通信量是O(n^2)(通過優化可以減少通信量),一般來說不能應用於超過100個節點。
pbft有解的前提是 信道必須是可靠的 ,存在的問題是 可擴展性(scalability)差

部分來自: https://blog.csdn.net/kojhliang/article/details/80270223
區塊鏈在設計上就是為了BFT

㈧ 比特幣之挖礦與共識(二)

比特幣共識機制的第三步是通過網路中的每個節點獨立校驗每個新區塊。當新區塊在網路中傳播時,每一個節點在將它 轉發到其節點之前,會進行一系列的測試去驗證它。這確保了只有有效的區塊會在網路中傳播。

獨立校驗還確保了誠實 的礦工生成的區塊可以被納入到區塊鏈中,從而獲得獎勵。行為不誠實的礦工所產生的區塊將被拒絕,這不但使他們失 去了獎勵,而且也浪費了本來可以去尋找工作量證明解的機會,因而導致其電費虧損。

當一個節點接收到一個新的區塊,它將對照一個長長的標准清單對該區塊進行驗證,若沒有通過驗證,這個區塊將被拒 絕。這些標准可以在比特幣核心客戶端的CheckBlock函數和CheckBlockHead函數中獲得

它包括:

為什麼礦工不為他們自己記錄一筆交易去獲得數以千計的比特幣?

這 是因為每一個節點根據相同的規則對區塊進行校驗。一個無效的coinbase交易將使整個區塊無效,這將導致該區塊被拒 絕,因此,該交易就不會成為總賬的一部分。礦工們必須構建一個完美的區塊,基於所有節點共享的規則,並且根據正 確工作量證明的解決方案進行挖礦,他們要花費大量的電力挖礦才能做到這一點。如果他們作弊,所有的電力和努力都 會浪費。這就是為什麼獨立校驗是去中心化共識的重要組成部分。

比特幣去中心化的共識機制的最後一步是將區塊集合至有最大工作量證明的鏈中。一旦一個節點驗證了一個新的區塊, 它將嘗試將新的區塊連接到到現存的區塊鏈,將它們組裝起來。

節點維護三種區塊:第一種是連接到主鏈上的,第二種是從主鏈上產生分支的(備用鏈),最後一種是在已知鏈中沒有 找到已知父區塊的。在驗證過程中,一旦發現有不符合標準的地方,驗證就會失敗,這樣區塊會被節點拒絕,所以也不 會加入到任何一條鏈中。

任何時候,主鏈都是累計了最多難度的區塊鏈。在一般情況下,主鏈也是包含最多區塊的那個鏈,除非有兩個等長的鏈 並且其中一個有更多的工作量證明。主鏈也會有一些分支,這些分支中的區塊與主鏈上的區塊互為「兄弟」區塊。這些區 塊是有效的,但不是主鏈的一部分。 保留這些分支的目的是如果在未來的某個時刻它們中的一個延長了並在難度值上超 過了主鏈,那麼後續的區塊就會引用它們。

如果節點收到了一個有效的區塊,而在現有的區塊鏈中卻未找到它的父區塊,那麼這個區塊被認為是「孤塊」。孤塊會被 保存在孤塊池中,直到它們的父區塊被節點收到。一旦收到了父區塊並且將其連接到現有區塊鏈上,節點就會將孤塊從 孤塊池中取出,並且連接到它的父區塊,讓它作為區塊鏈的一部分。當兩個區塊在很短的時間間隔內被挖出來,節點有 可能會以相反的順序接收到它們,這個時候孤塊現象就會出現。

選擇了最大難度的區塊鏈後,所有的節點最終在全網范圍內達成共識。隨著更多的工作量證明被添加到鏈中,鏈的暫時性差異最終會得到解決。挖礦節點通過「投票」來選擇它們想要延長的區塊鏈,當它們挖出一個新塊並且延長了一個鏈, 新塊本身就代表它們的投票。

因為區塊鏈是去中心化的數據結構,所以不同副本之間不能總是保持一致。區塊有可能在不同時間到達不同節點,導致節點有不同的區塊鏈全貌。

解決的辦法是,每一個節點總是選擇並嘗試延長代表累計了最大工作量證明的區塊鏈,也就 是最長的或最大累計工作的鏈(greatest cumulative work chain)。節點通過累加鏈上的每個區塊的工作量,得到建立這個鏈所要付出的工作量證明的總量。只要所有的節點選擇最長累計工作的區塊鏈,整個比特幣網路最終會收斂到一致的狀態。分叉即在不同區塊鏈間發生的臨時差異,當更多的區塊添加到了某個分叉中,這個問題便會迎刃而解。

提示由於全球網路中的傳輸延遲,本節中描述的區塊鏈分叉自動會發生。

然而,倒三角形的區塊不會被丟棄。它被鏈接到星形鏈的父區塊,並形成備用鏈。雖然節點X認為自己已經正確選擇了獲勝鏈,但是它還會保存「丟失」鏈,使得「丟失」鏈如果可能最終「獲勝」,它還具有重新打包的所需的信息。

這是一個鏈的重新共識,因為這些節點被迫修改他們對塊鏈的立場,把自己納入更長的鏈。任何從事延伸星形-倒三角形的礦工現在都將停止這項工作,因為他們的候選人是「孤兒」,因為他們的父母「倒三角形」不再是最長的連鎖。

「倒三角形」內的交易重新插入到內存池中用來包含在下一個塊中,因為它們所在的塊不再位於主鏈中。

整個網路重新回到單一鏈狀態,星形-三角形-菱形,「菱形」成為鏈中的最後一個塊。所有礦工立即開始研究以「菱形」為父區塊的候選塊,以擴展這條星形-三角形-菱形鏈。

從理論上來說,兩個區塊的分叉是有可能的,這種情況發生在因先前分叉而相互對立起來的礦工,又幾乎同時發現了兩個不同區塊的解。

然而,這種情況發生的幾率是很低的。單區塊分叉每周都會發生,而雙塊分叉則非常罕見。比特幣將區塊間隔設計為10分鍾,是在更快速的交易確認和更低的分叉概率間作出的妥協。更短的區塊產生間隔會讓交易清算更快地完成,也會導致更加頻繁地區塊鏈分叉。與之相對地,更長的間隔會減少分叉數量,卻會導致更長的清算時間。

2012年以來,比特幣挖礦發展出一個解決區塊頭基本結構限制的方案。在比特幣的早期,礦工可以通過遍歷隨機數 (Nonce)獲得符合要求的hash來挖出一個塊。

難度增長後,礦工經常在嘗試了40億個值後仍然沒有出塊。然而,這很容 易通過讀取塊的時間戳並計算經過的時間來解決。因為時間戳是區塊頭的一部分,它的變化可以讓礦工用不同的隨機值 再次遍歷。當挖礦硬體的速度達到了4GH/秒,這種方法變得越來越困難,因為隨機數的取值在一秒內就被用盡了。

當出現ASIC礦機並很快達到了TH/秒的hash速率後,挖礦軟體為了找到有效的塊, 需要更多的空間來儲存nonce值 。可以把時間戳延後一點,但將來如果把它移動得太遠,會導致區塊變為無效。

區塊頭需要信息來源的一個新的「變革」。解決方案是使用coinbase交易作為額外的隨機值來源,因為coinbase腳本可以儲存2-100位元組的數據,礦工們開始使用這個空間作為額外隨機值的來源,允許他們去探索一個大得多的區塊頭值范圍來找到有效的塊。這個coinbase交易包含在merkle樹中,這意味著任何coinbase腳本的變化將導致Merkle根的變化。

8個位元組的額外隨機數,加上4個位元組的「標准」隨機數,允許礦工每秒嘗試2^96(8後面跟28個零)種可能性而無需修改時間戳。如果未來礦工穿過了以上所有的可能性,他們還可以通過修改時間戳來解決。同樣,coinbase腳本中也有更多額外的空間可以為將來隨機數的擴展做准備。

比特幣的共識機制指的是,被礦工(或礦池)試圖使用自己的算力實行欺騙或破壞的難度很大,至少理論上是這樣。就像我們前面講的,比特幣的共識機制依賴於這樣一個前提,那就是絕大多數的礦工,出於自己利益最大化的考慮,都會 通過誠實地挖礦來維持整個比特幣系統。然而,當一個或者一群擁有了整個系統中大量算力的礦工出現之後,他們就可以通過攻擊比特幣的共識機制來達到破壞比特幣網路的安全性和可靠性的目的。

值得注意的是,共識攻擊只能影響整個區塊鏈未來的共識,或者說,最多能影響不久的過去幾個區塊的共識(最多影響過去10個塊)。而且隨著時間的推移,整個比特幣塊鏈被篡改的可能性越來越低。

理論上,一個區塊鏈分叉可以變得很長,但實際上,要想實現一個非常長的區塊鏈分叉需要的算力非常非常大,隨著整個比特幣區塊鏈逐漸增長,過去的區塊基本可以認為是無法被分叉篡改的。

同時,共識攻擊也不會影響用戶的私鑰以及加密演算法(ECDSA)。

共識攻擊也 不能從其他的錢包那裡偷到比特幣、不簽名地支付比特幣、重新分配比特幣、改變過去的交易或者改變比特幣持有紀錄。共識攻擊能夠造成的唯一影響是影響最近的區塊(最多10個)並且通過拒絕服務來影響未來區塊的生成。

共識攻擊的一個典型場景就是「51%攻擊」。想像這么一個場景,一群礦工控制了整個比特幣網路51%的算力,他們聯合起來打算攻擊整個比特幣系統。由於這群礦工可以生成絕大多數的塊,他們就可以通過故意製造塊鏈分叉來實現「雙重支 付」或者通過拒絕服務的方式來阻止特定的交易或者攻擊特定的錢包地址。

區塊鏈分叉/雙重支付攻擊指的是攻擊者通過 不承認最近的某個交易,並在這個交易之前重構新的塊,從而生成新的分叉,繼而實現雙重支付。有了充足算力的保證,一個攻擊者可以一次性篡改最近的6個或者更多的區塊,從而使得這些區塊包含的本應無法篡改的交易消失。

值得注意的是,雙重支付只能在攻擊者擁有的錢包所發生的交易上進行,因為只有錢包的擁有者才能生成一個合法的簽名用於雙重支付交易。攻擊者在自己的交易上進行雙重支付攻擊,如果可以通過使交易無效而實現對於不可逆轉的購買行為不予付款, 這種攻擊就是有利可圖的。

攻擊者Mallory在Carol的畫廊買了描繪偉大的中本聰的三聯組畫(The Great Fire),Mallory通過轉賬價值25萬美金的比特幣 與Carol進行交易。在等到一個而不是六個交易確認之後,Carol放心地將這幅組畫包好,交給了Mallory。這時,Mallory 的一個同夥,一個擁有大量算力的礦池的人Paul,在這筆交易寫進區塊鏈的時候,開始了51%攻擊。

首先,Paul利用自己礦池的算力重新計算包含這筆交易的塊,並且在新塊里將原來的交易替換成了另外一筆交易(比如直接轉給了Mallory 的另一個錢包而不是Carol的),從而實現了「雙重支付」。這筆「雙重支付」交易使用了跟原有交易一致的UTXO,但收款人被替換成了Mallory的錢包地址。

然後,Paul利用礦池在偽造的塊的基礎上,又計算出一個更新的塊,這樣,包含這 筆「雙重支付」交易的塊鏈比原有的塊鏈高出了一個塊。到此,高度更高的分叉區塊鏈取代了原有的區塊鏈,「雙重支付」交 易取代了原來給Carol的交易,Carol既沒有收到價值25萬美金的比特幣,原本擁有的三幅價值連城的畫也被Mallory白白 拿走了。

在整個過程中,Paul礦池裡的其他礦工可能自始至終都沒有覺察到這筆「雙重支付」交易有什麼異樣,因為挖礦程序都是自動在運行,並且不會時時監控每一個區塊中的每一筆交易。

為了避免這類攻擊,售賣大宗商品的商家應該在交易得到全網的6個確認之後再交付商品。或者,商家應該使用第三方 的多方簽名的賬戶進行交易,並且也要等到交易賬戶獲得全網多個確認之後再交付商品。一條交易的確認數越多,越難 被攻擊者通過51%攻擊篡改。

對於大宗商品的交易,即使在付款24小時之後再發貨,對買賣雙方來說使用比特幣支付也 是方便並且有效率的。而24小時之後,這筆交易的全網確認數將達到至少144個(能有效降低被51%攻擊的可能性)。

需要注意的是,51%攻擊並不是像它的命名里說的那樣,攻擊者需要至少51%的算力才能發起,實際上,即使其擁有不 到51%的系統算力,依然可以嘗試發起這種攻擊。之所以命名為51%攻擊,只是因為在攻擊者的算力達到51%這個閾值 的時候,其發起的攻擊嘗試幾乎肯定會成功。

本質上來看,共識攻擊,就像是系統中所有礦工的算力被分成了兩組,一 組為誠實算力,一組為攻擊者算力,兩組人都在爭先恐後地計算塊鏈上的新塊,只是攻擊者算力算出來的是精心構造 的、包含或者剔除了某些交易的塊。因此,攻擊者擁有的算力越少,在這場決逐中獲勝的可能性就越小。

從另一個角度 講,一個攻擊者擁有的算力越多,其故意創造的分叉塊鏈就可能越長,可能被篡改的最近的塊或者或者受其控制的未來 的塊就會越多。一些安全研究組織利用統計模型得出的結論是,算力達到全網的30%就足以發動51%攻擊了。全網算力的急劇增長已經使得比特幣系統不再可能被某一個礦工攻擊,因為一個礦工已經不可能占據全網哪怕的1%算 力。

待補充

待補充

熱點內容
天貓元宇宙藝術 發布:2024-09-08 09:29:38 瀏覽:329
迷你挖礦推薦 發布:2024-09-08 09:08:03 瀏覽:619
2019區塊鏈怎樣賺錢文章 發布:2024-09-08 08:47:28 瀏覽:951
qq表情中doge什麼意思 發布:2024-09-08 08:39:04 瀏覽:824
恆信在線比特幣 發布:2024-09-08 08:10:17 瀏覽:892
掛機那魔獸挖礦 發布:2024-09-08 07:59:51 瀏覽:661
挖礦錢從哪裡來 發布:2024-09-08 07:52:27 瀏覽:24
獲得eth 發布:2024-09-08 07:52:24 瀏覽:389
如何自建虛擬幣礦池 發布:2024-09-08 07:06:20 瀏覽:571
區塊鏈受益行業 發布:2024-09-08 06:59:55 瀏覽:863