A computer-implemented method to participate in a token transfer process for transferring a first quantity of tokens from a sender node to a recipient node using a blockchain, the token transfer process including a plurality of participating nodes and execution of a set of indirect token transactions between multiple pairs of the participating nodes, the sender node and the recipient node being included in the token transfer process as participating nodes, the method, implemented at a participating node, comprising: obtaining a subset of the set of indirect token transactions, the subset including those transactions for which the participating node is either an input node or an output node, wherein the set of indirect token transactions is generated based on the first quantity of tokens and a predefined number of transaction rounds in the token transfer process; obtaining a key share (ki) of a first private key ( k), the first private key being unknown to all of the participating nodes; and collaborating in deriving a first public key corresponding to the first private key (k) using secret share joining; for each indirect token transaction in the subset, collaborating with a respective second participating node included in the indirect token transaction to generate a commitment channel for the indirect token transaction between the participating node and the second participating node, by collaboratively: generating a first blockchain transaction ( T c) for committing an indirect quantity of tokens to transfer to an output address of the indirect token transaction; generating a second blockchain transaction (T r,0) that returns the committed indirect quantity of tokens to an input address of the indirect token transaction; and generating a third blockchain transaction (Tt) for executing transfer of the committed indirect quantity of tokens to the output address of the indirect token transaction, wherein the third blockchain transaction ( T t) includes an unlocking script containing a secret value ( sv) that is based on the first private key ( k); and collaborating with all other participating nodes in executing the indirect token transactions of the subset using the generated commitment channels. obtaining a subset of the set of indirect token transactions, the subset including those transactions for which the participating node is either an input node or an output node, wherein the set of indirect token transactions is generated based on the first quantity of tokens and a predefined number of transaction rounds in the token transfer process; obtaining a key share (ki) of a first private key ( k), the first private key being unknown to all of the participating nodes; and collaborating in deriving a first public key corresponding to the first private key (k) using secret share joining; for each indirect token transaction in the subset, collaborating with a respective second participating node included in the indirect token transaction to generate a commitment channel for the indirect token transaction between the participating node and the second participating node, by collaboratively: generating a first blockchain transaction ( T c) for committing an indirect quantity of tokens to transfer to an output address of the indirect token transaction; generating a second blockchain transaction (T r,0) that returns the committed indirect quantity of tokens to an input address of the indirect token transaction; and generating a third blockchain transaction (Tt) for executing transfer of the committed indirect quantity of tokens to the output address of the indirect token transaction, wherein the third blockchain transaction ( T t) includes an unlocking script containing a secret value ( sv) that is based on the first private key ( k); and generating a first blockchain transaction ( T c) for committing an indirect quantity of tokens to transfer to an output address of the indirect token transaction; generating a second blockchain transaction (T r,0) that returns the committed indirect quantity of tokens to an input address of the indirect token transaction; and generating a third blockchain transaction (Tt) for executing transfer of the committed indirect quantity of tokens to the output address of the indirect token transaction, wherein the third blockchain transaction ( T t) includes an unlocking script containing a secret value ( sv) that is based on the first private key ( k); and collaborating with all other participating nodes in executing the indirect token transactions of the subset using the generated commitment channels.