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

熱線電話:13121318867

登錄
首頁精彩閱讀如何理性看待智能合約
如何理性看待智能合約
2018-06-21
收藏

如何理性看待智能合約

就像近年來的"區(qū)塊鏈"、"人工智能"和"云"一樣,"智能合約"也是十分熱門的話題之一。

通過智能合約能夠?qū)崿F(xiàn):

· 自動、公正地執(zhí)行合約;

· 無需中間人的介入。

在執(zhí)行合約時,如果無需獲得另一方的信任,那么事情的效率會更高。

那么,智能合約究竟是什么?在本文中,我將探究何謂智能合約,以及其運行原理。

智能合約是什么?

通常,合約是雙方或多方對某件事達(dá)成的協(xié)議。

例如,Alice向Bob付錢租住他的房屋(即租金)。Charlie每月向Denise收取一定的費用,當(dāng)Denise的車壞了時幫她維修(即車險)。

智能合約的不同之處在于,合約條款都是由計算機(jī)代碼評估和執(zhí)行的。例如,Alice同意支付500美元給給Bob,3個月后從他那購買沙發(fā)。這些代碼可以確保Alice是否完成支付,以及是否收到沙發(fā),而且雙方都無法退出。

智能合約的關(guān)鍵特點是無需信任第三方,即你不需依賴第三方來執(zhí)行合約條件。無需依賴對方言行一致,也需要依賴律師和法律體系解決違約問題。一旦出現(xiàn)問題,智能合約會確保合約的執(zhí)行。

智能合約并不智能

“智能”似乎指合約天生具有智能性,但并非如此。智能合約的智能體現(xiàn)在,執(zhí)行合約無需另一方的合作。確保合約的執(zhí)行是智能合約的強(qiáng)大之處。

智能合約會考慮到所有情況,遵循合約精神,即使在最不明朗的情況下也做出公平的裁決。換句話說,智能合約像一名出色的法官。

智能合約并不簡單

由于以太坊的大熱,人們錯誤地以為智能合約只存在于以太坊中,這并不對。

從2009年開始,比特幣就有智能合約語言Script。而智能合約實際出現(xiàn)在1995年,早于比特幣。比特幣的智能合約語言與以太坊的區(qū)別在于,以太坊是圖靈完備的。也就是說,以太坊的智能合約語言Solidity能執(zhí)行更復(fù)雜的合約,但分析難度更大。

雖然復(fù)雜的合約能夠處理更復(fù)雜的情況,但是合約越復(fù)雜則越難保證和實施。

在圖靈完備的情況下執(zhí)行合約并不容易,而且很難進(jìn)行分析。確保圖靈完備的智能合約相當(dāng)于去證明計算機(jī)程序不存在漏洞。這是很難的,因為目前幾乎所有的計算機(jī)程序都存在一定程度的漏洞。

編寫智能合約需要多年的學(xué)習(xí)和過硬的專業(yè)知識。但目前很多合約都是由新手寫的,當(dāng)中難免會出現(xiàn)一些問題。

在解決這個問題方面,比特幣的做法是讓合約不具備圖靈完備性。這讓合約更容易分析,因為這種情況下更易于列舉和檢查。

以太坊則是交給合約編寫者,合約編寫者需要確保合約按其意圖執(zhí)行。

智能合約不是真正的合約

雖然讓編寫者確保合約聽起來不錯,但這會帶來一些集中性問題。

以太坊的理念是"代碼就是法律"。也就是說,以太坊的合約具有共識性,沒有人能否決。這個理念指的是,智能合約的開發(fā)者是獨立的,如果你搞砸了自己的智能合約,那么后果自負(fù)。但當(dāng)發(fā)生DAO事件時,這就行不通了。

DAO指的是"去中心化自治組織(Decentralized Autonomous Organization)",DAO在以太坊進(jìn)行眾籌。用戶可以將資金存入DAO,并根據(jù)DAO投資獲得收益。當(dāng)以太幣交易價格到達(dá)20美元左右時,DAO募集了1.5億美元的以太幣。

