What is the advantage of using a smart contract vs for example ethers.js? (I've used ethers.js before) Is it faster?