Thanks for sharing nostr-ruby link.
  1. Normally users ask for bitcoin address when they need to pay someone. In this case it would be npub. So P2N (pay to npub)
  2. User input validation could be done for both sender and recipient to avoid such issues. Ideally this should be integrated in wallets so that users don't need to manually enter technical details like UTXO.