Question about PoW

Is it necessary to use Wagner algorithm to find a solution or I can use some other algo that produce 512 indexes where Blake2b results, of that indexes, XORed gives one big zero?

You can use any algorithm, but your solution must have some additional properties: indexes must be unique, ordered on the tree, and have enough zeroes in intermediate hashes by the tree.

See https://github.com/zcash/zips/blob/master/protocol/protocol.pdf paragraph 6.4.1 from “Algorithm Binding conditions”