99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
首頁精彩閱讀區(qū)塊鏈技術(shù)入門詳解
區(qū)塊鏈技術(shù)入門詳解
2018-07-06
收藏

區(qū)塊鏈技術(shù)入門詳解

區(qū)塊鏈?zhǔn)悄壳耙粋€比較熱門的新概念,蘊含了技術(shù)與金融兩層概念。從技術(shù)角度來看,這是一個犧牲一致性效率且保證最終一致性的的分布式的數(shù)據(jù)庫,當(dāng)然這是比較片面的。從經(jīng)濟(jì)學(xué)的角度來看,這種容錯能力很強的點對點網(wǎng)絡(luò),恰恰滿足了共享經(jīng)濟(jì)的一個必須要求——低成本的可信環(huán)境。

1. 技術(shù)人員看待區(qū)塊鏈的正確姿勢

區(qū)塊鏈雖然是一個新興的概念,但它依賴的技術(shù)一點也不新,如非對稱加密技術(shù)、P2P網(wǎng)絡(luò)協(xié)議等。好比樂高積木,積木塊是有限的,但是不同組合卻能產(chǎn)生非常有意思的事物。

我接觸過一些工程師,初次接觸區(qū)塊鏈時,不約而同的表達(dá)了:都是成熟的技術(shù),不就是分布式存儲嘛。站在工程師的角度,第一反應(yīng)將這種新概念映射到自己的知識框架中,是非常自然的。但是細(xì)究之下發(fā)現(xiàn),這種片面的理解可能將對區(qū)塊鏈的理解帶入一個誤區(qū),那就是作為一個技術(shù)人員,忽略了區(qū)塊鏈的經(jīng)濟(jì)學(xué)特性——一個權(quán)力分散且完全自治的系統(tǒng)。

區(qū)塊鏈本質(zhì)上是一個基于P2P的價值傳輸協(xié)議,我們不能只看到了P2P,而看不到價值傳輸。同樣的,也不能只看到了價值傳輸,而看不到區(qū)塊鏈的底層技術(shù)。

可以這么說,區(qū)塊鏈更像是一門交叉學(xué)科,結(jié)合了P2P網(wǎng)絡(luò)技術(shù)、非對稱加密技術(shù)、宏觀經(jīng)濟(jì)學(xué)、經(jīng)濟(jì)學(xué)博弈等等知識,構(gòu)建的一個新領(lǐng)域——針對價值互聯(lián)網(wǎng)的探索。

那什么是價值互聯(lián)網(wǎng) ?

價值互聯(lián)網(wǎng)可以是當(dāng)下如日中天的電子商務(wù)所衍生的支付業(yè)務(wù)。但,真的只是支付領(lǐng)域嗎?很顯然這是不夠的,一級資本市場,實體資產(chǎn)確權(quán)與轉(zhuǎn)移,證券登記交割、征信與反欺詐。我們再仔細(xì)想想,我們的各大電商平臺的專業(yè)差評師,惡意刷單還少嗎?

如今的金融領(lǐng)域,除了支付比較便利之外,在其他絕大部分的業(yè)務(wù)中,我們就像是被套著鎖鏈走路一樣,我們反復(fù)確認(rèn),反復(fù)審核,反復(fù)監(jiān)督,我們反復(fù)構(gòu)建一個又一個的大大小小的高可用集群,保證線上服務(wù)的可靠性與連續(xù)性,我們雇傭一個又一個的安全工程師,交付一個又一個的滲透測試項目。為什么?因為作弊的成本太低了,低到只要改數(shù)據(jù)庫的一行記錄就可以提取上百萬的資金。

強大的互聯(lián)網(wǎng)給了我們成本幾乎為零的高速信息傳輸通道,卻沒有一個成本低廉可靠的高速價值傳輸通道,那么這也就是區(qū)塊鏈即將帶來的。

區(qū)塊鏈?zhǔn)且粋€公共的分布式總賬,下面從技術(shù)角度簡單介紹一下:

想象一個100臺的分布式數(shù)據(jù)庫集群,現(xiàn)在的情況是這100個節(jié)點實際上的擁有者是一個機構(gòu),并且所有節(jié)點處在該機構(gòu)的內(nèi)網(wǎng)當(dāng)中,所以這個機構(gòu)想讓這100個數(shù)據(jù)庫節(jié)點干嘛就干嘛,換句話說這100個節(jié)點之間是處于一個可信任的環(huán)境,并且受控于一個實體,這個實體具有絕對仲裁分配權(quán)。

