「魏扒皮」人人看懂「以太坊白皮書」

區塊鏈世界日新月異,公鏈聯盟鏈、牛幣馬幣層出不窮。李笑來說扯價值投資你就輸了,但誰也不想當韭菜任人宰割。在大媽都跑步入場的“區塊鏈世界”,如何區分一個項目的好壞,不要遇到空氣幣而瞬間灰飛煙滅?大家說要一看項目、二看團隊、三看社群,翻譯成人話就是:一看項目是不是真的能解決問題?二看項目團隊成員是不是很牛逼?三看會不會運營,懂不懂營銷。而白皮書就是項目團隊向公眾傳達項目信息、證明團隊實力的最佳載體。

但現實的情況是,越是好項目的白皮書越是看不懂,什麼共識機制,哈希算法對普通投資者來說簡直就是天書。鑑於此,老魏試圖做一件事,看能不能把天書翻譯成人書。先從以太坊開始吧。

一、瞭解區塊鏈必須先了解比特幣,同樣搞清楚以太坊也必須從比特幣開始。

以太坊的初衷是解決比特幣存在的一些問題,所以在瞭解以太坊之前,我們先簡單瞭解一下比特幣。對於比特幣,建議主要了解以下信息:

1、現在人民幣都是國家發行,我們要轉賬都要通過銀行。假設沒有銀行,你會在網上給一個陌生人轉錢嗎?比特幣就是能在沒有銀行這樣的中央機構背書的情況下,還能讓你安全的把錢(幣)轉給其他不認識的人,只是在這裡面轉的不是人民幣,而是比特幣。比特幣是比特幣網絡發行的數字貨幣,這個數字貨幣本身沒有價值,但是因為流通就產生了價值。

2、比特幣是怎麼保障在沒有中央機構背書的情況下讓轉賬安全運行的呢?又是怎麼把數字貨幣發行出來的呢?這裡就涉及到很多概念,重點理解以下幾點:

一個是P2P網絡,就理解成這個網絡就像是一個蜘蛛網,網絡上的每個人也就是一個節點,都是平等的,節點之間直接交易,不用經過什麼中心化的機構。P2P網絡是比特幣的基礎,大家在這張網上活動。

二是區塊,就把區塊理解成賬本中的一頁紙,節點之間的交易就記錄在這張紙上。

三是鏈,就是賬本,把每一張紙按照時間順序連在一起就形成了賬本。

四是記賬,想象一下如果有一個賬本,大家都隨意的往裡面記賬,是不是就亂套了?所以比特幣對於每一張賬頁紙,都通過一些機制找出一個人,讓他來記賬,並讓所有其他人來確認,沒問題就加到賬本里面去。下一頁紙又重新找出一個人來記賬,但是大家為什麼要來記賬呢,沒好處的事誰幹啊,所以會給每一個記賬的人一些比特幣獎勵,這樣大家就都搶著來記賬了,這也叫挖礦

五是賬本誰來保管呢?既然沒有中央機構來保管,那放在誰那裡都不放心啊,萬一有人改了賬本怎麼辦?所以比特幣會把最終的賬本給所有人都發一份,一起來保管,這樣就算有某個人改了賬本也沒關係。

六就是數據安全的保護了,大家的數據都在網絡上跑著,隱私怎麼保護?數據安全怎麼保障?這裡面涉及到一些密碼學的技術,比如密鑰、簽名、哈希算法等等。目前通過這些技術還是能比較好的保障數據的安全,具體細節就不細說了。

以上我們大概瞭解了比特幣,但是比特幣存在一些問題,主要有下面兩個:

1、工作能力有限:大概也就能幹點轉點比特幣給別人這樣的事。區塊鏈既然這麼好,自己當家做主,共產共妻了,能者多勞啊,能不能幹點更復雜的事呢?

2、做事慢慢吞吞:首先一秒鐘只能處理幾筆交易,要知道銀行轉賬一秒鐘可是可以處理上萬的交易;然後比特幣設定要10分鐘才能記錄一張紙,而且要等記錄6張紙以後,這張紙才真正算沒問題了,這就得1個小時。要是轉賬交易的人多的話,你得等老長時間。

3、不環保:前面講到記賬是根據一些規則選出一個人來記的,這個機制就是工作量證明,是根據節點的計算能力來決定的,意思是你的計算機的性能越強大,你獲得記賬的概率就越高。比特幣值錢啊,為了獲得比特幣,是不是就要提高計算機的計算能力,就出現了專業的礦機專門來挖礦(現在個人電腦基本都挖不到礦了)。這些礦機非常耗電,有數據顯示,完成一次比特幣交易耗電量,可供一個美國主流家庭使用5.5天。

