关于区块链概念的理解
生活随笔
收集整理的這篇文章主要介紹了
关于区块链概念的理解
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
版權聲明:本文為博主原創文章,遵循 CC 4.0 BY-SA 版權協議,轉載請附上原文出處鏈接和本聲明。 本文鏈接:https://blog.csdn.net/kuangsonghan/article/details/79929597 </div><!--一個博主專欄付費入口--><!--一個博主專欄付費入口結束--><link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-4a3473df85.css"><link rel="stylesheet" href="https://csdnimg.cn/release/phoenix/template/css/ck_htmledit_views-4a3473df85.css"><div class="htmledit_views" id="content_views"><h2><a name="t0"></a>摘要</h2><p>2017-2018年,互聯網界最火熱的話題之一就是區塊鏈。各大公司相繼宣布對區塊鏈方面的投資和開發,各大互聯網公司也前后推出自己區塊鏈產品,例如阿里的麻吉寶、百度的萊次狗、騰訊的TrustSQL等等。那么區塊鏈到底是什么?本文簡單介紹區塊鏈的相關概念</p><h2><a name="t1"></a>區塊鏈的相關概念</h2><p>區塊鏈本身字面的理解就是在一個網絡中,有很多很多的區塊(block),通過某些方法使這些區塊串起來,形成一個長鏈(chain),這就叫區塊鏈(blockchain)。</p><p>有人說區塊鏈技術的發展必然會對我們的日常生活產生重要的改變,為什么這么說,我們先來看看區塊鏈中最重要的幾個概念</p><p>1.是一個分布式賬本(或者分布式數據庫)</p><p>2.是一個去中心化的信任系統</p><p>3.區塊鏈技術最著名的應用——比特幣</p><h3><a name="t2"></a>去中心化的含義</h3><p>從上面的前兩天概念總結來說,區塊鏈是一個去中心化的分布式賬本。去中心化的意思就是網絡中的節點與節點之間相互信任,去除了常見分布式系統中的中心系統的概念。</p><p>舉個例子,我這里寫一個斗地主的故事,商務男、小孩、老爺爺三個人在一起斗地主,他們規定地主贏了得10塊錢,農民贏了得5塊錢。為了避免賴賬,他們約定沒人拿出100塊錢,存放在圣誕老人那里,圣誕老人負責記賬。</p><p>那么在圣誕老人手里面的賬本是這樣的</p><p></p><div class="table-box"><table border="1" width="200" cellspacing="1" cellpadding="1"><tbody><tr><td> </td><td>斗地主總賬</td></tr><tr><td>商務男</td><td>100</td></tr><tr><td>小孩</td><td>100</td></tr><tr><td>老爺爺</td><td>100</td></tr></tbody></table></div><p>那么此時,圣誕老人是他們三個人的信任中心,每次打完牌都把結果告訴圣誕老人,圣誕老人負責記賬。例如第一局比賽,商務男是地主并贏得了這場比賽。那么圣誕老人手里的賬單就需要發生變化</p><p></p><div class="table-box"><table border="1" width="200" cellspacing="1" cellpadding="1"><tbody><tr><td> </td><td>斗地主賬單</td></tr><tr><td>商務男</td><td>110</td></tr><tr><td>小孩</td><td>95</td></tr><tr><td>老爺爺</td><td>95</td></tr></tbody></table></div><p>那么這種場景是我們日常生活當中最常見的,我們潛移默化地接受這中有中心化的交易和操作。以上的場景就是典型的具有中心化的交易。那么在日常的中心化交易中是否會出現問題?</p><p>我們設想,圣誕老人作為商務男、小孩、老爺爺的中心,如果出現下列問題,三者之間的賬單應該如果處理?</p><p>問題:</p><p>1.圣誕老人年事已高,要是突然掛了怎么辦?</p><p>2.圣誕老人坐地起價,要求每人收一定的手續費怎么辦?</p><p>3.圣誕老人擁有商務男、小孩、老爺爺三人的私有數據,如果他把這些數據賣給別人怎么辦?</p><p>4.如果圣誕老人開了一個很大的賭場,參與斗地主活動的有成千上萬個人,圣誕老人負責記賬,忙不過來怎么辦?</p><p>參與斗地主的每個人都與中心(圣誕老人)進行交互,數據的流向是向中心節點匯集,中心化必然就會產生寡頭,產生壟斷。如果采用去中心化的數據流,人與人(節點與節點)間都是平等互聯的,節點與節點之間使用公共的標準進行數據流通。</p><h3><a name="t3"></a>分布式系統</h3><h4>拜占庭將軍問題</h4><p>在區塊鏈的學習當中,要理解分布式系統問題,大部分的學者都會舉出拜占庭將軍的問題。故事大致是這樣的:古代希臘有一個國家叫拜占庭,國力雄厚,拜占庭中的一位將軍喜歡征戰,想把別的國家的資源搶奪到自己手中。在攻打敵方國家的時候,將軍派出了10支部隊同時去攻打。當然敵對國也不是吃素的,在拜占庭將軍排除的10支部隊中,需要有6支或者以上的部隊同時發起進攻,才能取得勝利。那么這個問題就屬于一個典型的分布式的問題,在這個分布式系統中有10個節點,我們希望這10個節點同步,一起在同一時間執行同一個操作。也就是說拜占庭將軍希望這10支部隊在同一時間攻打敵方國家。但是在將軍發出一起攻打的命令時,通訊兵有可能會被敵軍俘獲,或者通訊兵表達能力欠缺,有可能把將軍的命令表達錯誤。這些問題可能導致通訊兵傳遞出去的數據時錯誤的,那么這10支部隊肯定保持不了同步,攻打的結果極有可能是失敗。所以這就是拜占庭將軍的問題所在。</p><h4>分布式系統存在的一些問題——誰說了算,聽誰的?</h4><p>在分布式系統中存在著一些問題,相信做過Java的同學很有體會,往往在分布式系統的實現中,有一個很非常重要的問題,那就是誰說了算?聽誰的?如果才能保持數據一致?典型的例子就是我們在實zookeeper集群時,在該分布式系統當中選舉出一個領導,在該網絡內所有的分支都聽這個領導的。如果在該網絡中這個領導掛掉了,zookeeper會在剩下的分支當中,再選舉一個分支作為新的領導,但是zookeeper在實際的生產環境中,也存在一些問題,就是如果第一個領導掛掉的時候,并沒有徹底死亡,有一部分還存活著,但是新的領導分支已經選定,那么此時存在兩個領導。那么兩個master手下的分支就會出現我們所說的“腦裂”問題,它們不知道到底該聽第一個領導的還是第二個領導的。其實zookeeper是屬于一種中心化的分布式實現。</p><p></p><h3><a name="t4"></a>最典型的區塊鏈應用——比特幣</h3><p>要繼續講解區塊鏈的問題,我們需要結合區塊鏈中最典型的實現,那就是我們討論最多的比特幣。關于比特幣,我先給大家一些比特幣的相關概念</p><p>1.比特幣不是一種貨幣,它是一個分布式的總賬系統,電子總賬在每個參與者的電腦上備份,實時地同步和對賬</p><p>2.總賬記錄一定量的比特幣從一個參與者到另一個參與者的過程,每次記錄都會廣播到網絡中</p><p>3.比特幣本身沒有價值,比特幣的價值在于,它是通過一些算法,實現了一個去中心化的分布式信任系統,這個系統實現了價值轉移</p><h4>工作證明(POW)機制</h4><p>介紹了比特幣的基礎概念之后,我們回到上面所說的常見分布式系統中所說的誰說了算,聽誰的的問題。那么區塊鏈中如果解決這個問題的呢?在區塊鏈技術中,它通過一個叫工作證明(POW)的機制來解決區塊鏈的數據信任問題。那么如何理解工作證明這個機制呢?我先給出兩句話大家看看:<strong>獲取這個證明需要很長時間,而驗證它的真偽只需要很短的時間。</strong></p><p>工作證明我們現實生活當中也存在著很多例子,比如說,我們學生的學歷有本科-碩士-博士-博士后等等,我們完成本科學習需要4年時間,然后才有資格考取碩士,再花3年時間完成碩士的學習,然后再才有資格考取博士,再4年時間完成博士的學習。整個過程都是一個鏈式的推進過程。<strong>完成各個階段的學習就是我們獲取證明的工作,</strong>但是我們去找工作,用人單位要驗證你是否有這些學歷,只需要去學信網上花很短的時間就能驗證你是否有這些資歷。所以<strong>驗證真偽只需要花很短的時間。</strong></p><p><strong>比特幣就是通過上面所說的工作證明的方式,它降低了信息傳遞的速率(就是說你在傳遞信息之前有要先對你進行工作證明),增加了節點成為領導的難度,通過區塊鏈的短暫分叉,完美地解決了拜占庭將軍問題。</strong></p><p>我們回到之前商務男、小孩、老爺爺斗地主的場景中,圣誕老人這個中心已經不存在了,我們把參與斗地主的三人還有其他的一群吃瓜群眾都放入區塊鏈的網絡中,每個人是一個節點,那么吃瓜群眾就是負責記賬的礦工。那么在區塊鏈的環境下,故事就應該是這樣的:三人完成一把斗地主,最終的結果是商務男作為地主被農民打敗了,商務男輸了10塊錢,他應該給小孩和老爺爺每人5塊錢,在區塊鏈中,如果產生了交易信息,就要在全網內廣播。在此規則下,商務男應該向兩個人轉賬并全網廣播一條信息:“我斗地主輸了,我向小孩和老爺爺每人轉5塊錢”。</p><p>但是如果商務男沒有在全網內廣播這條消息,他只是點對點地分別對小孩和老爺爺說:“我給你轉了5塊錢,你同步到你的賬本上吧。”那么商務男就偽造了兩條信息分別發給了小孩和老爺爺。</p><p>此時小孩和老爺爺的賬本如下:</p><p></p><div class="table-box"><table border="1" width="200" cellspacing="1" cellpadding="1"><tbody><tr><td> </td><td>斗地主賬本</td></tr><tr><td>商務男</td><td>90</td></tr><tr><td>小孩</td><td>105</td></tr><tr><td>老爺爺</td><td>105</td></tr></tbody></table></div><p>但是該網絡中其他的吃瓜群眾的賬本是這樣的</p><p></p><div class="table-box"><table border="1" width="200" cellspacing="1" cellpadding="1"><tbody><tr><td> </td><td>斗地主賬本</td></tr><tr><td>商務男</td><td>100</td></tr><tr><td>小孩</td><td>100</td></tr><tr><td>老爺爺</td><td>100</td></tr></tbody></table></div><p>小孩和老爺爺也是該網絡中的兩個節點,他們收到了來自商務男和其他吃瓜群眾兩份不同的賬本,在該分布式賬本中就出現了數據不一致的現象。那么小孩和老爺爺到底該聽誰的呢?此時故事還要繼續下去,商務男說,我是本科畢業,我的學歷高,應該聽我的,但是吃瓜群眾中就有人不樂意了,他說,我也是是本科生呀,我的賬本才是正確的。此時如果商務男還想圓他說的謊,那么他就必須繼續進行工作證明。于是他考取了碩士,他說我是碩士,我的賬本才是正確的,但是吃瓜群眾當然有會有人考取了碩士,此時又會出現誰也不服誰的情況。接著商務男又考到了博士,他再次聲明他的賬本是對的,但是吃瓜群眾千千萬,當然也有博士畢業的,此時又出現了聽誰的問題,如此一步一步商務男和吃瓜群眾雙方為了奪得話語權,繼續增加他們各自的工作證明。但是所謂雙拳難第四手,在吃瓜群眾中總會有學歷比商務男學歷出色的人,所以,商務男最終的工作證明(POW)肯定會不如吃瓜群眾中的最高學歷份子。此時商務男的謊言就不攻自破了。這個故事<strong>也就是說當全網中有一個節點試圖去非法篡改網絡中的數據,它需要和全網的所有節點進行競爭。他可能在第1、2、3、4、5個次工作證明中勝出,但是它絕對不可能在第6次工作證明中勝出。</strong>那么在區塊鏈中,它<strong>規定當有6個區塊確認之后,這條數據就是有效的。</strong></p><p>其實如果有同學炒過比特幣,或者在火幣網上上進行過交易的話,會經常看到一句話,如果一次交易有6個區塊確認過,那么你的這次交易就是有效的。為什么是6個區塊確認過后就認為是有效的呢?那么在比特幣的白皮書中有說道,<strong>如果一個節點它要連續6次的工作證明超過全網其他節點,那么他在第6次的算力需要達到全網的百分之五十一。也就是說第6次競爭的時候,他的算力要達到全世界計算機算力的百分之五十一,才有可能連續6次領先其他所有的節點。</strong></p><h4>比特幣總結</h4><p>通過我們上面對比特幣的了解,我們可以總結一下知識點</p><p>1.比特幣通過p2p來實現賬本的同步拷貝,每一個節點都可以接受其他節點廣播過來的數據</p><p>2.比特幣通過增加發送信息的成本,也就是說增加節點的工作證明(POW),降低信息傳播的速率</p><p>3.比特幣通過區塊鏈的長度,來判斷數據的可信度(我們在區塊鏈中,永遠只相信最長量)</p><p>4.區塊鏈中有6個有效區塊認為轉賬成功,那么此次交易就成功。所以比特幣的交易確認需要1個小時(每10分鐘產生一個區塊)</p><p>5.比特幣的工作證明是通過sha256算法哈希來完成</p><p>6.工作證明(POW)的獲取需要很長時間,但是驗證真偽只需要很短的時間</p><p>7.比特幣的sha256哈希算法導致大家通過通過礦池來挖礦,礦池有算力壟斷,有潛在的中心話風險</p><p>8.礦池挖礦只是在爭奪記賬權,獲得比特幣,它會消耗大量的電力,并無實際價值,在我國,正取締挖礦
阿里云雙12.12 云服務器 優惠活動:
https://www.aliyun.com/1212/2019/home?source=5176.11533457&userCode=vrm8uaiu&type=copy
總結
以上是生活随笔為你收集整理的关于区块链概念的理解的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Method has too many
- 下一篇: 在 Domino 邮件服务器上配置 Ve