Hot answers tagged

12

The Ledger app itself supports any length from 2 components up to 10, as long as the derivation path starts with 44'/1729'. This allows the Ledger to support either convention, and this support will continue into the indefinite future. As for which convention is better, that is a controversy quite outside of my scope as a Ledger developer :-) but there is no ...


10

It is possible to have a hot-standby signer albeit I would recommend against it. In order to have a hot-standby, you initialise a second ledger with the same seed as the first one. Then you need a strategy that describes in what cases the standby signer becomes active. The downside of a standby signer is that you lose the double-sign protection that the ...


9

There isn't currently a wallet for iOS using the secure enclave. But the tz3 accounts use p-256 encryption and were put in primarily to support iOS, Android, and other devices which are only compatible with p-256. There has been some work toward multisig contracts intended for use with secure enclave based wallets, I would expect we will see something soon. ...


7

The difference is in the default derivation path suggested by the cli. If you use /0'/0' in both (or nothing in both) you should get the same keys. The words are derived based on the hash of the root tz1 public key hash, and a list of adjectives and animals. The lists are sufficiently big that it's reasonably unlikely that you'd end up with two ledgers ...


6

The the signer's firewall only allows connections to the signer port from the node VPS who's IP I whitelisted. Because of this, I didn't feel it was necessary to setup signer authentication. This is the main security concern I would have. In general, your setup is fairly secure, however, the main risks are: Because the signer has no authentication, anyone ...


5

Hardware wallets like the Ledger Nano are good cold storage solutions. Offline-wallet creation in an air-gap device is also a good solution. Kukai wallet offers you the possibility to do offline-signing so your seed is never exposed to the online world when interacting with the network.


3

First of all, when storing tezos using an HSM one still needs to connect to a node in order to perform operations like transactions or delegation. For this there is the choice between connecting to a local full node (see here or there) or wallet services that offer support for HSM, like Tezbox, Galleon (as of now Kukai does not support HSM I believe). One ...


3

The the signer's firewall only allows connections to the signer port from the node VPS who's IP I whitelisted. Because of this, I didn't feel it was necessary to setup signer authentication. I would flip this. Block all incoming connections to the signer and instead have the signer connect to the TF. That way you don't have to worry about a malicious node ...


2

The main risk with using multiple ledger/bakers is the risk of double-baking/double-endorsing which will make you lose your bond. So technically the answer to your question is "yes" however to be proper it relies on your setup's ability to make sure that at any one time at most one baking node is able to talk to the network. There are various ways to ...


2

Yes, I believe this is how the foundation bakers currently work - here's a link to a public github repo with relevant code: https://github.com/tacoinfra/remote-signer


2

Taylor Keefer demonstrated a prototype iOS app on May 6, 2019 in a Medium article "Signing Tezos Transactions with iOS’s Secure Enclave and Face ID". As in the solution described by @cousinit, this prototype uses a "1 of 2 multi signature smart contract" with a second key used in case the access to the key in the secure enclave is not available anymore.


2

I ran your code, and found out that your payload hash is not correct; these lines of code: const payload: string = bufferToHexString(Buffer.from(bb)); await sodium.ready; const payloadHash = bufferToHexString(Buffer.from(sodium.crypto_generichash(32, payload))) . The function sodium.crypto_generichash involving the hashing of a uint8array and the ...


1

Util Link: base58.ml The pre-apply RPC call validates the signature prefix, while the inject operation call doesn't. You should use the specific curve prefix. sig([4, 130, 43]) # sig(96) generic signature (Used after the operation injection) edsig([9, 245, 205, 134, 18]) # edsig(99) ED25519 signature (Used for tz1 signatures) spsig1([13, 115, 101, 19, 63]) #...


Only top voted, non community-wiki answers of a minimum length are eligible