重塑金融體系,圖靈獎得主的區塊鏈平臺開放公測

這是多年不遇的良機

今天,重塑全球金融體系的機遇就擺在人們面前。

今天的數據網絡快如閃電:信息可以在幾分之一秒內傳遍全球,成本卻可忽略不計。

但金錢的流速卻要慢上許多。一筆簡單的金融交易可能需要數天才能結算完成。金融交易的成本也十分高昂:全球金融體系每年要在各項費用上浪費5萬億美元之多。此外,地球上有22億人完全無法獲得現代金融服務:僅僅他們的交易規模太小,無法爲銀行帶來利潤。

Algorand項目創始人、圖靈獎得主Silvio Micali 表示:“如果有合適的技術,我們就能改變這一切。”

項目背景

Algorand區塊鏈平臺已經在本月宣佈開放公測。該項目由麻省理工學院教授、圖靈獎得主Silvio Micali 在2017年領導開發,這是一個完全分散、安全且可擴展的區塊鏈,是一種分佈式金融產品和服務平臺,承諾其“永不分叉”。在2018年期間,該項目獲得了約6600萬美元的資金,包括400萬美元種子輪。

Silvio自1983年以來,一直任職於麻省理工學院電氣工程和計算機科學系,研究密碼學、零知識、僞隨機生成、安全協議和機制設計。因在現代密碼學和零知識證明方面的開創性貢獻,在2012年與Shafi Goldwasser一起贏得了圖靈獎。

據瞭解,Algorand發展爲開源協議,Micali團隊將放棄Algorand的patent,將Algorand打造爲開源社區項目,Algorand也強調了社區建設的重要性。在首次邀請了幾百用戶進行測試後,目前已經開放公測,希望以此吸引到更多用戶。

區塊鏈的承諾

最近幾年來,開發者和創新推動者已經預感到,區塊鏈就是我們需要的技術;區塊鏈是實現更高效、更具包容性的金融體系的關鍵基礎。

簡單來說,區塊鏈是一個公共分類賬。它是以區塊爲單位組織的一系列交易,確保了三大基本屬性:

  1. 所有人都可以讀取所有區塊,因此區塊成爲了公共知識。
  2. 所有人都可以在新產生的區塊中寫入交易。
  3. 沒有人可以改寫區塊中的交易或區塊的順序。

於是,區塊鏈不需要像銀行一樣在一箇中心機構中設立一個隱祕數據庫,不需要讓交易通過層層機密數據庫來結算,而是建立一份可供所有人閱讀的單一公共分類賬本,其中所有人都能添加賬目,但沒有人可以改寫其中的內容。

有了這些屬性,區塊鏈就有了無限的可能性。實際上,區塊鏈技術可以帶來更快、更廉價、更安全且無邊界的經濟體系

衆所周知的三難問題

但直到現在,區塊鏈的未來仍然基本停留在藍圖上。如果說區塊鏈還只是口頭上的巨人,最好的證據可能就是著名的區塊鏈三難問題了。迄今爲止超過2000個區塊鏈項目都在面臨這個問題的困擾:那就是現有的區塊鏈設計只能實現以下三個屬性中的最多兩個:

  • 安全

  • 可擴展性

  • 去中心化

實際上,三難困境沒有最優選擇。沒有去中心化,區塊鏈就和現有的金融體系別無二致:依舊要由中心機構壟斷,交易也都要保密。沒有安全保障,記錄交易的區塊就可能消失:人們在交付貨物或服務後可能會面臨對方的付款煙消雲散的災難;債務記錄可能會被刪除;並且公共分類賬本可能會被對手篡改以牟利。沒有可擴展性,人們將只能在小型網絡中交易;用戶無法融入全球金融體系。正因如此,這幾大基本屬性哪一條都不能少,少了誰都是人們無法忍受的。

成本、速度和安全性

可以肯定的是,安全性、可擴展性和去中心化不是各自獨立的變量,而是相互關聯的。它們共同影響速度、安全性和成本這三個指標,而它們對個人和機構用戶都很重要。

