日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當(dāng)前位置:首頁(yè) > 物聯(lián)網(wǎng) > 區(qū)塊鏈
[導(dǎo)讀] 前言:智能合約這個(gè)詞你可能聽(tīng)過(guò)無(wú)數(shù)遍,但有多少人真正理解什么是智能合約?本文幫你深入理解以太坊智能合約。 你可能聽(tīng)說(shuō)過(guò)“智能合約”,甚至可能知道它們是在區(qū)塊鏈上運(yùn)行的代碼。 但是

前言:智能合約這個(gè)詞你可能聽(tīng)過(guò)無(wú)數(shù)遍,但有多少人真正理解什么是智能合約?本文幫你深入理解以太坊智能合約。

你可能聽(tīng)說(shuō)過(guò)“智能合約”,甚至可能知道它們是在區(qū)塊鏈上運(yùn)行的代碼。

但是你如何才能在區(qū)塊鏈上運(yùn)行代碼?這不是可以輕易理解的簡(jiǎn)單概念。

本文解釋了智能合約是如何在以太坊區(qū)塊鏈上運(yùn)行的。對(duì)編程的基礎(chǔ)理解將會(huì)有所幫助,因?yàn)楸疚陌艘恍┯糜谂e例的簡(jiǎn)單代碼。為了清晰起見(jiàn),本文將其中的一些技術(shù)細(xì)節(jié)稍微進(jìn)行了簡(jiǎn)化,但概念是有效的。

區(qū)塊鏈-快速入門(mén)

這里不講太多細(xì)節(jié),區(qū)塊鏈技術(shù)的核心概念是分布式賬本。它是一種在眾多參與者之間共享的特殊類(lèi)型的數(shù)據(jù)庫(kù)。

這個(gè)特殊的數(shù)據(jù)庫(kù)就是一個(gè)交易列表,記錄了網(wǎng)絡(luò)中發(fā)生的每一筆交易。每個(gè)人都有一個(gè)副本。這種去中心化分布結(jié)合強(qiáng)有力的貨幣激勵(lì)措施, 消除了各方之間信任的必要性。

傳統(tǒng)意義上,當(dāng)事人之間的信任是通過(guò)中間人,即第三方來(lái)解決的,比如Paypal、銀行。與你不信任的人之間的交易將通過(guò)雙方都信任的中間人進(jìn)行。

有了區(qū)塊鏈,這種需求消失了。因?yàn)槟憧梢园涯愕男湃畏旁诰W(wǎng)絡(luò)上,在這里,強(qiáng)有力的激勵(lì)措施消除了作弊欺騙的欲望(簡(jiǎn)而言之:遵守規(guī)則更有利可圖)。

更具體地說(shuō):區(qū)塊鏈網(wǎng)絡(luò)是一組機(jī)器,它們記錄著相同的交易列表副本(例如,從A轉(zhuǎn)給B的錢(qián))。

因?yàn)槊總€(gè)人都有相同的列表,所以很難欺騙網(wǎng)絡(luò)接受錯(cuò)誤的交易。結(jié)合一些加密算法和貨幣獎(jiǎng)勵(lì)以便遵守規(guī)則,你的網(wǎng)絡(luò)會(huì)非常安全。

所有這些也使得區(qū)塊鏈幾乎是不可變的,因?yàn)楦淖儦v史記錄的唯一方法是獲得全網(wǎng)大多數(shù)人的同意。

什么是智能合約?

區(qū)別于比特幣,以太坊最大的不同是引入了智能合約的概念。比特幣是數(shù)字貨幣,以太坊也是數(shù)字貨幣,但遠(yuǎn)不止這些。

“智能合約”這個(gè)名稱(chēng)有點(diǎn)誤導(dǎo)人。它們不是真正的合約,也不特別智能。它們只是一些可以運(yùn)行在區(qū)塊鏈上的代碼 - 或者說(shuō)是計(jì)算機(jī)邏輯運(yùn)算。

首先,我將介紹有關(guān)智能合約是以太坊網(wǎng)絡(luò)上的一種特殊賬戶(hù)。你有用戶(hù)賬戶(hù),你還有智能合約賬戶(hù)。

一個(gè)用戶(hù)賬戶(hù)包括:

· 一個(gè)地址(類(lèi)似于你的銀行賬號(hào)-它也存在于比特幣上)

· 余額(我有多少錢(qián))

一個(gè)智能合約賬戶(hù)包括:

· 一個(gè)地址

· 余額(以太坊)

· 一個(gè)狀態(tài)

· 代碼

地址和普通賬戶(hù)的地址是一樣的,它是該賬戶(hù)的唯一識(shí)別符。

