Here are six written about in considerable detail: https://blog.enigma.co/solutions/home
Normally, with a smart contract, you need a few things. First, you need data; without data, functions besides basic mathematical operations are pretty meaningless. Next, you need an input and an output for the function to compute on the data. With a normal smart contract, you store the data on the contract (meaning it’s public), and then you input certain parameters for a function to compute on that available data and spit back an output. (for example, it could be a function that changes the data in a specific way based on the input parameters, and the new, modified dataset would be the output). Enigma enables the same exact thing, except instead of the data being stored in plain-text on the ethereum network, it is encrypted and stored in the enigma network. The nodes of the enigma network are structured to take an input, perform computations on the encrypted data, and generate the correct output without ever actually seeing the data itself. The party who provided the input parameters can be confident that the data was changed or the output was generated correctly, and then whoever has the decryption key can decrypt the data and see that any computations on the data were performed correctly even though the data was encrypted. So normally, the ethereum handles computations and consensus. With Enigma, the Enigma network handles computation over encrypted data, and then Ethereum handles consensus based on the output of the computation.