速度太慢的區塊鏈難以擴展。但是通過增加成本來提升速度不是辦法:交易成本太高的區塊鏈也難以擴展。實際上,如果需要所有人來承擔高額成本,那麼很少會有人加入這個區塊鏈。如果只由少數幾個實體負擔成本,那麼系統將中心化。任何中心化系統本質上都是不安全的,因爲少量幾個目標比成百上千萬的目標更容易攻擊。

Silvio表示:“這個三難問題只是歷史遺留下來的產物,或者說它只是指出了要同時實現三大屬性有多困難。今天,Algorand激動地宣佈,自己已經能夠建立一個足以提供所有三種屬性的區塊鏈了。”同時,他發表了一篇博客,講述了Algorand的核心技術,InfoQ翻譯了這些內容。

Algorand的核心技術

區塊鏈有兩種不同的需求。首先是使區塊鏈防篡改。這種需求已通過密碼學中最簡單和最古老的原語之一解決了:亦即單向散列函數。本質上,新生成區塊的散列包含在下一個塊中。所有區塊鏈都使用這種方法,所以在這方面它們都是平等的。

第二個需求是生成新的區塊:如何選擇要附加到鏈上的新塊。這纔是真正的挑戰,而不同的區塊鏈有不同的手段。

新塊應包含一組未出現在之前區塊鏈中的有效交易。問題在於在任何時間點上,兩個用戶可能已經看到了相同的區塊序列,但可能看到的新交易卻是不一樣的。情況就是如此,因爲在分佈式分類帳中,每筆交易都不會通過網絡瞬間傳播完畢。通常,它會從一位用戶那裏傳輸到少數其他用戶,以此類推,直到該交易傳遍整個網絡。因此在每個時間點,由不同用戶看到的新有效交易的集合就算是基本一致,也可能有微小的不同。

總之,用戶U可能認爲新區塊應該是BlockU,可用戶V認爲它應該是BlockV。那麼:誰眼中的那個新塊應該附加到鏈上?

之前流行的方法及其致命缺陷

爲了解決選擇下一個區塊的問題,已經涌現了大量方法:具體來說,它們包括工作量證明(POW)、委託權益證明(DPOS)以及保證金權益證明(BPOS)等。但所有這些方法都存在以下致命缺陷:

整個經濟體系都要受體系中的一小部分成員擺佈

這個缺陷是致命的,因爲它影響到了安全性和去中心化屬性。

讓整個經濟體系的命運受到一小部分成員的支配,這種做法就是一個定時炸彈。可以肯定的是,如果這些成員行爲不端,他們會貶低體系中的所有資產,也包括他們自己的資產。但是,如果他們自己的資產只佔整個經濟體的一小部分,那麼就可能很容易彌補他們的損失,通過一些手段獲得不菲的利潤,並對其他所有人造成巨大的損失。不應該讓經濟體中的一小部分成員控制整個經濟體系。

讓我解釋一下之前的機制爲什麼會產生這種缺陷。

工作量證明(Proof-of-Work,POW)

第一種方法是工作量證明,最早由中本聰用在比特幣上,並由其它許多區塊鏈沿襲下來而聞名於世。在這種方法中,用戶在很高的層級上競相解決一個非常複雜的加密難題。第一個解決這個難題的用戶有權將下一個區塊附加到鏈上。工作量證明存在幾個缺陷。

第一個缺陷:工作量證明不能擴展。工作量證明的速度非常緩慢。比特幣的加密難題太難解決了,無論有多少礦工參與計算,也連10分鐘算出一個結果都難以保證。速度快但成本高昂可以理解,速度緩慢還成本高昂就很難接受了。世界這麼大,每10分鐘纔有一區塊的交易是遠遠不夠的。

第二個缺陷:工作量證明最終催生了事實上的中心化體系。工作量證明導致了嚴重的權力集中現象。這種中心化的狀況是工作量證明既昂貴又浪費資源的後果。礦工投入的計算量——也就是即用戶解決加密難題的開銷——龐大得令人震驚。今天的挖礦工作使用整機櫃的專用硬件,並消耗大量的電力。每次只有一名礦工贏得比賽併產生新的區塊,其他人的努力全都白白浪費掉了。如果不算挖出來的比特幣的價值補貼,在比特幣區塊鏈上完成單筆交易的成本高達20美元左右。如果你想使用區塊鏈進行日常交易,比如購買一塊披薩,或者如果你想爭取22億缺少金融服務的潛在用戶的話,顯然用比特幣是不行的。

