A computer-implemented method of securely generating a threshold vault, where the threshold vault has a public key address, a private key and a threshold k, each node of a plurality of nodes having a respective first secret and a respective k-1 degree polynomial function with that node's respective first secret set as its free term, the nodes including a first node having a first polynomial function, the method performed by the first node comprising: for each other node of the plurality of nodes, setting a variable in the first polynomial function to a value associated with that other node, finding a respective result of the polynomial function for that value, and securely communicating the respective result to that other node; receiving, from at least a threshold number of the other nodes, respective second secrets, where each of the respective second secrets is a result of that other node's respective polynomial function for a first value associated with said first node; communicating, to the other nodes, an elliptic curve point multiplication of each of the respective results; receiving, from at least the threshold number of the other nodes, elliptic curve point multiplications of the respective second secrets shared by the other nodes with any of the nodes; forming and storing a first private key share of the private key based on a sum of the respective second secrets received from the other nodes; determining the public key corresponding to the private key based on a sum of the received elliptic curve point multiplications of the respective second secrets and using polynomial interpolation; the method being characterised in that it further comprises the steps of: receiving, from at least a threshold number of the other nodes, respective ephemeral key shares, wherein each said ephemeral key share includes a share of an ephemeral key, and said share of said ephemeral key is masked by means of a respective additive masking key share and a respective multiplicative masking key share; and modifying the first private key share through collaboratively participating with the other nodes in a dealerless secret distribution of a joint zero secret share whereby the first node receives a first zero secret share and modifies the first private key share by adding the first zero secret share to form and store a modified first private key share. for each other node of the plurality of nodes, setting a variable in the first polynomial function to a value associated with that other node, finding a respective result of the polynomial function for that value, and securely communicating the respective result to that other node; receiving, from at least a threshold number of the other nodes, respective second secrets, where each of the respective second secrets is a result of that other node's respective polynomial function for a first value associated with said first node; communicating, to the other nodes, an elliptic curve point multiplication of each of the respective results; receiving, from at least the threshold number of the other nodes, elliptic curve point multiplications of the respective second secrets shared by the other nodes with any of the nodes; forming and storing a first private key share of the private key based on a sum of the respective second secrets received from the other nodes; determining the public key corresponding to the private key based on a sum of the received elliptic curve point multiplications of the respective second secrets and using polynomial interpolation; the method being characterised in that it further comprises the steps of: receiving, from at least a threshold number of the other nodes, respective ephemeral key shares, wherein each said ephemeral key share includes a share of an ephemeral key, and said share of said ephemeral key is masked by means of a respective additive masking key share and a respective multiplicative masking key share; and modifying the first private key share through collaboratively participating with the other nodes in a dealerless secret distribution of a joint zero secret share whereby the first node receives a first zero secret share and modifies the first private key share by adding the first zero secret share to form and store a modified first private key share.