余額和普通賬戶(hù)也是一樣的概念。唯一令人激動(dòng)的是,智能合約上的余額意味著代碼可以擁有金錢(qián)。它可以處理這些錢(qián),也可能因?yàn)榫幋a錯(cuò)誤而造成處理不當(dāng)。

智能合約帳戶(hù)的狀態(tài)是智能合約中聲明的所有字段和變量的當(dāng)前狀態(tài)。它的工作方式與大多數(shù)編程語(yǔ)言中類(lèi)的字段變量相同。事實(shí)上,一個(gè)類(lèi)的實(shí)體化對(duì)象可能是理解智能合約的最簡(jiǎn)單方法。唯一的區(qū)別是這個(gè)對(duì)象是永久存在的(除非被編程為自我毀滅)。

智能合約的代碼是編譯好的字節(jié)代碼,以太坊客戶(hù)機(jī)和節(jié)點(diǎn)可以在上面運(yùn)行。它是在創(chuàng)建智能合約時(shí)執(zhí)行的代碼,并且包含可以調(diào)用的函數(shù)。就像面向?qū)ο缶幊痰恼Z(yǔ)言中的任何對(duì)象一樣。

關(guān)于智能合約的趣事:它們可以調(diào)用其它的智能合約。這就開(kāi)啟了創(chuàng)建自主代理的能力,這些代理可以自己花錢(qián)和進(jìn)行交易。

假設(shè)我用上面的代碼創(chuàng)建了一個(gè)智能合約。該代碼有一個(gè)名為counter的字段,類(lèi)型為uint(整數(shù))。counter變量的內(nèi)容是本合約的狀態(tài)。每當(dāng)我調(diào)用count()函數(shù)時(shí),任何人都能看到這個(gè)智能合約在區(qū)塊鏈上的狀態(tài)將會(huì)加1。

稍后我們將通過(guò)更多的例子來(lái)解釋它是如何工作的,但首先我想回到以太坊和比特幣的交易,并以此來(lái)解釋一些事情。

交易水平上,以太坊VS比特幣

比特幣交易非常簡(jiǎn)單。你可以只做一件事。一種類(lèi)型的交易。略過(guò)一些細(xì)節(jié),一切都可以歸結(jié)為T(mén)O(付給,誰(shuí)在收錢(qián)),F(xiàn)ROM(來(lái)自于,誰(shuí)在付錢(qián))和AMOUNT(數(shù)量,多少錢(qián))。這使得比特幣成為一種價(jià)值儲(chǔ)存手段,能夠在網(wǎng)絡(luò)參與者之間傳遞價(jià)值。

以太坊的不同之處在于交易還有一個(gè)“DATA”(數(shù)據(jù))字段。該“DATA”字段支持三種類(lèi)型的交易:

價(jià)值轉(zhuǎn)移(和比特幣一樣)

· TO接收地址

· DATA字段為空或包含要附加的任何消息

· FROM你

· AMOUNT是你要發(fā)送的以太坊數(shù)量

創(chuàng)建智能合約

· TO字段為空(它觸發(fā)智能合約的創(chuàng)建)

· DATA字段包含編譯為字節(jié)代碼的智能合約代碼

· FROM你

· AMOUNT 可以是0或者任意你想放在合約里的以太坊數(shù)量

創(chuàng)建智能合約

· TO字段為空(它觸發(fā)智能合約的創(chuàng)建)

· DATA字段包含編譯為字節(jié)代碼的智能合約代碼

· FROM你

· AMOUNT 可以是0或者任意你想放在合約里的以太坊數(shù)量

調(diào)用智能合約

· TO字段是智能合約賬戶(hù)地址

· DATA字段包含函數(shù)名稱(chēng)和參數(shù)– 如何調(diào)用智能合約

· FROM你

· AMOUNT可以是0或者任何數(shù)量的以太坊,比如你需要為一項(xiàng)服務(wù)合約支付的數(shù)目

在這些交易中還有更多的字段和復(fù)雜性,但以上這些已經(jīng)很好地解釋了核心概念。讓我們看看關(guān)于這些交易的一些更具體的例子。

以太坊交易

價(jià)值轉(zhuǎn)移

非常簡(jiǎn)單。TO向一個(gè)地址發(fā)送一定數(shù)目的以太坊代幣。你也可以為一筆交易加上一條消息。

創(chuàng)建智能合約

正如以上提到的,一個(gè)空的TO字段表示創(chuàng)建一份智能合約。DATA字段包含編譯為字節(jié)代碼的智能合約。

調(diào)用合約

我們稍后會(huì)回到這個(gè)問(wèn)題,但是其主要概念是你將交易發(fā)送到你想要調(diào)用的智能合約地址,然后將函數(shù)調(diào)用放在DATA字段中。

