menu
up-caret
down-caret

moonshot

Sending bitcoin #ToTheMoon. Literally.

# crypto

How do we secretly create a private key so that anyone can donate to the public address yet needs to go to the moon to sweep it?

Trending conversations
1 ý nghĩ điên rồ hãy thực hiện ý tưởng
@chungtuhung · 211d
Smart Contracts + IoT device + Extensible Markov Models (for anomaly detection)
@joshjames · 279d
Data donation mockup - sending more than money to the moon
@theriverpaul · 290d
Easier places to put Bitcoin as an MVP
@theriverpaul · 292d
Private key protocol
@theriverpaul · 298d

Hardware Security Module (HSM)

moonshot/crypto · May 26, 2018 at 5:12pm

Hardware Security Module (HSM)

May 26, 2018 at 5:12pm (Edited 10 months ago)

Author: Klaas Hemstra

HSM devices are commonly used to secure a private key. Here Klaas describes an approach to use this to generate a private key securely and extract the public key from it verifiably.

Document: https://docs.google.com/document/d/1OJ5sZ0VZrMvPxNS1aSJxkaizNN5KGQnTkfzGcq_I/edit?usp=sharing


May 26, 2018 at 5:18pm

A HSM could securely generate a private key, contain it, and publish the public key associated with it. If we can verify the software running on the HSM, this would be sufficient to generate the keypair and send it to the moon.

A caveat not mentioned: how can we trust the person/team pressing the "generate" button and to not extract it individually. Would it make more sense to instead have a key-pair ceremony where multiple individuals have pieces of the key and then destroy their parts with the only remaining whole one on the device? These individuals would also be responsible for auditing the handling of this device as it's loaded onto the rocket.

like-fill
1
  • reply
  • like

I think, before anything can board a rocket it has to be in the hands of the launch provider for quite a bit of time (to run tests and simulations). With the ceremony method the best way to do it would be to let the device board the rocket directly after each member destroying their device. That's why I'm thinking more in the lines of generating the keys after/during launch. We could prove the connection between those keys with zero-knowledge-proof.

  • reply
  • like

May 27, 2018 at 5:10am

I've thought about this a lot and what it comes down to is that we provably cannot guarantee that 1) the key is actually on the moon and intact or 2) that the key does not exist anywhere else on Earth. Somewhat ironically, it boils down to trust and taking reasonable steps to ensure that the sole copy of the private key is on the moon. If we have a legitimate organization backing it (so far, so good) and maybe a third-party security firm betting their reputation on it, then hopefully that's enough for the general public. Plus, if the money ever moves without anyone going to the moon then everyone will know instantly and it's our necks on the line.

The most secure way I can think of is to simply have the private key be generated while the spacecraft is en-route. Then beam back only the public key and allow the public to view all incoming spacecraft telemetry, backed up by amateur radio astronomers verifying that there's no covert signals coming from the spacecraft. That plus a third-party security firm auditing the private key generation code should be sufficient.

But the biggest part of the problem is the public understanding how this all works. Personally, I think that as long as it's reasonably secure, most people won't care or even realize this. It doesn't matter whether we can prove the key is on the moon or that we don't have a copy (we can't prove either). What matters is that that's really the case, which we can be certain of for ourselves to a reasonable degree.

  • reply
  • like

June 17, 2018 at 11:54am

My two cents:

The general public will definitely understand it yes, but we want to the crypto kids to send their bitcoin to the moon. Hence, we really have to think of a secure process best without a "trusted-thrid party", which would be kind of a bummer for the project. Isn't there a way to launch a smart contract, which executes and creates a private key, once the engine of the spacecraft is started (like event --> engine started, no way back)

  • reply
  • like

Further, thinking of the HSM module itself.

I lately been to the cryptofinance AG, which creates such devices. The folks told me, that the device itself is really sensitive to air pressure, temperature, water... How do we make sure, that we don't mess with the device and it erases the saved data?

  • reply
  • like