Here's a link to the README.md that has the high level design.

Are there weaknesses in the scheme? For example, if the user got enough data after one bad guess to brute-force guesses on their own afterwards, the scheme would be useless. It defends vs that attack by hashing the user ID, device ID, and pin to a point on the curve before blinding the point and sending it to the distributed pseudo-random function servers.