注意成本和執(zhí)行

正如你所想象的,你不能一直在區(qū)塊鏈上免費(fèi)運(yùn)行計(jì)算量很大的程序。

代碼的執(zhí)行是由調(diào)用者用一種叫做gas的東西來(lái)支付的。Gas是運(yùn)行以太坊虛擬機(jī)的燃料。你可以將其視為每次執(zhí)行指令的費(fèi)用(就像一行代碼)。

你需要為一個(gè)特定的合約調(diào)用設(shè)置可花費(fèi)的最大gas。比如,如果你調(diào)用的代碼進(jìn)入了一個(gè)永久循環(huán),將會(huì)確保在執(zhí)行過(guò)程中所花費(fèi)的gas不會(huì)超過(guò)設(shè)置的最大gas。

gas(執(zhí)行)的成本由網(wǎng)絡(luò)的礦工(運(yùn)行代碼的節(jié)點(diǎn))決定。關(guān)于gas和執(zhí)行,還有很多知識(shí)。但以上這些值得牢牢記住。

智能合約如何工作?

當(dāng)一個(gè)智能合約被部署到以太坊網(wǎng)絡(luò)時(shí),任何人都可以調(diào)用智能合約的函數(shù)。雖然出于安全考慮該函數(shù)可能阻止人們調(diào)用,但你可以自由嘗試。

假設(shè)有一個(gè)MyObject類(lèi)型的對(duì)象。該對(duì)象有一個(gè)名為myFunction的函數(shù)。要調(diào)用它,只需引用對(duì)象的實(shí)例、調(diào)用哪個(gè)函數(shù)和使用哪個(gè)參數(shù)調(diào)用。

像這樣:

myObjectReference.myFuncTIon(parameters);

該函數(shù)返回的任意值,可以將其存在變量中:

myVariable = myObject.myFuncTIon(parameters);

調(diào)用一個(gè)智能合約在概念上是一樣的。唯一的區(qū)別是,你必須將調(diào)用相關(guān)的所有信息放在交易中,對(duì)其簽名并發(fā)送到網(wǎng)絡(luò)上來(lái)執(zhí)行。

假設(shè)你想要調(diào)用函數(shù)myFuncTIon,其中包含智能合約“0x0123456”里的一些參數(shù)。調(diào)用智能合約分四步:

現(xiàn)在,當(dāng)交易被放進(jìn)區(qū)塊鏈中的一個(gè)塊,該狀態(tài)變化便會(huì)被記錄在整個(gè)網(wǎng)絡(luò)中。

世界計(jì)算機(jī)

許多人把以太坊稱(chēng)為世界計(jì)算機(jī)。這是個(gè)不錯(cuò)的類(lèi)比。它就像一臺(tái)由整個(gè)世界來(lái)維護(hù)的虛擬機(jī)。

但是請(qǐng)記住:雖然智能合約是圖靈完備的,并且理論上可以做任何事情,但它們不太適合繁重的計(jì)算工作。

以太坊世界計(jì)算機(jī)就像一臺(tái)運(yùn)行簡(jiǎn)單程序的老式慢速計(jì)算機(jī)。由于成本和安全性,保持以太坊的智能合約小而簡(jiǎn)單是至關(guān)重要的。

合約需要的計(jì)算量越多,運(yùn)行的成本就越大。合約越復(fù)雜,就越有可能存在安全漏洞。而且智能合約中的安全漏洞是很難處理的——畢竟區(qū)塊鏈?zhǔn)遣豢勺兊摹?/p>

舉例:通證

回歸重點(diǎn),我想解釋一下通證是如何工作的。

大多數(shù)這些通證都是在以太坊上創(chuàng)建的,而且概念非常簡(jiǎn)單(它運(yùn)行良好,但是太簡(jiǎn)單了,以至于幾乎可以說(shuō)是愚蠢的)。

如何使用Javascript或其他編程語(yǔ)言編寫(xiě)一個(gè)簡(jiǎn)單的貨幣系統(tǒng)?你可以在一個(gè)文件中完成所有的操作。你真正需要記錄的是:

1. 總供應(yīng)量

2. 賬戶(hù)

3. 賬戶(hù)中的余額

4. 資金流向

通過(guò)用戶(hù)和余額之間的簡(jiǎn)單映射,你可以得到123的答案:

該map只是把一個(gè)賬戶(hù)映射到一筆錢(qián)。

使用構(gòu)造函數(shù)(constructor),你可以在自己的帳戶(hù)中設(shè)置初始供應(yīng)量 (或分布在任意數(shù)量的賬戶(hù)中)

