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

熱線電話:13121318867

登錄
首頁精彩閱讀快速了解區(qū)塊鏈背后的三項基本技術(shù)
快速了解區(qū)塊鏈背后的三項基本技術(shù)
2018-03-17
收藏

快速了解區(qū)塊鏈背后的三項基本技術(shù)

如果問十個人"什么是區(qū)塊鏈技術(shù)?",你可能會得到十種不同的答案。理解區(qū)塊鏈的最佳方法是逐步了解當(dāng)中的基本技術(shù)。

因此在本文中,我將介紹區(qū)塊鏈技術(shù)的三個主要部分:區(qū)塊鏈本身、點對點網(wǎng)絡(luò)和共識機制。一旦缺少任何一個部分,比特幣將無法存在。首先讓我們看到區(qū)塊鏈。

區(qū)塊鏈 (blockchain)

簡而言之,區(qū)塊鏈只是數(shù)據(jù)結(jié)構(gòu)化的一種方式。區(qū)塊鏈是分類賬:記錄賬務(wù)記錄的文件。

可以把這個文件理解為一本永不會完的書。

書上的每一頁都記錄著信息,同時在底部標有頁碼。通過頁碼,你馬上可以知道該頁面所屬的位置,比如49頁顯然位于48頁與50頁之間。

就像頁面一樣,區(qū)塊也都充滿了信息。盡管區(qū)塊沒有確切的編號,但它們附有時間戳,具有與編號相同的功能。新的區(qū)塊總是加在具有最新時間戳的區(qū)塊之后,因此形成了鏈。

區(qū)塊鏈很棒的一點是當(dāng)中使用了加密技術(shù),因此當(dāng)書中某一頁的信息發(fā)生改變時,我們都會注意到。該屬性使區(qū)塊鏈成為很好的數(shù)據(jù)結(jié)構(gòu),用來跟蹤記錄任何有價值的事物。


區(qū)塊鏈的用例

在比特幣的區(qū)塊鏈中,區(qū)塊包含比特幣的交易信息。區(qū)塊中記錄了誰發(fā)送給誰多少比特幣。

由于區(qū)塊鏈從一開始就被用于跟蹤所有比特幣的流向,因此通過檢查分類賬可以明確誰在某個時間擁有哪些比特幣。在任何時間內(nèi)"誰擁有多少"就是所謂區(qū)塊鏈的當(dāng)前"狀態(tài)"。

交易只有在包含到區(qū)塊中,并被添加到區(qū)塊鏈中才會發(fā)生,因此,當(dāng)一個區(qū)塊被添加到區(qū)塊鏈中時,區(qū)塊鏈的狀態(tài)就被更新。畢竟,比特幣發(fā)送了移動。

這意味著如果我想驗證某人是否真的對我做了交易,我必須能夠檢查區(qū)塊鏈的狀態(tài)。為了做到這一點,分類帳必須是公開的。這里就需要用到點對點網(wǎng)絡(luò)。

點對點網(wǎng)絡(luò) 

(peer-to-peer networks)

為了將區(qū)塊鏈作為交易數(shù)據(jù)的分類帳,我必須要檢查區(qū)塊鏈,查看是否有人對我的賬號或錢包進行了交易。

如果區(qū)塊鏈僅存儲在一臺計算機上,并且恰好被關(guān)閉了,那么這是很煩人的。因此,區(qū)塊鏈的當(dāng)前狀態(tài)需要能夠下載、同步并能被全球的計算機所提供。

這些計算機被稱為"節(jié)點",它們在點對點網(wǎng)絡(luò)中運行,用來確保區(qū)塊鏈的安全性和最新性。每個節(jié)點都存儲著區(qū)塊鏈完整的最新版本。每當(dāng)添加新的區(qū)塊時,所有節(jié)點都會更新其區(qū)塊鏈。

使用點對點網(wǎng)絡(luò)具有以下優(yōu)點:

·可以隨時查看自己區(qū)塊鏈的狀態(tài);

·無需通過某一方查看區(qū)塊鏈的真實狀態(tài);

·無需依靠一臺服務(wù)器的安全性去確保區(qū)塊鏈是否安全;

·不法分子必須同時攻擊數(shù)千臺計算機,而不是一臺服務(wù)器;

·區(qū)塊鏈不會被刪除,因為它必須被所有節(jié)點刪除。

基于服務(wù)器的模型 vs 點對點網(wǎng)絡(luò)

這很重要,但以上并不意味著區(qū)塊鏈就足夠安全,能夠用于存儲或交易任何有價值的事物。

