Bitcoin has the double spend problem where a user can spend the funds twice by sending from the same private key at once. The 10 minute block times prevent this, but how does EOS prevent something like this if block times are only a few seconds?
EOS requires 15/21 of the producers to sign a block in order to finalize it. Once 15 producers have signed a block the block is deemed irreversible.
Byzantine Fault Tolerance is added to traditional DPOS by allowing all producers to sign all blocks so long as no producer signs two blocks with the same timestamp or the same block height. Once 15 producers have signed a block the block is deemed irreversible. Any byzantine producer would have to generate cryptographic evidence of their treason by signing two blocks with the same timestamp or blockheight. Under this model a irreversible consensus should be reachable within 1 second.
Bitcoin employs UTXO (Unsigned transaction output) model, where unspent bitcoins will be input for your next transaction, Eth ans Eos uses account based model.
the main catch is here is that you have only one read and write operation per account per block, this eliminates the user broadcasting multiple txs in same block