如果一位普通用戶試圖用她的筆記本電腦解決加密問題,她註定會賠錢。無論輸贏,她都必須支付爲筆記本電腦計算所需的電力費用。這部分能耗可能不會很多,但她獲勝的可能性非常小,所以她肯定要賠錢。

只有專業礦工才能獲得微薄的利潤,他們已經花費了大筆資本支出來購買機櫃和高度專業的挖礦設備。因此只有他們會參與生成區塊的競爭。此外,礦工還會與礦池合作。

如今,比特幣區塊鏈僅由三個礦池控制,以太坊的控制者只有兩個礦池。如果他們願意,或者他們被賄賂,這些礦池可以重寫數據庫:他們可以擦除區塊或更改區塊的順序。工作量證明已經將人們所期望的去中心化體系轉變成了高度中心化的系統。

第三個缺陷:工作量證明不安全。如前所述,任何中心化區塊鏈,無論這種中心化是設計層面還是事實層面上的,它們都不安全。而且工作量證明還有其它漏洞,並且特別容易受到網絡攻擊。區塊鏈本質上是通信協議,並且這些協議會在底層通信網絡上運行。因此攻擊者可以攻擊協議——例如發送與預定消息不同的信息——或攻擊通信網絡本身——例如干擾路由器、電纜等。

工作量證明的脆弱性可能還被低估了,因爲目前分析區塊鏈安全性的方法存在缺陷。這類分析通常僅關注協議攻擊,卻忽略了網絡攻擊,尤其是在工作量證明的情況下後者可能是致命的。例如,在工作量證明區塊鏈中,只要能將通信網絡拆分一兩個小時,攻擊者就可以雙重下單而不受懲罰。分區攻擊若能成功,攻擊者就會阻止屬於A組的用戶發送的消息到達B組的用戶,反之亦然。網絡分區攻擊並沒有引起太多關注,因爲人們認爲它太昂貴所以不實用。但是一旦收益足夠高,發起這種網絡攻擊的成本也就能承受了。一個真正無國界的經濟體系可能會價值數萬億美元。如果一位攻擊者能夠從攻擊中非法獲益數十億美元,那麼他可能很願意“投資”數百萬美元來做這筆勾當。

第四個缺陷:分叉。工作量證明的另一個缺點是它不可避免地存在分叉。每當兩個或更多用戶在幾秒的時間差內解決各自的加密謎題時,區塊鏈就會分叉,因爲用戶現在可能會看到下一個區塊出現了多名候選者。一個分叉可能會存在一段時間,且其分支甚至可以通過添加新的區塊來延長下去。但最終只有一個分支能存活下來,死亡分支中的所有區塊都將消失。

分叉是不確定性和延遲的一個令人厭惡的源頭。就算向你支付的款項出現在區塊鏈的最新區塊中,你也不能確認自己已經收到了款項,然後放心地交付商品了。這是因爲某些分支可能會覆蓋當前的鏈條,你的區塊最後可能會進入死分支並消失掉。要確認自己收到付款,你需要等待一系列的區塊都加上你的付款信息,以便最大程度降低軟分叉出現的可能性,防止包含你收款信息的區塊落到死分支上。

你得等多久? 有些人建議多等六個區塊以確保你的交易數據保留在區塊鏈上。如果你收到的款項數額巨大的話,還有人建議等待更長時間。因此爲了對交易結果積累足夠的信心,你要等待的時間不是十分鐘,實際上需要等待數小時之久。

有些人建議把加密難題做得簡單一些以加快交易速度,例如簡化到可以每分鐘而不是每10分鐘找到一個解決方案。但這樣做的話,礦工幾乎同時算出各自答案的概率就會顯著增加。這種體系可以應對偶爾的軟分叉,但分叉太密集就不行了。

