Jump to content

Creating a black hole/ locked account


Mercury
 Share

Recommended Posts

Is there a technical and provable way to create frozen/ black hole accounts? As I understand it the lsfDisableMaster is only allowed if there is a regular key or multi sign set up? So even if an account had lsfDisableMaster it is conceivable that original owner still has access to the funds?

Link to comment
Share on other sites

13 minutes ago, Mercury said:

As I understand it the lsfDisableMaster is only allowed if there is a regular key or multi sign set up?

Yeah, this basically allows you to 'change' the secret key to your account.

 

13 minutes ago, Mercury said:

it is conceivable that original owner still has access to the funds?

If they have access to one of the multi sign keys (and the setup has a quorum of 1) , or they have the set regular key, then they would still be able to access it

 

There is some black hole examples here:

https://wiki.ripple.com/Accounts#Black_Hole_Addresses

Link to comment
Share on other sites

30 minutes ago, Mercury said:

Is there a technical and provable way to create frozen/ black hole accounts? As I understand it the lsfDisableMaster is only allowed if there is a regular key or multi sign set up? So even if an account had lsfDisableMaster it is conceivable that original owner still has access to the funds?

I can give you some of my addresses that you're allowed to use as virtual black holes.... :) 

Link to comment
Share on other sites

Ok let me get this straight, I can set my regular key to one of the known Ripple blackhole accounts and then disable the master key? This would in effect make the wallet a black hole as it could never send anything (since all keys are unknown), but still receive (since the public key is known).

As far as we know there three public blackhole accounts:

rrrrrrrrrrrrrrrrrrrrBZbvji - ACCOUNT_ONE

rrrrrrrrrrrrrrrrrrrn5RM1rHd - NaN as per ripple-lib.

rrrrrrrrrrrrrrrrrNAMEtxvNvQ - Used for Ripple name reservation fee.

Link to comment
Share on other sites

Not that I don't trust Ripple, but there is no way to verify that these public black holes accounts are indeed blackholes? Let's say I had to create a blackhole account and make it beyond doubt provable to be locked...

The Master flag disabled is easily verifiable, but the rest seems to depend more on a creators good will.

Link to comment
Share on other sites

22 minutes ago, Mercury said:

Ok let me get this straight, I can set my regular key to one of the known Ripple blackhole accounts and then disable the master key? This would in effect make the wallet a black hole as it could never send anything (since all keys are unknown), but still receive (since the public key is known).

As far as we know there three public blackhole accounts:

rrrrrrrrrrrrrrrrrrrrBZbvji - ACCOUNT_ONE

rrrrrrrrrrrrrrrrrrrn5RM1rHd - NaN as per ripple-lib.

rrrrrrrrrrrrrrrrrNAMEtxvNvQ - Used for Ripple name reservation fee.

It's a good question, but if you don't trust that ACCOUNT_ZERO (the issuer of XRP) has no known secret, then there could be someone out there issuing more XRP :)

Also I think those accounts were generated without secret key...otherwise it would have taken millions of years to generate for example rrrrrrrrrrrrrrrrrNAMEtxvNvQ on purpose.

PPS: I think following the same arguments you could generate an account deciding the initial characters as rrrrrrMYBLACKHOLE and then complete just using the checksum.

Edited by tulo
Link to comment
Share on other sites

It's a good question, but if you don't trust that ACCOUNT_ZERO (the issuer of XRP) has no known secret, then there could be someone out there issuing more XRP [emoji4]

Also I think those accounts were generated without secret key...otherwise it would have taken millions of years to generate for example rrrrrrrrrrrrrrrrrNAMEtxvNvQ on purpose.

I was thinking of explaining all of this to someone who likes to say 'yes, BUT... they COULD...' [emoji14]

Also, there is nothing anywhere that shows that you set the new regular key to one of these accounts. Unless I am missing a flag or tx [mention=162]tulo[/mention]? Again I am thinking of a situation where a black hole wallet has to be provably unaccessible.

The last part is a good point

 

 

Link to comment
Share on other sites

5 hours ago, tulo said:

PPS: I think following the same arguments you could generate an account deciding the initial characters as rrrrrrMYBLACKHOLE and then complete just using the checksum.


When I first read your key name I thought you left off the first "L". That would be a whole different kind of account

Link to comment
Share on other sites

10 hours ago, tulo said:

It's a good question, but if you don't trust that ACCOUNT_ZERO (the issuer of XRP) has no known secret, then there could be someone out there issuing more XRP :)

 

Account zero is a blackhole and nobody will ever have access to it.

But even with access to that account, they couldn't "issue" XRP, because

(a) there's no mechanism to do so; and

(b) account zero isn't the issuer of XRP, which has no issuer! It's a placeholder value used when an issuer is needed and the currency is XRP.

Link to comment
Share on other sites

Account zero is a blackhole and nobody will ever have access to it.
But even with access to that account, they couldn't "issue" XRP, because
(a) there's no mechanism to do so; and
(B) account zero isn't the issuer of XRP, which has no issuer! It's a placeholder value used when an issuer is needed and the currency is XRP.

Is there a way to prove or publish that a regular key has been set to these blackholes?
Link to comment
Share on other sites

54 minutes ago, Mercury said:


Is there a way to prove or publish that a regular key has been set to these blackholes?

I think there is no way to prove it, because the key exists for every address. It is just unlikely that someone was able to find it. It is the equivalent of finding the secret of any account.

Link to comment
Share on other sites

4 hours ago, Mercury said:


Is there a way to prove or publish that a regular key has been set to these blackholes?

Sure, it is clearly visible in the ledger. Proven AND published.

In general you need to convince others that you can't know the private key to a public key. This is much easier by using something that is obviously not random (e.g. the public key is literally "0" or "1" for ACCOUNT_ZERO and ACCOUNT_ONE). A blackhole address could also look very random, but then it would be hard to convince others that you don't secretly know a private key.

Link to comment
Share on other sites

https://ripple.com/build/ledger-format/#accountroot

The "RegularKey" field tells you what regular key address is set for the account.

The "Flags" field tells you what flags are enabled. You have to do bitwise-AND to figure out if a specific flag is set (unless that's the only flag set, then the Flags field is equal exactly to the flag's value). Here, here's some pseudocode to see if an address has been turned into a black hole:

Quote

known_black_holes = ["rrrrrrrrrrrrrrrrrrrrrhoLvTp", "rrrrrrrrrrrrrrrrrrrrBZbvji", "rrrrrrrrrrrrrrrrrNAMEtxvNvQ", "rrrrrrrrrrrrrrrrrrrn5RM1rHd"]
lsfDisableMaster = 0x00100000      // can also be written as 1048576

a = ADDRESS_TO_CHECK
account_root = GetAccountRootObject(address=a)
assert account_root.Account == a
if account_root.RegularKey not in known_black_holes:
        then return MAYBE NOT A BLACK HOLE

else if account_root.Flags & lsfDisableMaster:   // & is the bitwise-and operator
        then return IS A BLACK HOLE

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share


×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.