What Makes Web3 dApps Different from Traditional Applications?