The primary goal of this project is to design secure distributed protocols which apply to real-world communication networks (typically sparse and dynamic). Communication networks are increasingly dominant in the real-world. Large scale real-world networks such as peer-to-peer (P2P) networks, internet, social networks, wireless ad-hoc networks, cryptocurrency networks, brain networks, etc. are distributed in nature. A major challenge in distributed systems is dealing with malicious or Byzantine nodes that can foil the protocols executed by the honest nodes. Byzantine fault tolerant protocols are at the heart of secure and robust protocols that can tolerate the presence of malicious nodes in a distributed system, such as a Peer-to-Peer (P2P) network, which allows a large number of peers to enter the network with little or no admission control. Such malicious peers acting alone or in collaboration can cause disruption of service in P2P systems. Modern P2P networks are typically sparse and dynamic. Inspired by the P2P applications like Blockchains and Cryptocurrencies that espouse permission-less settings whereby peers can anonymously and dynamically join and leave the network at will, my goal is to design efficient Byzantine- resistant protocols for sparse and dynamic networks. Byzantine agreement is a keystone problem in distributed computing. It provides a critical building block for creating attack-resistant distributed systems. Its importance can be seen from widespread and continued application in many domains: sensor networks, grid computing, P2P networks, cloud computing, and recent hot topics like blockchain, cryptocurrency, IoT security. Consider the real-world example of Bitcoin-- a decentralized P2P-based digital currency. A crucial aspect of Bitcoin is a computational mechanism that allows fault-tolerant agreement on a set of ordered transactions. Agreement in Bitcoin is achieved via a computationally expensive operation, called mining (essentially a consensus protocol), which requires message efficient protocols. However, despite intensive research, there has still not been a practical solution to the Byzantine agreement problem for modern large-scale networks. One big reason for this is the large message complexity of currently known protocols, as has been suggested by many systems papers. More importantly, much of the classical results focus on complete networks where nodes have global knowledge. However, real-world distributed networks such as Peer-to-Peer networks which are typically sparse and bounded degree with nodes having only local knowledge and dynamic. Therefore, we wish to investigate the following: Solving Byzantine agreement and leader election in sparse and dynamic networks with the following guarantees: (i) low message complexity (say, polylogarithmic messages per node), (ii) low time complexity, (iii) tolerate as many Byzantine nodes as possible, (iv) little or no global knowledge (topology unknown).