深入淺出Ethereum 1 ----- 智能合約

Eth(以太坊)不知道你有沒有聽說過撰豺,ICO你一定聽說過耻讽。
但你知道ICO其實是借助Eth的智能合約實現(xiàn)的嗎洒琢?
什么是智能合約秧秉,Eth為啥這么火?
智能合約的特點是什么纬凤,我怎么寫智能合約福贞?
基于智能合約還有Dapp撩嚼,即分布式app停士,Dapp又是什么?

本系列文章將講述Ethereum的原理完丽,特點和機制恋技。

區(qū)塊鏈的運行機制

首先大家必須了解區(qū)塊鏈,可以閱讀之前的文章逻族。
這里只做一個簡單的描述蜻底,區(qū)塊鏈就是一條全網(wǎng)賬單鏈,鏈的使用者憑著自己的私鑰加密交易內(nèi)容聘鳞,然后發(fā)送到網(wǎng)絡上后薄辅,礦工通過比拼算力將內(nèi)容加密提交到區(qū)塊鏈上,同時獲得使用者支付的手續(xù)費抠璃。
由于大家都在競爭加密內(nèi)容站楚,所以全網(wǎng)的算力都是使用者提交內(nèi)容的見證人,因此區(qū)塊鏈交易有迅速搏嗡,不可逆的特點窿春。

賬戶和消息傳遞

Ethereum把交易抽象成消息傳遞,在Ethereum中采盒,每一個區(qū)塊(block)都包含多個消息旧乞。
每一次消息傳遞有發(fā)送者,也有接受者磅氨,消息內(nèi)容可以是一筆交易尺栖,也有可能是一段代碼。
在Ethereum中有兩種賬戶烦租,一種是人操作的正常賬戶延赌,另一種是智能賬戶,正常賬戶中只有當前的Eth錢數(shù)左权,而智能賬戶中存儲了兩個東西:狀態(tài)和代碼皮胡,每當收到相應的消息時,這些代碼就會被執(zhí)行赏迟,從而改變其狀態(tài)屡贺。這些賬戶也就是所謂的智能合約的載體。
這些智能賬戶就是智能合約的基礎(chǔ),要了解智能合約是怎么執(zhí)行的甩栈,先要了解EVM泻仙。

EVM

前面提到了,真正的計算是在各個礦工的電腦中進行的量没。Ethereum的改進之處玉转,就是在礦工收集消息,準備加密生成一個Block時殴蹄,必須啟動一個運行時環(huán)境究抓,也就是EVM,來運行智能賬戶收到消息時對應的代碼袭灯。
通過EVM運行代碼后刺下,智能賬戶的狀態(tài)發(fā)生了變化,這些狀態(tài)同正常賬戶里的資金轉(zhuǎn)移合起來的內(nèi)容加密生成新block稽荧,鏈接到全網(wǎng)賬單上橘茉。因此只有code執(zhí)行結(jié)果在大部分以太坊節(jié)點上都能驗證,才可以成功掛載姨丈,保證了代碼執(zhí)行的正確性畅卓。

智能合約的示例

概念有時候比較晦澀,我們舉一個募捐的智能合約的例子來幫助理解:

假設(shè)我們想向全網(wǎng)用戶發(fā)起募捐蟋恬,那就先可以定義一個智能賬戶翁潘,它有三個狀態(tài):當前募捐總量,捐款目標和被捐贈人的地址筋现,然后給它定義兩個函數(shù):

  • 接收募捐函數(shù)

接收募捐函數(shù)每次收到發(fā)過來的轉(zhuǎn)賬請求唐础,先核對下發(fā)送者是否有足夠多的錢(EVM會提供發(fā)送請求者的地址,程序可以通過地址獲取到該人當前的區(qū)塊鏈財務狀況)

然后每次募捐函數(shù)調(diào)用時矾飞,都會比較下當前募捐總量跟捐款目標的比較一膨,如果超過目標,就把當前收到的捐款全部發(fā)送到指定的被捐款人地址洒沦,否則的話豹绪,就只更新當前募捐總量狀態(tài)值。

  • 捐款函數(shù)

