Skip to main content

14 posts tagged with "ethereum"

View All Tags

以太坊(Ethereum)是什麼?

· 5 min read

以太坊 (Ethereum) 是近幾年才發展起來的一種新的底層區塊鏈技術。以太幣 (Ether) 是以太坊公有鏈上產生的🔒💵加密貨幣 (Crypto Currency),除了可以拿來像比特幣 (Bitcoin) 一樣做交易外,還具有實際的用途。

以太坊和比特幣一樣是基於 P2P 網路與密碼學建立起的區塊鏈機制,不同之處是,以太坊在每個運作的節點上都運行著一個以太坊虛擬機 (Ethereum Virtual Machine, EVM),可以用來執行完整的程式。這些程式在以太坊中被稱為⚖📒智能合約(Smart Contract)。智能合約除了可以處理資料,還內建轉帳功能,可以很容易地透過智能合約來交易加密貨幣。由於智能合約可在每個以太坊的節點上執行並進行驗證,所以計算結果被認為是可信任的。以太坊還開發出了web3.js讓開發者可以使用網頁技術撰寫智能合約的操作介面。這樣的網頁操作介面又稱為🕸🅰分散式應用程式(DAPP)。要使用 DAPP,必須在支援 DAPP 的瀏覽器中才能使用 (如MistParity)。

使用智能合約技術製作的服務,也構成了以太坊生態圈的一環。例如Ethereum Name Service(ENS)就提供了讓使用者更容易尋找到轉帳對象、智能合約,和 DAPP 的方式。

以太坊提供了便於交易的加密貨幣以太幣 (Ether),可透過智能合約解決交易上的信任問題,同時也可撰寫 DAPP 來提供友善的資訊彙總與操作介面,讓以太坊成為一個目前最理想的區塊鏈底層技術。

以太幣 (Ether) 的實際用途

在電腦上執行的一般的程式碼,寫出來可能會有迴圈不斷執行 (死迴圈) 的情況,搬到區塊鏈上亦然。那麼以太坊怎麼解決這個問題呢?以太坊開發者想到的辦法是讓執行的程式碼變得有價。EVM 裡支援的所有的指令 (OPCODE) 都有明碼標價,執行智能合約需要消耗與執行的指令數量相當的以太幣。在智能合約的術語中,這些拿來消耗的以太幣被稱為 "gas"(燃料)。部署合約到區塊鏈上時,需要附加一定數量的燃料。當燃料消耗完而程式還沒執行完,就會出現 "Out of Gas"(燃料耗盡) 錯誤。智能合約透過這樣的方式來避免死迴圈等情況。

智能合約能做什麼事?

創造新的加密代幣

智能合約最基本的應用,就是做出新的加密代幣!只要遵循一定的規範(ERC20),部署一份智能合約到以太坊區塊鏈上,任何人都可以可以很容易地創造出自己的加密代幣。

不用像比特幣的山寨幣一樣需要自行徵募礦工。你的加密代幣會以 "以太坊的一個智能合約" 的形式存在於以太坊的區塊鏈中。現有支援以太幣的錢包與交易所,也可以快速地接入你的加密代幣。只要你發行的加密代幣與代幣背後所代表的服務具有交易的價值,代幣也可能變貨幣。

募資

此外,在募資上,智能合約也有無與倫比的優勢。新創公司ICO可透過以太坊的智能合約,在收到資助者的以太幣時,自動發出等值的加密代幣。

由於這些加密代幣可交易,如果公司的服務有價值,早期投資人在投資的前期,就可以透過交易加密代幣來調整持有量。

普通的投資人也第一次有機會直接支持自己感興趣的創業者,並可能從而獲得豐厚 (或歸零) 的回報。

程式能做的事

當你需要公開,可被信任的紀錄時,都可以透過智能合約達成。

以太坊的缺點

目前以太坊區塊鏈的速度和電腦執行速度無法相比,不適合快速交易,或是需要儲存較大資料的情境。近期的plasma提案有望解決快速交易的問題。

因為缺乏即時調控區塊大小的手段,在一些很熱門的交易時段 (如某些熱門的 ICO 開放認購時),整個網路的交易延遲會變地很長。

