Skip to content

Instantly share code, notes, and snippets.

Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Ankarrr/43588c993c500bc614b87b8d4bffe08b to your computer and use it in GitHub Desktop.
Save Ankarrr/43588c993c500bc614b87b8d4bffe08b to your computer and use it in GitHub Desktop.

【白皮書略讀筆記】如何構成 Decentraland?

大概是 2017 年最酷的 ICO

Decentraland 是架構於 Ethereum 區塊鏈上的虛擬世界。Decentraland 的土地(Land)是紀錄在區塊鏈上的虛擬資產,所有權可以像真實世界中一樣轉移。土地是數量固定的有限資源,每ㄧ筆土地都有固定的座標(x, y)。土地擁有者可以任意創造土地上呈現的內容,像是靜態的 3D 場景或是一間虛擬電商甚至一個可和使用者互動的遊戲(請發揮想像力)。本篇希望根據白皮書,瞭解構成 Decentraland 主要的技術架構。

現在買三環還來得及

本篇專注在技術上如何構成 Decentraland。想從其他面向瞭解 Decentraland 可以先參考官網,也可以聽聽創辦人怎麼說:

在 Decentraland 之上

Decentraland 的架構包含三層:

  • Consensus layer(共識層):管理土地(所有權、內容的連結等)和 MANA 代幣。
  • Land content layer(內容層):透過分佈式的檔案系統儲存內容。
  • Real-time layer(實時呈現層):讓使用者能實際體驗這個虛擬世界(所有土地上的內容),並與其他使用者彼此互動。

Consensus layer(共識層)

土地(LAND)

Decentraland 使用 Ethereum 智能合約來管理土地,將土地的所有權和交易歷史等記錄在難以竄改的區塊鏈上。在他們撰寫的 LAND 智能合約 中,定義 土地(Land) 為一種虛擬資產,且是不可替代的(non-fungible)。都有唯一的(x, y)座標、一個擁有者和一個參考(可以是一個 IPFS Hash 或是一個 HTTPS 網址等)連結到描述內容的文件。Decentraland Client(目前還沒實作出來) 會連結這個 LAND 智能合約,取得土地最新的參考,並從參考下載描述土地上內容的文件,再將內容呈現給使用者。

另外實際上 LAND 智能合約分成兩部分:LANDProxyLANDRegistry,目的是讓實作管理土地的 LANDRegistry 合約可以更新。使用者透過 LANDProxy 調用 LANDRegistry,當要更新 LANDRegistry 時只需重新部署並取得新的合約地址,再更新 LANDProxy 中紀錄的合約地址就可以了。

MANA

Decentraland 另外使用 Ethereum 智能合約發行一種代幣叫 MANA。MANA 是符合 ERC20 的代幣,用來購買土地。起初可以透過花掉 1000 MANA 取得一塊土地(MANA 會被銷燬,這個角度來看購買 MANA 就像預購土地)。另外 Genesis City 的土地在 2017 年底時透過拍賣出售。關於購買土地詳細請看 wiki

Land content layer(內容層)

每塊土地都有對應的文件描述土地的內容,這份文件可用 IPFS(Inter-Planetary File System) 來儲存。這讓 Decentraland 的運行不需要中心化的 server,避免 single-point of faliure,且可以做到 censorship-resistance。至於 IPFS 對提供儲存空間、頻寬的人缺發獎勵機制,未來可望用 Filecoin 這類 protocol 解決。

實際上一塊土地實際需要多份文件才能描述其完整的內容,這些內容包括:

  • 物件內容:描述土地上物件的 3D 模型、紋理或一切渲染所需要的資訊。目前官方正在開發一個基於 A-Frame 的土地編輯器
  • 腳本:描述的土地上的物件如何放置、移動,還有每個物件和使用者互動的行為。這讓在 Decentraland 的世界中製作動畫或是遊戲成為可能。這個腳本語言也正在開發中。
  • P2P 互動:這部分官方描述比較模糊,應該還沒定案。目的是希望使用者可以彼此互動,像是語音、訊息甚至支付的功能。可能就要描述由哪個 server 提供服務,如何使用等。

Real-time layer(實時呈現層)

除了用各種 3D 渲染技術呈現內容(主要透過虛擬實境裝置),還希望使用者之間可以彼此互動透過訊息或語音等。比較可行的方式是土地擁有者架設 server,讓使用者透過 server 進行互動。但在 Decentraland 中使用者需要透過 centralized 的 server 才能互動,這個世界好像就不這麼美麗了,所以白皮書中計劃未來會開發一個 P2P 溝通系統。此外,還要開發在 Decentraland 中的支付網路,提供快速、低手續費的支付方式。用來購買 P2P 服務或獎勵內容提供者。雖然已經有 MANA 這個代幣,但作為一個 ERC20 代幣,以目前 Ethereum 區塊鏈網路的情況用做支付可能會又慢又貴(以太坊區塊鏈被貓咪堵住)。

目前與未來發展

Decentraland 在 2017 年 8 月才 ICO 併發行 MANA 的代幣。至今與社群共同完成 Decentraland 中各街區的規劃、並在部署 Land 智能合約後開放使用者取得土地所有權。整個項目還在早期,根據官網的 Roadmap,目前正進入開發階段中的 “Iron Age“,包括要釋出基於 A-Frame 的土地編輯器和腳本系統,讓土地擁有者可以開始創造土地上的內容。腳本系統所能提供的功能和創造出來的使用體驗,會是影響 Decentraland 發展的重要因素。目前也正在開發去中心化的土地交易所。未來的挑戰還有快速、低手續費的支付網路和 P2P 溝通系統等。期待 Decentraland 未來的發展。

參考資料

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment