I describe Viaduct, a compiler that transforms high-level programs into secure, efficient distributed realizations that use cryptography. I develop a modular security proof for Viaduct that abstracts away from the details of cryptographic mechanisms.