智能合約一經部署就永遠存在,除非擁有者啟動智能合約中的自毀 (selfdestruct) 功能。如何升級合約並保存其中的參數與代幣,是一個值得探討的課題。

以太坊網路節點上並不適合儲存較大的檔案。目前有SwarmIPFS等分散式檔案儲存方式可供選擇。

其他參考資料

收到我的ENS網域啦 gasolin.eth

· 7 min read
聲明:gasolin.eth 此 Domain 已過期,我並未繼續註冊

前幾天剛拿到gasolin.eth這個 ENS 網域。ENS (Ethereum Name Service)[^1] 的功能類似我們較熟悉的 DNS (Domain Name Service) 網域名稱服務,但提供的不是 Internet 網址,而是將以太坊 (Ethereum) 錢包地址和智能合約地址以xxxxxxx.eth網址的方式表示,可以用於轉帳或存取智能合約等地方。

ENS 網域的應用情境

例如有人想轉錢給我,就可以請他將以太幣轉到gasolin.eth這網址,gasolin.eth會自動轉址到我指定的錢包地址 (0x....),轉帳的人不需要記憶一串根本像亂碼的以太幣錢包地址。

若我想要公開智能合約讓大眾使用,我可以公開諸如service.gasolin.eth這樣的網址,使用者只要連到service.gasolin.eth,就會自動轉到對應的智能合約地址。若這個智能合約所提供的是單次服務,我也可以透過修改service.gasolin.eth對應的智能合約地址,來 "升級" 這個智能合約服務。使用者依然是連到service.gasolin.eth使用這個服務,而不需要了解背後的機制。

查詢可申請的網域

因為gasolin.eth已經被我申請了,查詢可申請地址這部分將以搞笑的 NMB (嫩模幣) ICO [^3] 為例,我會以申請nenmocoin.eth當做例子,介紹整個申請 ENS 網域的流程。

嫩模幣的投資條件是本次投資僅接受ETH,最少投資額0.0.1ETH,ETH錢包地址:0x74b7bafafd200a58e79b719f3565cbb43af7d6b7。如果能將0x74b7bafafd200a58e79b719f3565cbb43af7d6b7換成nenmocoin.eth,投資者轉帳起來就更直覺了。