4、存在被人控制的風險:上面的工作量證明機制,還帶來一個問題,因為普通人已經很難挖到礦了,算力就越來越集中到那些專業挖礦的人手中,甚至很多礦工礦機加入礦池,形成了聯盟,導致算力越來越集中。如果有人聯合這些礦池礦機,控制總算力甚至達到了51%,這個時候是不是他就可能控制網絡,比如他把一筆比特幣轉給別人,獲得了他要交換的東西,但是在網絡還沒最終確認之前,他又把這筆錢轉回給自己,因為他控制了大部分的算力,就可以聯合大家一起強行逆天改命,都來確認說這個交易是合法的,這個也叫51%攻擊。(實際細節比這複雜,只是為了讓大家理解概念)

二、以太坊的由來和希望解決什麼問題?

後來,有一個俄羅斯19歲的小夥子叫V神,他就在想,能不能來解決這些問題?能不能讓區塊鏈可以做一些更復雜的事。回來區塊鏈世界,比如是不是可以把房產、股票都放在區塊鏈上來交易?比如航空延誤險,是不是不用保險公司,只要航班延誤就自動賠償,把相應的以太幣轉到你的賬戶?這些都要比簡單的貨幣轉賬複雜多了。

另外,既然以太坊能支持這麼多的應用場景了,那就會有很多有想法的人希望能實現這些場景,但是沒必要每個人都去建一套這麼複雜的區塊鏈系統吧,畢竟完整的建一個區塊鏈系統還是非常複雜的事,所以以太坊團隊就提出他們把底層的系統做好,大家只需要關心怎麼把業務場景實現出來就可以了,不用管底層這麼複雜的東西。就像蓋房子,以前都是自己一磚一瓦的建房子,現在可以選擇門、牆、窗等這些別人已經做好的東西來組裝就好了,你要考慮的是建學校,還是建銀行。

以太坊還是從比特幣延伸出來的,也是沒有中央機構,基於P2P網絡,用區塊和鏈來記賬,所有節點共同維護賬本,也發行自己的數字貨幣,記賬挖礦也有數字貨幣獎勵,以太坊發行的數字貨幣叫ETH。

三、以太坊是怎麼來解決這些問題的呢?

1、怎麼能做更多的事?(智能合約)

為了要解決幹更復雜的事,以太坊引入了“智能合約”,合約就是合同,合同雙方可以約定一個事,當某個條件達到時,這個事就自動執行。比如你可以和航空公司約定,當某個航班延誤了,航空公司就賠償你1個ETH,那麼當這個航班真的延誤了,賠償就會自動執行;還比如你可以和任何人約定,雙方先各押1個ETH,如果明天下雨就你贏了,2個ETH都給你,否則你輸了,2個ETH就給對方。

2、合約是怎麼製作出來和被使用的?(DAPP)

合約本身是靜態的,只有外部一些條件滿足時才被觸發。所以合約本身就是一段程序,需要專業的開發人員先開發出來,以滿足不同的應用場景,比如前面說的航空延誤險的智能合約,這些合約最終展現出來就是一個個APP(區塊鏈世界叫DAPP,分佈式APP),就理解成手機裡面的APP一樣,這些APP就是普通用戶能接觸和使用的了。

3、怎麼讓有想法的人很簡單的做出DAPP呢?

首先以太坊提供一套理論上可以無所不能的編程語言(也叫圖靈完備腳本語言),開發者不需要了解以太坊底層是怎麼運轉的,只需要基於這套語言開發智能合約即可。但是這套語言還是很複雜,大部分人沒學過怎麼辦?以太坊還可以讓開發者用自己熟悉的編程語言,比如Java、C語言來開發,然後以太坊會通過EVM來翻譯成他自己的語言。這套他自己的語言就類似普通話,然後大家熟悉的編程語言就類似各地的方言,這個EVM就像是自動翻譯機。

然後以太坊採用模塊化的設計,就是把很多能力和工具打包成模塊封裝起來,一是大家可以直接使用,大家只需要關心模塊能幹什麼,不用關心怎麼幹的;二是在模塊內部做一些改動,不用影響底層系統。

還有以太坊提出不反對特定的不受歡迎的應用,只要你願意為其支付按步驟計算的交易費用(以太坊每一步計算都要支付交易費用,使用存儲資源也要支付費用)

4、怎麼提高做事的效率?

以太坊只能說在比特幣的基礎上效率高了一些,但其實也並不是很高,這也是現在被很多人詬病的問題之一,也有很多其他鏈希望來解決效率的問題,比如EOS,下一講我們再來專門扒EOS。

首先簡化交易模型。比特幣是沒有賬戶概念的,就是說沒有一個賬戶告訴你有多少比特幣餘額,比特幣只記錄別人轉給你和你轉給別人的交易記錄,你要轉幣給別人,只能用別人轉給你的幣。比如有ABCDE五個人分別轉了1個幣給你,你可以說把A和B轉給我的2個幣中的1.5個幣轉給F,那麼剩餘的0.5個又會作為零錢再轉回給你,那麼B收到你給他的幣以後,他也可以這樣再轉給別人,以此類推,所有交易實際上也形成了一條鏈。這個模型相對比較複雜,也不直觀,而且交易的確認效率也很低,在以太坊中引入了賬戶的概念,分為普通賬戶和合約賬戶,通過這種直觀的賬戶模型,提高交易效率和交易確認的效率。

