Shackled: A 3D Rendering Engine Programmed Entirely in Ethereum Smart Contracts