我們在研究區塊鏈的過程中發現,區塊鏈的發展和云計算有非常多的相似之處,因此便有了此文,帶領大家從宏觀的角度認識區塊鏈和云計算。
概述,區塊鏈與云計算相似的地方
底層三要素
云計算的底層三要素
1. 計算虛擬化
計算虛擬化就是在虛擬系統和底層硬件之間抽象出CPU和內存等,以供虛擬機使用。計算虛擬化技術需要模擬出一套操作系統的運行環境,在這個環境你可以安裝Windows也是可以安裝Linux,這些操作系統被稱作Guest OS。他們相互獨立,互不影響(相對的,因為當主機資源不足會出現競爭等問題,導致運行緩慢等問題)。計算虛擬化可以將主機單個物理核虛擬出多個vcpu,這些vcpu本質上就是運行的進程,考慮到系統調度,所以并不是虛擬的核數越多越好;內存相似的,把物理機上面內存進行邏輯劃分出多個段,供不同的虛擬機使用,每個虛擬機看到的都是自己獨立的一個內存。除了這些還需要模擬網絡設備、BIOS等。這個虛擬化軟件叫做hypervisor,著名的有ESXI、xen、KVM等,通常分為兩種,第一種是直接部署到物理服務器上面的。
由于直接部署到裸機上面,hypervisor需要自帶各種硬件驅動,虛擬機的所有操作都需要經過hypervisor。還有另一種虛擬化hypervisor,以KVM最為流行(個人電腦上面安裝的virtualbox以及workstations也是),它們依賴與宿主機操作系統,這樣的好處就是可以充分利用宿主機的各種資源管理以及驅動,但效率上面會打一些折扣。
當然也可以從全虛擬化、半虛擬化、硬件輔助虛擬化的角度去說,現在數據中心基本都是硬件輔助虛擬化了,全虛擬化就是完全靠軟件模擬、半虛擬需要修改操作讓其知道自己運行在虛擬環境中、硬件輔助由硬件為每個Guest OS提供一套寄存器、Guest OS可以直接運行在特權級,這樣提高效率。
雖然當前數據中心商用的虛擬化軟件仍然以VMware的ESXI為主,但在OpenStack的推動下,KVM正在慢慢追趕,并且KVM是開源的,下面簡單介紹一下KVM。KVM是基于內核的,從內核2.6以后就自帶了,可以運行在x86和power等主流架構上。 KVM主要是CPU和內存的虛擬化,其它設備的虛擬化和虛擬機的管理則需要依賴QEMU完成。一個虛擬機本質上就是一個進程,運行在QEMU-KVM進程地址空間,KVM(內核空間)和qemu(用戶空間)相結合一起向用戶提供完整的虛擬化環境。
2. 網絡虛擬化
網絡虛擬化是一種重要的網絡技術,該技術可在物理網絡上虛擬多個相互隔離的虛擬網絡,不依賴于底層物理連接,能夠動態變化網絡拓撲,提供多租戶隔離,從而使得不同用戶之間使用獨立的網絡資源切片變成可能,從而提高網絡資源利用率,實現彈性的網絡。這里面目前最為火熱的即軟件定義網絡(Software Defined Network, SDN),SDN的出現使得網絡虛擬化的實現更加靈活和高效,同時網絡虛擬化也成為SDN應用中的重量級應用。其核心技術OpenFlow通過將網絡設備控制面與數據面分離開來,從而實現了網絡流量的靈活控制,使網絡作為管道變得更加智能。
通過SDN實現網絡虛擬化包括物理網絡管理,網絡資源虛擬化和網絡隔離三部分。而這三部分內容往往通過專門的中間層軟件完成,我們稱之為網絡虛擬化平臺。虛擬化平臺需要完成物理網絡的管理和抽象虛擬化,并分別提供給不同的租戶。此外,虛擬化平臺還應該實現不同租戶之間的相互隔離,保證不同租戶互不影響。虛擬化平臺的存在使得租戶無法感知到網絡虛擬化的存在,也即虛擬化平臺可實現用戶透明的網絡虛擬化。
虛擬化平臺
虛擬化平臺是介于數據網絡拓撲和租戶控制器之間的中間層。面向數據平面,虛擬化平面就是控制器;而面向租戶控制器,虛擬化平臺就是數據平面。所以虛擬化平臺本質上具有數據平面和控制層面兩種屬性。在虛擬化的核心層,虛擬化平臺需要完成物理網絡資源到虛擬資源的虛擬化映射過程。面向租戶控制器,虛擬化平臺充當數據平面角色,將模擬出來的虛擬網絡呈現給租戶控制器。從租戶控制器上往下看,只能看到屬于自己的虛擬網絡,而并不了解真實的物理網絡。而在數據層面的角度看,虛擬化平臺就是控制器,而交換機并不知道虛擬平面的存在。所以虛擬化平臺的存在實現了面向租戶和面向底層網絡的透明虛擬化,其管理全部的物理網絡拓撲,并向租戶提供隔離的虛擬網絡。
網絡虛擬化平臺示意圖
虛擬化平臺不僅可以實現物理拓撲到虛擬拓撲“一對一”的映射,也應該能實現物理拓撲“多對一”的映射。而由于租戶網絡無法獨占物理平面的交換機,所以本質上虛擬網絡實現了“一虛多”和“多虛一”的虛擬化。此處的“一虛多”是指單個物理交換機可以虛擬映射成多個虛擬租戶網中的邏輯交換機,從而被不同的租戶共享;“多虛一”是指多個物理交換機和鏈路資源被虛擬成一個大型的邏輯交換機。即租戶眼中的一個交換機可能在物理上由多個物理交換機連接而成。
單虛擬節點映射到多物理節點
網絡資源虛擬化
為實現網絡虛擬化,虛擬化平臺需要對物理網絡資源進行抽象虛擬化,其中包括拓撲虛擬化,節點資源虛擬化和鏈路資源虛擬化。
拓撲虛擬化
拓撲虛擬化是網絡虛擬化平臺最基本的功能。虛擬平臺需要完成租戶虛網中的虛擬節點和虛擬鏈路到物理節點和鏈路的映射。其中包括“一對一”和“一對多”的映射。“一對一”的映射中,一個虛擬節點將會映射成一個物理節點,同理虛擬鏈路也是。而在“一對多”的映射中,一個虛擬節點可以映射成由多個連接在一起的物理節點;一條邏輯鏈路也可能映射成由鏈接在一起的多條鏈路。而對于物理節點而言,一個物理節點可以被多個邏輯節點映射。
節點資源虛擬化
節點資源的虛擬化包括對節點Flow tables(流表)、CPU等資源的抽象虛擬化。流表資源本身是交換機節點的稀缺資源,如果能對其進行虛擬化,然后由虛擬化平臺對其進行分配,分配給不同的租戶,那么就可以實現不同租戶對節點資源使用的分配和限制。拓撲抽象僅僅完成了虛擬節點到物理節點的映射,而沒有規定不同用戶/租戶對物理節點資源使用的分配情況。若希望進行更細粒度的網絡虛擬化,節點資源虛擬化非常有必要。
鏈路資源虛擬化
和節點資源一樣,鏈路資源也是網絡中重要的資源,而拓撲抽象并沒有規定某些用戶可使用的鏈路資源的多少。所以在進行更細粒度的虛擬化時,有必要對鏈路資源進行虛擬化,從而實現鏈路資源的合理分配。可被抽象虛擬化的鏈路資源包括租戶可使用的帶寬以及端口的隊列資源等等。
網絡隔離
網絡資源虛擬化僅僅完成了物理資源到虛擬資源的抽象過程,為實現完全的網絡虛擬化,還需要對不同的租戶提供隔離的網絡資源。網絡隔離需要對SDN的控制平面和數據平面進行隔離,從而保證不同租戶控制器之間互補干擾,不同虛網之間彼此隔離。此外,為了滿足用戶對地址空間自定義的需求,虛擬化平臺還需要對網絡地址進行虛擬化。
控制面隔離
控制器的性能對SDN整體的性能產生極大的影響,所以虛擬化平臺需保證租戶的控制器在運行時不受其他租戶控制器的影響,保證租戶對虛擬化平臺資源的使用。虛擬化平臺在連接租戶控制器時需保證該進程可以得到一定的資源保障,比如CPU資源。而虛擬化平臺本身所處的位置就可以輕易實現租戶的控制器之間的相互隔離。
數據面隔離
數據面的資源包括節點的CPU、Flow Tables等資源以及鏈路的帶寬,端口的隊列資源等。為保證各個租戶的正常使用,需對數據面的資源進行相應的隔離,從而保證租戶的資源不被其他租戶所占據。若在數據面上不進行資源的隔離,則會產生租戶數據在數據面上的競爭,從而無法保障租戶對網絡資源的需求,所以很有必要在數據面對資源進行隔離。
地址隔離
為使租戶能在自己的虛擬租戶網中任意使用地址,虛擬化平臺需要完成地址的隔離。實現地址隔離主要通過地址映射來完成。租戶可任意定制地址空間,而這些地址對于虛擬化平臺而言是面向租戶的虛擬地址。虛擬化平臺在轉發租戶控制器南向協議報文時,需要將虛擬地址轉化成全網唯一的物理地址。租戶的服務器的地址在發送到接入交換機時就會被修改成物理地址,然后數據包的轉發會基于修改之后的物理地址進行轉發。當數據到達租戶目的地址主機出端口,控制器需將地址轉換成原來租戶設定的地址,從而完成地址的虛擬化映射。地址的虛擬化映射使得租戶可以使用完全的地址空間,可以使用任意的FlowSpace(流空間:流表匹配項所組成的多維空間),而面向物理層面則實現了地址的隔離,使得不同的租戶使用特定的物理地址,數據之間互不干擾。
3. 存儲虛擬化
存儲虛擬化是一種貫穿于整個IT環境、用于簡化本來可能會相對復雜的底層基礎架構的技術。存儲虛擬化的思想是將資源的邏輯映像與物理存儲分開,從而為系統和管理員提供一幅簡化、無縫的資源虛擬視圖。在沒有云計算之前存儲虛擬化已經發展了很久,可以說和云計算沒有特別關系,而云計算存儲通常指的是亞馬遜的S3存儲或者EBS存儲等,將統一的資源池劃分給多個用戶。
對于用戶來說,虛擬化的存儲資源就像是一個巨大的“存儲池”,用戶不會看到具體的磁盤、磁帶,也不必關心自己的數據經過哪一條路徑通往哪一個具體的存儲設備。
從管理的角度來看,虛擬存儲池是采取集中化的管理,并根據具體的需求把存儲資源動態地分配給各個應用。值得特別指出的是,利用虛擬化技術,可以用磁盤陣列模擬磁帶庫,為應用提供速度像磁盤一樣快、容量卻像磁帶庫一樣大的存儲資源,這就是當今應用越來越廣泛的虛擬磁帶庫(VTL, Virtual Tape Library),在當今企業存儲系統中扮演著越來越重要的角色。
主流的存儲虛擬化有以下三種技術,在云計算場景中通常會根據實際場景選擇合適的技術。
SAN
先從高端存儲說起,現在高端存儲應該EMC、IBM和HDS的天下,這些年外置存儲跟隨著廉價磁盤不斷提升容量和性能,推動了SAN網絡、主機FC接口不斷成熟,在數據中心變得很普遍,尤其在金融領域。
SAN提供的是塊存儲,譬如磁盤陣列里面有10塊I T的數據盤,然后可以通過做RAID或者邏輯卷(LVM)的方式劃分出10個的數據盤,但這個10個數據盤已經和之前的物理盤不一樣了,一個邏輯盤可能有第一個物理盤提供100G,第二個物理盤提供300G。對于操作系統來說,完全無法感知是物理盤還是邏輯盤,這是存儲資源池的理念。通過RAID或者LVM不僅可以提供數據保護還能夠重新劃分盤的大小,提高讀寫速率。
但SAN也不是毫無缺點,它價格也是比較昂貴的,光纖口,光纖交換機價格高,所以才有了IPSAN存儲,通過IP協議承載存儲協議;無法提供數據共享,一個盤只能掛給一個主機,所以這就有了NAS存儲。
NAS
NAS是文件存儲,文件存儲相比塊存儲最大的優勢是能共享數據,它基于標準的網絡協議,SAN是有自己一套存儲協議的。常見的NAS包括NFS、FTP和HTTP文件服務器等,由于這種設備通常都有一個IP,所以一般客戶機充當數據網關服務器可以直接對其訪問。NAS建立在傳統網絡之上,所以可以更遠距離的傳輸,并且NAS具有安裝容易易于維護的特點,但其速度通常要比SAN慢很多。
分布式存儲
伴隨著x86性能提升,以x86芯片構建的小型存儲系統在中端存儲領域開始嶄露頭角。通過將X86本地的磁盤利用起來構建一個大存儲集群。分布式存儲通常能夠同時提供塊存儲和文件存儲的能力。這里不得介紹一個和OpenStack結合緊密的分布式存儲ceph,下圖是ceph官網的一個整體模塊圖,它提供了CEPH FS文件存儲系統和POSIX接口、對象存儲以及最常用的快存儲。
它的基石是下面的RADOS,再下面就是系統組件,包括:
· CEPH OSDs:CEPH的OSD(Object Storage Device)守護進程。主要功能包括:存儲數據、副本數據處理、數據恢復、數據回補,平衡數據分布。并將數據相關的一些監控信息提供給CEPH Moniter,以便CEPH Moniter來檢查其他OSD的心跳狀態。一個CEPH存儲集群,要求至少兩個CEPH OSDs,才能有效的保存兩份數據。注意,這里的兩個CEPH OSD是指運行在兩臺物理服務器上的,并不是在一臺物理服務器上開兩個CEPH OSD的守護進程。
· Moniters:CEPH的Moniter守護進程,主要功能是維護集群狀態的表組,這個表組中包含了多張表,其中有Moniter map、OSD map 、PG(Placement Group) map、CRUSH map。
· MDSs:CEPH的MDS (Metadata Server)守護進程,主要保存的是CEPH Filesystem的元數據。注意,對于CEPH的塊設備和CEPH對象存儲都不需要CEPH MDS守護進程。CEPH MDS 為基于POSIX文件系統的用戶提供了一些基礎命令的執行,比如ls、find等等,這樣可以很大層度上降低CPEH 存儲集群的壓力。
區塊鏈的底層三要素
1. 共享帳本
共享賬本準確的說應該是分布式賬本技術,這個技術從實質上說就是一個可以在多個站點、不同地理位置或者多個機構組成的網絡里進行分享的資產數據庫。在一個網絡里的參與者可以獲得一個唯一、真實賬本的副本。賬本里的任何改動都會在所有的副本中被反映出來,反應時間會在幾分鐘甚至是幾秒內。在這個賬本里存儲的資產可以是金融、法律定義上的、實體的或是電子的資產。在這個賬本里存儲的資產的安全性和準確性是通過公私鑰以及簽名的使用去控制賬本的訪問權,從而實現密碼學基礎上的維護。根據網絡中達成共識的規則,賬本中的記錄可以由一個、一些或者是所有參與者共同進行更新。
分布式賬本技術使用密碼哈希算法和數字簽名來確保交易的完整性,同時確保共享賬本是精確副本,并降低了發生交易欺詐的風險,因為篡改需要同時在許多地方同時執行。密碼哈希算法(比如 SHA256 計算算法)能確保對交易輸入的任何改動 — 甚至是最細微的改動 — 都會計算出一個不同的哈希值,表明交易輸入可能被損壞。數字簽名則確保交易源自發送方(已使用私鑰簽名)而不是冒名頂替者。
2. 共識算法
這里主要講述區塊鏈在發展過程中出現的五種典型共識算法:PoW、PoS、DPoS、PBFT和聯合共識。
早期,比特幣Bitcoin作為區塊鏈技術的第一個成功應用率先引入了工作量證明機制(PoW,Proof of Work),工作量證明機制利用了Hash算法在隨機性上這個非常重要的特性。PoW機制俗稱挖礦,這里挖的是比特幣里的每一個區塊。每個區塊用包含的交易、時間、以及一個自定義數值來計算這個區塊的Hash。一個合格的區塊的Hash必須滿足前N位為零,因此需要不斷的調整剛才那三個參數來尋找滿足條件的Hash。由于Hash算法足夠隨機,零的個數越多,算出這個Hash的概率越低。此時,要得到合理的Block Hash需要經過大量嘗試計算,計算時間取決于機器的哈希運算速度。當某個節點提供出一個合理的Block Hash值,說明該節點確實經過了大量的嘗試計算,這就是工作量證明。當然,并不能得出計算次數的絕對值,因為尋找合格的Hash是一個概率事件。當節點擁有占全網n%的算力時,該節點即有n%的概率率先發布一個合格的區塊。
隨后,由于PoW這種算法極其耗費計算資源,截至寫本文時(2017年8月),據測算,比特幣網絡消耗的電力就已經高達15TW。因此,隨后的NXT等新興密碼學貨幣提出了一種新的思路即股權證明(PoS,Proof of Stake)。這種模式會根據你持有數字貨幣的量和時間,決定你可以發布下一個區塊的概率。在PoS模式下,有一個名詞叫幣齡,每個幣每天產生1幣齡,比如你持有100個幣,總共持有了30天,那么,此時你的幣齡就為3000,然后按照所有人的幣齡根據一個隨機算法決定誰來發布下一個區塊。這個時候,如果你被選中發布了一個POS區塊,你的幣齡就會被清空為0重新再來。
PoS也不是沒有缺點,最大的缺點就是在于效率上。因此,比特股BitShares提出了委托股權證明機制(DPoS,Delegated Proof of Stake)。它的原理是讓每一個持有比特股的人進行投票,由此產生101位代表 , 我們可以將其理解為101個超級節點或者礦池,而這101個超級節點彼此的權利是完全相等的。從某種角度來看,DPoS有點像是議會制度或人民代表大會制度。如果代表不能履行他們的職責(當輪到他們時,沒能生成區塊),他們會被除名,網絡會選出新的超級節點來取代他們。
以上的這些共識機制都依賴密碼學貨幣,因為不管是PoW還是PoS,驅動尋找區塊的源動力都是發布新區塊的貨幣獎勵。對于無代幣的系統如HyperLedger Fabric,如何選擇共識機制?這時,我們可以回過頭看看PBFT。BFT(Byzantine Fault Tolerance,拜占庭容錯算法)是很早就提出的分布式容錯算法,可以查找拜占庭問題來進一步了解,這里不做詳述。PBFT作為BFT的一種實現,是一種狀態機副本復制算法,即服務作為狀態機進行建模,狀態機在分布式系統的不同節點進行副本復制。每個狀態機的副本都保存了服務的狀態,同時也實現了服務的操作。將所有的副本組成的集合使用大寫字母R表示,使用0到|R|-1的整數表示每一個副本。為了描述方便,假設|R|=3f+1,這里f是有可能失效的副本的最大個數。盡管可以存在多于3f+1個副本,但是額外的副本除了降低性能之外不能提高可靠性。
除此之外,還有一種基于投票的聯合共識(Voting),以Ripple為代表。這種共識使網絡能夠基于特殊節點列表達成共識。初始特殊節點列表就像一個俱樂部,要接納一個新成員,必須由51%的該俱樂部會員投票通過。共識遵循這核心成員的51%權力,外部人員則沒有影響力。這種共識方式同樣極大的提高了效率,但是卻需要確保特殊節點中惡意節點不能超過51%,犧牲的是整個網絡的去中心化。
3. P2P網絡
P2P為大眾所熟知主要要歸功于BitTorrent及BT的流行,而P2P網絡的核心概念即彼此連接的多臺計算機之間都處于對等的地位,各臺計算機有相同的功能,無主從之分,一臺計算機既可作為服務器,設定共享資源供網絡中其他計算機所使用,又可以作為工作站,整個網絡一般來說不依賴專用的集中服務器,也沒有專用的工作站。網絡中的每一臺計算機既能充當網絡服務的請求者,又對其它計算機的請求做出響應,提供資源、服務和內容。通常這些資源和服務包括:信息的共享和交換、計算資源(如CPU計算能力共享)、存儲共享(如緩存和磁盤空間的使用)、網絡共享、打印機共享等。
區塊鏈為了實現分布式賬本的能力,同樣也采用了P2P網絡。分布式賬本會分發給網絡中的所有成員節點,同時可以阻止任何單個或一組參與者控制底層基礎架構或破壞整個系統。網絡中的參與者是平等的,都遵守相同的協議。
類型
云計算
1. 公有云
公有云通常指第三方提供商為用戶提供的能夠使用的云,比如我們經常使用阿里云即是一種公有云。公有云可通過internet使用,價格非常的低廉,核心的屬性是共享服務資源。
公有云被認為是云計算的主要形態,目前市場上公有云也是占據了較大的市場份額的,在國內公有云可以分為以下幾類。
· 傳統的電信基礎設施運營商,比如中國移動、中國聯通、中國電信等提供的公有云服務
· 一類是政府主導的地方性云計算平臺,也就是常說的政府云
· 互聯網巨頭打造的公有云平臺 如盛大云
· 部分IDC運營商 如世紀互聯
· 一類為具有國外技術背景或引進國外云計算技術的國內企業
由于目前國內并未開放外國公司在中國直接進行云計算業務,因此像亞馬遜、IBM、Joyent、Rackspaces等國外已有多年云計算業務經驗的廠商在進入中國市場途中仍障礙重重。2012年11月1日,微軟終于實現旗下公有云計算平臺Windows Azure在中國的落地,這將掀開外資企業進軍中國云計算市場的序幕。
2. 私有云
私有云是為一個用戶單獨使用而構建的,因而在數據安全性以及服務質量上自己可以有效的管控,私有云的基礎是首先你要擁有基礎設施并可以控制在此設施上部署應用程序的方式,私有云可以部署在企業數據中心的防火墻內,核心屬性是專有資源。
私有云可以搭建在公司的局域網上,與公司內部的公司的監控系統、資產管理系統等相關系統進行打通,從而更有利于公司內部系統的集成管理。
私有云雖然數據安全性方面比公有云高,但是維護的成本也相對較大(對于中小企業而言),因此一般只有大型的企業會采用這類的云平臺,因為對于這些企業而言,業務數據這條生命線不能被任何其他的市場主體獲取到,與此同時,一個企業尤其是互聯網企業發展到一定程度之后,自身的運維人員以及基礎設施都已經比較充足完善了,搭建自己的私有云有時候成本反而會比公有云來得低(所謂的規模經濟)。
3. 混合云
混合云則是融合了公有云與私有云的優劣勢,近幾年來混合云模式也得以快速發展起來。混合云綜合了數據安全性以及資源共享性雙重方面的考慮,個性化的方案達到了省錢安全的目的,從而獲得越來越多企業的青睞。但混合云也并不是完美無缺的,以下幾個問題需要格外注意。
· 數據冗余能力:混合云缺少數據冗余,對于數據而言,做好冗余以及容災備份是非常有必要的,因此若缺乏數據冗余能力的話,實際上數據安全性也不能得到很好的保證。
· 法律方面:由于是兩個云的集合,因此在法律法規上必須確保公有云和私有云提供商符合法律規范,而且你必須要證明兩個云之間是順從的。
· SLA(服務質量)相比于私有云而言有可能會略差,這里的SLA指的是標準統一性(統一)。在你的私有云的可用性和性能的顯示工作負載下收集數據。集成公有云和私有云尋求潛在的問題都會破壞服務。比如:如果一個私有云的關鍵業務驅動在本地保持敏感和機密數據,然后你的SLA應該體現出在公有云中使用這些服務的限制性。
· 風險成本或者學習成本較高。從安全角度而言,混合云雖然兼有了私有云的安全性,但是隨之帶來的卻是應由于API帶來的復雜網絡配置使得傳統系統管理員的知識經驗及能力受到挑戰,隨之帶來的并是高昂的學習成本或者系統管理員能力不足帶來的額外風向。
區塊鏈
1. 公有鏈
公有鏈是指全世界任何人都可讀取的、任何人都能發送交易且交易能獲得有效確認的、任何人都能參與其中共識過程的區塊鏈——共識過程決定哪個區塊可被添加到區塊鏈中和明確當前狀態。公有鏈通常被認為是“完全去中心化”的。
公有鏈的特點:
保護用戶免受開發者的影響
在公有鏈中程序開發者無權干涉用戶,所以區塊鏈可以保護使用他們開發的程序的用戶。
訪問門檻低
任何擁有足夠技術能力的人都可以訪問,也就是說,只要有一臺能夠聯網的計算機就能夠滿足訪問的條件。
所有數據默認公開
盡管所有關聯的參與者都隱藏自己的真實身份,這種現象十分的普遍。他們通過他們的公共性來產生自己的安全性,在這里每個參與者可以看到所有的賬戶余額和其所有的交易活動。
2. 私有鏈
私有鏈是指其寫入權限僅在一個組織手里的區塊鏈。讀取權限或者對外開放,或者被任意程度地進行了限制。
私有鏈的特點:
交易速度非常之快
一個私有鏈的交易速度可以比任何其他的區塊鏈都快,甚至接近了并不是一個區塊鏈的常規數據庫的速度。這是因為就算少量的節點也都具有很高的信任度,并不需要每個節點來驗證一個交易。
給隱私更好的保障
私有鏈使得在那個區塊鏈上的數據隱私政策像在另一個數據庫中似的完全一致;不用處理訪問權限和使用所有的老辦法,但至少說,這個數據不會公開地被擁有網絡連接的任何人獲得。
交易成本大幅降低甚至為零
私有鏈上可以進行完全免費或者至少說是非常廉價的交易。如果一個實體機構控制和處理所有的交易,那么他們就不再需要為工作而收取費用。然而,即使交易的處理是由多個實體機構完成的,例如競爭性銀行,進一步舉例來說,因為同樣的原因,它們可以如此之快的處理交易,所以費用仍然是非常小的;這并不需要節點之間的完全協議,所以很少的節點需要為任何一個交易而工作。
有助于保護其基本的產品不被破壞
正是這一點使得銀行等金融機構能在目前的環境中欣然接受私有鏈,銀行和政府在看管他們的產品上擁有既得利益,用于跨國貿易的國家法定貨幣仍然是有價值的。由于公有鏈的直接應用是保護像比特幣這樣新型的非國家性質的貨幣,對核心利潤流或組織構成了破壞性的威脅,這些實體機構應該會不惜一切代價去避免損害。
3. 聯盟鏈
聯盟鏈是指其共識過程受到預選節點控制的區塊鏈;例如,不妨想象一個有15個金融機構組成的共同體,每個機構都運行著一個節點,而且為了使每個區塊生效需要獲得其中10個機構的確認。區塊鏈或許允許每個人都可讀取,或者只受限于參與者,或走混合型路線,例如區塊的根哈希及其API(應用程序接口)對外公開,API可允許外界用來作有限次數的查詢和獲取區塊鏈狀態的信息。這些區塊鏈可視為“部分去中心化”。
形態
云計算
1. IaaS(Infrastructure-as-a-Service,基礎設施即服務)
第一層叫做IaaS,有時候也叫做Hardware-as-a-Service,幾年前如果你想在辦公室或者公司的網站上運行一些企業應用,你需要去買服務器,或者別的高昂的硬件來控制本地應用,讓你的業務運行起來。但是現在有IaaS,你可以將硬件外包到別的地方去。IaaS公司會提供場外服務器,存儲和網絡硬件,你可以租用。節省了維護成本和辦公場地,公司可以在任何時候利用這些硬件來運行其應用。
一些大的IaaS公司包括Amazon, Microsoft, VMWare, Rackspace和Red Hat.不過這些公司又都有自己的專長,比Amazon和微軟給你提供的不只是IaaS,他們還會將其計算能力出租給你來host你的網站。
作用
通過IaaS這種模式,用戶可以從供應商那里獲得他所需要的虛擬機或者存儲等資源來裝載相關的應用,同時這些基礎設施的繁瑣的管理工作將由IaaS供應商來處理。IaaS能通過它上面對虛擬機支持眾多的應用。IaaS主要的用戶是系統管理員。
產品
主要產品包括:Amazon EC2,Linode,Joyent,Rackspace,IBM Blue Cloud和Cisco UCS等。
功能
IaaS供應商需要在那些方面對基礎設施進行管理以給用戶提供資源?或者說IaaS云有那些功能?在《虛擬化與云計算》中列出了IaaS的七個基本功能:
資源抽象:使用資源抽象的方法(比如,資源池)能更好地調度和管理物理資源。
資源監控:通過對資源的監控,能夠保證基礎實施高效率的運行。
負載管理:通過負載管理,不僅能使部署在基礎設施上的應用運能更好地應對突發情況,而且還能更好地利用系統資源。
數據管理:對云計算而言,數據的完整性,可靠性和可管理性是對IaaS的基本要求。
資源部署:也就是將整個資源從創建到使用的流程自動化。
安全管理:IaaS的安全管理的主要目標是保證基礎設施和其提供的資源能被合法地訪問和使用。
計費管理:通過細致的計費管理能使用戶更靈活地使用資源。
2. PaaS(Platform-as-a-Service,平臺即服務)
第二層就是所謂的PaaS,某些時候也叫做中間件。你公司所有的開發都可以在這一層進行,節省了時間和資源。
PaaS公司在網上提供各種開發和分發應用的解決方案,比如虛擬服務器和操作系統。這節省了你在硬件上的費用,也讓分散的工作室之間的合作變得更加容易。網頁應用管理,應用設計,應用虛擬主機,存儲,安全以及應用開發協作工具等。
作用
通過PaaS這種模式,用戶可以在一個包括SDK,文檔和測試環境等在內的開發平臺上非常方便地編寫應用,而且不論是在部署,或者在運行的時候,用戶都無需為服務器,操作系統,網絡和存儲等資源的管理操心,這些繁瑣的工作都由PaaS供應商負責處理,而且PaaS在整合率上面非常驚人,比如一臺運行Google App Engine的服務器能夠支撐成千上萬的應用,也就是說,PaaS是非常經濟的。PaaS主要的用戶是開發人員。
產品
一些大的PaaS提供者有Google App Engine,Microsoft Azure,Force.com,Heroku,Engine Yard。新興的公司有AppFog,Mendix和Standing Cloud
功能
· 為了支撐著整個PaaS平臺的運行,供應商需要提供那么功能?主要有四大功能:
· 友好的開發環境:通過提供SDK和IDE等工具來讓用戶能在本地方便地進行應用的開發和測試。
· 豐富的服務:PaaS平臺會以API的形式將各種各樣的服務提供給上層的應用。
· 自動的資源調度:也就是可伸縮這個特性,它將不僅能優化系統資源,而且能自動調整資源來幫助運行于其上的應用更好地應對突發流量。
· 精細的管理和監控:通過PaaS能夠提供應用層的管理和監控,比如,能夠觀察應用運行的情況和具體數值(比如,吞吐量和反映時間)來更好地衡量應用的運行狀態,還有能夠通過精確計量應用使用所消耗的資源來更好地計費。
3. SaaS(Software-as-a-Service,軟件即服務)
第三層也就是所謂SaaS。這一層是和你的生活每天接觸的一層,大多是通過網頁瀏覽器來接入。任何一個遠程服務器上的應用都可以通過網絡來運行,就是SaaS了。
你消費的服務完全是從網頁如Netflix, MOG, Google Apps, Box.NET, Dropbox或者蘋果的iCloud那里進入這些分類。盡管這些網頁服務是用作商務和娛樂或者兩者都有,但這也算是云技術的一部分。
一些用作商務的SaaS應用包括Citrix的GoToMeeting,Cisco的WebEx,Salesforce的CRM,ADP,Workday和SuccessFactors。
作用
通過SaaS這種模式,用戶只要接上網絡,并通過瀏覽器,就能直接使用在云端上運行的應用,而不需要顧慮類似安裝等瑣事,并且免去初期高昂的軟硬件投入。SaaS主要面對的是普通的用戶。
產品
主要產品包括:Salesforce Sales Cloud,Google Apps,Zimbra,Zoho和IBM Lotus Live等。
功能
談到SaaS的功能,也可以認為是要實現SaaS服務,供應商需要完成那些功能?主要有四個方面:
· 隨時隨地訪問:在任何時候或者任何地點,只要接上網絡,用戶就能訪問這個SaaS服務。
· 支持公開協議:通過支持公開協議(比如HTML4/5),能夠方便用戶使用。
· 安全保障:SaaS供應商需要提供一定的安全機制,不僅要使存儲在云端的用戶數據處于絕對安全的境地,而且也要在客戶端實施一定的安全機制(比如HTTPS)來保護用戶。
· 多租戶(Multi-Tenant)機制:通過多住戶機制,不僅能更經濟地支撐龐大的用戶規模,而且能提供一定的可定制性以滿足用戶的特殊需求。
4. BaaS(Backend as a Service,后端即服務)
BaaS 是一種新型的云服務,旨在為移動和 Web 應用提供后端云服務,包括云端數據/文件存儲、賬戶管理、消息推送、社交媒體整合等。BaaS 是垂直領域的云服務,隨著移動互聯網的持續火熱,BaaS 也受到越來越多的開發者的親睞。它作為應用開發的新模型,可以降低開發者成本,讓開發者只需專注于具體的開發工作。
BaaS是移動中間件的替代品(或者說備選方案),它使用統一的API和SDK來連接移動應用到后端云存儲,傳統的移動中間件通過本地的物理服務把后端服務集成到應用中。而BaaS通過云來集成后端服務。中間件和BaaS的最大不同是它們是否包含或者提供云的服務,BaaS可以說是PaaS平臺在移動垂直領域的延伸,更可以說是移動中間件和云的融合。而現在它們都在以不同的形式來存在,云的優勢很明顯,那就是簡單、成本低廉,中間件的優勢是數據安全、易于擴展。所以從現在的趨勢來看,它們不存在明顯的取代關系,只不過可能以后BaaS的體量會更大。移動中間件將更多的被有能力的企業使用,同時也會有越來越多的中小型企業、開發者選擇使用BaaS。
雖然BaaS屬于PaaS的范疇,但兩者也有區別。Quora上有人簡要描述了二者的不同,BaaS簡化了應用開發流程,而PaaS簡化了應用部署流程。PaaS是一個執行代碼以及管理應用運行環境的開發平臺,用戶通過SVN或者Git之類的代碼版本管理工具與平臺交互,對于開發者來說,PaaS就像是一個容器,輸入是代碼和配置文件,輸出是一個可訪問應用的URL。而BaaS平臺進一步將用戶需求進行了抽象,比如用戶管理,開發者希望創建用戶數據庫表(模型)后,客戶端就可以通過Restful接口直接操作對應的模型,所有的操作都可以被抽象為CRUD。之前,開發者需要創建表、寫接口、寫校驗,而在BaaS平臺中,開發者只需要定義模型,平臺就會自動生成對應的接口,這可以讓開發者更加專注具體的客戶端代碼。專門針對手機端的BaaS服務稱為MBaaS,目前大多的BaaS平臺都屬于這一類。
隨著移動互聯網的發展,移動行業的分工也會像其它行業一樣逐漸細化,后端服務就是這樣被抽象出來,它統一向開發者提供文件存儲、數據存儲、推送服務等實現難度較高的功能,以幫助開發者快速開發移動應用。在國外,BaaS服務已經受到巨頭的重視,2013年4月,Facebook收購Parse;2014年6月,蘋果發布了CloudKit;2014年10月,Google收購了Firebase。Parse、CloudKit、Filrebase都是國外知名的BaaS類產品,蘋果和谷歌通過BaaS服務可以更好的完善其生態圈,Parse也可以幫助Facebook建立它在移動端的地位,從巨頭們在BaaS方面的布局也可以看出BaaS的價值。總體來說,BaaS平臺的優勢包括(來自搜狗百科):
提高效率:減少移動APP開發中各個環節的成本,提高效率。
縮短上市時間:減少從構思到制作過程中的阻礙,并降低上線后的運營成本。
減少交付APP所需的資源:BaaS需要的開發者和IT資源更少。
針對手機和平板優化:BaaS供應商在優化移動APP數據和網絡上花費了大量時間和資源,減少了跨平臺和移動終端的碎片化的問題。
安全和彈性的基礎設施:BaaS提供捆綁的基礎設施,解決了彈性、安全性和性能等運營難題,讓開發者專注開發。
大量的常用API資源:BaaS將常用和必要的第三方API資源匯總,省去開發者單獨收集的麻煩。
它們主要提供的服務包括:
· 數據存儲。用戶可以通過可視化的界面設計數據庫,包括創建Class、定義字段、錄入數據等。同時,BaaS平臺可以自動生成對應的Restful API,用戶可以通過任何語言操作已有的API,另外,平臺也內置用戶系統、角色系統、文件系統、權限控制等模塊。
· 數據推送。結合APP中的標簽設置,針對不同屬性的用戶推送差異化信息,包括定時推送、離線推送等。
版本管理。支持iOS及Android版本的同步或異步管理,在控制臺內流程化進行開發和版本管理。支持增量更新,終端用戶可在應用內進行更新。
· 數據統計。平臺可以查看應用的新增用戶以及活躍用戶數據,并支持自定義事件統計。
區塊鏈
1. Crypto Currency
區塊鏈最為人熟知的應用即密碼學貨幣,也被經常稱為虛擬貨幣。然而,密碼學貨幣并不等同于數字貨幣(Digital Currency),也不等同于虛擬貨幣(Virtual Currency)。密碼學貨幣指依靠密碼技術和校驗技術來創建,分發和維持的數字貨幣,如比特幣(BTC)、萊特貨幣(LTC)等。
2009年出現的比特幣是第一個去中心化的密碼學貨幣。之后,大量的密碼學貨幣涌現,這些密碼學貨幣通常被稱為山寨幣(altcoins)。多數密碼學貨幣都設計成通縮的形態,即貨幣總量的增加速度會逐漸變慢,最終會到達一個固定值,類似貴金屬的產出。這類密碼學貨幣相對于中心化的數字貨幣有一個共同點即去中心化。這類去中心化的實現都是依托于區塊鏈技術種的去中心化屬性。和法定貨幣相比,密碼學貨幣沒有一個集中的發行方,而是由網絡節點的計算生成,誰都有可能參與制造密碼學貨幣,而且可以全世界流通,可以在任意一臺接入互聯網的電腦上交易,不管身處何方,任何人都可以挖掘、收取或轉出密碼學貨幣,并且在交易過程中接收方僅需依靠密碼學算法來確認交易有效性,無需辨認用戶身份信息或發送途徑等。
密碼學貨幣的特點有:
· 去中心化:多數密碼學貨幣是一種分布式的虛擬貨幣,整個網絡由用戶構成,沒有中央銀行。去中心化是多數密碼學貨幣安全與自由的保證。
· 全世界流通:密碼學貨幣可以在任意一臺接入互聯網的電腦或手機上管理,前提是你有證明所有權的私鑰。
· 專屬所有權:密碼學貨幣依靠私鑰確認所有權,它可以被隔離保存在任何存儲介質。除了用戶自己之外無人可以獲取。
但密碼學貨幣也有自己的弊端,比如:
· 51%攻擊,由于密碼學貨幣的去中心化屬性,如果有人控制了整個網絡上的51%的算力,篡改一段時間之前交易的幾率就會變高。
· 多數密碼學貨幣的交易確認時間較長,交易時,為了確認數據準確性,需要和p2p網絡進行交互,得到全網確認后,交易才算完成。此外初次啟動時,也需要消耗大量時間下載歷史交易數據。
2. DLT
密碼學貨幣的火熱高速推動了區塊鏈技術的發展,金融機構越來越多的關注到了這個領域。隨著金融機構的關注度上升,密碼學貨幣中的去中心化屬性也成了熱門話題,公有鏈、私有鏈、聯盟鏈的劃分也逐漸展露。此時,分布式賬本技術(Distributed Ledger Technology,DLT)這個名詞也應運而生。DLT的誕生主要是為了區別于區塊鏈概念,由于密碼學貨幣的去中心化是最大的亮點,其背后的區塊鏈技術也通常被認為自帶去中心化屬性,金融機構為了移除這種去中心化的屬性,就非常需要DLT這個概念。
目前,DLT可以說是區塊鏈技術應用在金融機構中最重要的形態,該技術可以移除當前市場基礎設施中的效率極低和成本高昂的部分。
DLT從實質上說就是一個可以在多個站點、不同地理位置或者多個機構組成的網絡里進行分享的資產數據庫。在一個網絡里的參與者可以獲得一個唯一、真實賬本的副本。賬本里的任何改動都會在所有的副本中被反映出來,反應時間會在幾分鐘甚至是幾秒內。在這個賬本里存儲的資產可以是金融、法律定義上的、實體的或是電子的資產。在這個賬本里存儲的資產的安全性和準確性是通過公私鑰以及簽名的使用去控制賬本的訪問權,從而實現密碼學基礎上的維護。根據網絡中達成共識的規則,賬本中的記錄可以由一個、一些或者是所有參與者共同進行更新。
DLT的這些特點都使得其有可能稱為全新的基礎架構模式,因此,很有潛力幫助政府征稅、發放福利、發行護照、登記土地所有權、保證貨物供應鏈的運行,并從整體上確保政府記錄和服務的正確性。例如在英國國民健康保險制度(NHS)里,這項技術通過改善和驗證服務的送達以及根據精確的規則去安全地分享記錄,有潛力改善醫療保健系統。對這些服務的消費者來說,這項技術根據不同的情況,有潛力讓消費者們去控制個人記錄的訪問權并知悉其他機構對其記錄的訪問情況。
3. Smart Contract
在區塊鏈技術發展的初期,密碼學貨幣或者DLT中的數據變化都是基于明確的幾種邏輯。顯然,這種模式大家是不會滿足的。因此,很快就有人將智能合約和區塊鏈技術進行了結合。智能合約是能夠自動執行合約條款的計算機程序。未來的某一天,這些程序可能取代處理某些特定金融交易的律師和銀行。智能合約的潛能不只是簡單的轉移資金,一輛汽車或者一所房屋的門鎖,都能夠被連接到物聯網上的智能合約被打開。
智能合約其實在區塊鏈之前就有,但是偏概念,直到區塊鏈到來后才開始有了實用價值的應用,特別是金融和物聯網領域。智能合約的理念可以追溯到1994年,幾乎與互聯網(world wide web)同時出現。為比特幣打下基礎而受到廣泛贊譽的密碼學家尼克薩博(Nick Szabo)首次提出了“智能合約”這一術語。從本質上講,這些自動合約的工作原理類似于其它計算機程序的if-then語句。智能合約只是以這種方式與真實世界的資產進行交互。當一個預先編好的條件被觸發時,智能合約執行相應的合同條款。
區塊鏈技術的出現和被廣泛使用,則改變阻礙智能合約實現的現狀,從而薩博的理念有了重生的機會。讓我們舉一個簡單的例子,以足球比賽為例。假如你賭A隊贏,你的朋友賭B隊贏。此時,你和你的朋友可以將賭注寫成一個區塊鏈上的智能合約。當比賽結束時,智能合約能夠通過媒體確認比賽結果然后自動結算,此時你們不需要依賴任何第三方機構。這就是智能合約的一個例子。
智能合約的最大特點就是代碼的執行是自動的:要么成功執行,或者所有的狀態變化都撤消(包括從當前失敗的合約中已經送或接收的信息。)這是很重要的,因為它避免了合約部分執行的情況(例如,在證券購買交易中,證券所有者已經轉移發送了證券,但是密碼學貨幣的支付轉移卻失敗了)。在區塊鏈環境中,這尤為重要,因為沒有辦法來撤消執行錯誤所帶來的不好的后果(而且如果對手不配合的話,根本就沒有辦法逆轉交易)。
智能合約理論上可以給所有使用合約的場景帶來變革。例如,證券的登記和清算無需再通過證券交易所,購買保險和理賠無需通過保險公司,投融資無需通過代理公司等等。
評論
查看更多