另外的情況是這樣的,想象這100個節(jié)點分別歸不同的人所有,且每個人的節(jié)點數(shù)據(jù)都是一樣的,即完全冗余,并且所有的節(jié)點是處在廣域網(wǎng)當(dāng)中,換句話說就是這100個節(jié)點之間是不信任的,且不存在一個實體,它擁有絕對仲裁權(quán)。

現(xiàn)在考慮第二種情況,采用什么樣的算法(共識模型)能夠提供一個可信任的環(huán)境,使:

每個節(jié)點交換數(shù)據(jù)過程不被篡改;交換歷史記錄不可被篡改;

每個節(jié)點的數(shù)據(jù)會同步到最新數(shù)據(jù),且承認(rèn)經(jīng)過共識的最新數(shù)據(jù);

基于少數(shù)服從多數(shù)的原則,整體節(jié)點維護(hù)的數(shù)據(jù)本身客觀反映了交換歷史。

區(qū)塊鏈本質(zhì)上就是要解決以上第二種情況的一種技術(shù)方案,更確切的說應(yīng)該叫分布式的冗余的鏈?zhǔn)娇値け痉桨?。有關(guān)區(qū)塊鏈的一些要素,在我以往的文章里有總結(jié)過一些:

包含一個分布式數(shù)據(jù)庫

分布式數(shù)據(jù)庫是區(qū)塊鏈的物理載體,區(qū)塊鏈?zhǔn)墙灰椎倪壿嬢d體,所有核心節(jié)點都應(yīng)包含該條區(qū)塊鏈數(shù)據(jù)的全副本

區(qū)塊鏈按時間序列化區(qū)塊,且區(qū)塊鏈?zhǔn)钦麄€網(wǎng)絡(luò)交易數(shù)據(jù)的唯一主體

區(qū)塊鏈只對添加有效,對其他操作無效

基于非對稱加密的公私鑰驗證

記賬節(jié)點要求拜占庭將軍問題可解/避免

共識過程(consensus progress)是演化穩(wěn)定的,即面對一定量的不同節(jié)點的矛盾數(shù)據(jù)不會崩潰。

共識過程能夠解決double-spending問題

所以作為一個技術(shù)人員,不應(yīng)當(dāng)只看到了區(qū)塊鏈所依賴的技術(shù),更應(yīng)該關(guān)注區(qū)塊鏈以外的點和面,綜合來看,區(qū)塊鏈將會有趣得多。

2. 區(qū)塊鏈的一般性架構(gòu)介紹

有關(guān)區(qū)塊鏈本身的發(fā)展史,網(wǎng)絡(luò)上資料比較多,本文不再贅述。

而有關(guān)區(qū)塊鏈技術(shù)的介紹,在各個區(qū)塊鏈平臺的社區(qū)是有詳細(xì)資料的,但是針對這些資料的總結(jié),以及抽象出一共通概念的介紹,還是鳳毛麟角,本文嘗試總結(jié)一下。

在介紹之前,我想稍微介紹一下公有鏈,聯(lián)盟鏈的概念,這些概念是以太坊創(chuàng)始人Vitalik提出的,我在這些概念的基礎(chǔ)上做了一些研究。

其實區(qū)分公有鏈、聯(lián)盟鏈很簡單,只要看這個區(qū)塊鏈的訪問權(quán)限就可以了,如果訪問該區(qū)塊鏈需要獲得鏈上節(jié)點的許可,那么這是一個聯(lián)盟鏈,否則是公有鏈。

根據(jù)名稱,我們也可以”望文生義“,公有表示一個完全開放的網(wǎng)絡(luò),聯(lián)盟表示一個半開放的網(wǎng)絡(luò),成員之間是共享的,非成員身份是沒有自由訪問權(quán)限的,所以我們也稱聯(lián)盟鏈為許可鏈。

下面我們來看幾個比較主流的區(qū)塊鏈平臺(公有鏈,皆開源):

比特幣 Bitcoin

以太坊 Ethereum/經(jīng)典以太坊 Ethereum Classic

比特股 Bitshares

我一般戲稱為”三巨頭“,從生態(tài)上來看,比特幣是最為成熟穩(wěn)定的,以太坊更像是一個沖在前面的勇士,比特股相比前兩位生態(tài)要小很多,但是從創(chuàng)新的角度,也不亞于前兩位。

其他的很多項目,是從這三個區(qū)塊鏈上衍生出來的,所以以這三個為基礎(chǔ),基本上可以吃透區(qū)塊鏈了。

