Computer Science > Cryptography and Security
[Submitted on 17 Jan 2023]
Title:Shackled: a 3D Rendering Engine Programmed Entirely in Ethereum Smart Contracts
View PDFAbstract:The Ethereum blockchain permits the development and deployment of smart contracts which can store and execute code 'on-chain' - that is, entirely on nodes in the blockchain's network. Smart contracts have traditionally been used for financial purposes, but since smart contracts are Turing-complete, their algorithmic scope is broader than any single domain. To that end, we design, develop, and deploy a comprehensive 3D rendering engine programmed entirely in Ethereum smart contracts, called Shackled. Shackled computes a 2D image from a 3D scene, executing every single computation on-chain, on Ethereum. To our knowledge, Shackled is the first and only fully on-chain 3D rendering engine for Ethereum. In this work, we 1) provide three unique datasets for the purpose of using and benchmarking Shackled, 2) execute said benchmarks and provide results, 3) demonstrate a potential use case of Shackled in the domain of tokenised generative art, 4) provide a no-code user interface to Shackled, 5) enumerate the challenges associated with programming complex algorithms in Solidity smart contracts, and 6) outline potential directions for improving the Shackled platform. It is our hope that this work increases the Ethereum blockchain's native graphics processing capabilities, and that it enables increased use of smart contracts for more complex algorithms, thus increasing the overall richness of the Ethereum ecosystem.
References & Citations
Bibliographic and Citation Tools
Bibliographic Explorer (What is the Explorer?)
Litmaps (What is Litmaps?)
scite Smart Citations (What are Smart Citations?)
Code, Data and Media Associated with this Article
CatalyzeX Code Finder for Papers (What is CatalyzeX?)
DagsHub (What is DagsHub?)
Gotit.pub (What is GotitPub?)
Papers with Code (What is Papers with Code?)
ScienceCast (What is ScienceCast?)
Demos
Recommenders and Search Tools
Influence Flower (What are Influence Flowers?)
Connected Papers (What is Connected Papers?)
CORE Recommender (What is CORE?)
arXivLabs: experimental projects with community collaborators
arXivLabs is a framework that allows collaborators to develop and share new arXiv features directly on our website.
Both individuals and organizations that work with arXivLabs have embraced and accepted our values of openness, community, excellence, and user data privacy. arXiv is committed to these values and only works with partners that adhere to them.
Have an idea for a project that will add value for arXiv's community? Learn more about arXivLabs.