高昂的成本、速度緩慢和不確定性都是工作量證明方法的主要缺陷,但與其致命缺陷相比,這幾條都是小問題了。

工作量證明的致命缺陷。回想一下前文討論過的致命缺陷:整個經濟體系受到一小部分用戶的支配。

在工作量證明中,經濟體系的這一小部分是礦工。由於礦工只擁有工作量證明區塊鏈中的一小部分資金,因此這種區塊鏈並不安全。

委託權益證明(Delegated Proof-of-Stake,DPoS)

另一種方法是委託權益證明(PoS),原理非常簡單。區塊鏈社區授權一些特殊用戶,也就是代表,讓他們至少在一段時間內選舉新的區塊。(例如在EOS中,代表人數爲21.)

因此,DPoS從一開始就是中心化的。可以想象一開始代表們都是誠實的。但是想指望代表長期保持誠實很難,從而產生了風險。

這次的情況又是那樣,整個經濟體都受到一小部分成員的支配。實際上,在DPoS區塊鏈中代表們可能只擁有系統中總資金的一小部分,但是當且僅當大多數代表都保持誠實時整個區塊鏈纔是安全的。

其它安全問題。就算強行假設所有代表都將永遠保持誠實,他們也會很容易受到攻擊。具體來說,它們可能會被拒絕服務(DoS)攻擊擊垮。在這類攻擊中,攻擊者用數以萬計的垃圾郵件轟炸他的目標,導致該不幸用戶的緩衝區溢出。如果代表受到這種轟炸,他將無法履行其職責,無法將新的有效交易整理到下一個區塊。於是區塊鏈將陷入停頓。

DoS攻擊非常便宜,可以快速對多達上千人發起打擊。由於代表資格是公開的,就算他們的資格只持續一天或一小時或一分鐘,一位有決心的攻擊者也可能通過快速的DoS攻擊擊倒所有代表。

保證金權益證明(Bonded Proof-of-Stake,BPoS)

Bonded PoS允許20個用戶、200個用戶,乃至儘可能多的人拿出一些錢來放到桌上——之後他們就不能再動這筆錢了,這一桌子錢就成了一種保證金。隨後這些人代表所有人選擇下一個區塊。如果他們行爲不端,他們的錢就會被沒收。

這種方法有效嗎?

我問一個更簡單的問題:你能拿出多少可支配收入放到保證金裏? 答案是很少。因此BPoS機制下,擁有雄厚資產的大盜賊實際上可以輕鬆地掏出大筆金額放在桌面上,就是爲了控制區塊鏈。

然後呢?如果他們行爲不端就會損失保證金。但是真正去中心化、可擴展且安全的區塊鏈應能保護數以萬億美元計的資產。當惡意用戶可以通過行爲不端賺取數十億美元時,你認爲他可能會在乎那幾百萬美元嗎? 這只是做生意的代價,一個很小的代價而已。

於是在BPoS中,我們也面臨同樣的致命缺陷:整個經濟體受到一小部分成員的支配。在BPoS中這一小部分成員就是掏出保證金的那些代表。

總之,現有的方法存在很多缺點。我們需要更好的設計。

Algorand的邏輯和純粹的權益證明

Algorand的邏輯很簡單:它將整個經濟體的安全性與大多數成員的誠實度關聯起來,使少數成員無法控制整個經濟體的命運。

Algorand基於新的權益證明:純粹權益證明(Pure PoS)。本質上講,Pure PoS不是通過罰款的威懾來保持用戶誠實的。相比之下,它的設計是讓擁有少量資金的成員無法作弊,而擁有大部分資金的成員要作弊毫無意義。

在Algorand中沒有保證金。所有的資金都在它們應該所處的位置:也就是在你的錢包裏、在你的手頭準備花出去,或者在Algorand區塊鏈爲你提供的各種金融工具中。當你考慮系統中的所有資金時,不管它們位於何處,只要大部分資金都在誠實的用戶手中,整個系統就是安全的。

正如我們所說,手持一小部分資金的成員不可能損害整個系統,而持有大多數資金的用戶要行爲不端就會讓自己的資產貶值,顯然是不可理喻的。

