Cracking hashes: With vs without knowing the salts
The point of using salt is not that it's secret. In fact, it's usually stored together with the hashed password. The point of using salt is that it's different for each entry. This has a few major benefits:


Two users who use the same password won't have the same hash. Hence an attacker can't see which users share a (presumably weak) password.
In a dictionary attack, the attacker can't use a precomputed table of bcrypt hashes. Instead, they have to compute each hash for each salt anew. In particular, the use of salt is a pretty good defense against attacks using rainbow tables.