Βεβαίως.
Ουσιαστικά δεν χρειάζεται κάποιος αλγόριθμος γιατί έχοντας το κλειδί σου, το key στην προκειμένη περίπτωση της κλάσης ECKey που παρέχει η βιβλιοθήκη BitcoinJ....απλά καλείς την
toAddress() function που είναι υλοποιημένη από την βιβλιοθήκη BitcoinJ επί του αντικειμένου
key,η οποία σου επιστρέφει την διεύθυνση Bitcoin(όπως την βλέπουμε με το 1 μπροστά) η οποία αντιστοιχεί στο public key του ECKey.
με βάση αυτό:
https://bitcoinj.github.io/javadoc/0.12/org/bitcoinj/core/ECKey.html#toAddress-org.bitcoinj.core.NetworkParameters-Προσοχή όταν λέμε ECKey, αυτό είναι το Elliptic Curve Key που περιέχει και το public αλλά και το private μέρος του κλειδιού.
ECKey key = ...;
String addr = key.toAddress(MainNetParams.get()).toString();