將所有捐款發(fā)送到保存的被捐贈人地址申眼,并且將當前捐款總量清零见擦。

每一個想要募捐的人溉愁,用自己的eth地址向該智能賬戶發(fā)起一筆轉(zhuǎn)賬,并且指明了要調(diào)用接受其募捐函數(shù)。

于是我們就有一個募捐智能合約啦辽社,人們可以往里面捐款雷滋,達到限額后錢會自動發(fā)送到指定賬戶内狗,全世界的礦工都在為這個合約進行計算和擔保凫碌,不再需要人去盯著看有沒有被挪用啦膜,這就是智能合約的魅力所在。

Ethereum最核心的智能合約機制大概就是這樣淌喻,其實也并不復雜僧家,接下來我們還會講一下,ICO是怎么借助智能合約實現(xiàn)的裸删,其實原理非常簡單八拱,等你明白了你一定會大吃一驚。


QQ群:654894791

微信公眾號: 94ETH

官網(wǎng): https://www.94eth.com

頭條號: 周期與泡沫


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末涯塔,一起剝皮案震驚了整個濱河市肌稻,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌伤塌,老刑警劉巖灯萍,帶你破解...
    沈念sama閱讀 222,590評論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件轧铁,死亡現(xiàn)場離奇詭異每聪,居然都是意外死亡,警方通過查閱死者的電腦和手機齿风,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,157評論 3 399
  • 文/潘曉璐 我一進店門药薯,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人救斑,你說我怎么就攤上這事童本。” “怎么了脸候?”我有些...
    開封第一講書人閱讀 169,301評論 0 362
  • 文/不壞的土叔 我叫張陵穷娱,是天一觀的道長。 經(jīng)常有香客問我运沦,道長泵额,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 60,078評論 1 300
  • 正文 為了忘掉前任携添,我火速辦了婚禮嫁盲,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘烈掠。我一直安慰自己羞秤,他們只是感情好,可當我...
    茶點故事閱讀 69,082評論 6 398
  • 文/花漫 我一把揭開白布左敌。 她就那樣靜靜地躺著瘾蛋,像睡著了一般。 火紅的嫁衣襯著肌膚如雪矫限。 梳的紋絲不亂的頭發(fā)上哺哼,一...
    開封第一講書人閱讀 52,682評論 1 312
  • 那天京革,我揣著相機與錄音,去河邊找鬼幸斥。 笑死匹摇,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的甲葬。 我是一名探鬼主播廊勃,決...
    沈念sama閱讀 41,155評論 3 422
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼经窖!你這毒婦竟也來了坡垫?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 40,098評論 0 277
  • 序言:老撾萬榮一對情侶失蹤画侣,失蹤者是張志新(化名)和其女友劉穎冰悠,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體配乱,經(jīng)...
    沈念sama閱讀 46,638評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡溉卓,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,701評論 3 342
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了搬泥。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片桑寨。...
    茶點故事閱讀 40,852評論 1 353
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖忿檩,靈堂內(nèi)的尸體忽然破棺而出尉尾,到底是詐尸還是另有隱情,我是刑警寧澤燥透,帶...
    沈念sama閱讀 36,520評論 5 351
  • 正文 年R本政府宣布沙咏,位于F島的核電站,受9級特大地震影響班套,放射性物質(zhì)發(fā)生泄漏肢藐。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 42,181評論 3 335
  • 文/蒙蒙 一孽尽、第九天 我趴在偏房一處隱蔽的房頂上張望窖壕。 院中可真熱鬧,春花似錦杉女、人聲如沸瞻讽。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,674評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽速勇。三九已至,卻和暖如春坎拐,著一層夾襖步出監(jiān)牢的瞬間烦磁,已是汗流浹背养匈。 一陣腳步聲響...
    開封第一講書人閱讀 33,788評論 1 274
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留都伪,地道東北人呕乎。 一個月前我還...
    沈念sama閱讀 49,279評論 3 379
  • 正文 我出身青樓,卻偏偏與公主長得像陨晶,于是被迫代替她去往敵國和親猬仁。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 45,851評論 2 361