When you submit a transaction to the network, you have to perform some proof of work.
Bitcoin uses Hashcash and Ethereum uses Ethash as their PoW algorithms, but what does IOTA use, and in what way is it different?
Iota Stack Exchange is a question and answer site for users of Iota, the open-source cryptocurrency for IoT that does not use a blockchain. It only takes a minute to sign up.
Sign up to join this communityIOTA's Proof of Work is directly comparable to Hashcash, as it serves a similar purpose to prevent spam, and in our case, also to prevent sybil-attacks.
More about the Hashcash can be found on its wikipedia page.
Iota currently uses Curl hashing algorithm for proof of work. It was developed internally by IOTA team as a ternary (uses base 3 numbers, like all Iota, instead of binary) cryptographically secure algorithm, but was ultimately shown insecure for cryptographic applications (I don't know how it affects its performance as PoW, maybe some ultra-ASICBoost is possible with Curl).
I was unable to find a human readable description of the algorithm, but there are various implementations on GitHub, for instance, in JavaScript and Java.