例如,如何確認區(qū)塊鏈中的(交易)數(shù)據(jù)是正確的?如何確認區(qū)塊中沒有無效的交易?如果存在不同版本的區(qū)塊鏈,如何確認哪個顯示了區(qū)塊鏈的真實狀態(tài)?

這些問題能夠通過共識機制解決,這種機制是通過點對點網(wǎng)絡(luò)實現(xiàn)的。

共識機制 (consensus mechanism)

Napster公司早在1999年就使用了點對點機制。

區(qū)塊鏈在比特幣出現(xiàn)之前就已經(jīng)存在。

比特幣神秘的匿名創(chuàng)始人——中本聰,在白皮書中通過基于密碼學(xué)的共識機制,他巧妙地將兩者結(jié)合起來。共識機制允許點對點網(wǎng)絡(luò)中的節(jié)點一起合作,而不必相互了解或信任。

"共識算法的目的是根據(jù)特定的狀態(tài)轉(zhuǎn)換規(guī)則,考慮到安全的更新狀態(tài),其中執(zhí)行狀態(tài)轉(zhuǎn)換的權(quán)利分布在用戶中,這些用戶能夠通過算法共同進行交易。"

——以太坊創(chuàng)始人 Vitalik Buterin

如果你還是不太懂,那么這樣理解,其實共識機制就是一系列規(guī)則,網(wǎng)絡(luò)中的節(jié)點通過運行網(wǎng)絡(luò)軟件來達成一致。這些規(guī)則確保網(wǎng)絡(luò)正常工作并保持同步。

共識協(xié)議規(guī)定:

· 如何將區(qū)塊添加到區(qū)塊鏈中;

· 區(qū)塊何時被認為是有效的;

· 如何解決沖突。

添加區(qū)塊

不同的區(qū)塊鏈添加區(qū)塊的方式各不相同。其中最廣為人知的共識機制是比特幣的工作量證明(Proof of Work )。

工作量證明的第一條規(guī)則是,平均每10分鐘會在區(qū)塊鏈中添加一個區(qū)塊。

促進這一過程是所謂的"挖礦"。試圖在區(qū)塊鏈中鏈添加區(qū)塊的節(jié)點(稱為"礦工")使用計算機的計算能力嘗試解決密碼"難題"。規(guī)則規(guī)定,只有這個難題被解決時,區(qū)塊才能被添加到區(qū)塊鏈中。

解決這一難題的礦工"挖"新的區(qū)塊,并增加到區(qū)塊鏈中,同時礦工會得到網(wǎng)絡(luò)的獎勵。預(yù)定數(shù)量的新幣將被創(chuàng)建,并獎勵給礦工,以及該區(qū)塊中包含的所有交易的成本。

隨后,所有礦工將開始挖下一個區(qū)塊。

比特幣挖礦設(shè)備。為了獲得足夠的挖掘處理能力,你需要大量的GPU。

比特幣的工作量證明不是唯一的共識機制。分布式賬本中也常使用權(quán)益證明(Proof of Stake)。在基于權(quán)益證明的機制中,某人可以對他的幣進行"下注",以便被選中從而添加下一個區(qū)塊。從某種意義上相當(dāng)于,一位賭徒說:"我用幣打賭我正確添加了這個區(qū)塊。" 如果他說謊就失去幣。

關(guān)于哪種共識機制是最好的仍存在很大的爭論。盡管如此,無論區(qū)塊是如何創(chuàng)建的,網(wǎng)絡(luò)中的其他節(jié)點仍需要決定該區(qū)塊是否有效。

區(qū)塊的有效性

當(dāng)?shù)V工解決這個難題并挖到區(qū)塊時,網(wǎng)絡(luò)中的所有節(jié)點將檢查該區(qū)塊是否有效,并將其添加到區(qū)塊鏈的副本中。節(jié)點首先要對有效性達成一致。只有這樣,網(wǎng)絡(luò)才會同步并更新區(qū)塊鏈的狀態(tài)。

只有當(dāng)遵循共識機制的規(guī)則時,節(jié)點才會將新的區(qū)塊添加到區(qū)塊鏈中。他們運行的軟件將檢查區(qū)塊是否有效。無效的區(qū)塊將被拒絕。

當(dāng)然,區(qū)塊與其中包含的交易有效性一致。以比特幣為例,協(xié)議規(guī)定,如果首先沒從他人那兒收到比特幣,或者挖到比特幣,那么你將無法發(fā)送比特幣。