在寫作時nenmocoin(https://registrar.ens.domains/#nenmocoin) 這個網域是可以申請的 (目前 ENS 僅接受申請 7 個字母以上的網域)。

想查詢可用的網域,可以前往 http://registrar.ens.domains/ 或連到MyEtherWallet[^2] 並切換到ENS分頁,查詢可用的 ENS 網址。

如果在一般瀏覽器中查看,會看到黃色欄的警告提示。

這是因為 ENS 服務是跑在以太坊 Ethereum 區塊鏈上,要麼用專用的 browser(如 Mist),不然就是裝 Parity,或瀏覽器擴充套件 MetaMask (Chrome only)。還有個選擇就是用MyEtherWallet網頁錢包,裡面內建註冊 ENS 需要的功能。

我是使用MyEtherWallet網頁錢包來完成整個註冊 gasolin.eth 網域的流程。

競標網域須知

  • 註冊 ENS 網域並不需要實名或其他認證流程,只要有一個以太幣錢包地址即可。
  • 請參考參與首次代幣發行 (ICO) 時要知道的事,絕對不要用交易所提供的錢包競標網域,不然即使競標到網域也會變成交易所的 XD。
  • ENS 網域的最低起標價是 0.01ETH (當前匯率是美金 $2~3)

要註冊 ENS 網域,需要遵循 ENS 網域競標流程 (bid)。

ENS 網域競標流程模擬現實的競標,首先是寫下標價,並將相應數量的以太幣傳入 ENS 票箱。兩天後就可以公告這個網域競標 (揭標),其他人能看到這個網域已經開始競標了。如果他們有興趣,也可以加入這個網域的競標。最終價高者得,但出價最高的人只需要繳交第二高者的標價。ENS 會自動退回所有參與者的標金,也會返回得標者標金的差額。如果得標者一年後未續約,ENS 將釋出此網域並退回押金。

提出標金

確定 "nenmocoin" 網域可用,接下來就是打開錢包,開始競標吧。

打開錢包,輸入超過最低起標價 0.01ETH 的數字,勇敢按下Start an Auction按鈕,並照著指示完成競標手續。

記得將畫面上的資料複製留存,後面的手續中會用到。 完成競標手續後會進入 2 天的等待期。

公告競標

其實照著MyEtherWallet上面的說明完成公告手續並不困難😤。最重要的事,就是在 2 天的等待期結束後,

記得回來公告競標, 記得回來公告競標, 記得回來公告競標,

如果沒做這個動作,前幾天提出的標金會被送到黑洞消失掉,沒辦法取回喔!我第一次試著註冊網域的時候就這樣被吃掉 0.01ETH😭。

公告後其他人可以看到網域開始競標的訊息。這時有兩天的時間讓其他感興趣的人一起競標,當前最高價會顯示在查詢頁面上。

取得網域

公告期結束後,如果順利取得網域,可以看到如下訊息

這時 記得回來宣告取得網域, 記得回來宣告取得網域, 記得回來宣告取得網域,

照著MyEtherWallet上面的說明完成宣告手續後,才能正式取得這個網域。

以後其他人查詢時,就會看到這個網域已經被註冊的訊息。

取得網域之後

取得網域之後,在MyEtherWallet上查看網域並打開錢包,就會看到如何設定網域的說明。

目前設定網域的方式比較複雜些,需要到Contracts(合約) 目錄下,在Select Existing Contract(選擇已經存在的合約)選擇ENS - Public Resolver,並在Read/Write Contract(讀取 / 寫入合約) 部分選擇setAddr(設定地址) 功能,照著設定網域說明將錢包地址輸入,這樣網域才能正確解析到我們想要的錢包地址。

如何節省交易手續費

以上整套設定 ENS 的過程牽涉到 5~6 次交易。只有第一次需轉出標金,後面的各種動作都只收交易手續費。因此註冊一個 ENS 網域的成本其實是標金 + 多次手續費。標金在到期之後會返還,因此實際影響持有成本最大的是交易手續費。

MyEtherWallet右上角預設的交易手續費是 21GWei(1 Ether = 10^9 GWei)。手續費是給分礦工(提供計算力協助以太幣記帳的人)的,調低的話,交易確認的速度會變慢,調高則變快。我剛開始不懂,因此就使用了預設值。後來看 Youtube 上的教學,才知道可以參考Gas Station網站即時的SafeLow Cost(最低安全交易手續費)來設置。只要我們提供的手續費高於這個數目,交易都會成功。

這陣子最低手續費大多是 3 ~ 5 GWei。我照這個手續費做設定(並斟酌提高 1 ~ 2 Gwei)交易都有成功。雖然不管用什麼標準來算,以太坊的手續費都已經很便宜,但多一步簡單的操作,就能感受到精打細算的樂趣。

結語

上面舉了嫩模幣 ICO 的轉帳地址當做例子。我故意把引用的嫩模幣錢包地址,換成了我自己的錢包地址。如果不提,應該沒幾個人會注意到吧? 如果錢包地址改用本文提到的nenmocoin.eth,參與者是不是更容易發現收款地址已被修改了呢? ENS 並沒有做身分認證,釣魚網站也可以申請相似的 ENS 域名來釣魚,要避免這樣的情況,也有賴服務提供者有在提供服務前,有優先註冊域名的保護意識。

ENS 本身其實就是一系列基於以太坊的智能合約 [^4],內部的流程都是自動的,對於智能合約與 DAPP 開發者來說,也是很值得參考的架構。

參考資料


gasolin.eth這個網址真的可以用喔!覺得這篇文章寫得蠻好想打賞一下,可以傳到我的錢包地址gasolin.eth

參與首次代幣發行(ICO)時要知道的事

· 6 min read
聲明:gasolin.eth 此 Domain 已過期,我並未繼續註冊

最近首次代幣發行 (ICO)[^1] 相當熱門,但當代幣投資者打算贊助某個專案時,有相當多技術原因可能導致投資失敗,而這些原因大多是可以避免的。

1. 投資 ICO / 新創,99% 機率跟遇到詐騙沒兩樣

一般統計 9 成的新創會在一年內關門,存活下來的又有 90% 會在五年內倒閉。 換句話說,新創的五年存活率只有 1%。

首次代幣發行 ICO 的發起人多是新創公司,投資下去就跟投資新創一樣,有極大失敗的可能。 如果不了解風險,沒做足夠的功課而盲目投資,99% 機率投資 ICO 就跟遇到詐騙沒兩樣。 就算發起人說得天花亂墜,到時參與 ICO 換得的代幣也只能當紀念用了。

2. 別用交易所錢包轉帳

交易所的錢包並不能換回其他代幣, 交易所的錢包並不能換回其他代幣, 交易所的錢包並不能換回其他代幣, 重要的事說三遍。

交易所幾乎都會向客戶宣稱:開戶送比特幣 / 以太幣錢包。當客戶兌換好代幣後,客戶可以看到錢包帳戶裡的餘額,也可以轉進轉出,從客戶看來確實 "擁有" 了比特幣 / 以太幣錢包。

但是交易所的錢包畢竟是交易所的錢包。在轉出比特幣 / 以太幣時,交易所會動態選用自己轄下的某個錢包帳號出帳。你所參與的代幣眾籌,它的智能合約收到的是交易所的錢包帳號而不是你的錢包帳號,所以智能合約發代幣的對象也變成交易所了。

比較建議的方式是使用MyEtherWallet[^5] 或硬體錢包參與以太坊相關的 ICO。其他可使用的錢包可查看參考資料 [^7]。

3. 用到假錢包

無論是網路上或是手機應用程式商店中,有許多宣稱有比特幣 / 以太幣錢包功能的網站 / App。其中依然有些是假錢包。當你使用這些錢包轉幣時,可能會被騙走。因此盡量選擇自己常用,有信譽的網站 / 應用,或硬體錢包來操作 ICO。

網站應該加入書籤,以後都使用書籤中的網站存取。不要盲目信任搜尋引擎搜到的連結 (原因在下一條),或透過 slack 等社交網站,那些看起來像官方訊息提供的連結或地址 [10]。

4. 轉帳時填錯地址或轉到假地址

比特幣跟以太幣所謂的錢包地址,跟 IPv6 地址一樣,就是一串 16 進位數字 (而且是頗長的一串。有人算過總共幾位數嗎?)。要投資時需要照著網站上提供的指示,將錢包地址複製到自己的錢包接收地址欄中。 要是很不幸地複製錯了,你轉出的資金就被轉到不知是誰的錢包裡去了。由於以太坊上沒有銀行,一旦轉錯了,也沒有申訴的地方喔。

對於釣魚網站來說,這種根本就是亂碼的錢包地址真是個福音,因為只要將網站複製一下,錢包地址換成自己的,弄個前面網址一模一樣,但並非.com的假官方網域,再下個 Google 搜尋廣告,就可以開張來詐騙了!

但幸好最近 ENS (Ethereum Name Service)[^4] 地址網域開始投入使用,可以將以太坊 (Ethereum) 錢包地址以類似網址的方式表示。 例如我 (gasolin) 若發起一個 ICO,就可以請投資者將以太幣轉到gasolin.eth這網址。 gasolin.eth會自動轉址到我指定的錢包地址。之後要公開智能合約讓大眾使用時,也可以公開諸如service.gasolin.eth這樣的網址,service.gasolin.eth會自動轉到對應的智能合約地址。

期望之後有更多的 ICO 和智能合約使用 ENS,讓贊助者可以更安心地轉帳。

5. 代幣詐騙 (scams)

隨著代幣眾籌愈發熱門,代幣詐騙 (scams) 也層出不窮。除了那種本來就是打算來詐騙 (或是來搞笑 [^2]?) 的專案之外,另一種可能的詐騙方式,是詐騙者做一個長得一模一樣的釣魚網站 (phishing),選一個與原來 ICO 網站類似的網址,並透過搜尋引擎或論壇散播。沒注意到的投資者就可能因此被騙去代幣。 因此投資前務必多方確認。也可以到cointelegraph[^3] 或tokenmarket[^6] 上查看近期的 ICO 列表。上面列出的 ICO 項目不代表可靠,但至少新聞網站為了信譽,會把明顯是詐騙的 ICO 剔除掉 (?)。

結語

投資一定有風險,ICO 投資有賺有賠,申購前應詳閱公開說明書。 可以將上面提到的幾點當作檢核表,避免因為技術原因導致投資失利。

雖然上面舉的 gasolin ICO 只是個例子,但 gasolin.eth 這個網址真的可以用喔! 覺得這篇文章寫得蠻好想打賞一下,可以打賞一點 ETH 到我的錢包地址,順便試試 ENS 的功能:p 之後也將分享如何註冊 ETH 地址的心得。

參考資料

區塊鏈是什麼?

· 5 min read

今年比特幣 (Bitcoin)[^1] 與以太幣 (Ether)[^2] 價格紛紛到達新高。主因除了隨著更多支援加密貨幣 (Crypto Currency)- 當地貨幣的兌換 / 代購 / 交易所開張,取得虛擬貨幣 / 代幣的方式更加多元外,首次公開發行加密代幣 (ICO, Initial Coin/Crypto Token Offering)[^3] 這種創新的投資 / 募資方式愈加熱絡,也讓一些個人與機構意識到虛擬貨幣作為貨幣或貨品的投資價值。

這些虛擬幣背後所使用的技術叫做區塊鏈 (blockchain)[^4],可以被用來解決各種「交易」相關的問題。

網際網路交換訊息,區塊鏈交換價值

網際網路出現之前,不同的系統之間沒辦法用標準的協定來互相通訊和傳遞訊息。網際網路讓不同連網方式(撥接、光纖、4G)、不同設備間可以互相連接,滿足人與人之間對訊息的即時需求。人們的生活在網際網路發展起來的這 20 多年間,也因此產生了極大地改變。

2001 年時,Napter [^5] 開啟了透過點對點 (P2P) 網路交換 MP3 的風潮,這是第一次大眾意識到點對點網路可以被廣泛地應用在資訊交換上。隨後 BitTorrent (BT)[^6] 接過大旗,透過 BitTorrent 與配合的磁力連結 (Magnet Link)[^7],2009 年時已占據了近 50% 整體網際網路流量。

區塊鏈基於網際網路,點對點 (P2P) 網路,和以密碼學為基礎的共識紀錄機制,提供了一個可以不被地域限制,快速交換價值的方式,降低交易的不確定性 (uncertainty) 與風險。 網際網路和點對點網路解決了資訊交換的問題,而區塊鏈則進一步想解決價值交換與交易信任的問題。

區塊鏈不僅只是加密貨幣,透過區塊鏈,我們可以和各地的人做生意,用很低的手續費在不同國家收款與匯款 (都在同一個公開區塊鏈上),而且幾分鐘內就可到帳;交易的過程中,所有的合約都由網路上的節點自動執行 (智能合約 Smart Contract),可以避免人為操縱與詐欺等潛在的信任問題,讓人們可以更安心地交易;未來還可以透過瀏覽器使用智能合約,就像使用網站一樣容易 (分散式應用 DAPP)。

暢想未來的商業模型,可能是顧客透過易用的手機或網頁 DAPP 取得商家提供的資訊,經由可信任的智能合約,讓彼此能快速地交換價值與服務。

聯盟鏈

區塊鏈根據型態,大致分為公有鏈,私有鏈、聯盟鏈幾種。公有鏈就是大眾比較常聽到的各種加密代幣。可以在 https://coinmarketcap.com/ 查看大部分的加密貨幣。除了公有鏈之外,多家銀行、支付機構、甚至 IBM、微軟等科技公司也相繼投入資源,參與區塊鏈研究與發展。多數機構採用的是聯盟鏈的形式。Apache 基金會下的 Hyper Ledger [^9] 計畫是目前發展較好的聯盟鏈。

聯盟鏈與公有鏈有許多不同點。其一是對資料一致性有更高地要求。其二因為相對來說聯盟鏈的節點比較可控,也不需要加入代幣激勵機制或浪費能源在比拚算力的 Prove-of-WOrk (PoW) 共識機制上。其三是需要對資源與智能合約存取設置權限,以符合企業內部的需求。

區塊鏈用到的加密技術

可以在 Youtube 上查看 Blockchain 101 - A Visual Demo影片 [^14],或前往對應的Block Chain Demo 網站[^15] 自行動手試驗。

參考資料