資金的流動(dòng)是通過(guò)簡(jiǎn)單的函數(shù)來(lái)完成的,即從一個(gè)賬戶(hù)中減去,然后加在另一個(gè)賬戶(hù)上。

創(chuàng)建通證與我們?cè)谝蕴皇褂玫母拍钔耆嗤?。?dāng)然,還有一些更復(fù)雜和額外的功能,但是基本概念非常簡(jiǎn)單。

以下就是基本的通證合約在以太坊編程語(yǔ)言中呈現(xiàn)的樣子(再次重申:為清晰起見(jiàn)進(jìn)行了簡(jiǎn)化):

這就是基礎(chǔ)編程概念。我認(rèn)為這說(shuō)明了以太坊作為一個(gè)平臺(tái)的力量。通過(guò)一些簡(jiǎn)單的代碼,你可以憑空生成一個(gè)代幣,它本質(zhì)上就是由世界計(jì)算機(jī)記錄的一些變量。歡迎來(lái)到新的互聯(lián)網(wǎng)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀(guān)點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: 驅(qū)動(dòng)電源

在工業(yè)自動(dòng)化蓬勃發(fā)展的當(dāng)下,工業(yè)電機(jī)作為核心動(dòng)力設(shè)備,其驅(qū)動(dòng)電源的性能直接關(guān)系到整個(gè)系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動(dòng)勢(shì)抑制與過(guò)流保護(hù)是驅(qū)動(dòng)電源設(shè)計(jì)中至關(guān)重要的兩個(gè)環(huán)節(jié),集成化方案的設(shè)計(jì)成為提升電機(jī)驅(qū)動(dòng)性能的關(guān)鍵。

關(guān)鍵字: 工業(yè)電機(jī) 驅(qū)動(dòng)電源

LED 驅(qū)動(dòng)電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個(gè)照明設(shè)備的使用壽命。然而,在實(shí)際應(yīng)用中,LED 驅(qū)動(dòng)電源易損壞的問(wèn)題卻十分常見(jiàn),不僅增加了維護(hù)成本,還影響了用戶(hù)體驗(yàn)。要解決這一問(wèn)題,需從設(shè)計(jì)、生...

關(guān)鍵字: 驅(qū)動(dòng)電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動(dòng)電源的公式,電感內(nèi)電流波動(dòng)大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關(guān)鍵字: LED 設(shè)計(jì) 驅(qū)動(dòng)電源

電動(dòng)汽車(chē)(EV)作為新能源汽車(chē)的重要代表,正逐漸成為全球汽車(chē)產(chǎn)業(yè)的重要發(fā)展方向。電動(dòng)汽車(chē)的核心技術(shù)之一是電機(jī)驅(qū)動(dòng)控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機(jī)驅(qū)動(dòng)系統(tǒng)中的關(guān)鍵元件,其性能直接影響到電動(dòng)汽車(chē)的動(dòng)力性能和...

關(guān)鍵字: 電動(dòng)汽車(chē) 新能源 驅(qū)動(dòng)電源

在現(xiàn)代城市建設(shè)中,街道及停車(chē)場(chǎng)照明作為基礎(chǔ)設(shè)施的重要組成部分,其質(zhì)量和效率直接關(guān)系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進(jìn)步,高亮度白光發(fā)光二極管(LED)因其獨(dú)特的優(yōu)勢(shì)逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關(guān)鍵字: 發(fā)光二極管 驅(qū)動(dòng)電源 LED

LED通用照明設(shè)計(jì)工程師會(huì)遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關(guān)鍵字: LED 驅(qū)動(dòng)電源 功率因數(shù)校正

在LED照明技術(shù)日益普及的今天,LED驅(qū)動(dòng)電源的電磁干擾(EMI)問(wèn)題成為了一個(gè)不可忽視的挑戰(zhàn)。電磁干擾不僅會(huì)影響LED燈具的正常工作,還可能對(duì)周?chē)娮釉O(shè)備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來(lái)解決L...

關(guān)鍵字: LED照明技術(shù) 電磁干擾 驅(qū)動(dòng)電源

開(kāi)關(guān)電源具有效率高的特性,而且開(kāi)關(guān)電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機(jī)重量也有所下降,所以,現(xiàn)在的LED驅(qū)動(dòng)電源

關(guān)鍵字: LED 驅(qū)動(dòng)電源 開(kāi)關(guān)電源

LED驅(qū)動(dòng)電源是把電源供應(yīng)轉(zhuǎn)換為特定的電壓電流以驅(qū)動(dòng)LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動(dòng)電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關(guān)鍵字: LED 隧道燈 驅(qū)動(dòng)電源
關(guān)閉