前言:智能合約這個詞你可能聽過無數遍,但有多少人真正理解什么是智能合約?本文幫你深入理解以太坊智能合約。本文作者是GjermundBjaanes,由“藍狐筆記”社群的“Dyna”翻譯。
你可能聽說過“智能合約”,甚至可能知道它們是在區塊鏈上運行的代碼。
但是你如何才能在區塊鏈上運行代碼?這不是可以輕易理解的簡單概念。
本文解釋了智能合約是如何在以太坊區塊鏈上運行的。對編程的基礎理解將會有所幫助,因為本文包含了一些用于舉例的簡單代碼。為了清晰起見,本文將其中的一些技術細節稍微進行了簡化,但概念是有效的。
區塊鏈-快速入門
這里不講太多細節,區塊鏈技術的核心概念是分布式賬本。它是一種在眾多參與者之間共享的特殊類型的數據庫。
這個特殊的數據庫就是一個交易列表,記錄了網絡中發生的每一筆交易。每個人都有一個副本。這種去中心化分布結合強有力的貨幣激勵措施,消除了各方之間信任的必要性。
傳統意義上,當事人之間的信任是通過中間人,即第三方來解決的,比如Paypal、銀行。與你不信任的人之間的交易將通過雙方都信任的中間人進行。
有了區塊鏈,這種需求消失了。因為你可以把你的信任放在網絡上,在這里,強有力的激勵措施消除了作弊欺騙的欲望(簡而言之:遵守規則更有利可圖)。
魏鵬舉:金融化并非是數字藏品真正的問題,傳統的文化資產、藝術資產就可以金融化:金色財經消息,近日,新京報貝殼財經會客廳——建立數字藏品的正向發展標準和路徑,數字藏品行業如何“守正·創新”規范發展研討會在北京舉行,中國藝術科技研究所副所長庹祖海、北京政協委員、北京國際大數據交易所首席專家王臻、文化和旅游部“十四五”規劃專家委員會委員、中央財經大學文化經濟研究院院長魏鵬舉、國家文旅公共文化創新發展研究基地主任、中國傳媒大學文化發展研究院副院長卜希霆、中國信通院云計算與大數據研究所區塊鏈負責人張奕卉、金杜律師事務所北京辦公室參會代表齊菲參加研討會。
魏鵬舉表示,數字藏品屬于新生事物,必須給予一定的包容。金融化并非是數字藏品真正的問題,傳統的文化資產、藝術資產就可以金融化,藝術品質押也是金融化,國家還有文化金融的概念,這說明藝術品金融化本身并沒有問題,最大的問題是金融價值不能對應實體價值所發生的虛擬化。(新京報)[2022/7/4 1:48:53]
更具體地說:區塊鏈網絡是一組機器,它們記錄著相同的交易列表副本(例如,從A轉給B的錢)。
因為每個人都有相同的列表,所以很難欺騙網絡接受錯誤的交易。結合一些加密算法和貨幣獎勵以便遵守規則,你的網絡會非常安全。
所有這些也使得區塊鏈幾乎是不可變的,因為改變歷史記錄的唯一方法是獲得全網大多數人的同意。
觀點:NFT仍處于前期階段,遠遠沒有到達真正的爆發和場景應用:4月28日19:00,OVR COO Diego Di Tommaso、The Sandbox 中國區總監 Harvey Tsoi、Nervos advocate Williams、NEAR Mintbase 中國發言人 iOTA Chan、東泗文化傳媒創始人邵冰參與了由ULink主辦的“NFT被人們火爆炒作但可玩性不足的當下,未來又該如何”線上NFT圓桌論壇。
活動中各位嘉賓對當下的NFT現狀談到了自己的看法,均表示NFT仍處于前期階段,遠遠沒有到達真正的爆發和場景應用。
Diego表示,一些奢侈品牌已經在尋找新時代人群作為他們的目標客戶,使用NFT技術通過NFT的身份認證同實際產品進行連接將成為趨勢。
Harvey表示,NFT現在還有很多玩法沒有被應用,還有很大的空間等待我們去發掘,同時我們也在不斷探索虛擬和現實如何運用NFT技術。
Williams表示,NFT不僅僅只是一個卡牌游戲,任何一個獨一無二的限量品都可以變成NFT,未來與跨鏈互操作性結合將成為可能。
iOTA表示,NFT可以取代舊的密碼系統,甚至可以成為解鎖虛擬世界的一把鑰匙以及整合其他代幣的保險庫。
邵冰表示,傳統攝影領域的藝術家非常看好NFT,特別是在數字專利和確權方面,以及公平、透明的交易環境,下一步可能會考慮如何在虛擬場景中實現策展活動。[2021/4/29 21:09:58]
什么是智能合約?
聲音 | Blockstream首席戰略官:礦池集中阻礙比特幣實現真正去中心化:據AMBCrypto 1月24日消息,比特幣礦業的集中化對比特幣實現真正去中心化存在威脅。比特幣技術公司Blockstream首席戰略官Samson Mow表示,參與ASIC制造、托管和礦池操作的各方正在成為集結力量,阻礙了比特幣發揮其全部潛力。從某種程度上講,沒有參與是沒有意義的,因為必須保護網絡安全,因此要么完全外包,要么參與挖礦。[2020/1/25]
區別于比特幣,以太坊最大的不同是引入了智能合約的概念。比特幣是數字貨幣,以太坊也是數字貨幣,但遠不止這些。
“智能合約”這個名稱有點誤導人。它們不是真正的合約,也不特別智能。它們只是一些可以運行在區塊鏈上的代碼-或者說是計算機邏輯運算。
首先,我將介紹有關智能合約是以太坊網絡上的一種特殊賬戶。你有用戶賬戶,你還有智能合約賬戶。
一個用戶賬戶包括:
一個地址
余額
一個智能合約賬戶包括:
一個地址
余額
一個狀態
代碼
地址和普通賬戶的地址是一樣的,它是該賬戶的唯一識別符。
聲音 | 德國央行董事會成員:應該通過區塊鏈對實物資產進行標記,使區塊鏈真正增值:據Trust Nodes報道,現任德國央行(Bundesbank)董事會成員的伯克哈德?巴爾茨(Burkhard Balz)認為,區塊鏈技術在賦予實物資產以象征意義的同時,確實增加了價值。他說:“這需要創新和可持續的解決方案,我們如何使資金標記化,還需要不同形式的現有資產,并將它們轉化為健康的數字生態系統。”他認為,主要通過代理銀行處理的跨貨幣支付,很可能受益于使用區塊鏈技術的系統。巴爾茨說:“對于證券結算或提供抵押品,區塊鏈技術還應提供更大的儲蓄潛力。減少中間機構的數目、所有各方對共同數據庫的訪問以及對公司行動的自動處理可以大大減少處理時間。因此,許多金融市場基礎設施提供商正在努力簡化現有的交易和結算系統,甚至為數字資產的交易和結算提供新的平臺。”巴爾茨稱,應該努力找到使用區塊鏈技術的方法,對實物資產進行標記,讓區塊鏈真正增值。[2019/6/3]
余額和普通賬戶也是一樣的概念。唯一令人激動的是,智能合約上的余額意味著代碼可以擁有金錢。它可以處理這些錢,也可能因為編碼錯誤而造成處理不當。
智能合約帳戶的狀態是智能合約中聲明的所有字段和變量的當前狀態。它的工作方式與大多數編程語言中類的字段變量相同。事實上,一個類的實體化對象可能是理解智能合約的最簡單方法。唯一的區別是這個對象是永久存在的(除非被編程為自我毀滅)。
聲音 | Monero首席開發人員:比特幣是傳統法幣的“真正替代品”:據bitcoinexchangeguide報道,Monero首席開發人員Riccardo?Spagni近日稱,比特幣是傳統法幣的“真正替代品”。他認為在未來10到15年,人們將可以用比特幣買一杯咖啡。[2018/12/4]
智能合約的代碼是編譯好的字節代碼,以太坊客戶機和節點可以在上面運行。它是在創建智能合約時執行的代碼,并且包含可以調用的函數。就像面向對象編程的語言中的任何對象一樣。
關于智能合約的趣事:它們可以調用其它的智能合約。這就開啟了創建自主代理的能力,這些代理可以自己花錢和進行交易。
假設我用上面的代碼創建了一個智能合約。該代碼有一個名為counter的字段,類型為uint(整數)。counter變量的內容是本合約的狀態。每當我調用count()函數時,任何人都能看到這個智能合約在區塊鏈上的狀態將會加1。
稍后我們將通過更多的例子來解釋它是如何工作的,但首先我想回到以太坊和比特幣的交易,并以此來解釋一些事情。
交易水平上,以太坊VS比特幣
比特幣交易非常簡單。你可以只做一件事。一種類型的交易。略過一些細節,一切都可以歸結為TO,FROM和AMOUNT。這使得比特幣成為一種價值儲存手段,能夠在網絡參與者之間傳遞價值。
以太坊的不同之處在于交易還有一個“DATA”字段。該“DATA”字段支持三種類型的交易:
價值轉移
TO接收地址
DATA字段為空或包含要附加的任何消息
FROM你
AMOUNT是你要發送的以太坊數量
創建智能合約
TO字段為空(它觸發智能合約的創建)
DATA字段包含編譯為字節代碼的智能合約代碼
FROM你
AMOUNT可以是0或者任意你想放在合約里的以太坊數量
調用智能合約
TO字段是智能合約賬戶地址
DATA字段包含函數名稱和參數–如何調用智能合約
FROM你
AMOUNT可以是0或者任何數量的以太坊,比如你需要為一項服務合約支付的數目
在這些交易中還有更多的字段和復雜性,但以上這些已經很好地解釋了核心概念。讓我們看看關于這些交易的一些更具體的例子。
以太坊交易
價值轉移
非常簡單。TO向一個地址發送一定數目的以太坊代幣。你也可以為一筆交易加上一條消息。
創建智能合約
正如以上提到的,一個空的TO字段表示創建一份智能合約。DATA字段包含編譯為字節代碼的智能合約。
調用合約
我們稍后會回到這個問題,但是其主要概念是你將交易發送到你想要調用的智能合約地址,然后將函數調用放在DATA字段中。
注意成本和執行
正如你所想象的,你不能一直在區塊鏈上免費運行計算量很大的程序。
代碼的執行是由調用者用一種叫做gas的東西來支付的。Gas是運行以太坊虛擬機的燃料。你可以將其視為每次執行指令的費用(就像一行代碼)。
你需要為一個特定的合約調用設置可花費的最大gas。比如,如果你調用的代碼進入了一個永久循環,將會確保在執行過程中所花費的gas不會超過設置的最大gas。
gas(執行)的成本由網絡的礦工(運行代碼的節點)決定。關于gas和執行,還有很多知識。但以上這些值得牢牢記住。
智能合約如何工作?
當一個智能合約被部署到以太坊網絡時,任何人都可以調用智能合約的函數。雖然出于安全考慮該函數可能阻止人們調用,但你可以自由嘗試。
假設有一個MyObject類型的對象。該對象有一個名為myFunction的函數。要調用它,只需引用對象的實例、調用哪個函數和使用哪個參數調用。
像這樣:
myObjectReference.myFunction(parameters);
該函數返回的任意值,可以將其存在變量中:
myVariable=myObject.myFunction(parameters);
調用一個智能合約在概念上是一樣的。唯一的區別是,你必須將調用相關的所有信息放在交易中,對其簽名并發送到網絡上來執行。
假設你想要調用函數myFunction,其中包含智能合約“0x0123456”里的一些參數。調用智能合約分四步:
現在,當交易被放進區塊鏈中的一個塊,該狀態變化便會被記錄在整個網絡中。
世界計算機
許多人把以太坊稱為世界計算機。這是個不錯的類比。它就像一臺由整個世界來維護的虛擬機。
但是請記住:雖然智能合約是圖靈完備的,并且理論上可以做任何事情,但它們不太適合繁重的計算工作。
以太坊世界計算機就像一臺運行簡單程序的老式慢速計算機。由于成本和安全性,保持以太坊的智能合約小而簡單是至關重要的。
合約需要的計算量越多,運行的成本就越大。合約越復雜,就越有可能存在安全漏洞。而且智能合約中的安全漏洞是很難處理的——畢竟區塊鏈是不可變的。
舉例:通證
回歸重點,我想解釋一下通證是如何工作的。
大多數這些通證都是在以太坊上創建的,而且概念非常簡單。
如何使用Javascript或其他編程語言編寫一個簡單的貨幣系統?你可以在一個文件中完成所有的操作。你真正需要記錄的是:
1.總供應量
2.賬戶
3.賬戶中的余額
4.資金流向
通過用戶和余額之間的簡單映射,你可以得到123的答案:
該map只是把一個賬戶映射到一筆錢。
使用構造函數,你可以在自己的帳戶中設置初始供應量
資金的流動是通過簡單的函數來完成的,即從一個賬戶中減去,然后加在另一個賬戶上。
創建通證與我們在以太坊使用的概念完全相同。當然,還有一些更復雜和額外的功能,但是基本概念非常簡單。
以下就是基本的通證合約在以太坊編程語言中呈現的樣子(再次重申:為清晰起見進行了簡化):
這就是基礎編程概念。我認為這說明了以太坊作為一個平臺的力量。通過一些簡單的代碼,你可以憑空生成一個代幣,它本質上就是由世界計算機記錄的一些變量。歡迎來到新的互聯網。
------
風險警示:藍狐筆記所有文章都不構成投資推薦,投資有風險,投資應該考慮個人風險承受能力,建議對項目進行深入考察,慎重做好自己的投資決策。
通往區塊鏈的新世界:關注“藍狐筆記”公眾號:lanhubiji
加入藍狐筆記的知識星球:https://t.zsxq.com/iaQNnIq
加入藍狐筆記群微信:pacinoli
今天這篇文章,就是我們《小號秘籍趣話》知識體系的第一篇,《怕被騙婚?用區塊鏈》,大家看完之后可以和我多交流哦!程序員蘇享茂,是因為被騙婚而被逼得自殺.
1900/1/1 0:00:00前言:雖然本文對馬斯克的超級高鐵和區塊鏈如何深度結合沒有深入的闡述,但是從它的聯合創始人Gresta的只言片語中,可以看到一些苗頭:通過區塊鏈和智能合約來提高交通出行的效率.
1900/1/1 0:00:00共享財經 媒體|營銷|咨詢 摘要:突然間,一款區塊鏈游戲霸屏人間。截至記者今天發稿,第三方平臺顯示,其下載人數已接近43萬。突然間,一款區塊鏈游戲霸屏人間.
1900/1/1 0:00:00尊敬的LBank用戶: LBank將支持MatrixAINetwork(MAN)主網資產的映射,幫助MAN持幣用戶完成所有映射操作.
1900/1/1 0:00:00你可能聽說過「智能合約」,甚至可能知道它們是在區塊鏈上運行的代碼。但是你如何才能在區塊鏈上運行代碼?這不是可以輕易理解的簡單概念。本文解釋了智能合約是如何在以太坊區塊鏈上運行的.
1900/1/1 0:00:00Gate.io六年來潛心調研,甄選并上線過上百幣種,從未收過上幣費,為用戶提供安全、優質和便捷的交易服務.
1900/1/1 0:00:00