在生成艺术日渐火爆的当下,越来越多人在问:究竟什么是生成艺术?为了让大家理解,我们在征得生成艺术平台——256ART 的创始人 Tib 授权后将他这篇科普文进行了翻译。内容对于初学者十分友好,适合每一位想要了解生成艺术的朋友。
作者:Tib,256ART 创始人&gmDAO 核心成员
编译:An7,蓝筹持有者&收藏家
封面:Fidenza #351 (@tylerxhobbs 创作,@CozomoMedici 收藏)
什么是生成艺术? 为什么 NFT 如此适合它?也许最重要的是,有没有办法做得更好?这篇长文旨在教育和普及。我会尽量保持它的初学者友好阅读。
生成艺术是一个非常宽泛的术语,本文主要关注一种叫长程生成艺术(long form generative art)的子类,使用 JavaScript 语言创建。
具体的,生成艺术是一种使用自管理系统创作的艺术 (在我们的例子中,使用有一定量随机性构成的 JavaScript 算法;JavaScript 是一种编程语言,常用于在浏览器中创建交互效果。
长程 (long form): 由 @tylerxHobbs 创造的名词,这意味着作品在生成过程中没有外因管理。即使是艺术家也不知道最终的作品会是什么样子。
长程生成艺术品最著名的例子是 Fidenza by @tylerxhobbs,如 @CozomoMedici 收藏的 Fidenza #351 。
另一个令人难以置信的系列是 Ringers by @dmitricherniak,例如 @Vince_Van_Dough 收藏的 Ringers #939。
NFT 空间中的生成艺术,最常见的创建方式如下: 在链上,铸造时生成一个随机散列,看起来像这样:
0x0C4969981E56b00eB83814a67b260aa9308A641d) ,
然后在服务器上基于此哈希地址开始生成作品。
通常,一个生成艺术作品的构成如下:
- 实时观感
- 静态图像
- 元数据
实时观感(或实际艺术品):这是一个包含了 JavaScript 算法的 HTML 页面(图像可以是静止的,也可以是动画的,取决于代码脚本)。例子:
静态图像: 静态图片格式的艺术品是个非常易于使用的格式 (交易市场和社交最常用的格式)。例子:
元数据:这是一个 JSON 格式的文件,包含了该艺术品的所有信息(包括各种属性 + 静态图像的 地址等),它也是您的 NFT 的 tokenid 指向的位置。例子:
大多数情况下,上述所有资产都存储于在线服务器供应商(例如:亚马逊 S3)或使用 IPFS 存储。换句话说,上述所有数据都没有存储在区块链上!
现在你可能想问,不是几乎所有的生成艺术平台都号称作品是全链上的吗?的确如此,我再解释一下。首先要知道的是,在链上存储任何形式的数据都是非常昂贵的。将复杂的艺术品一件一件地完全上链储存是不可行的。
但在生成艺术领域,代码是保持不变的,只有输入值、生成的哈希值会发生变化。这非常适合全链上存储。生成艺术平台完全上链的方式通常是将创作代码存储在区块链。
用你唯一的哈希值 + 艺术创作代码,你可以用链上数据重构艺术作品。我认为对于不太懂技术的藏家,这不是一件容易的事情,因为它需要一些技术才能真正从链中获取您的艺术品。
即便如此,将艺术创作代码存储在链上,哪怕一次也是相当昂贵的。大多数情况下,是在非优化 gas 的方式下生成的 (因此相当昂贵)。这可能是生成艺术的价格通常也相当昂贵的原因之一。最重要的是,并非所有的艺术平台都利用了 ERC721 最新的优化,使得铸造的 gas 成本通常也很高。
那么,从纯技术的角度来看,怎样才能做得更好呢?
- 从链上获取作品能更简单
- 推出新的艺术项目成本更低
- 确保我们利用 ERC721 的最新优化,降低 gas 成本
@Mint256ART. 完成了这三方面的优化。作为一个收藏家,我认为最重要的是知道我们做到了。但如果你想深入了解我们是如何做到的,请继续读下去。不过接下来的部分将更加技术性。
就让我们深入探讨一下如何更容易地从链上获得艺术品。我们的目标是创建一个每个藏家都可以执行的用户流,而不需要大量的技术知识。这时,我们意识到浏览器对 base64 编码的 HTML 有很好的支持。
这意味着,如果浏览器地址栏中输入 base64 字符串,它将呈现已编码的 HTML 页面。因此,我们创建了一个函数,它对链上的 HTML 页面 (包括 艺术 脚本和 哈希地址) 执行 base64 编码。
作为一个藏家,你所要做的就是使用 tokenId 调用 getArtFromChain 函数并将结果复制粘贴到地址栏中。这不是一个链接,是直接从链上获取的整个艺术品。不需要 S3 服务器、 IPFS 或任何其他形式的链外主机或存储。
你可以在合约中自己尝试 (只有 id 0-8,为测试而唯一生成的) 。
在合约中找到 getArtFromChain 方法,输入 0-8 随便一个数字,点击 Query,获得一个长篇的文本,复制整个文本到浏览器地址栏然后回车,艺术作品会在浏览器中开始渲染生成。
https://rinkeby.etherscan.io/address/0x0c4969981e56b00eb83814a67b260aa9308a641d#readContract
接下来,我们可以以降低 10 倍的成本推出全新的生成艺术项目。是的,你没看错,成本下降 10 倍!
使用 EIP-1167 最小代理合约,合约部署成本降低了 10 倍+,即使使用执行最高效的链上存储方式 “常量” 而不是 “内存” 来存储代码,也大约降了 4 倍成本。
样例及样例项目中的生成艺术代码:
https://rinkeby.etherscan.io/address/0xAf8d9c3a754DD3356Bf267Af5bA87aBda632da0f
最后,我们可以利用最近 ERC721 合约的改进来降低 gas 成本。像 @nftchance 这样有才华的开发人员改进了 ERC721,铸造的 gas 成本便宜了 5 倍。在我看来,不利用这些优化是对你藏家社区的伤害!
说了这么多,我很兴奋的介绍一下 @Mint256ART ——一个新的生成艺术平台,将实现上述所有内容(以及许多其他非技术改进),并预计最迟会在下个月底推出。
记录所有信息的 notion 地址如下:
https://256art.notion.site/256ART-45d735feb9aa40af8e76d1cac10affec
免责声明:作为区块链信息平台,本站所发布文章仅代表作者及嘉宾个人观点,与 Web3Caff 立场无关。本文内容仅用于信息分享,均不构成任何投资建议及要约,并请您遵守所在国家或地区的相关法律法规。