Storing passwords in a publicly available database
It's generally not a good idea to store passwords of any kind in a database that's not secure, let alone a database that's intended to be publicly available.


  Is it secure?


If you don't care about tampering and wrong entries in the database then I guess this setup is okay.

Bcrypt already incorporates a salt to prevent rainbow attacks, so all passwords should have a different hash. Since you then encrypt the hash with the public key of an asymmetric encryption algorithm it should actually be secure. To try and brute-force a password in the database you would first have to brute-force the asymmetric encryption, which is infeasible on any time-scale.


  Is there a simpler way?


Yes, implement security-conventions (secure database, etc.), no need to reinvent the wheel.