Really interesting product. I have been evaluating opendime for some bulk requirement and this seems much better in terms of formfactor and use with mobiles
However, the following 2 things are not at all clear to me:
1.) When I give an opendime to some 3rd party they check the balance (with the wallet id / pubkey / qr) and they can check that it is still SEALED by visually seeing that the hole has not been punched out and hence they know that I did not access the private key or note it down or get the recovery seed phrase. Therefore they are ok to pay me the value on the opendime and take the opendime with them.
If i had any way to access the private key they would not do the transaction as I could go back home and enter the pvt key / recovery phrase in any other wallet and be able to spend the balance on the opendime i just gave them.
Since opendime ensures private key is only released when that hole is punched out so this "bearer instrument" thing works.
With Satodime I can't make out how to verify that the private key has never been disclosed or accessed (used to sign) ?
Opendime also has a process to verify that the firmware is not tampered and the hardware is not spoofed to look and act like opendime when it might be something else entirely (evil maid attack vector)
2.) Does this work with the NFC readers on most smartphones/mobiles ? Or do we need the USB Reader and a Laptop/PC ?
It would be great if you could clarify these points.
Are the satodime & satochip cards available in stock at satochip.io or will there be some lead period before they are shipped ?
Excellent questions.
1) -------------------------------------------------------------------------------------------------------------------
While Opendime requires to break the device in order to retrieve the private key, Satodime relies on the secure chip.
Satodime is a smartcard that stores cryptographic keypairs securely in a secure chip (also called Secure Element).
Each keypair can be associated with a specific address on a blockchain.
Each keypair is generated inside the secure chip and can be in any one of 3 states at any time:
- uninitialized: the keypair has not been generated yet
- sealed: the keypair has been generated securely inside the chip
- unsealed: the private key has been revealed
Since the private key is generated inside the secure chip, a Satodime bearer can be certain that nobody (including himself) knows the private key until the key is unsealed.
In effect, a Satodime allows to physically transfer cryptocurrencies such as Bitcoin from one person to another, without having to trust the bearer of the Satodime, AS LONG AS THE KEY IS IN THE SEALED STATE.
YOU SHOULD NEVER ACCEPT A SATODIME FROM SOMEONE IF A KEYSLOT IS UNSEALED!
Depending on the model, from 1 up to 3 keypairs can be stored simultaneously on a single Satodime.
The state function is how you can check if the vault has been redeem or not.
-------------------------------------------------------------------------------------------------------------------
2)-------------------------------------------------------------------------------------------------------------------
Satodime security features
-----------------------------------------
- Satodime authenticity:
The Satodime includes a cryptographic mechanism that allows to check whether the card is an authentic Satodime or a fake one. If the card is not authenticated, you should be extremely careful and avoid to store any valuable on it. The authentication mechanism is based on a unique digital certificate issued for each authentic Satodime and verified with a trusted Public Key Infrastructure.
- Secure key generation:
Private/public keypairs stored on the Satodime are always generated randomly inside the secure chip. As long as the keyslot is sealed, nobody has access to the private key. To prove that the private keys were not pre-generated during manufacturing and that no backdoor was inserted in the firmware, the user is prompted for a 64-hex random value during the sealing process. This random input is used to provide entropy during the key generation process. When the keyslot is unsealed and the private key is revealed, the entropy data (including user input) is provided and allows to ensure that the key generation process was indeed random.
- Transfer of ownership protection:
Satodime (and the SatodimeTool) supports communication through 2 interfaces: the NFC (Near Field Communication) wireless interface and the wired interface through a standard smartcard reader.
It is important to note that the behavior of the Satodime is slightly different according to the interface used: the wired interface is considered 'trusted' while the NFC is not. In practice, this means that anyone can perform any operation via the wired (trusted) interface, while some sensitive operations can only be performed via the NFC interface by the legitimate owner. Sensitive operations include all operations that change the state of a keyslot (such as unsealing). This ensures that the current owner of a Satodime can confidently let a potential acquirer scan the card on his own device (e.g. to check the available balance) without the risk of unsealing and sweeping a private key.
To distinguish the legitimate owner of the card from other users, a pairing process is initiated when the card is transfered to a new owner. To initiate this transfer, the former owner simply click on the 'Transfer card' button in the 'Card info' tab in the main menu. Immediatly after, the card should be disconnected and provided the new owner to initiate new pairing. A message is then shown to confirm that a new pairing has been successfully established with the new owner through the SatodimeTool. If the transfer of ownership has not been initiated by the previous owner, the new owner SHOULD perform this transfer as soon as possible. The procedure is the same, except that in this case, it MUST be done via the 'trusted' wired interface (since pairing is a sensitive operation and it can only be done via the NFC interface by the legitimate owner).
You will be able to use any NFC ready smartphone to check the status of a vault, at anytime, anywhere. Mobile app is under development. It will be released Q1/2022.
If you have any questions, just ask