編者按:本文來自:中國計算機學會,作者:王嘉平,Odaily星球日報經授權轉載,如需轉載請聯系版權方CCF。
2009年1月3日,比特幣網絡開始啟動,第一個區塊攜帶50個比特幣的挖礦激勵被發出,繼而全網同步。這是一個會被鐫刻在人類科技發展史上的重要日子,就好像馮·諾伊曼架構第一次從內存中拾取指令,并執行它;也好像互聯網的第一個IP報文被發出,然后被路由轉發,到達目標主機。比特幣支付網絡是一個具體的應用,而其核心底層是區塊鏈技術。但是我們早就有了高效便捷的在線支付系統,也有銀聯這樣的清結算網絡,為什么還需要基于區塊鏈技術呢,會不會僅僅是一個新的“輪子”?本文將從技術角度厘清區塊鏈到底有什么了不起的地方,剖析區塊鏈的技術本質。在區塊鏈技術出現以前,大部分計算機技術都專注于如何完成計算任務,如何提高效率、降低成本、擴大規模。如果堅持從這個角度去看區塊鏈技術,你會發現區塊鏈效率低下,成本高昂,似乎找不到什么亮點。還有一部分計算機技術專注于計算任務的數據安全性和訪問控制。但是如果我們從安全角度去看區塊鏈技術,你會發現區塊鏈技術本身也只是利用了非對稱加密體系實現訪問控制。除此之外,區塊鏈技術并沒有發明什么獨特的密碼學技術。更有甚者,有人把區塊鏈技術看成是另一種特殊的數據庫,數據不可篡改。這些看法都是正確的,然而僅從這些角度我們是無法洞悉區塊鏈技術的核心價值的。監管和治理的技術化
區塊鏈技術核心關注的是一個計算系統的自動化監管和治理。這個關注點并不是計算機系統一開始就有的。單機軟件時代,整個計算系統都在用戶掌控之中,此關注點則毫無意義。在互聯網初期的通訊和內容分發時代,雖然計算過程已經有一部分交給了他人掌管的服務器,但是我們對計算結果和行為有確信的判斷能力,或者計算結果即使背離了我們的預期,通常也無關痛癢,所以這個關注點在當時也不是什么大事。而我們現在處于社交、搜索和推薦服務時代,計算系統深刻影響著我們對世界的認知、行為的決策,甚至生存的保障。此時,這個關注點意義重大。當下兩大局面決定了對一個大規模面向公眾服務的計算系統的監管和治理是一個關乎國計民生的大事。1.用戶對計算服務系統給出的結果無法有效判斷其正確性和合理性,無力甄別獲取到的信息是否經過了別有用心的篩選和排序。2.計算服務系統可以直接觸及和覆蓋比例很高的社會人群,并且承載了人們的社交關系、經濟資產、物理身份、信譽征信等關鍵社會性元素。下面我們用一個小案例來看看區塊鏈技術實現了怎樣的前所未有的能力。以太坊是另一個全球性的公開區塊鏈網絡,并支持智能合約使其在區塊鏈網絡中執行邏輯可編程,部署各種第三方應用。2018年7月,以太坊網絡上出現了一個游戲應用——Fomo3D,玩家眾多,一時間嚴重阻塞了以太坊網絡。這是一個典型的獎池游戲,玩家陸續以遞增的價格向主辦方買鑰匙,所有購買資金計入一個公共的獎金池。如果一段時間內始終無人買鑰匙,則游戲停止,最后一個鑰匙買家贏得沉淀資金的一半,另一半資金則向之前的玩家均價回購所有的鑰匙。首輪結束時,游戲玩家瓜分了價值180萬美元的以太幣。最有意思的不是這個游戲本身,而是游戲執行的方式。游戲主辦方完全匿名,沒有任何背景可查。游戲是在一個完全沒有信任背書和監管的情況下開始并執行的。一切都如期發生,之前約定的規則都被嚴格執行了。且不論游戲本身是否合法合規,這樣的活動要公正地開展通常需要嚴格的監管和治理才能保證。獎池資金需要被托管,主辦方需要被監管。以現今的互聯網云計算架構來實施這個項目,如果沒有監管措施,最后的結果要么是游戲停止,主辦方把服務器一關,卷款跑路;要么是暗中篡改上述規則,中飽私囊。現在這種以服務器/客戶端為基礎的互聯網服務的黑箱計算模式,是阻礙互聯網服務可信公正的根本癥結。現在初級階段的區塊鏈技術已經在特定場景中實現監管和治理的技術化,使大家公認的規則能夠可信地執行,沒有人可以篡改,甚至最初制定規則、實際運營業務的人也無法在大家不認同的情況下篡改規則。前提是這些規則及其涉及到的狀態,能夠精準完備地被形式化、數字化,能夠完全落實到計算機中的數據結構和程序代碼。這是計算機技術的核心突破,而其中涉及的非對稱加密技術、安全哈希、P2P網絡通訊等都是實現區塊鏈系統的技術手段,而非其技術本質。科技進步,本質上是要提升生產力,提高效率,降低成本。而區塊鏈技術的出現也一樣,只不過效率提升的并不是計算本身,而是關乎計算背后映射的實際意義。區塊鏈技術使得我們可以以更高的效率、更低的成本對大規模計算服務系統進行全自動的監管和治理,從而保障其背后映射的實際意義和價值不被惡意操縱和利用,同時也使制度化的監管和治理實施得更廣,穿透得更深,定位得更精準。開放的分布式馮·諾伊曼架構
Cardano鏈上流動性解決方案OccamRazer宣布M?bius Finance達成合作:Cardano 鏈上首個發行平臺與流動性解決方案 OccamRazer 宣布 M?bius Finance 成為 OccamRazer 平臺的合作伙伴。M?bius Finance 是 Polygon 和 Cardano 上的第一個合成平臺,旨在為用戶提供創建和交易合成資產的服務。[2021/6/29 0:13:38]
馮·諾伊曼架構是現代通用計算機的基礎架構,根據可編程的邏輯處理輸入,產生輸出。在現代面向服務的計算機系統中,這個架構中最具實際意義的是執行邏輯和存儲中的狀態。如果我們用計算機體系結構的視角去看區塊鏈,可以看到非常類似的結構。在區塊鏈中,“輸入”是未定序、未確認的交易,“輸出”是有序的經過確認的交易,“內存”是賬簿的狀態,中央處理器執行的是硬編碼(hardcoded)在區塊鏈節點軟件中的交易邏輯,或者是第三方部署的智能合約。與馮·諾伊曼架構相比,區塊鏈邏輯架構除了更換了實體的名稱之外,似乎并無特別之處。
兩者的核心區別在于,馮·諾伊曼架構假設的是一臺單機,而區塊鏈架構刻畫的是一個由成百上千臺計算機所構成的開放網絡。馮·諾伊曼架構最初是在一個完全中心化的設定下給出的,現在的計算機單機、大型機,乃至集群和云服務,本質上都是這樣的模型。它們關心的是高效地完成計算,正確地更新狀態。整個系統的輸入、執行邏輯和初始狀態都被單一方控制。所以這個單一方可以任意操控系統中的執行邏輯,甚至可以在外界不知情的情況下肆意修改。這使得任何需要公信力的服務系統,我們都需要在其上施加各種額外的監管措施。計算過程的隨機接力
一個開放的分布式計算系統如何被有效地監管和治理,并且自證清白,正是區塊鏈技術所攻克的難題。區塊鏈的核心是將計算執行過程同特定的物理計算設備分離,從根本上避免了計算過程被單一的控制方掌控,讓所有人或者一定范圍的人都可以監管此計算系統。在區塊鏈系統中,所有節點全量同步所有的輸入數據,全量同步歷史上已經完成的計算步驟,從而使得每個節點都能得到最新的計算上下文,然后其中一個隨機的節點執行下一步計算,出一個塊,將整個網絡的計算過程推進一步,繼而開始下一步計算。值得注意的是,每次出塊的節點大都是不同的節點給出的,并且不可預測,從而實現了計算過程在各個節點中的接力。
美OCC代理署長:銀行系統等應為DeFi做好準備:金色財經報道,美國貨幣監理署(OCC)代理署長Brian Brooks今日發推文稱:“去中心化金融(或DeFi)即將到來。銀行系統和我們其他人需要做好準備。”[2021/1/13 16:01:11]
無論是工作量證明(Proof-of-Work,PoW),還是拜占庭容錯(ByzantineFaultTolerance,BFT)等共識機制,上述計算過程的實際步驟都是在全球不同的物理基礎上完成。而不同共識算法的本質就是給出一個依次選擇這些物理節點的不同方案,使得這個計算系統能夠在大家的監督下可信地完成計算過程。其執行的邏輯不可篡改,才是區塊鏈系統的本質,可不篡改數據庫只是其上的一種應用而已。保障一致性的共識機制
為了確保接力計算過程可以有效地分散到各個不同的節點,區塊鏈系統采用了非常重要的技術——共識機制(consensus),其中包含兩個內涵:1.沖突消解當不同的控制方出現分歧的時候,如何收斂到一個大家公認的結果?具體在區塊鏈系統中,就是當不同的節點可能在同一個高度產生不一樣的區塊時,我們如何使得全網可以自動仲裁這個分歧,一致地認定其中一個塊,而拋棄另一個?2.權重定義如何定義控制方,保證分散的程度?全網的自動仲裁本質上是少數控制方服從多數控制方的過程。但是我們根據什么來定義這個少數和多數?不同的共識算法給出了不同的答案,但是大家都試圖趨同一個標準,盡量將此權重錨定在某種稀缺的不易集中的資源上,并且此資源在網絡遠端是能夠被觀察和測量的。沖突消解拜占庭共識類算法是沖突消解的一類算法。它們基于拜占庭容錯算法進行逐輪投票,每輪投票會產生一個全網一致的區塊,也就是說在前一個區塊的沖突沒有消解之前不允許產生下一個區塊。當一個區塊被全網確認之后,再也不可能被取消。BFT算法最初源于分布式系統中處理失效節點的問題。最早在1978年被提出,1982年由萊斯利·蘭伯特(LeslieLamport)等人完成了嚴格的理論解。而在1999年就有了高效的實用拜占庭容錯算法(PracticalByzantineFaultTolerance,PBFT),使得處理數百個節點的失效容錯成為可能。但有意思的是,誕生于2008年的第一個區塊鏈系統卻沒有采用拜占庭共識類的算法,而是采用了完全不同的設計。在BFT中,少數服從多數,需要依賴共識的參與者總體的先驗知識。參與者的集合必須是預先設定好的,并且是大家預先知道的,或者大家至少需要知道一個總數。這意味著誰是參與者,需要有個預先協商和設定的過程,這在區塊鏈系統中,被稱為聯盟鏈或者許可鏈(PermissioningBlockchain)。但在比特幣網絡這樣一個純粹開放的網絡中,誰來批準你成為一個“拜占庭將軍”呢?這是比特幣系統不采用此類共識算法的根本原因。在比特幣網絡中,沖突消解以一種不同的方式實現。當網絡中同一個高度出現不同的區塊時,比特幣網絡并不急于消解,而是允許這種不一致暫時存在,并允許產生后續的區塊。這樣區塊鏈系統就會出現分叉(fork),區塊鏈此時不再是一個鏈,而是一棵樹。系統允許不同的控制方沿著不同的分叉產生區塊。最終不同的分叉會出現長度差異,這時比特幣共識協議約定,所有節點都應該認可最長的那條分叉,即最長鏈原則,從而最終實現沖突的消解,達成全網狀態的一致,這個做法被稱為最終一致性。在完全開放的區塊鏈網絡中實現共識,比拜占庭將軍問題更有挑戰。兩者的核心區別在于,前者的參與方的集合是未知的,甚至連參與方的總數都不知道。這種情況下,類似BFT的投票機制無法工作。而最終一致性共識算法本質上是讓沖突雙方在全網可觀測的評判標準下進行對抗,勝出者獲得最終認可,達成一致。權重定義
動態 | 火幣全球站開放WICC新幣充提業務:據火幣公告,火幣全球站現已完成WICC的主網切換,并將于新加坡時間11月29日16:00開放WICC新幣充幣和提幣業務。[2018/12/3]
無論是即時一致性算法的投票,還是最終一致性算法的對抗,都是在比較沖突雙方哪個比較強大,哪個是大多數。這個數具體用什么來定義,決定了這個網絡的共識安全依賴于什么資源來保障。權重的定義通常需要權衡以下幾個方面:1.任何一個節點都能夠高效地觀測到出塊者的權重,并且各個節點能得到一致的結果;2.權重在全網的總量,最好比較穩定,不會在短時間內有巨大的變化;3.出塊者為了給出權重的證明,盡可能涉及比較少的帶寬、存儲、計算等資源。在一個網絡系統中可以直接想到的是節點個數,或者將獨立IP地址個數作為權重,但由于IP資源的控制方比較集中,單一控制方也很可能可以控制大量的IP地址。所以,至今沒有任何區塊鏈系統采用獨立IP數量作為權重。在比特幣系統中,采用算力作為權重,即將控制者擁有的計算能力——每秒計算SHA256函數的次數作為權重。但事實上,算力是無法直接向遠端證明的,比特幣系統很巧妙地用工作量證明來間接證明控制方擁有的算力。工作量證明要求出塊者找到一個段數據,使其哈希值具備某種規律。由于哈希函數的不可逆,窮舉刺探是唯一的解法,從而使得掌握的算力越多,每秒可以完成窮舉刺探的次數越多,就能更快地找到解,從而在同樣的時間里,產出更多的新的區塊。與之對應的,比特幣系統采用最長鏈規則來消解沖突,本質上就是在比拼哪條分叉的子鏈需要更多的算力來構造。工作量證明具有一個非常大的優勢:無論網絡中的共識參與者有多少個,驗證工作量證明僅需要固定的計算復雜度和通訊復雜度,不到100個字節。這使其具備非常好的可伸縮性,可以承載大規模的共識參與者。在授權受控的聯盟鏈系統中,權重通常被定義為簽名個數,一簽一票來完成投票過程。原理很簡單,各個節點自己數收到多少個來自不同控制方的簽名,并逐個驗證。每個節點至少需要承載的計算復雜度和通訊復雜度是O(n),使共識機制的可伸縮性受限。當然在聯盟鏈的業務場景中,共識的參與方也不多。資產證明(Proof-of-Stake,PoS)是另一種定義權重的方案,利用資產的數量定義少數服從多數的數量,先行定義BFT共識算法中所需要的預設的參與者集合。這樣,也可以實現無許可鏈。值得一提的是,大家曾對工作量證明有些誤解。工作量證明帶來算力競爭,即所謂的挖礦,確實消耗了大量能源。不過這也為工作量證明系統發行的每一個數字貨幣奠定了基礎成本,使之價值有底線。但是工作量證明的算力與其區塊鏈系統的交易處理的計算性能沒有任何聯系,任何加速挖礦算法的軟件或者硬件都不會提高區塊鏈系統單位時間的吞吐量(TransactionPer-Second,TPS)。這就是為什么比特幣全網哈希算力提高了萬億倍,但是其吞吐量一直是7TPS左右。另外,任何宣稱節省挖礦能源的公開技術,都不可能在實際中減少能源消耗。因為投入挖礦的能源總量在礦場建立的時候已經確定,當有更高能效的挖礦技術或者設備出現時,算力競爭將導致所有礦工都應用新的技術,最終只是哄抬了全網的挖礦難度而已。實際的總能源消耗的量由礦工們能燒得起多少錢決定,在宏觀上和幣價、電價以及投資信心相關,和挖礦算法的效率無關。來自分布式系統的挑戰
動態 | DACC為USDC提供托管服務:據bitcoinexchangeguide報道,數字資產托管公司( DACC)宣布為 Circle發行的美元穩定幣 USDC提供服務。[2018/10/11]
區塊鏈技術要實現更大規模的實際應用,在技術層面最大的挑戰是性能和規模的提升。區塊鏈系統本身是分布式系統的一種,和其他分布式系統一樣,性能提升最大的障礙來自“分布式”這三個字。網絡傳輸所帶來的延遲和帶寬限制是提升性能的第一絆腳石。為了脫離特定的物理計算設備,區塊鏈在性能上付出了更多額外的代價。在不同的節點上間歇完成計算步驟,需要每個節點都準備好計算所需要的上下文和輸入數據。在一個計算步驟完成之后,需要每一個節點都獲取到最新的輸出數據,并更新上下文。期間涉及到大量冗余的信息傳遞和存儲以及相應的計算。無論設計如何優化,這些冗余的通訊、存儲和計算是不可能徹底避免的。一個區塊鏈系統的性能瓶頸主要體現在兩個方面,一個是吞吐量,另一個是狀態容量。一個開放公鏈系統看起來有很多節點,其內存和計算能力總和是非常可觀的,但是由于區塊鏈系統要求每個節點都全量同步和構造整個網絡的狀態,導致每個節點實際上都在做完全重復的交易計算和狀態表示。這是約束區塊鏈系統性能的根本原因,使得全網的實際處理能力和容量等效于一臺單機電腦。吞吐量瓶頸實際工作中的區塊鏈節點,無時無刻不在接受全網的已確認區塊以及未確認交易,并構造成鏈,不斷維護賬簿的最新狀態,然后抓緊機會嘗試在鏈尾追加新的區塊。無論采用哪種共識算法,都會歷經以下幾個步驟:1.根據賬簿的最新狀態,在未確認交易集合中選出若干驗證合法的交易,然后構造一個新的區塊;2.新的區塊參與出塊的競爭或者候選,在這個階段,很可能會因為賬簿狀態更新而中斷,回到第一步;3.獲得出塊的權力之后,向全網廣播新塊,更新賬簿狀態,回到第一步。無論哪種共識算法,都有一個不可調和的性能矛盾,本質上由區塊數據的廣播延遲導致。這個矛盾使得如果每次出塊比較大,就必須有比較長的出塊間隔,以保障該區塊在下一次出塊之前在全網被充分傳播。如果傳播不充分,在最終一致性共識系統中,將表現為較高的分叉率,而在即時一致性共識系統中則表現為較高的失敗率。所以任何區塊鏈系統都需要預先設定兩個參數——塊大小和出塊間隔,使得在當時的網絡環境中每次出塊大都可以保證在下一個塊出現之前完成充分的廣播。這從本質上決定了一個區塊鏈的吞吐量,其實和具體的共識算法沒有太大關系,只要共識機制本身不拖后腿就行。狀態容量瓶頸為了完成接力計算過程,每個節點都需要維持計算所需要的上下文,其中包括每個賬戶的狀態,以及待確認的所有交易。由于廣播接力必須在新塊被驗證之后完成,為了保證接力過程以最快速度完成而不產生額外的廣播延遲,這些信息需要常駐內存。在單鏈系統中,沒有任何辦法可以降低這個壓力,無論采用什么共識算法都無法解決。這個瓶頸直接限制了全網用戶量的上限,尤其在鏈上有很多應用的情況下。中國自主創新的技術突破
BTCC官網推特稱 20%英國居民擁有加密貨幣:20% 英國居民擁有加密貨幣, 超過半數的認為加密貨幣會被 商店接受。[2018/3/15]
相比比特幣7TPS的性能,這幾年新啟動的區塊鏈系統性能提高了不少,主要得益于現在的互聯網帶寬的提高。這些新系統可以采用更大的塊,或者更短的出塊時間,輕松獲得至少幾十倍的性能提升。當然,這對狀態容量瓶頸的改善并沒什么幫助。另外,提高參與節點的要求,甚至把節點全部部署在數據中心里面,這樣很容易把性能提升上去,但是完全違背了區塊鏈本身分散執行的初衷。從根本上提升性能的辦法,是從區塊鏈系統性能受限的根本原因入手,即現在的區塊鏈系統無限冗余,有多少個節點參與,就有多少倍冗余。基于P2P網絡的開放區塊鏈系統,有一定程度的冗余是必要的,有助于提高系統的安全性和魯棒性。但是當全網有幾千甚至上萬節點的時候,這成千上萬倍的冗余將使邊際效應急速遞減,著實不必要。那么是不是可以將區塊鏈網絡的全網工作量切分開來,不同部分的節點負責網絡的不同部分?這種分而治之的想法,在之前的并行計算系統中早已廣泛采用,例如大數據處理中的Spark架構和MapReduce架構。同樣,區塊鏈系統也可以應用這樣的思路,將全網工作量切分成多個分組,將賬簿、廣播的范圍、交易處理、交易歸檔這四個方面的工作量全部切分開來。然后對應地將全網節點分成不同的組,每組承擔一個分組。但是如何有效安全地實現這種切分,一直是區塊鏈系統技術中的一個難題。在區塊鏈系統中,應用這種分而治之的思路,不僅面臨切分分布式系統通常都有的挑戰,例如涉及有效的數據工作流以及要犧牲一些編程的靈活性,還面臨區塊鏈系統特有的挑戰,例如缺乏中心調度,以及可能削弱共識的安全性。這個技術方向終于在2019年取得突破性進展,是由畢業于中科院計算所的兩名博士完成的,發表于該年的計算機網絡系統頂級會議NSDI(NetworkedSystemsDesignandImplementation)上。這篇名為“Monoxide:ScaleOutBlockchainwithAsynchronizedConsensusZones”的論文,以非常簡潔的方式實現賬戶模型區塊鏈系統的全面切分,并支持靈活的智能合約。在不引入任何中心化調度和協調的情況下,將全網切分成多個完全獨立的異步并行子區塊鏈系統,分攤全網的工作量,從本質上解決了區塊鏈系統在性能上的兩個瓶頸。論文提出了“最終原子性理論”,使得區塊鏈系統在切分之后仍舊可以非常高效地完成業務邏輯在不同切分中的接力執行,使得整體性能實現線性提升。同時,論文還提出了“諸葛連弩挖礦”,保障了網絡切分之后的安全性沒有明顯下降。在論文的真實互聯網環境驗證試驗中,即使在非常保守的參數設定下,系統吞吐量高達1.16萬TPS,狀態容量高達16TB。作者簡介
王嘉平:墨群區塊鏈創始人。創新工場技術合伙人。微軟研究院前主管研究員。主要研究方向為分布式系統、計算機圖形學和視覺、GPU集群、區塊鏈系統等。
作者|秦曉峰編輯|郝方舟出品|Odaily星球日報 本周,全球金融遭遇暴擊,美股連續兩個交易日發生熔斷,黃金也開始下行回調,跌破1600美元;加密市場同樣慘不忍睹,比特幣從周一的8300美元.
1900/1/1 0:00:00對于加密貨幣,印度銀行在2018年就做出了禁止交易的通告,但是近日印度突然解除加密禁令,這個消息一出立馬引起大家的注意,不僅打開了印度眾十億民眾加密貨幣的大門,對于整個加密市場來說.
1900/1/1 0:00:00編者按:本文來自互鏈脈搏,Odaily星球日報經授權轉載。橋水基金因爆倉傳聞在公眾面前又火了。被稱為金融教父的瑞達力歐45年前創辦的橋水基金,截至去年年底管理資產超過1600億美元,成為有史以來.
1900/1/1 0:00:00文|黎哲翁編輯|畢彤彤來源|PANews沒能熬過監管寒冬的印度交易所Koinex倒在去年6月的酷夏,而最高院如同“春雷”般的審判,卻在一夜之間給尚存的交易所帶來了數倍的交易量增長.
1900/1/1 0:00:00頭條 比特幣入選《財富》雜志“現代百大最佳設計產品”《財富》雜志日前發布了“現代百大最佳設計產品”榜單。“比特幣”入選,排名第90位.
1900/1/1 0:00:00編者按:本文來自萬向區塊鏈,Odaily星球日報經授權轉載。業內人士習慣將比特幣稱為“區塊鏈一代目”,以太坊則是“區塊鏈二代目”。以太坊區別于比特幣區塊鏈很重要的一點是它找了個CP“智能合約”.
1900/1/1 0:00:00