Skip to main content

14 posts tagged with "ethereum"

View All Tags

· 8 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 來提供友善的資訊彙總與操作介面,讓以太坊成為一個目前最理想的區塊鏈底層技術。

graph TD DAPP -.- DAPP瀏覽器 DAPP瀏覽器 -.- 智能合約 錢包 -.- 智能合約 智能合約 --- 以太坊 錢包 -.- 以太幣 以太幣 --- 以太坊 以太幣 --- 激勵機制 以太坊 --- P2P 以太坊 --- 共識機制 共識機制 --- 密碼學 P2P --- 網際網路 分散式APP -.- ENS 智能合約 -.- ENS 以太幣 -.- ENS

以太幣 (Ether) 的實際用途

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

智能合約能做什麼事?

創造新的加密代幣

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

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

募資

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

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

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

程式能做的事

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

以太坊的缺點

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

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

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

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

其他參考資料

· 11 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....),轉帳的人不需要記憶一串根本像亂碼的以太幣錢包地址。

Imgur

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

查詢可申請的網域

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

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

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

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

Imgur

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

Imgur

這是因為 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 將釋出此網域並退回押金。

graph LR 網域可註冊 --> 提出標金 提出標金 -- 2 天 --> 公告競標 公告競標 -- 2 天 --> 取得網域 取得網域 -. 1 年後未續約 .-> 釋出網域並退回押金

提出標金

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

Imgur

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

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

公告競標

Imgur

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

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

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

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

取得網域

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

Imgur

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

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

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

取得網域之後

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

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

Imgur

如何節省交易手續費

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

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

Imgur

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

結語

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

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

參考資料


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

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

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

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

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

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

2. 別用交易所錢包轉帳

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

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

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

比較建議的方式是使用MyEtherWallet5或硬體錢包參與以太坊相關的 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會自動轉到對應的智能合約地址。

Imgur

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

5. 代幣詐騙 (scams)

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

結語

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

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

參考資料

· 6 min read

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

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

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

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

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

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

graph TD 公開加密貨幣 --- 區塊鏈 公開加密貨幣 --- 激勵機制 區塊鏈 --- P2P 區塊鏈 --- 共識機制 共識機制 --- 密碼學 P2P --- 網際網路

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

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

聯盟鏈

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

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

區塊鏈用到的加密技術

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

參考資料