1. 程式人生 > >快問快答:區塊鏈崗位面試終極必備題

快問快答:區塊鏈崗位面試終極必備題

image

現如今,任何人都可以在以太坊的區塊鏈上去建立一個智慧合約併發布自己的代幣。直到最近,一枚特殊幣種的實施完全委託給了該幣種的開發者,同時它的這種實驗性質往往伴隨了一些相關問題——這些問題包括了凍結投資者資金、合約被破解或一些無法預測的網路操作問題。

在這個處於“西大荒(Wild West)”的氛圍中,新的以太坊協議正在建立中——它旨在糾正以前版本的錯誤。也許其中的一個協議將在今年年底取代ERC20,使使用者所使用的區塊鏈可以更加可靠和簡單。

1

ERC20::dapp之王

使用者友好的邏輯和簡化的結構使以太坊成為一個專案方高度需求的框架,幾乎83%的專案選擇了將以太坊區塊鏈作為其底層結構。

image

圖片來源:ICOWatchList

有十幾個主要的代幣都是基於ERC20標準搭建的,同時每天也大約有400種新代幣會基於以太坊發行。雖然這些數字聽起來並不讓人感到有多麼不真實,但Coinmarketcap的評級和Ethereum token的圖表顯示,這些代幣的總市值已經達到了約為526億美元。此外,這一發行代幣的過程似乎是完全不受控制的,因為至今仍沒有相關立法來監管代幣的發起者以及發行代幣的頻率。

image

圖片來源:Ethplorer

在閱讀有關以太坊的資訊時,您可能會看到對“ERC20”的引用。ERC20是以太坊平臺中最常見、最廣泛使用的標準。維基百科給出了以下定義:

ERC20:其中ERC代表以太坊請求評論(Ethereum Request Command),20是分配給這個請求的數字。

ERC20標準於2015年首次推出。雖然它最初只被程式設計師使用,但是該標準在僅僅兩年內就得到了更廣泛的應用。該標準描述了在其基礎上開發和操作硬幣的規則。這樣的標準規範是加密行業的一種創新解決方案,因為直到那時還沒有一個統一的程式設計標準——它解決了新代幣的建立者遇到的主要問題。

但是它所涉及的問題是,在引入這一標準之前發行的所有幣種都是完全獨特的,這大大增加了交易所、錢包和其他用於與新標記互動的應用程式的工作。每次開發者都必須在他們的軟體中更改或新增一個層,這樣新的幣種就可以穩定地工作並與它們的系統相容。

在2017年,由於程式碼的統一性以及與各種應用程式和平臺的簡化整合,ERC20標準開始在各地得到應用。它引發了初始硬幣發行(ICO)初創公司的爆炸式增長,這些公司現在有了進入交易所和克服流動性問題的必要工具。

image

圖片來源:Smith&Crown

在ERC20實施之後,加密貨幣市場中的ICO初創公司數量大幅增加,截至2018年5月,各方共發行了近86,000種代幣。毫不奇怪的是,專案不再需要為代幣的問題和相關操作區建立自己的規範和準則,或者為它們與不同區塊鏈的相容性去制定標準。所有這些已經在ERC20標準中被描述,同時還引入了六個主要函式:

硬幣總量

在特定地址餘額中的硬幣數量

用於從主地址向個人使用者或ICO參與者的地址傳送代幣的函式

在使用者之間傳送代幣的函式

用於檢查具有提取資金能力的智慧合約上剩餘代幣的函式

確保傳送方在交易傳送時有足夠的代幣

2

智慧合約:新經濟的誕生

ERC20標準成功的主要祕訣是其引入了智慧合約。雖然在比特幣區塊鏈中已經實現了智慧合約的一些基本原則,但比特幣中的功能非常有限,它不適合為單個的dApps建立代幣。這就是為什麼以太坊可以被認為是第一個充分開發了智慧合約概念並實施它的平臺。

