【白皮书略读笔记】如何构成 Decentraland?
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 智能合约分成两部分:LANDProxy 和 LANDRegistry,目的是让实作管理土地的 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 未来的发展。