A method of carrying out signature of a blockchain transaction in a network comprising a first node (6, 8), a second node (6, 8), a third node and a fourth node, each node having a respective public-private key pair in a cryptographic system, and the third node being physically separate from the other three nodes, the method comprising: distributively generating first shares in a first threshold private key such that each node holds a respective share; creating a first transaction; and using said shares, generating a signature on said first transaction by: at said second node, generating a second signature using its respective private key and said first transaction and sending it to said first node and said third node; at said first node: verifying said second signature, and in response to successful verification, generating a first partial signature on said first transaction using its respective first share, generating a first signature using its respective private key and said first transaction, generating a third signature using its respective first share and said first partial signature, and sending said first partial signature, said first signature and said third signature to said second node; at said third node: verifying said second signature, in response to successful verification, generating a third partial signature on said first transaction using its respective first share and sending it to said second node; and at said second node, in response to receiving said signatures from said first node: verifying said first signature and said third signature, and in response to successful verifications, generating a second partial signature on said first transaction using its respective first share, and combining said first, second and third partial signatures to generate a signature on said first transaction. distributively generating first shares in a first threshold private key such that each node holds a respective share; creating a first transaction; and using said shares, generating a signature on said first transaction by: at said second node, generating a second signature using its respective private key and said first transaction and sending it to said first node and said third node; at said first node: verifying said second signature, and in response to successful verification, generating a first partial signature on said first transaction using its respective first share, generating a first signature using its respective private key and said first transaction, generating a third signature using its respective first share and said first partial signature, and sending said first partial signature, said first signature and said third signature to said second node; at said third node: verifying said second signature, in response to successful verification, generating a third partial signature on said first transaction using its respective first share and sending it to said second node; and at said second node, in response to receiving said signatures from said first node: verifying said first signature and said third signature, and in response to successful verifications, generating a second partial signature on said first transaction using its respective first share, and combining said first, second and third partial signatures to generate a signature on said first transaction. at said second node, generating a second signature using its respective private key and said first transaction and sending it to said first node and said third node; at said first node: verifying said second signature, and in response to successful verification, generating a first partial signature on said first transaction using its respective first share, generating a first signature using its respective private key and said first transaction, generating a third signature using its respective first share and said first partial signature, and sending said first partial signature, said first signature and said third signature to said second node; verifying said second signature, and in response to successful verification, generating a first partial signature on said first transaction using its respective first share, generating a first signature using its respective private key and said first transaction, generating a third signature using its respective first share and said first partial signature, and sending said first partial signature, said first signature and said third signature to said second node; at said third node: verifying said second signature, in response to successful verification, generating a third partial signature on said first transaction using its respective first share and sending it to said second node; and verifying said second signature, in response to successful verification, generating a third partial signature on said first transaction using its respective first share and sending it to said second node; and at said second node, in response to receiving said signatures from said first node: verifying said first signature and said third signature, and in response to successful verifications, generating a second partial signature on said first transaction using its respective first share, and combining said first, second and third partial signatures to generate a signature on said first transaction. verifying said first signature and said third signature, and in response to successful verifications, generating a second partial signature on said first transaction using its respective first share, and combining said first, second and third partial signatures to generate a signature on said first transaction.