以太坊是什麼? 以太坊簡介和重點整理
雖然在前面的文章當中,已經粗淺的介紹過了以太坊是什麼了,但在接下來的一系列文章,我們準備對以太坊的技術層面做更深入的探討,首先,就先來回顧複習並深入介紹一下以太坊是什麼吧!
以太坊是一個基於區塊鏈的公開去中心化平台,和比特幣最大的不同是以太坊並不著重在虛擬貨幣交易上,目標是讓所有的應用程式都能在以太坊上運行、都能享受到區塊鏈技術所帶來的好處,在以太坊出現以前,如果要在使用區塊鏈技術來做各式各樣的應用,需要深厚的程式底子以及對密碼學等相關知識有所了解才有辦法撰寫。
直到2013年,才由Vitalik Buterin發表以太坊的白皮書,發佈了以太坊以及以太幣,並開啟ICO(Initial Coin Offering)募資,以太幣也是被譽為有史以來最成功的ICO募資,在2015年,第一版的以太坊平台”Frontier”正式推出,給予對於區塊鏈有所了解的大眾一個新的衝擊。
除此之外,在前篇文章也有提到過,在以太坊這個平台上有綁定一個公共貨幣稱為以太幣,用來支付交易手續費以及挖礦的獎勵,可以說以太幣是用來推動整個以太坊運行的動力。
以太坊智能合約(Smart Contract)
而在以太坊上,是透過一個叫”智能合約”的程式類型來支援各式各樣的應用能夠放到區塊鏈上,智能合約可以想像是寫在區塊鏈網路上的程式,是完全公開且自動執行的,比如要寫一個小遊戲放在區塊鏈上,就是要把這個小遊戲的程式寫成智能合約的形式,這樣所有人都可以看到你這個小遊戲背後的程式邏輯是長什麼樣子的,這對於一些有機率性的程式比如賭博遊戲或者抽卡遊戲等等很有用處,因為這樣就能夠向所有使用者,公開遊戲中實際的機率,讓使用者更信服更願意使用這個應用程式。
除此之外,智能合約在寫好發佈到區塊鏈上以後,所有智能合約當中程式的函式,都是屬於自動執行的,也就是設定好當碰到什麼情況時,就會自動執行什麼樣的程序,並且智能合約只要發佈到鏈上後,是絕對無法更改的,甚至連撰寫該智能合約的人都沒有權限夠更改,這樣更能保證用智能合約撰寫並發佈到鏈上的程式,永遠都會照著上面的函式邏輯自動執行,這些特性讓智能合約成為一個讓所有使用者安心使用的程式。
以太坊虛擬機
(Ethereum Virtual Machine, EVM)
在以太坊被發表以來,在區塊鏈上做應用不只難而且限制也很多,往往一個鏈被設計出來就只能開發出一種應用,而Vitalik在發表以太坊時說過,以太坊能成為區塊鏈技術的”瑞士刀”,也就是能夠在同一個鏈上開發無限多的應用,而為了達成這個目的,EVM就被設計了出來。
EVM存在於每個以太坊節點上,是一個具有圖靈完備性(Turing Completeness)的虛擬機,圖靈完備性簡單來說就是能將可計算問題計算出結果,現今幾乎所有的程式都具有圖靈完整性,所以EVM可以想像是一個可以執行所有應用程式的機器,所以EVM就可以用來負責所有以太坊上需要的運算比如執行一個智能合約的程式。
EVM的運算能力有一個上限,這邊就要引進一個新的名詞: gas,gas可以說是用來衡量某個程式在EVM上運算所需要消耗的運算量,而gas有一個上限稱為gas limit,因此可以想像說雖然我們可以把任何想寫的程式寫進智能合約並放上以太坊,但其實這個程式不能到非常非常複雜,若是複雜到超過EVM運算能力的上限就會跑不動,這個智能合約就會無法發佈到鏈上,有關gas的相關知識會另外一篇文章中再詳細說明。
去中心化應用程式
(Decentralized Application, Dapp)
在前篇文章也有簡單介紹過,Dapp就是利用區塊鏈來做成的去中心化應用程式,像是比特幣就算是一種去中心化應用程式負責交易貨幣,在以太坊上寫Dapp能夠把一切的程式都寫在鏈上的智能合約當中,這樣所有Dapp背後運行的程式都能公開給所有使用者觀看,Dapp開發具有無限的前景,尤其是自從區塊鏈科技興起以來,人們對於去中心化感興趣以及接受的程度都逐步上升,因此目前所有想得到各式各樣的應用程式在未來有一天都有機會能夠轉成Dapp噢!
那把中心化應用程式轉成Dapp究竟還有哪些好處呢?
- 無法篡改:這是根據區塊鏈的特性,所有已紀錄的資料都無法被篡改
- 防止惡意攻擊:利用區塊鏈本身的安全性,也就是共識機制以及驗證程序來讓Dapp更安全
- 安全性:區塊鏈上用了很多密碼學的概念來保護資料的安全性,同時也可以讓Dapp有所保障
接下來一系列的文章,我們會對以太坊從頭到尾鉅細靡遺的介紹,並實際教學智能合約的撰寫以及做出一個屬於自己的Dapp唷! 讓你如果有idea就可以立即的發到以太坊上讓全世界的人都看見!
Reference:
- https://blockgeeks.com/guides/ethereum/
- https://medium.com/@micheledaliessi/how-does-ethereum-work-8244b6f55297
- https://medium.com/@ksin751119/ethereum-dapp%E5%88%9D%E5%BF%83%E8%80%85%E4%B9%8B%E8%B7%AF-3-%E7%B0%A1%E4%BB%8Bethereum-%E4%B9%99%E5%A4%AA%E5%9D%8A-smart-contract-%E6%99%BA%E8%83%BD%E5%90%88%E7%B4%84-7a0dfd32662f
- https://medium.com/@preethikasireddy/how-does-ethereum-work-anyway-22d1df506369