image

圖片來源:Openxcell.com

智慧合約的主要思想如下:

當用戶傳送代幣到接收方的地址時,傳送方的地址餘額會減少,而接收方的地址則會增加相同數量的代幣。

這有什麼特別之處呢?從技術上講,沒有人向任何人傳送任何東西。事實上,智慧合約被告知有關代幣所有者餘額中確定數量的代幣變化。結果是代幣從傳送方的錢包中消失並出現在可接收方的地址中。

正是由於這個系統,網路中的節點不再需要不斷地對資料庫進行檢查。它們現在所需要做的就是核實所有合約條款的準確性,因為雙方是(傳送方和接收方)完全通過智慧合約來進行互動的。

3

呼籲進行改變

由於ERC20標準是基於以太坊協議的第一個版本,隨著時間的推移,許多問題和缺點逐漸被人們所揭開。例如,使用者不小心將代幣傳送到一個智慧合約的地址,而對這筆交易進行滾回是不可能的。這是因為ERC20代幣的標準實施涉及兩種傳輸代幣的方式:

傳遞函式允許使用者將代幣從一個地址傳送到另一個地址

將代幣傳送給智慧合約的函式組合(approve + transferFrom)

應該指出的是,事件處理是程式設計中眾所周知的一種標準實踐。因此,在以太坊網路中資金的轉移工作中——轉賬處理有可能會發現錯誤。

在這種情況下,交易被認為是在資金成功轉移和沒有任何錯誤的情況下完成的。否則智慧合約就將取消交易。如果你向一個不相容的智慧合約傳送以太幣的話,那麼這個事件處理將幫助你避免資金損失,因為這個交易將在接收方處被拒絕。

根據ERC20標準,代幣傳輸應該被認為是一個事件,但是傳遞函式不允許對這筆交易進行處理,因為它是在沒有任何預先檢查的情況下增加了接收方的餘額。如果接收方是一個智慧合約並且使用傳遞函式來發送代幣的話,那麼合約無法識別交易時肯能會導致問題的出現。這將導致傳遞函數出現意外行為併產生不可預測的結果,即代幣可能會丟失並永久凍結。

那以太坊的建立者是如何解決這個問題的呢?答案其實很簡單——開發者引入了approve和transferFrom函式,它可以賦予使用者在傳送交易時允許智慧合約提取資金的權利,這樣就排除了任何可能發生的錯誤。

值得注意的是,開發者本身並不認為這是一個錯誤:

這不是一個錯誤,而是使用者的錯誤。它不是一個錯誤或漏洞,而是標準ERC20設計的一個特性。

然而,這個至今問題仍然存在——在去年,ICO的參與者總計損失了超過400萬美元。一個非常明顯的案例是EOS代幣發售智慧合約,它從無法收回資金的使用者那裡吞到了約210萬美元。

在其它吞掉投資者資金的合約包括了

Tronix ——40萬美元,

Golem和ZRX——超過20萬美元,

而OmiseGo已經凍結了投資者15萬美元。

而一些新使用者似乎沒有從別人的錯誤中吸取教訓。

4

ERC223:更正ERC20的錯誤

建立者:Dexaran

型別:標準代幣

為了解決以太坊第一個版本的協議漏洞,一個名為Dexaran的使用者開發了ERC223標準,該標準迫使ERC20標準的行為方式與將ETH轉移到智慧合約時的行為方式相同。現在有了這種標準,在傳遞函式中出現錯誤,當智慧合約不支援這種加密貨幣時,交易就會被取消。為此,它引入了兩種新函式:

傳遞函式取代舊的 transfer 和 transferFrom 函式

目標智慧合約的 tokenFallBack 函式決定了傳送幣種的型別

對於代幣來說,通常會提出新的標準。作為一個規則,它們會被加密社群和區塊鏈開發者進行仔細檢查。雖然它們中的一些標準不是很出名,但仍然有可能取代ERC20。

