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

熱線電話:13121318867

登錄
首頁精彩閱讀區(qū)塊鏈技術(shù)中的智能合約究竟是怎么一回事
區(qū)塊鏈技術(shù)中的智能合約究竟是怎么一回事
2018-03-24
收藏

區(qū)塊鏈技術(shù)中的智能合約究竟是怎么一回事

智能合約在最近備受追捧。但是這是什么呢 它能解決哪些問題呢?

中英雙字視頻如下:

比特幣概述

2009年,中本聰推出了比特幣,并震撼了全世界,因為它催生了價值1500億美元的加密貨幣,這個網(wǎng)絡(luò)比500臺超級計算機(jī)要強(qiáng)1萬倍,并且實現(xiàn)了去中心化的金融系統(tǒng)。

比特幣是不斷增長的一系列區(qū)塊,每個區(qū)塊都包含一些交易,這代表比特幣所有權(quán)的轉(zhuǎn)移以及前一個區(qū)塊的哈希值,從而連接起交易的歷史并創(chuàng)建不可變的記錄。

網(wǎng)絡(luò)中使用公共密鑰或私人密鑰來驗證這些交易的有效性。比特幣通過工作量證明來生成區(qū)塊,這一過程非常昂貴且耗時,但區(qū)塊鏈中的其他節(jié)點能夠易于進(jìn)行驗證。最后,工作量證明俗稱為挖礦。

關(guān)于以太坊

比特幣是用于追蹤數(shù)字貨幣所有權(quán)的點對點電子現(xiàn)金系統(tǒng);而以太坊是為用于跟蹤去分布式數(shù)據(jù)庫狀態(tài)變化的點對點系統(tǒng)。

以太坊也是不斷增長的一系列區(qū)塊:每個區(qū)塊都包含分布式數(shù)據(jù)庫的狀態(tài)變化。此外,以太坊使用類似比特幣的工作量證明系統(tǒng)進(jìn)行挖礦。

以太坊在白皮書中詳盡介紹了分散式數(shù)據(jù)庫。它提供了一個分布式的圖靈完備的虛擬機(jī),稱為以太坊虛擬機(jī)(EVM)。與比特幣的區(qū)別在于,在區(qū)塊鏈頂端的由以太坊提供的新數(shù)據(jù)層能讓功能碼沿著分布式的節(jié)點分布。代碼由網(wǎng)絡(luò)中的每個節(jié)點運行、維護(hù)和更改數(shù)據(jù)庫中的狀態(tài)。這就是為什么以太坊經(jīng)常被描述為“ 世界計算機(jī)”的原因。

但是,EVM必須由一系列獨立于中央機(jī)構(gòu)的規(guī)則來管理,這些規(guī)則規(guī)定允許更改哪些狀態(tài)。

智能合約

智能合約是“執(zhí)行合約條款的計算機(jī)化交易協(xié)議”。這并不是以太坊獨有的,因為比特幣允許使用智能合約來構(gòu)建服務(wù),在比特幣交易中添加功能。雖然這些服務(wù)使用比特幣,但它們本質(zhì)上是集中式的,因為智能合約必須托管在中央服務(wù)器上。

另一方面,以太坊允許開發(fā)人員編寫自己的智能合約來定義EVM指令。這些智能合約可以使用以現(xiàn)有語言(如Javascript何Python)為模板的編程語言編寫。

智能合約在分布式數(shù)據(jù)庫內(nèi)部以字節(jié)碼的形式存在。這是以太坊創(chuàng)新潛力的根源所在。

網(wǎng)絡(luò)上使用EVM執(zhí)行代碼的所有節(jié)點必須得出相同的結(jié)果,并對下一個區(qū)塊的狀態(tài)達(dá)成一致。任何人都可以將智能合約部署到分布式數(shù)據(jù)庫。

"智能合約"這個術(shù)語最初于1997年被Nick Szabo提出,遠(yuǎn)在比特幣出現(xiàn)之前。

他是一位計算機(jī)科學(xué)家、法學(xué)學(xué)者和密碼學(xué)家,他想用分布式賬本來存儲合同。智能合約就像現(xiàn)實世界中的合同一樣。唯一的區(qū)別在于,智能合約完全是數(shù)字化的。實際上,智能合約是存儲在區(qū)塊鏈中的一個小型計算機(jī)程序。

讓我們通過一個例子看看智能合約是怎么運行的。也許你熟知大型眾籌平臺Kickstarter,產(chǎn)品團(tuán)隊可以在Kickstarter 創(chuàng)建項目、設(shè)定資金目標(biāo),進(jìn)而從那些相信這個想法的人那里籌集資金。

Kickstarter實質(zhì)上是介于產(chǎn)品團(tuán)隊和支持者之間的第三方。這意味著雙方都需要信任Kickstarter能夠妥善地處理他們的資金。

如果項目成功獲得籌資,項目團(tuán)隊希望從Kickstarter獲得他們的資金。另一方面,支持者希望籌資后他們的資金能夠給到項目,或者在沒有達(dá)到目標(biāo)的情況下獲得退款。產(chǎn)品團(tuán)隊以及其支持者都需要信任Kickstarter。

但是有了智能合約,我們能夠構(gòu)建類似的系統(tǒng),而不需要信任如Kickstarter這樣的第三方。

那么讓我們來構(gòu)建智能合約。

我們能制定智能合約,那么它能持有所有收到的資金直到達(dá)到某個目標(biāo)?,F(xiàn)在項目的支持者可以把資金轉(zhuǎn)到智能合約,如果項目獲得足夠的資金,智能合約自動將錢轉(zhuǎn)交給項目的創(chuàng)建者;如果項目沒能實現(xiàn)集資目標(biāo),錢會自動退還給項目支持者。

很不錯吧?因為智能合約存儲在區(qū)塊鏈上,一切都是完全分布式的。有了這項技術(shù),沒人能控制當(dāng)中的錢。

但是我們?yōu)槭裁匆湃沃悄芎霞s呢?

不可變和分布式

因為智能合約存儲在區(qū)塊鏈上,它們繼承了一些有趣的特性。它們是不可變的、分布式的。

不可變意味著一旦智能合約被創(chuàng)建,這永遠(yuǎn)都無法改變。因此,沒有人可以背著你篡改合同的代碼。

分布式意味著,你合約的輸出被網(wǎng)絡(luò)上的每個人驗證。因此,個人不能強(qiáng)迫智能合約放出資金。

因為網(wǎng)絡(luò)上的其他人會發(fā)現(xiàn)這個舉動并將其標(biāo)記為無效。篡改智能合約幾乎是不可能的。

智能合約可以應(yīng)用到許多不同的領(lǐng)域,而不僅僅是眾籌。銀行可以利用它發(fā)放貸款或提供自動支付;保險公司可以用它來處理某些索賠;郵政公司可以用它來交貨付款等等。

那么現(xiàn)在你可能會想,你要在哪兒以及如何使用智能合約。如今有一些支持智能合約的區(qū)塊鏈,但其中最大的是以太坊。它是專門為支持智能合約而設(shè)計的。

當(dāng)中使用一種稱為Solidity的特殊編程語言來編程。這種語言是專門為以太坊創(chuàng)建的,并使用類似于Javascript的語法。

值得注意的是比特幣也支持智能合約,雖然這比以太坊更受限制。


數(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(), // 加隨機(jī)數(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ù)器是否宕機(jī) new_captcha: data.new_captcha, // 用于宕機(jī)時表示是新驗證碼的宕機(jī) 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); }