I've just started learning about Smart Contracts and Ethereum, and I've come accross the classical example of FoundRaising. ( e.g. https://developer.ibm.com/clouddataservices/2016/05/19/block-chain-technology-smart-contracts-and-ethereum/)
Since the good practice of a Smart Contract implies that the outcome of the contract needs to be the same accross all the nodes, I have an issue understanding the drawdown() functionality of the smart contract presented at the provided URL.
Concretely, when calling :
benefactor.send(this.balance);
How does the actual sending process occur? Is the balance of the benefactor changed locally in each node that executes the smart contract? And if so...
How is the consensus achieved?