例如,在PoW或BPoS中,少數用戶可以阻止其他用戶交易。而在Algorand中,只有大部分資金的所有者才能阻止其他用戶交易。但如果他們這樣做,區塊鏈貨幣的聲譽將受到極大的損害,貨幣將不再被普遍接受,其購買力將大大降低。對於大戶來說這不是什麼好結果。

實現純粹的PoS

接下來看看Algorand如何使用PPoS機制來選擇下一個區塊。還記得三難問題嗎? 我們希望區塊生成機制同時具有可擴展性、安全性和去中心化屬性。

在Algorand中,新的區塊在一個非常高的層次上分兩步生成。

  • 第一階段,系統隨機選擇單個代幣(token),其所有者是提出下一個區塊申請的用戶。

  • 第二階段,在當前系統中的所有代幣中選出1000個。這1000個代幣的所有者被選爲第2階段“委員會”的成員,該委員會負責批准第一階段那位用戶提出的區塊生成申請。

因此,委員會的一些成員可以被選舉兩次或更多次,設爲k次;在這種情況下,該成員將在委員會中擁有k票以批准下一個區塊。

爲什麼需要第二個階段?

在任何社會中(區塊鏈也不例外)總有一小部分壞人,假設比例是1%,也許2%。如果一個人不幸生活在一個非常危險的社會中,那麼其中可能有10%的壞人,也許甚至是20%! 但在任何社會中壞人都不會佔多數,否則就無法維持社會體系了。只要大多數成員遵守既定的規則,就會存在一個社會。

假設Algorand中10%的代幣屬於不誠實的人。然後在第一階段中申請生成區塊的用戶有十分之一的可能是壞人。作爲壞人,他可以告訴一些用戶該塊是X而對其他用戶說該塊是Y等等,從而產生關於區塊鏈內容的不同意見。

第二階段就解決了這個問題。實際上如果你選擇隨機的1000個代幣,當最多10%的代幣是不誠實的用戶所有時,那麼選出來的這些用戶大都是壞人,委員會被壞人控制去投票的概率就會非常之低,以至於可以忽略不計了。

假設這一次,你的區塊生成申請沒有被系統選中,你也沒有被委員會選中。但是你看到了B區塊已經獲得委員會700票的批准。這樣你就知道B肯定是下一個塊了。

一個關鍵問題

在這種高層級的分析中自然產生了幾個問題。讓我們從最明顯的一個問題開始探討:首先是誰來隨機選擇委員會成員?

假設我告訴你是我來選擇,那麼你可能會說“這是有史以來最中心化的系統,而你就是它的中心!”假設我告訴你所有用戶都參與討論,直到他們就成千上萬的委員會成員達成一致意見,然後選出來的委員會纔開始工作,那麼你可能會告訴我,人性就是這樣,這種機制下一輩子都選不出我們需要的一千名委員會成員。

而Algorand採取了非正統的方式:委員會成員自己選擇自己。你可能會想“什麼? 這是一個糟糕的主意! 因爲如果我是一個壞人,我會選擇自己成爲這個委員會的成員,接下來…“但不是那麼簡單的。

想要成爲委員會成員,你需要花一枚硬幣贏得一張個人生成的、加密且公平的彩票,你可以在你自己的私人計算機中獨立運行猜謎過程——也就是說不和別人聯網計算。而且由於彩票是加密且公平的,你不能改變自己被選中的機會。(即使是擁有龐大計算資源的國家機器也無法增加被選中的概率。)

爲了在比如說10,000,000,000個代幣中選擇1,000個隨機代幣,每個代幣被選中的概率就是1,000/10,000,000,000,也就是千萬分之一。

所以一旦用戶看到了新的區塊申請,她就會問自己:我可以成爲委員會的成員嗎? 我將獲得多少票?

爲了回答這些問題,她在自己的筆記本電腦上爲她擁有的每一個代幣運行加密抽獎。(如果用戶有n個代幣,還會有額外的技術確保她只能一次抽一張彩票而不是同時抽n張票!)

