So, you will need to write your own "Oracle".
Your offchain application can gather the addresses, and an administrative backend, where only you have access, could be used to call a `registerOwners` function in the contract, that adds the address to a list of owners (be sure to provide a way of also deactivating them, if needed).

This should be tested, but in order to save gas, you could have your friends call a function that saves their address in a mapping (a kind of pre-registration), and you would just call a function that flips a boolean inside of a struct, saying that the pre-registration has been allowed.