  Decentralized techniques are becoming crucial and ubiquitous with the rapid
advancement of distributed ledger technologies such as the blockchain. Numerous
decentralized systems have been developed to address security and privacy
issues with great dependability and reliability via these techniques.
Meanwhile, formalization and verification of the decentralized systems is the
key to ensuring correctness of the design and security properties of the
implementation. In this paper, we propose a novel method of formalizing and
verifying decentralized systems with a kind of extended concurrent separation
logic. Our logic extends the standard concurrent separation logic with new
features including communication encapsulation, environment perception, and
node-level reasoning, which enhances modularity and expressiveness. Besides, we
develop our logic with unitarity and compatibility to facilitate
implementation. Furthermore, we demonstrate the effectiveness and versatility
of our method by applying our logic to formalize and verify critical techniques
in decentralized systems including the consensus mechanism and the smart
contract.