一旦用戶開始抽獎,就會出現兩種情況。要麼她的所有代幣都沒有贏得彩票,這種情況下無論她對該區塊表達何種意見都將被忽略。或者其中一些k> 1的代幣贏得了彩票,這種情況下她獲得了一張獎票,即一個簡短的證明,其中所有人都可以很容易地證明她在委員會中有k票。在後一種情況下,她通過網絡宣傳(i)證明她有k票,並(ii)表達她對該區塊的意見。

解決三難問題

我要說的是,這套機制終於解決了三難問題!——同時兼顧可擴展性、安全性和去中心化屬性。

可擴展性

用戶每次抽獎需要多久? 無論她有多少代幣,答案都是大約一微秒,這是極快的速度。(此外所有抽獎都是相互獨立運行的,因此用戶不必等待其他用戶完成抽獎。)

一旦被選中成爲委員會成員,每位成員就向網絡傳播單條內容簡短、瞬時解碼的消息。因此,無論系統中有多少用戶,需要傳播的最大消息數爲1000條短消息。這種機制可擴展嗎?當然!

安全性

現在講安全性。假設我是一個非常強大的攻擊者,能夠隨時隨地賄賂用戶。顯然,我會想要賄賂委員會的成員,但我有一個問題:我不知道他們是誰。

之所以如此,是因爲委員會成員是通過私密運行,加密且公平的個人抽獎來選出的。因此只有他們知道自己是誰,直到他們通過網絡傳播他們的獲獎門票和他們對該區塊的意見的那一刻,我才能瞭解委員會成員都是誰;因爲我有超能力,我可以立即賄賂整個委員會——但那又如何? 在這個時候賄賂他們爲時已晚。無論委員會成員是什麼態度,他們已經發表過意見了,他們的獲獎票和關於該區塊的意見已經在整個網絡中傳播開來。我沒有權力將他們的信息放回瓶中,就像政府無權將維基解密病毒傳播的信息放回瓶中一樣。

換句話說,Algorand的機制是安全的,因爲攻擊者事先不知道賄賂誰,而當他能夠開始賄賂的時候爲時已晚。

相反,如果體系中有一個成員固定的1000人委員會。如前所述,即使委員會只執政一分鐘,它也很容易受到DoS攻擊。如果委員會執政的時間更長,比如一週,那麼成員甚至可能通過賄賂等傳統方式在現實世界中被收買。然而在Algorand的情況下,人們不會知道該對誰進行DoS攻擊,一旦委員會發言後,DoS攻擊就沒用了。

去中心化

最後是去中心化。是否有少數用戶負責選擇下一個區塊? 不,沒有,也沒有一個固定的1000人委員會負責批准申請。這一次,委員會被隨機(並祕密)選中;下一次,將隨機(和祕密)選出另一個委員會。每個人都有機會參與新區塊的生成。

Algorand的非分叉鏈

Algorand技術的另一個優勢是其鏈條永遠不會分叉。這是因爲只有一個區塊可以具備所需的委員會投票門檻。因此在Algorand中所有的交易都是最終結果。一旦出現了一個新塊,你就可以確保它永遠是鏈條的一部分。如果新區塊包含向你支付的款項信息,你就可以放心斷定自己已經收到付款並立即發送貨物。

金融世界已經有很多風險了,沒必要再加上一條“區塊消失”的額外不確定性。順便說一下,當我說Algorand的鏈條絕不會分叉的時候有點撒謊了。實際上Algorand也可能分叉,但它們非常罕見。在Algorand中分叉的概率理論上是10^-18。這個數字好像挺奇怪,但它實際上有一個自然的解釋。物理學家告訴我們,10^18恰好是從宇宙大爆炸到現在的秒數。換句話說,如果你每秒產生一個新塊,這個速度挺快了,你也可能會見到軟分叉,但你大概需要等到宇宙毀滅才能看到這個分叉了。

作者介紹

Silvio Micali是Algorand的創始人,也是零知識證明的發明者之一。他是麻省理工學院的教授,曾贏得圖靈獎。

這是一個可擴展、安全並真正去中心化的數字貨幣及交易平臺。

查看英文原文:https://medium.com/algorand/algorands-core-technology-in-a-nutshell-e2b824e03c77

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章