不得不提的還有Linux基金會項目——HyperLedger項目(主打聯(lián)盟鏈,開源),也是旨在打造一個通用的區(qū)塊鏈技術(shù),不過我認(rèn)為目前尚在開發(fā)迭代當(dāng)中,還沒有具體的應(yīng)用案例,按下不講。

另外還有一些銀行寡頭間的聯(lián)盟鏈項目——R3 CEV項目(聯(lián)盟鏈,閉源),以及中國的R3項目——ChinaLedger(聯(lián)盟鏈,閉源),當(dāng)然這些不是源的,我無法獲得有用的資料進(jìn)行分析,所以就不展開了。

從技術(shù)上來看,針對不同的業(yè)務(wù)場景,對區(qū)塊鏈有不同需求,比如實時結(jié)算業(yè)務(wù),要求區(qū)塊鏈提供秒級的交割,相對應(yīng)的就是出塊速度的要求,而出塊速度過快往往會導(dǎo)致區(qū)塊鏈分叉(fork),形成孤兒鏈,孤兒鏈?zhǔn)菬o效的,那么交易也就作廢了,影響了區(qū)塊鏈的最終一致性。

如果頻繁產(chǎn)生分叉造成相當(dāng)比例的用戶交易失效,那么可以認(rèn)為系統(tǒng)是不可靠的。

如果我們將這種實時性要求比較高的業(yè)務(wù)安插到聯(lián)盟鏈中,就可以控制風(fēng)險,通過調(diào)整共識算法,利用快速一致共識模型(Consensus Model)來避免上述問題,雖然不如公有鏈那么健壯,但對某些特殊場景足夠了。

所以架構(gòu)層面,對公有鏈和聯(lián)盟鏈的技術(shù)也要差異化對待。

不過客戶端整體的設(shè)計還是有一些通用的概念的,如下圖:

一個區(qū)塊鏈至少分為三層,最底層是一些通用的基礎(chǔ)模塊,比如基礎(chǔ)加密算法,網(wǎng)絡(luò)通訊庫,流處理,線程封裝,消息封裝與解碼,系統(tǒng)時間等;

中間一層是區(qū)塊鏈的核心模塊,一般包含了區(qū)塊鏈的主要邏輯,如P2P網(wǎng)絡(luò)協(xié)議,共識模塊,交易處理模塊,交易池模塊,簡單合約或者智能合約模塊,嵌入式數(shù)據(jù)庫處理模塊,錢包模塊等等;

最上面一層,往往都是基于Json Standard RPC的交互模塊,基于Json-RPC,我們還可以做出更好的UI界面,也可以是一個web-service。

如果區(qū)塊鏈 支持智能合約,可能還要分更多的層,比如增加BaaS層,區(qū)塊鏈上的智能合約提供自治的服務(wù),比如下面這張以太坊的架構(gòu)圖(來自Google,僅作參考):

這種分層更加關(guān)注的是區(qū)塊鏈本身的分層,即業(yè)務(wù)上的視角,而不完全是技術(shù)的。

我們再轉(zhuǎn)向比特幣的設(shè)計:

比特幣幾個模塊之間的耦合度其實比較高,而且有不少歷史包袱,比特幣的發(fā)明者——中本聰在開發(fā)比特幣的時候,使用VC++開發(fā),而VC++的標(biāo)準(zhǔn)庫中的sstream流處理性能非常感人,不得不放棄,自行實現(xiàn)了了基于vector 的流處理容器。而隨著c++11的推出以及標(biāo)準(zhǔn)庫的更新迭代,性能不可同日而語。

從整張圖我們可以看出,比特幣的模塊比較少,也比較簡單。chain-paramters描述了整個區(qū)塊鏈的參數(shù)設(shè)置,wallet是與地址/加密還有存儲相關(guān)的,mem-pool是未確認(rèn)的交易池。得益于比特幣核心開發(fā)者的不朽貢獻(xiàn),相比中本聰時代的比特幣代碼,現(xiàn)在的比特幣代碼質(zhì)量已經(jīng)相當(dāng)不錯了。

以上無論哪種設(shè)計,一般都要從P2P網(wǎng)絡(luò)協(xié)議作為切入,作為一個P2P錢包,既要提供Service也要提供Client,作為Service依賴P2P網(wǎng)絡(luò)協(xié)議,作為Client依賴Json-RPC。

需要指出的是,目前”三巨頭”所使用的賬戶模型是不同的(所謂賬戶模型是指賬戶記賬方法),比特幣使用UXTO模型,以太坊和比特股使用賬戶余額模型。