然後縮短記賬的時間,比特幣記一頁帳需要10分鐘,以太坊將這個時間縮短到60秒。

還有以太坊不控制區塊的大小。在比特幣網絡中,一個區塊大小,也就是一頁賬紙的大小是1M,大概一個區塊能記錄3000多筆交易(因為一筆交易的大小和交易的複雜度有關係,這個只是大概的平均值),那麼如果一張紙上可以記錄多一點交易,是不是效率就提高了?以太坊採用了完全不同於比特幣的做法,使用gaslimit來限制,所以以太坊的區塊大小是不固定的。

5、怎麼解決不環保和被集中控制的問題?

在這個問題上,初期的以太坊並沒有太大的改進,還是延續了比特幣的工作量證明機制。不過引入了幽靈協議,由當前區塊和上一級區塊的兄弟區塊一起來證明工作量,此處省略100字。

6、以太坊數字貨幣(以太幣)是怎麼發行的?

7、以太坊的獎勵怎麼給?交易費用怎麼收?

三、以太坊可以做些什麼?

在以太坊白皮書中列舉了一些應用以太坊的例子,比如:

1、發行子貨幣

如果基於以太坊開發了智能合約和DAPP,有了自己的用戶群體,也想發行自己的數字貨幣怎麼辦?以太坊可以很簡單的實現,也就是說基於以太坊你可以很簡單的就發行自己的數字貨幣,這些子貨幣也可以用來代表其他數字資產,比如美元、黃金、股票,或者抵押物等等,從而實現在區塊鏈上進行這些資產的安全交易。

2、金融衍生品

比如可以開發對沖合約,大概的意思是,A 存進 4000 個以太幣來創建合約,任何人都可以接受這個合約,他只要往裡存進 1000個以太幣。假如合約創建時,1000 以太幣值 25 美元,如果 B 接受這個合約,那麼 30 天后,合約將發送價值25 美元的以太幣給 B,再把剩下的發給 A,任何人都可以通過發送一個交易給合約讓它執行。這樣 B 就免除了以太幣價格波動的風險,且不需依靠任何發行方。B 的唯一風險就只是剩下以太幣價格在 30 天內下跌 80%以上,但甚至連這個風險都是可以通過建立另一個對沖合約來規避,當然這需要 B 在線 。 而 A 拿到的好處是那隱含的 0.2%的合約費用,至於風險, A 可以通過另外持有等額的美元來對沖(或者 A 看好以太坊的未來,他想通過這個合約用 1.25 倍的槓桿看漲以太幣,如果是這樣的話,那 A 可能甚至願意支付合約費給 B )。

注意,任何形式的金融合約都需要全額擔保,因為以太坊網絡不控制任何國家機器,也不能幫忙追債。

3、身份和信譽體系

比如域名幣,域名幣最大的用途被認為可以用來做 DNS 系統,把諸如“bitcoin.org”的域名(在域名幣體系裡可能會是 bitcoin.bit)映射成 IP 地址。

4、去中心化自治組織和公司

指由一定數量股東組成的實體,這些投資者可以獲得分紅,這些股東共同決定該怎麼花公司的資金,是以懸賞的形式,還是工資的形式?甚至別的更新奇的方式,如用內部貨幣獎勵貢獻,這些資金還是自動分配的,等等。這是去中心化組織的公司模型,(去中心化自治組織的)另一種形式可被稱為“去中心化自治社區”,其成員將在決策時有相等的投票權,添加或者移出成員需要 67%的成員統一。一個成員的加入強制地需要群體共同決定。

5、儲蓄錢包

假設A希望保障他的資金安全,但是擔心自己會弄丟私鑰或私鑰被黑客盜走,那他可以把以太幣打進與B(是一家銀行)的合約裡,規定如下:A每天可以單獨取款最多 1%的資金,A 和 B 一起則可以取走全部,而 B 單獨最多隻能取0.05%。通常一天 1%對於 Alice 是足夠的,如果她想取更多可以找 B 幫忙;如果 A 的私鑰被盜了,她可以趕緊跑去找 B 一起把資金轉移到一個新的合約裡;如果她丟了私鑰,B 最終還是可以把資金(緩慢地)取出來的;如果最後發現 B 是惡人,那 A可以以 20 倍 B 的速度把錢轉走。

6、農作物保險

你可以很容易地建立金融衍生品合約,這裡用的是天氣的數據輸入,而不是價格指數。如果一個衍生品合約支付出來的金額與愛荷華州的降雨量負相關,那麼一個愛荷華州的農民如果買它,就可以在乾旱的時候收到補償;而當降雨充沛的時候,他會很開心因為他的農作物會長得很好。

7、點對點賭博

比如可以用來賭下一個區塊的哈稀值與猜測值之間的差額,可以通過給每一次賭博創建一個合約來實現,也可以通過半中心化的合約來實現。

以太坊還舉了其他的應用場景,這裡不一一列舉,有興趣的可以查閱以太坊白皮書。


分享到:


相關文章: