1.同質與非同質
ERC-721:僅限於非同質
ERC-1155:允許同質和非同質,允許像半同質代幣這樣的新概念幣,例如,同質代幣可以“轉化”為非同質代幣,反之亦然。
2.批量傳輸
ERC-721:只支持每次傳輸一個代幣
ERC-1155:支持在單個交易中批量傳輸多個代幣ID。
(由於每個以太坊交易大約要15-30秒的時間,因此ERC-721需要花很長時間來傳輸代幣,而ERC-1155可以在一個區塊中發送數百個不同的代幣。
優化的ERC-1155順利通過測試,每秒可傳輸150-200個代幣!)
3.智能合約單一,不造成數據浪費
ERC-721:要求為每種新型代幣部署一個新的智能合約(例如,創建一個CryptoKitties的合約,再另外創建一個CryptoCuties的合約等)
ERC-1155:一個智能合約可容納無數類型的代幣。
注:無法將ERC-1155鎖定在不支持ERC-1155的合約中。
只能將代幣發送給符合ERC-1155的合約!從而防止意外的代幣丟失。如果收件人拒收ERC-1155代幣,系統會立即恢復你的代幣。
ERC-721試圖實現ERC-1155的功能,但無疾而終,ERC-721的標准中包含了遺留的“不安全”函數。如果錢包轉賬不安全,你有可能永遠丟失自己的代幣。
4.發送代幣觸發智能合約
向智能合約發送ERC-1155代幣可觸發區塊鏈上的一系列函數和事件。例如,交易所允許用戶直接發送代幣,自動瞬時地在鏈上交換其他代幣。
由於這些代幣嚴格遵循“onERC1155Received”規則,因此ERC-1155百分百可靠。
但無法用這種方法發送ERC-721代幣,因為如果錢包不能安全發送代幣到交易所,用戶將遭受損失。
這意味着dapp無法依賴於ERC-721接收器正常工作。由於ERC-721不可靠,無法創建這些應用。
5.本地化
ERC-721:只支持一種語言
ERC-1155:支持將所有元數據(例如代幣名稱、說明、甚至代幣圖像)語言本地化,使所有代幣都通用。
6.遺留元數據
ERC-721:保留了像“symbol”和“name”這樣的遺留元數據,但這對於許多現代代幣來說是不必要的。
ERC-1155:將所有元數據保存到web或IPFS上的URI(“統一資源標識符”的簡稱)中。
7.ID替換
ERC-721:由於只支持靜態元數據,因此每個代幣ID必須由智能合約存儲和管理其元數據URI。
ERC-1155:合約可以指向無數的代幣URI,無需在鏈上存儲任何額外的數據。甚至可以用來指向一個web服務,該服務為數據庫中的每個代幣動態生成代幣JSON。
8.豐富事件日志
ERC-721:可發出轉移和批准事件。
ERC-1155:可發送鑄幣、銷毀、傳輸、批准和更改元數據的標准事件。使生態系統受益,例如深度分析代幣和代幣瀏覽器。