我們平常人一提起區塊鏈,常常會想到一個詞語:去中心化。然而,縱觀整個幣圈,所有的區塊鏈項目都在強調自己的“去中心化”。問題在於,我們去中心化到底有什麼用?去中心化的意義在什麼地方?到底我們要不要所謂的去中心化?本文將帶大家一一撥開去中心化的迷霧。

區塊鏈的去中心化

開始之前,我想要列舉一下之前見到過的幾個問題:

  1. “區塊鏈也是一個地址一個密碼”

  2. “那有一天是不是也可以被聯合在一起的礦場主綁架去做一個分叉改變挖礦的難度”

  3. “幣數目雖然有限但是價值不定,稀缺性又從何說起呢”

先來糾正幾個常識和邏輯的問題再作回答(對應以上問題):

  1. 區塊鏈既不是地址也不是密碼,而是一個賬本,裡面記載了交易。

  2. 改變挖礦難度不會破壞比特幣2100 萬的上限,與稀缺性無關。

  3. 價值不定和稀缺不稀缺有什麼關係嗎?稀缺是一個量的概念,又不是價值概念。照你這種說法,世界上沒有一種東西具有稀缺性,因為它們的價值都是隨時在變動的。

區塊鏈之所以要去中心化,就是要保證數據絕對不允許篡改,避免了中心化節點可能帶來的信任危機。哪怕在現有的社會制度下,中心化節點帶來的災難性後果還在不斷上演。銀行破產算不算? p2p 理財跑路算不算?你發的文章被網站和諧掉算不算?微博和微信每天有多少被和諧的信息和數據?這些不算損失嗎?去中心化就是要徹底解決掉這個問題,保證數據絕對不會被篡改,刪除。尤其涉及到錢的問題,如果支付寶把你的賬戶凍結,把你裡面的錢全部清零,你還覺得這不是無法追回的損失嗎?不要說你信任支付寶,你最終選擇信任某一個機構,而區塊鍊是信任某一種技術,是機構可靠還是技術可靠不言而喻。私有財產神聖不可侵犯,區塊鏈就是在堅定的守護著持幣人的財產。

區塊鏈的安全性不是體現在賬戶密碼被盜這種事,賬戶密碼這些信息是識別你是不是財產主人的標誌,這都能被搞走,不管你採用何種儲存都沒辦法保證不被盜。你銀行卡賬號密碼被盜,照樣會丟錢,你手機支付寶密碼被盜也照樣會丟錢,這和儲存途徑無關。區塊鏈的安全性體現在私鑰是歸屬權的唯一標誌,擁有私鑰就是擁有財產,其他任何人沒有私鑰都無法偷盜、凍結、篡改,阻止你使用你的錢。這才是區塊鏈的核心安全特徵。而相比之下,銀行可以不經過你同意凍結你的錢,可以限制你轉賬的額度,可以在你收到一筆轉賬之後把它撤回,你覺得這是安全的嗎?比特幣丟失無法追回恰恰是最最安全的,這就像一扇最安全的防盜門只認鑰匙,其他任何方法(撬,砸,燒等)都打不開一樣。

前面說過了稀缺性和價值無關,稀缺性也不保證價值,美國總統放的屁稀缺不?稀缺啊。有個屁的價值?硬分叉這個就更可笑了,如果有礦工試圖分叉修改比特幣的上限,他的分叉一定不會獲得其他人的認可,沒有其他人的共識就沒有價值可言。

不知道大家是否了解,MVC 測試的1G 區塊就可以滿足超過VISA 級別的支付需求。而硬件的升級是指數增長的,真的到了全人類都用區塊鏈支付的地步,那需要多少年?這些年儲存空間還像現在這樣嗎?未來你看現在的儲存能力,就像你現在拿著幾t 的硬盤看十幾年年前的軟盤一樣。真的到了那個地步,一定會有匹配市場的儲存產品出現,現在想這個純粹杞人憂天。按照現在比特幣的交易數,買個2T 硬盤運行個七八年都不是問題。

比特幣去中心化迷思

去中心化下,最富盛名的就是BTC,號稱全球有數以萬計的全節點賬本來保駕護航,一些所謂的大V 更是號召大家下全節點保護BTC,防止來自礦霸和政府的攻擊,保護自己的BTC,全節點越多就是越去中心化,真的是這樣嗎?