5

ERC721:加密貓CryptoKitties和其他收藏品

建立者:Dieter Shirley

型別:可收集代幣

在ERC20標準的幫助下建立的代幣可以進行互換。換句話說,每個代幣與另一個代幣是相同的。如果有人將其視為一種貨幣的話,那麼這種特性是必要的,但從“加密貨幣收藏品”的角度來看,這樣的代幣根本不適合。

由於ERC721,每個代幣都將變得獨一無二。Mike Raitsyn是SnowFox平臺的聯合創始人,該平臺幫助專案釋出了30多種代幣(其中包括ERC721),他看到了這種協議的潛力:

結合第二層的擴容解決方案(分片技術、Plazma和狀態通道),我們得到了將每一項重要資產以100%的不變性和安全性投放到公共(或混合的)區塊鏈的終極工具。

“以太坊上的殺手級”線上遊戲CryptoKitties的開發者是最早使用這個標準的人之一。該遊戲是基於使用獨特的屬性:年齡,顏色,品種。一些混合的屬性會變得非常罕見,並使小貓的價格變得非常昂貴。毫不奇怪的是,該想法被其他的娛樂遊戲,如加密小狗(CryptoPuppies)、加密寵物(CryptoPets),甚至是加密龐克(CryptoPunk)所採用。

6

ERC827:新版ERC20

建立者:Augusto Lemble

型別:標準代幣

ERC827是以太坊協議的最新版本之一,並被區塊鏈記者Dariusz R Jakubowski“一種新的ERC20”。與它的前身不同,這個標準不僅可以傳輸成本,還可以傳輸交易資料。開發者設法將這個有用的函式新增到一個小於100行的相對較短的程式碼片段中。這種函式擴充套件了以太坊網路在全國範圍內的使用範圍,並允許使用者在幾秒鐘內將資料移動到世界各地。此外,該標準在區塊鏈的安全性和可靠性保持不變的前提下,允許第三方(例如,經紀人或代理人)在不需要訪問私鑰的前提下進行交易的驗證。

7

ERC948::B2C商人的樂園

建立者:Kevin Owocki

型別:訂閱代幣(token for subscription)

“訂閱”模式已經在數字世界中非常流行,僅去年就吸引了大約1100萬用戶。麥肯錫公司的一項研究顯示,在2017年有15%的買家已經訂閱了電子商務。

ERC948協議為開發者提供了一個建立平臺的機會,在這個平臺上公司可以利用過去10年在零售和軟體行業中被證明有價值的經濟模型。此外,它還能通過將區塊鏈專案與客戶聯合起來,相信訂閱模式會在2018年得到更廣泛的使用。

8

ERC884:投資者的“白名單”

創造者:Dave Sag

型別:標準代幣

根據2017年的法律草案,特拉華州通用公司法(DGCL)正式允許使用區塊鏈進行股東的註冊。ERC884是為特拉華州的任何公共或私人公司發行的資產而建立的,它包含了一些超出ERC20能力的附加元件。這些元件包括了要求對代幣持有者進行識別並將其列入白名單作為代幣的組成部分。

9

協議的演化

領先的加密貨幣之間日益激烈的競爭促進了新協議的發展。每一個新的以太坊代幣標準都提供了一套更高階的函式集,這些函式集都要優於現有的函式。這些新標準的引入使開發者能夠解決已有協議中積壓的漏洞、濫用或低效率的問題,併產生更成熟的區塊鏈 dApps 。在2018年我們可以看到新協議的時機已經成熟,只有時間才能證明這個行業是否會出現ERC20000或其他的創新工具,這些工具將會在以太坊和 EOS 間的軍備競賽中出現。

內容來源:區塊鏈兄弟

原文作者:Julia Magas

編譯:Captain Hiro

以下是我們的社群介紹,歡迎各種合作、交流、學習:)

image