Web3 Technology Stack Explained: How Decentralized Apps Really Work