坦白的說,現在的BTC 賬本大概幾百G,普通人而言是完全沒有動力做下載全節點這樣的事情。也完全沒有任何的必要,從中本聰的郵件裡我們可以窺見:

>Satoshi Nakamoto wrote:

>> I've been working on a new electronic cash system that's fully

>> peer-to-peer, with no trusted third party.

>>

>> The paper is available at:

>> http://www.bitcoin.org/bitcoin.pdf

>

>We very, very much need such a system, but the way I understand your

>proposal, it does not seem to scale to the required size.

>

>For transferable proof of work tokens to have value, they must have

>monetary value. To have monetary value, they must be transferred within

>a very large network - for example a file trading network akin to

>bittorrent.

>

>To detect and reject a double spending event in a timely manner, one

>must have most past transactions of the coins in the transaction, which,

> naively implemented, requires each peer to have most past

>transactions, or most past transactions that occurred recently. If

>hundreds of millions of people are doing transactions, that is a lot of

>bandwidth - each must know all, or a substantial part thereof.

>

Long before the network gets anywhere near as large as that, it would be safe for users to use Simplified Payment Verification (section 8) to check for double spending, which only requires having the chain of block headers, or about 12KB per day. Only people trying to create new coins would need to run network nodes. At first, most users would run network nodes, but as the network grows beyond a certain point, it would be left more and more to specialists with server farms of specialized hardware. A server farm would only need to have one node on the network and the rest of the LAN connects with that one node.

The bandwidth might not be as prohibitive as you think. A typical transaction would be about 400 bytes (ECC is nicely compact). Each transaction has to be broadcast twice, so lets say 1KB per transaction. Visa processed 37 billion transactions in FY2008, or an average of 100 million transactions per day. That many transactions would take 100GB of bandwidth, or the size of 12 DVD or 2 HD quality movies, or about $18 worth of bandwidth at current prices.

If the network were to get that big, it would take several years, and by then, sending 2 HD movies over the Internet would probably not seem like a big deal.

Satoshi Nakamoto

這段話的重點是:在網絡接近這麼大的時候,用戶可以安全地使用簡化支付驗證(第8 節)來檢查雙重支出,這只需要擁有塊頭鏈,或者每天大約12KB。只有嘗試創建新硬幣的人才需要運行網絡節點。起初,大多數用戶會運行網絡節點,但隨著網絡增長超過某一點,對於具有專用硬件的服務器場的專家來說,它將越來越多。服務器場只需要在網絡上有一個節點,而LAN 的其餘部分與該節點連接。

帶寬可能不像你想像的那麼高。典型的事務大約是400 字節(ECC 非常緊湊)。每個交易必須廣播兩次,所以我們說每筆交易1KB。 Visa 在2008 財年處理了370 億筆交易,平均每天處理1 億筆交易。許多交易需要100GB 的帶寬,或12 個DVD 或2 個高清質量電影的大小,或當前價格約18 美元的帶寬。

如果網絡變得那麼大,那將需要幾年時間,到那時,通過互聯網發送2 部高清電影可能看起來不是什麼大問題。

原文鏈接:BitcoinP2P e-cash paper

https://satoshi.nakamotoinstitute.org/emails/cryptography/2/

連中本聰本人都自己說用戶根本沒有任何必要下載全節點,只需要擁有區塊頭【SPV 錢包就可以】。全節點這種東西,只存在於運行比特幣的商業機構和礦工之間,普通用戶使用SPV 存儲與自己有關交易的區塊頭就OK 了。

在回到全節點的問題上來,你要是狂熱的全節點愛好者你下也沒有什麼問題,畢竟現在一塊硬盤都幾個T 了。現在要撥亂反正的是全節點保護賬本論,這就更扯淡了:在比特幣網絡中,礦工通過算力投票來表達他認為是正確的鏈進行延長,錯誤的鏈則拒絕接受其區塊。沒有算力的全節點只能說進行驗證,真遇到攻擊你只能乾瞪眼什麼也做不了。這就是關於全節點,樹莓派的真相,對於普通人沒有任何用的東西。

既然普通用戶不用運行全節點,那比特幣的去中心化究竟體現在什麼地方?其實從上述的郵件裡,中本聰甚至已經預計到了礦池的存在,比特幣的去中心化,完全是針對礦工之間,或者說礦池之間所形成的“小世界網絡”。

