In this paper, we surveyed several existing cryptographic voting protocols, and introduced a new protocol that increases scalability and reduces computation and message complexity in secure distributed elections by imposing a hierarchical structure. Our protocol handles arbitrarily complex voting trees in which votes are securely tallied at each intermediate level, localizing communication and reducing the need for global state. Just as existing voting protocols can be generalized to securely and verifiably compute arbitrary arithmetic functions, our protocol can also be used to securely and verifiably compute arbitrary expressions in distributed systems, each intermediate level handling the computation of a sub-expression.