UXTO模型(Unspent Transaction Outputs (UTXOs) ):此模型表達(dá)了一種轉(zhuǎn)移的概念,即任何產(chǎn)生的新幣,在以后的生命周期中,只有轉(zhuǎn)移,沒有消亡,轉(zhuǎn)移實質(zhì)上是由加密算法的簽名與驗證控制的:

賬戶余額模型:賬戶余額模型摒棄了這種強驗證的賬戶模型,即賬戶余額回歸到數(shù)字加減,這樣做提升了交易的效率。

3. 共識算法與分布式

終于來到重點了,本文每節(jié)其實都可以展開成為獨立的文章,內(nèi)容所限,簡單講。

所謂區(qū)塊鏈共識過程,在上文有所提及,是指如何將全網(wǎng)交易數(shù)據(jù)客觀記錄并且不可篡改的過程。目前"三巨頭"分別使用不同的共識算法(Consensus Algorithm), 比特幣使用工作量證明PoW(Proof of Work),以太坊即將轉(zhuǎn)換為權(quán)益證明PoS(Proof of Stake),比特股使用授權(quán)權(quán)益證明DPoS(Delegated Proof of Stake)。

以上這些算法我稱之為“經(jīng)濟(jì)學(xué)”的算法,所謂經(jīng)濟(jì)學(xué)的算法,是指讓作弊成本可計算,且讓作弊成本往往遠(yuǎn)大于作弊帶來的收益,即作弊無利可圖,通過這種思想構(gòu)造一個用于節(jié)點之間博弈的算法,并使之趨向一個穩(wěn)定的平衡。

相對應(yīng)的我們還有計算機領(lǐng)域的分布式一致性算法,例如Paxos、Raft,我也稱之為傳統(tǒng)分布式一致性算法。

他們之間的最大區(qū)別是:系統(tǒng)在拜占庭將軍(Byzantine Generals Problem)情景下的可靠性,即拜占庭容錯(PBFT算法支持拜占庭容錯)。然而無論是Paxos還是Raft算法,理論上都可能會進(jìn)入無法表決通過的死循環(huán)(盡管這個概率其實是非常非常低的),但是他們都是滿足safety的,只是放松了liveness的要求, PBFT也是這樣。

下面是一些傳統(tǒng)分布式一致性算法和區(qū)塊鏈共識過程的異同點。先來看相同點:

Append only

強調(diào)序列化

少數(shù)服從多數(shù)原則

分離覆蓋的問題:即長鏈覆蓋短鏈區(qū)塊,多節(jié)點覆蓋少數(shù)節(jié)點日志

這是不同點:

傳統(tǒng)分布式一致性算法大多不考慮拜占庭容錯(Byzanetine Paxos除外),即假設(shè)所有節(jié)點只發(fā)生宕機、網(wǎng)絡(luò)故障等非人為問題,并不考慮惡意節(jié)點篡改數(shù)據(jù)的問題;

傳統(tǒng)分布式一致性算法是面向日志(數(shù)據(jù)庫)的,即更通用的情況,而區(qū)塊鏈共識模型面向交易的,所以嚴(yán)格來說,傳統(tǒng)分布式一致性算法應(yīng)該處于區(qū)塊鏈共識模型的下面一層。

考慮上面的不同點,結(jié)合公有鏈和聯(lián)盟鏈的特征,我們有:

聯(lián)盟鏈:半封閉生態(tài)的價值網(wǎng)絡(luò),存在對等的不信任節(jié)點,如某某協(xié)會成員之間。

公有鏈:開放生態(tài)的價值網(wǎng)絡(luò),這層主要是為行業(yè)鏈和私有鏈提供全球交易網(wǎng)絡(luò)。

由于聯(lián)盟行業(yè)鏈其半封閉半開放特性,使用Delegated Proof of XXX 是可行的,可以考慮以傳統(tǒng)一致性算法作為基礎(chǔ)加入拜占庭容錯/安全防護(hù)機制進(jìn)行改進(jìn)也是可以的。

而針對公有鏈,PoW/Pos/DPos等“經(jīng)濟(jì)學(xué)”的算法可能是最優(yōu)算法。

技術(shù)上,以上不同的共識算法,我們很多新開發(fā)區(qū)塊鏈都相應(yīng)的支持一個特性:共識模塊可插拔,以應(yīng)對不同場景下的要求。

下圖是一張未來區(qū)塊鏈生態(tài)示意圖:

公有鏈提供可信可靠的價值傳輸網(wǎng)絡(luò),上面可以繼續(xù)組建去中心化應(yīng)用(DAPP)或者部署聯(lián)盟鏈,甚至傳統(tǒng)數(shù)據(jù)庫都行,在上層搭建C端應(yīng)用。

