Surface codes are a type of quantum error-correcting codes that are essential for building robust quantum computers. They are designed to protect quantum information from errors due to decoherence and other quantum noise, which are significant challenges in quantum computing and nanotechnology.