換句話說,如果發(fā)送者收到足夠的比特幣進行交易,節(jié)點將檢查區(qū)塊中的所有交易。為此,需要檢查網(wǎng)絡(luò)的狀態(tài)。

假設(shè)我已收到1比特幣,我之后將其發(fā)送給Alice。接著我試圖將相同的比特幣發(fā)送給Bob。只要我的第一筆交易被添加到鏈中,所有節(jié)點都會更新區(qū)塊鏈,從而得出我已經(jīng)沒有那個比特幣了。那么我給Bob的交易將會被節(jié)點拒絕。節(jié)點發(fā)現(xiàn)該區(qū)塊不遵循規(guī)則時,則不會將該區(qū)塊更新到區(qū)塊鏈中。

規(guī)則還規(guī)定,交易只有在比特幣所有者的進行數(shù)字簽名時才有效。只有錢幣的所有者才能對交易簽字。因此,只有你可以花費你的比特幣。

如何解決沖突

在偶然的情況下,兩名礦工可能同時向區(qū)塊鏈中添加有效區(qū)塊。想象一下,一部分節(jié)點接受了一個有效的區(qū)塊,其他節(jié)點接受了另一個區(qū)塊。前者包括我與Alice的交易,后者包括我與Bob的交易。現(xiàn)在同時存在兩種不同的區(qū)塊鏈狀態(tài)!

我們將其稱為(無意)的"分叉(fork)":區(qū)塊鏈分成兩個不同的鏈。Alice和Bob誰才收到了我的比特幣?兩條鏈中的哪一條是'真正的'區(qū)塊鏈?

通常會通過一條簡單的規(guī)則解決這個問題:最長的區(qū)塊鏈獲勝。

區(qū)塊鏈分叉的可視化

當(dāng)出現(xiàn)分叉時,一些礦工將開始在其中一條上進行挖礦,而另一些開始在另一條上進行挖礦。不可避免的是,一條區(qū)塊鏈將比另一條擁有更多的礦工,因此添加區(qū)塊的速度會更快。其他的礦工將換到較長的區(qū)塊鏈上,那么分叉的區(qū)塊鏈將會消亡。這對主區(qū)塊鏈沒有任何損失。

為什么會這樣?

因為礦工是以自我利益行事的經(jīng)濟行為者。礦工沒有興趣對會消亡的分叉區(qū)塊鏈進行挖礦。分叉區(qū)塊鏈上的所有交易從未在主區(qū)塊鏈上發(fā)生,這意味著在分叉鏈上挖礦的礦工不會因為其工作而獲得獎勵。

在極少數(shù)情況下,分叉鏈上可能產(chǎn)生大量的挖礦能力。這時則需要一段時間才能確定哪條是主區(qū)塊鏈。一般認為,在6個區(qū)塊后確認交易是明智之舉。

區(qū)塊鏈分叉的可視化。一般不會超過5個區(qū)塊。

在區(qū)塊鏈中添加區(qū)塊需要巨大的處理能力,以及最長的區(qū)塊鏈取勝的規(guī)則,這保證了區(qū)塊鏈的安全性。攻擊網(wǎng)絡(luò)的唯一方法就是回到區(qū)塊鏈中的某個區(qū)塊,進行分叉并從那里挖新區(qū)塊。然而要做到這一點,攻擊者必須重新完成礦工的所有工作,并趕上主區(qū)塊鏈。如果沒有比整個礦工網(wǎng)絡(luò)更多的計算能力,這幾乎是不可能實現(xiàn)的。簡單地說,這種操作所需的電力和GPU成本非常昂貴。

原文鏈接:

https://hackernoon.com/3-steps-to-understanding-blockchain-8a285572daa3

如何掌握區(qū)塊鏈技術(shù)

區(qū)塊鏈創(chuàng)新的推動以及數(shù)字經(jīng)濟的蓬勃發(fā)展離不開人才的培育,而CDA數(shù)據(jù)分析師作為行業(yè)的領(lǐng)頭羊,緊密結(jié)合當(dāng)前區(qū)塊鏈發(fā)展實際與人才需求結(jié)構(gòu),重磅推出CDA區(qū)塊鏈學(xué)院。

掃描二維碼,進入 CDA 區(qū)塊鏈學(xué)院,學(xué)習(xí)區(qū)塊鏈知識,選擇很多,站對未來。

掃描二維碼 加入CDA區(qū)塊鏈學(xué)院

數(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 進行初始化 // 參數(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); }