4. 數(shù)字資產(chǎn)與價值流通網(wǎng)絡(luò)

這里有張未來區(qū)塊鏈發(fā)展的示意圖:

Metaverse元界白皮書-CN(概要)

“三巨頭”中,比特幣在“數(shù)字貨幣”處,比特股在“去中心化交易所”附近,以太坊在“去中心化組織”處。而實際上,區(qū)塊鏈和現(xiàn)實的接觸點,還在圖示位置。

所以區(qū)塊鏈仍是一個正在成長的事物,結(jié)合圖5,我們希望構(gòu)建一個基礎(chǔ)設(shè)施完善的價值傳輸網(wǎng)絡(luò),上層應(yīng)用豐富的區(qū)塊鏈生態(tài),仍然需要付出巨大的努力。

下一步目標(biāo),是將資產(chǎn)數(shù)字化(類比資產(chǎn)證券化),例如我們可以將珍稀物品(藝術(shù)品/古董)數(shù)字化、知識產(chǎn)權(quán)數(shù)字化、票據(jù)基金等收益權(quán)數(shù)字化,將極大的提升市場運作效率,配備智能合約,甚至人工智能,可編程社會不再是夢想。


數(shù)據(jù)分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數(shù)據(jù)分析師資訊
更多

OK
客服在線
立即咨詢
客服在線
立即咨詢
') } function initGt() { var handler = function (captchaObj) { captchaObj.appendTo('#captcha'); captchaObj.onReady(function () { $("#wait").hide(); }).onSuccess(function(){ $('.getcheckcode').removeClass('dis'); $('.getcheckcode').trigger('click'); }); window.captchaObj = captchaObj; }; $('#captcha').show(); $.ajax({ url: "/login/gtstart?t=" + (new Date()).getTime(), // 加隨機數(shù)防止緩存 type: "get", dataType: "json", success: function (data) { $('#text').hide(); $('#wait').show(); // 調(diào)用 initGeetest 進(jìn)行初始化 // 參數(shù)1:配置參數(shù) // 參數(shù)2:回調(diào),回調(diào)的第一個參數(shù)驗證碼對象,之后可以使用它調(diào)用相應(yīng)的接口 initGeetest({ // 以下 4 個配置參數(shù)為必須,不能缺少 gt: data.gt, challenge: data.challenge, offline: !data.success, // 表示用戶后臺檢測極驗服務(wù)器是否宕機 new_captcha: data.new_captcha, // 用于宕機時表示是新驗證碼的宕機 product: "float", // 產(chǎn)品形式,包括:float,popup width: "280px", https: true // 更多配置參數(shù)說明請參見:http://docs.geetest.com/install/client/web-front/ }, handler); } }); } function codeCutdown() { if(_wait == 0){ //倒計時完成 $(".getcheckcode").removeClass('dis').html("重新獲取"); }else{ $(".getcheckcode").addClass('dis').html("重新獲取("+_wait+"s)"); _wait--; setTimeout(function () { codeCutdown(); },1000); } } function inputValidate(ele,telInput) { var oInput = ele; var inputVal = oInput.val(); var oType = ele.attr('data-type'); var oEtag = $('#etag').val(); var oErr = oInput.closest('.form_box').next('.err_txt'); var empTxt = '請輸入'+oInput.attr('placeholder')+'!'; var errTxt = '請輸入正確的'+oInput.attr('placeholder')+'!'; var pattern; if(inputVal==""){ if(!telInput){ errFun(oErr,empTxt); } return false; }else { switch (oType){ case 'login_mobile': pattern = /^1[3456789]\d{9}$/; if(inputVal.length==11) { $.ajax({ url: '/login/checkmobile', type: "post", dataType: "json", data: { mobile: inputVal, etag: oEtag, page_ur: window.location.href, page_referer: document.referrer }, success: function (data) { } }); } break; case 'login_yzm': pattern = /^\d{6}$/; break; } if(oType=='login_mobile'){ } if(!!validateFun(pattern,inputVal)){ errFun(oErr,'') if(telInput){ $('.getcheckcode').removeClass('dis'); } }else { if(!telInput) { errFun(oErr, errTxt); }else { $('.getcheckcode').addClass('dis'); } return false; } } return true; } function errFun(obj,msg) { obj.html(msg); if(msg==''){ $('.login_submit').removeClass('dis'); }else { $('.login_submit').addClass('dis'); } } function validateFun(pat,val) { return pat.test(val); }