這在理論上聽起來不錯,但有一個問題。由于代碼沒有得到很好的保證,導(dǎo)致有些人利用合約的漏洞,從DAO中牟利。

之后,以太坊不再遵循代碼就是法律的理念,并將DAO中的所有資金歸還。另外,開發(fā)人員不在使用圖靈完備性。ERC20和ERC721成為以太坊中使用最為頻繁的智能合約模板,這兩種合同都可以在沒有圖靈完備性的情況下編寫。

智能合約的問題

即使沒有圖靈完備性,智能合約依然是不錯的選擇。那么比起普通合約,智能合約更容易使用嗎?

例如,智能合約能用于房地產(chǎn)嗎?

通過智能合約,Alice可以證明房子的所有權(quán)。Bob可以通過付錢給Alice購買房子。當(dāng)中沒有所有權(quán)的問題,而且能快速執(zhí)行,不需要律師等第三方介入,聽起來不錯吧?

但是,這里存在兩個問題。首先,通過集中的組織執(zhí)行的智能合約并不是去信任的。你仍然需要信任集中的組織。去信任是智能合約的關(guān)鍵特征,因此集中執(zhí)行并不合理,實際上你需要的是一個去中心化平臺。

這就帶來了第二個問題。在去中心化的情況下,只有當(dāng)數(shù)字版本與實體版本間存在明確聯(lián)系時,智能合約才有效。也就是說,當(dāng)房子數(shù)字版本的所有權(quán)改變時,實體版本的所有權(quán)也必須改變。數(shù)字世界需要"了解”現(xiàn)實世界的情況。


當(dāng)Alice將房子轉(zhuǎn)讓給Bob時,智能合約需要知道房子發(fā)生了轉(zhuǎn)讓。有幾種方法可以做到這一點,但都面臨相同的問題,現(xiàn)實世界中,必須有信任的第三方來進(jìn)行驗證。

例如,房子可以表現(xiàn)為以太坊上不可替代的代幣。Alice可以通過將房子轉(zhuǎn)給Bob獲得一定數(shù)量的以太幣。那么問題來了,Bob需要相信代幣代表房子,而且需要確保獲取代幣意味著房子所有權(quán)轉(zhuǎn)給他。

此外,即使政府機(jī)構(gòu)證明代幣代表房子,但如果代幣被偷了,那會怎么樣?房子會屬于小偷嗎?如果代幣丟失怎么辦?房子不能再出售了嗎?房子代幣可以重新發(fā)行嗎?如果可以,由誰發(fā)行呢?

在去中心化的情況下,將數(shù)字與實物資產(chǎn)聯(lián)系起來都是個難題。你名下的實體資產(chǎn)意味著,除了智能合約,你還需要信任第三方。也就是說,擁有智能合約并不意味著擁有實體資產(chǎn),而且會遇到普通合約相同的信任問題。信任第三方的智能合約則消除了去信任化這個最關(guān)鍵的特性。

即使是電子書,醫(yī)療記錄或電影等數(shù)字資產(chǎn)也面臨同樣的問題。這些數(shù)字資產(chǎn)擁有權(quán)還是有一些權(quán)威機(jī)構(gòu)決定。

只有數(shù)字化無記名產(chǎn)品則沒有這個問題。代幣的所有權(quán)在智能簽約平臺之外,不具有依賴關(guān)系,這才能真正實現(xiàn)去信任化。

結(jié)語

智能合約并不是我們預(yù)期中的那么有用。

此外,圖靈完備性會帶來一些意想不到的問題。因此,智能合約需要避免這個問題,DAO事件也證明了這個情況。

智能合約仍然面臨一些問題,比如難以確保和實現(xiàn)去信任化。目前只有當(dāng)用于比特幣等去中心化平臺時,智能合約才能有效發(fā)揮其作用。


數(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); }