這才是比特幣去中心化的第一層含義。礦工之間是競爭關係形成去中心化,白皮書裡有如下概述:

  1. 新的交易向全網進行廣播

  2. 每一個節點都將收到的交易信息納入一個區塊中

  3. 每個節點都嘗試在自己的區塊中找到一個具有足夠難度的工作量證明

  4. 當一個節點找到了一個工作量證明,它就向全網進行廣播

  5. 當且僅當包含在該區塊中的所有交易都是有效的且之前未存在過的,其他節點才認同該區塊的有效性

  6. 其他節點表示他們接受該區塊,而表示接受的方法,則是在跟隨該區塊的末尾,製造新的區塊以延長該鏈條,而將被接受區塊的隨機散列值視為先於新區塊的隨機散列值

礦工收集交易以賺取手續費,但交易的收集不能太多,也不能太少。如果打包太多則這個塊無法傳播給其他礦工,這就變成了孤塊。太少的話則入不敷出,無法形成有效激勵。另一方面產生的爆塊獎勵是所有礦工一起算一道數學題的方式來搶奪全網唯一的記賬權。所以,一個成功的礦工所獲得的收入是爆塊獎勵+ 手續費。其他沒有搶到記賬權的礦工則有動力更快傳播成功者的區塊以投入到下一輪的競爭當中,以減少時間成本的流失。如果礦工想更快進入下一輪競爭,它傾向於和更多,連結性更好的礦工相連。

這是一個小世界網絡模型,我們可以看到它的節點【node】很少,但“邊”【edge】很多。在小世界網絡下,礦工之間傳播的跳數不會超過兩跳。正是由於礦工之間的邊非常多,他們的聯繫才非常緊密。這樣才能保證以最快的速度傳播給其他礦工,整個網絡也因此變得強壯和安全。小世界網絡能夠很有效的阻止雙花,因為比特幣的雙花只能夠雙花自己的交易,哪怕你慢了0.1 秒,你的雙花交易也比你的第一筆交易更晚傳送到各個礦工手上,從而使礦工拒絕承認第二筆相同的交易,觸發風控。這也是比特幣零確認的基礎。

比特幣去中心化的第二點,在於權力的去中心化。在幣圈裡,非常搞笑的一個面,礦工某種程度上來說竟然是個貶義詞,我們常常能夠聽到把礦工稱之為“礦霸”,拿起你的全節點,保護我們的權利不被礦工所侵害這樣的詞語。他們沒有弄清楚一點,究竟誰才是比特幣真正的主人?是礦工啊。礦工投入巨大的真金白銀打包區塊獲得收益,他們有著巨大的沉沒成本。換一個角度來說他們為什麼要冒著風險去攻擊整個比特幣系統?從經濟學上的角度來說根本無利可圖。比特幣能夠工作十年之久最關鍵在於這是一個誠實挖礦比攻擊系統獲利更大,充分利用了人性貪婪的一面才能使這個無中心系統工作那麼多年。我為什麼要提到這個?因為比起“礦霸” 這個說辭,“碼霸” 才是更有威脅力的人物。那些開發者永遠想把比特幣當成自己的實驗玩具,肆意篡改著系統協議。 segwit,檢查點,這些東西都是開發者們的天馬行空。不要在動協議了,開發者對於比特幣根本沒有真金白銀的投入,他們沒有沉沒成本。比特幣失敗了他們完全可以拍拍屁股走人,然後頂著“比特幣開發者” 這個稱號去下一個公司應聘。礦工的礦機變成了一堆廢鐵一無是處。防止開發者的作惡,一個堅如磐石得協議是多麼重要。否則,協議改了第一次就會有第二次,第三次。 。 。 。 。這是多麼可怕的事情,開發者手裡掌握巨大的權力。這樣你就明白為何鎖死協議如此重要,剝奪開發者的權力才能使比特幣實現真正的去中心化。

總結

破除比特幣去中心化的迷思非常重要。作為UTXO 腦殘粉,這裡簡單提一下我目前接觸到的UTXO 公鏈“MVC”,其採用和比特幣相同的POW 共識方案以及比特幣相同的SHA256 挖礦算法,確保了MVC 具有開放性、無許可性以及去中心化等特性。總而言之,保持足夠的去中心化是一切區塊鏈技術的基礎,去中心化特性能確保系統的健壯性,跨區域性以及公平競爭性,並讓整個系統具有自我延續的生命力。

原文鏈接