METHOD FOR VALIDATING A NODE

20210036868 ยท 2021-02-04

    Inventors

    Cpc classification

    International classification

    Abstract

    A computer-implemented method for validating a digital signature of at least one node in a peer to peer network comprises the steps of, a) executing a gossip algorithm, b) locally calculating in each node, a trust score s assigned to other node of the network, c) locally validating in each node, each digital signature of the at least one node, based on the value of said trust score s of the network, d) if there is a change in at least one trust endorsement value t of a node, sending the changed trust endorsement to each neighbour node and executing step a), or e) if a new node is added or deleted in the network, executing step a). A data processing system, a computer program product and a computer-readable storage medium for carrying out the steps of the method are also described.

    Claims

    1-14. (canceled)

    15. A computer-implemented method for validating a digital signature of at least one node in a peer to peer network, wherein said network comprises at least three nodes, for example nodes i, j and w, wherein each node is configured to store a database and at least one trust score s, for example a trust score s.sub.ij or s.sub.iw of a node i in respect with another node j or w, wherein each database is configured to store at least one trust endorsement value t of a node in respect with another node defining a direct endorsement connection between said nodes, for example a trust endorsement value t.sub.13 of a node i in respect with another node j defining a direct endorsement connection between nodes i and j, wherein the trust endorsement value t is greater or equal than 0 and less or equal than 1, and the computer-implemented method comprising the steps of, a) executing in the plurality of nodes a gossip algorithm, receiving in each node at least one endorsement message and obtaining in each node an updated version of its database, wherein the updated database in each node comprises the trust endorsement values t's of at least one different node of the peer to peer network; for example, the updated database of the node i comprises at least the trust endorsement value t.sub.jw of the node j in respect with the node w; b) locally calculating in each node a trust score s assigned to other node of the network, for each node of its database, based on the data contained in said database; for example, the node i calculates the trust scores s.sub.ij and s.sub.iw assigned to the nodes j and w; and c) locally validating each digital signature received in each node, wherein each digital signature is issued by the at least one node of its database, based on the value of said trust score (s) of the peer to peer network, obtaining in each node a different validation of each digital signature issued by each node of the network; for example, if the trust score of a node i with respect to a node j, s.sub.ij, satisfies a certain condition, then the digital signatures issued by node j and received by node i will be validated, and d) if there is a change in at least one trust endorsement value t of a database of a node or at least one new trust endorsement value t, sending the changed or new trust endorsement value t to each neighbour node and executing step a), and e) if a node is deleted or a new node is added in the peer to peer network, executing step a).

    16. The computer-implemented method according to claim 15, wherein steps b) to e) are performed in a concurrent manner in respect of step a).

    17. The computer-implemented method according to claim 15, wherein each node comprises at least one public and private node key pairs and the public keys of the rest of the nodes of the peer to peer network, wherein the public and private node key pairs are a public key and a private key related to each node, wherein the at least one endorsement message comprises at least one trust endorsement value t, an index value (idx) associated to each trust endorsement value t and endorsement signature (.sub.1, .sub.2); and wherein said endorsement signature (.sub.1, .sub.2) is signed with the private key of the node which sent the at least one endorsement message, and wherein, the gossip algorithm of step a) comprising the steps of: a.1 in each node, listening to the other nodes of the network and detecting at least one endorsement message from said other nodes; and a.2 for each detected endorsement message: a.2.1 verifying the endorsement signature (.sub.1, .sub.2) with the public key of said other node; a.2.2 when the at least one trust endorsement value t of the endorsement message already exists in the database and the associated index (idx) of the endorsement message is higher than the index (idx) of the database, updating the trust endorsement value tin the database, a.3 increasing the index (idx) value associated to the updated trust endorsement value t by one and signing the at least one trust endorsement value t and the increased index (idx) of the database with the private key of the node obtaining an endorsement message; a.4 sharing the endorsement message with each neighbour node.

    18. The computer-implemented method according to claim 17, wherein between steps a.2.2 and a.3, the gossip algorithm of step a) further comprises: when the at least one trust endorsement value t is new, adding the detected trust endorsement in the database.

    19. The computer-implemented method according to claim 17, wherein step d) of sending further comprises: associating an index (idx) to the changed or new trust endorsement value t; signing the changed or new trust endorsement value t of the database and the associated index (idx) with the private key of the node, obtaining an endorsement message thereby; sharing the endorsement message with each neighbour node.

    20. The computer-implemented method according to claim 15, wherein said step of locally calculating in each node, at least one trust score s assigned to other node of the network based on the data contained in its own database, comprises locally obtaining at least one direct or indirect endorsement connection of a node, wherein an indirect endorsement connection between two nodes is established by a concatenation of a plurality of direct endorsement connections through at least one node, if there is a direct endorsement connection, setting the trust score s as
    s=t.

    21. The computer-implemented method according to claim 20, wherein the step of locally obtaining at least one direct or indirect endorsement connection of a node is performed by running a breath-first search or a depth-first search by said node.

    22. The computer-implemented method according to claim 20, wherein if the endorsement connection between the node, where the step of locally calculating is performed, and other node is different than a direct endorsement connection and an indirect endorsement connection, the step of locally calculating in each node at least one trust score s further comprises setting the trust endorsement value t between said two nodes to a default trust endorsement value, t.sub.d, preferably t.sub.d is 0.4, and wherein if the endorsement connection between a node, where the step of locally calculating is performed, and other node is different than a direct endorsement connection the step of locally calculating in each node at least one trust score s further comprises iterating the following equation a number of iterations, n_max, for n from 0 to n_max: s ik ; n + 1 = .Math. .Math. s ik ; n + ( 1 - ) .Math. j V .Math. t jk .Math. s ij ; n + 1 j V .Math. a jk .Math. s ij ; n + ( s ik ; n ) + wherein wherein (s.sub.ik;n) is a function between 0 and 1, monotonously increasing function based on: .Math. j V .Math. a jk .Math. s ij ; n + 1 wherein the limit of (s.sub.ik;n) tends to 1 when .sub.jV a.sub.jks.sub.ij;n.sup.+1 tends to infinite, and the function (s.sub.ik;n) is 0 when .sub.jV a.sub.jks.sub.ij;n.sup.+1 is 0, wherein is an integer number, preferably a number between 1 and 6, i is the node where the calculation is locally performed, j is a node with direct endorsement connection with node k, k is a node with indirect endorsement connection with node i, s.sub.ik;n is the trust score given by node i to node k on iteration n, with s.sub.ik,0 equal to 0.5, V is set of nodes of the peer to peer network, a.sub.jk is 0 if there is not a direct endorsement connection from node j to node k, a.sub.kj is 1 if there is a direct endorsement connection, is a positive real number, and is a positive number.

    23. The computer-implemented method according to claim 22, wherein (s.sub.ik;n) is calculated from the following expression: ( s ik ; n ) = tanh ( 3 .Math. - 1 .Math. .Math. j V .Math. a jk .Math. s ij ; n + 1 ) wherein is an integer number.

    24. The computer-implemented method according to claim 22, wherein if the iteration of the equation is the n-iteration, setting
    s.sub.ik=s.sub.ij;n and iterating the equation until the following condition is fulfilled, .Math. s ik ; n + 1 - s ik ; n .Math. .Math. s ik ; n .Math. < wherein is a positive real number, preferably 0.005, and setting
    s.sub.ik=s.sub.ij;n+1.

    25. The computer-implemented method according to claim 15, wherein locally validating at least one node comprises setting a threshold value and comparing said threshold value with the value of said at least one trust score s assigned by each node to every other node.

    26. A data processing system comprising means for carrying out the steps of the method of claim 15.

    27. A computer program product comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method of claim 15.

    28. A non-transitory computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out the steps of the method of claim 15.

    Description

    DESCRIPTION OF THE DRAWINGS

    [0093] These and other characteristics and advantages of the invention will become clearly understood in view of the detailed description of the invention which becomes apparent from a preferred embodiment of the invention, given just as an example and not being limited thereto, with reference to the drawings.

    [0094] FIG. 1 This figure shows an example of a peer to peer network used in the method of the invention.

    [0095] FIG. 2 This figure shows a database of a node of the peer to peer network used in the method of the invention.

    [0096] FIGS. 3a-3c These figures show the evolution of the database of at least one node during the execution of the gossip algorithm.

    [0097] FIGS. 4a-4c These figures show an example of the evolution of the endorsement network of a node according to the evolution gossip algorithm shown in FIGS. 3a to 3c.

    [0098] FIG. 5a This figure shows a change in the database of node 2.

    [0099] FIG. 5b This figure shows the evolution of the database of node 0 due to the change shown in FIG. 5a.

    [0100] FIG. 5c This figure shows an update in the endorsement network of node 0 due to the change shown in FIG. 5a.

    DETAILED DESCRIPTION OF THE INVENTION

    [0101] As it will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a system, method or computer program product.

    [0102] Connection Network Wherein the Peer to Peer Network is Implemented.

    [0103] As it was indicated, the method of the invention defines two networks. The first type of network is the connection network wherein the peer to peer network is implemented. The second type of network, the endorsement network, will be explained below. The example of FIG. 1 shows an example of the connection network.

    [0104] FIG. 1 shows an example of a peer to peer network (100). The peer to peer network (100) of this example comprises eight nodes (110), nodes 0 to 7, and they are connected between them in a client server structure. In this example, any of said nodes (110) may act as a client or server.

    [0105] In this section, it is explained an exemplified computer-implemented method of the present invention using the peer to peer network (100) of FIG. 1. In this example, steps b) to e) are performed in a concurrent manner in respect of step a). In other compatible examples, steps b) to e) may further be performed at the node's discretion. Thus, there is no need for waiting the finishing of step a) of the method.

    [0106] Hereinafter, the connection network wherein the peer to peer network is implemented shall be understood as a physical network. In the particular example shown in FIG. 1, two physical interrelated networks are depicted.

    [0107] As it is shown in FIG. 1, nodes 0 to 3 and 7 are physically located in a first physical network, and nodes 4 to 6 are physically located in a second physical network. The first and the second physical networks are connected through internet (101), particularly, though nodes 1 and 4. Connection between nodes (110) may be either wireless or wired. In this example, the connection through internet (101) comprises a wireless (102) and wired (103) connection. Preferably the wired connection (103) is performed through a wide area network (WAN).

    [0108] According to this example, the neighbor nodes (110) of node 0 are the nodes (110) with a direct endorsement connection, i.e. nodes 1 and 2, whilst the neighbor nodes (110) of node 2 are nodes 0 and 3, and so on with the rest of the nodes (110) of the peer to peer network (100).

    [0109] Evolution of the Database of the Nodes During Execution of the Gossip Algorithm.

    [0110] FIG. 2 shows an example of the content of the database (200) of node 0 (110). In this example, node 0 (110) comprises a database (200) with a public and private node key pairs (pk.sub.0, sk.sub.0) of node 0 (110) and the public keys (pk.sub.1, pk.sub.2, pk.sub.3, pk.sub.4, pk.sub.5, pk.sub.6, pk.sub.7) of the rest of the nodes (110) of the network (100). The public and private node key pairs are a public key, or pk, and a private key, or sk, related to each node (110).

    [0111] In should be understood that the evolution of the database is achieved by the propagation of the variation of the trust endorsements over the nodes. The variation is propagated through the network in a gossip-based manner as a consequence of the gossip algorithm.

    [0112] Additionally, a database (200) comprises at least one trust endorsement value t of the nodes (110) based on the experience of a node with said other nodes (110). Further, as the method of the invention implements a gossip algorithm to cover such cases when there is no said experience, the database (200) may also comprise a trust endorsement (201) accordingly.

    [0113] FIG. 2 shows the state of the database (200) of node 0 after implementing the first step of the gossip algorithm in the network of FIG. 1, or such database at a particular time step.

    [0114] According to this example, node 0 has a previous experience with nodes 1 and 2. For that reason, node 0 has set a trust endorsement value t for each of these nodes 1 and 2. In particular the trust endorsement value of node 0 to node 1, or t.sub.01, is 0.9 and the trust endorsement value of node 0 to node 2, or toe, is 0.2. This means that node 0 sets that the signature of node 1 is more valid or authentic than the signature of node 2. In other words it can be said that, node 0 trust more in node 1 than in node 2, or node 0 validates a digital signature of node 1 with more confidence than node 2.

    [0115] Additionally, due to the first step of the gossip algorithm, node 0 has received two endorsements messages (201) from node 1 and node 2. The endorsement message (201) from node 1 comprises: [0116] An index (idx) which indicates the version of its database, in this example the value is 1. [0117] The trust endorsement value of node 1 to node 2, or t.sub.12, and trust endorsement value of node 1 to node 3, or t.sub.13. In this example their values are 0.6 and 0.1 respectively. [0118] The endorsement signature of node 1, .sub.1, generated with the private key sk.sub.1 of node 1. Node 0 can use the public key of node 1, pk.sub.1, in order to check if the .sub.1 is valid.

    [0119] Similarly, the endorsement message (201) from node 2 comprises: [0120] An index (idx), in this example the value is 1. [0121] The trust endorsement value of node 2 to node 0, or t.sub.12, is equal to 0.1, and [0122] The endorsement signature of node 2, .sub.2, generated with the private key sk.sub.2 of node 2.

    [0123] In this example each node (110) comprises public and private node key pairs and the public keys of the rest of the nodes (110) of the peer to peer network (100). The gossip algorithm comprises the steps of: [0124] a.1 in each node (110), listening to the other nodes (110) of the network (100) and detecting at least one endorsement message (201) from said other nodes (110); [0125] a.2 for each detected at least one endorsement message (201): [0126] a.2.1 verifying the endorsement signature, a, with the public key of said other node (110); [0127] a.2.2 whether at least one trust endorsement value t of the endorsement message (210) already exists in the database (200) and the associated index (idx) of the endorsement message (210) is higher than the index (idx) of the database (200), updating the trust endorsement value t in the database (200), [0128] whether trust endorsement value t is new, adding the detected trust endorsement (201) in the database (200), [0129] a.3 increasing the index (idx) value associated to the updated trust endorsement value t by one and signing said the at least one trust endorsement value t and the increased index (idx) of the database (200) with the private key of the node (i) obtaining an endorsement message (201); [0130] a.4 sharing the endorsement message (201) with each neighbour node (110).

    [0131] Additionally, in this example wherein in step d) of sending further comprises: [0132] associating an index (idx) to the changed or new trust endorsement value t, [0133] signing the changed or new trust endorsement value t of the database (200) and the associated index (idx) with the private key of the node (110), obtaining an endorsement message (201) thereby; [0134] sharing the endorsement message (201) with each neighbour node (110).

    [0135] The gossip algorithm is executed in the connection network (100). FIGS. 2a to 2c shows an example of the evolution of the content of database (200) comprised in the nodes (110). Hereinafter it is explained more specifically said figures.

    [0136] Step a) of the Method Gossip Algorithm: Initial State (FIG. 3a)

    [0137] FIG. 3a shows the content of the database (200) of each node before applying the gossip algorithm. In this example, the database of each node (110) comprises the following values: [0138] Node 0: t.sub.01=0.9 and t.sub.02=0.1. [0139] Node 1: t.sub.13=0.6 and t.sub.12=0.1. As it can be appreciated, the trust endorsement values t, are not reciprocal, i.e. although node 0 has a trust endorsement value of node 1, t.sub.01, it is not required that node 1 has a correspondent trust endorsement value of node 0. Additionally, a trust endorsement value does not require a direct physical connection, as it is shown in the case of trust endorsement value of node 1 to node 2, t.sub.12. [0140] Node 2: t.sub.20=0.9. As it can be appreciated, node 0 has set a low trust endorsement value to node 2 t.sub.02, however node 2 has set a high trust endorsement value to node 0 t.sub.20, therefore, the trust endorsement value t, is locally independent value for each node. [0141] Node 3: t.sub.31=0.9 and t.sub.37=0.5. [0142] Node 4: t.sub.46=0.8. [0143] Node 5: t.sub.56=0.9. [0144] Node 6: t.sub.65=0.7. [0145] Node 7: nothing.

    [0146] In this sense, a low trust endorsement value is understood as closer to 0 rather than 1, whilst a high trust endorsement value is understood as closer to 1 rather than 0.

    [0147] Gossip Algorithm: First State (FIG. 3b)

    [0148] FIG. 3b shows the content of the database (200) of each node after applying the first iteration of the gossip algorithm. This state represents the situation of each database (200) when each node receives an endorsement message (201) from its direct neighbor nodes (110). For sake of simplicity, it is only commented the steps of the gossip algorithm performed in node 0 down below: [0149] a.1 Node 0 (110), listens to the other nodes (110) of the network and detects endorsement messages (201) from said other nodes (110); [0150] a.2 Node 0 (110) has detected two endorsement messages (201). Said endorsement messages (201) comprise: [0151] the endorsement signature of node 1 (.sub.1) the trust endorsement values t.sub.13 and t.sub.12 of node 1, and the respective indexes (idx) and [0152] the endorsement signature of node 2 (.sub.2) the trust endorsement value t.sub.20 of node 2, and the respective index (idx). [0153] a.2.1 Node 0 verifies each endorsement signature (.sub.1, .sub.2) with the public key, pk, of its database (200). After using all the public keys and asymmetric cryptographic algorithm, node 0 verifies that the endorsement messages (201) correctly and respectively belongs to nodes 1 and 2 because they were signed with private key of node 1 and 2, or pk.sub.1 and pk.sub.2, respectively. In the case of that an endorsement signature, a, is not valid, the correspondent trust endorsement is deleted. [0154] a.2.2 as the both the endorsement messages (201) corresponds to a new node (110), node 0 adds the trust endorsement values t's in the database (200). [0155] a.3 increasing the index (idx) values associated to the updated trust endorsement values t's by one and signing said the at least one trust endorsement value t and the increased index (idx) of the database (200) with the private key of node 0 obtaining an endorsement message (201). [0156] The initial index (idx) value is one, thus in this example, after updating the database by adding detected trust endorsements, the index (idx) has a value of two. Then, node 0 use its private key, pk.sub.0, to create the endorsement signature, Go, of the endorsement message (201). [0157] a.4 Finally, node 0 shares the endorsement message (201) with each neighbour node (110), in this case nodes 1 and 2.

    [0158] Down below, it is shown the trust endorsements values, t, stored in each database of each node (110) at the end of this first state as it is shown in FIG. 3b: [0159] Node 0: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, and t.sub.20=0.9. [0160] Node 1: t.sub.13=0.6, t.sub.12=0.1, t.sub.01=0.9, t.sub.02=0.1, t.sub.46=0.8, t.sub.31=0.9 and t.sub.37=0.5. [0161] Node 2: t.sub.20=0.9, t.sub.01=0.9, t.sub.02=0.1, t.sub.31=0.9 and t.sub.37=0.5. [0162] Node 3: t.sub.31=0.9, t.sub.37=0.5, t.sub.13=0.6, t.sub.12=0.1 and t.sub.20=0.9. [0163] Node 4: t.sub.46=0.8, t.sub.13=0.6, t.sub.12=0.1, t.sub.56=0.9 and t.sub.65=0.7. [0164] Node 5: t.sub.56=0.9, t.sub.46=0.8 and t.sub.65=0.7. [0165] Node 6: t.sub.65=0.7, t.sub.46=0.8 and t.sub.56=0.9. [0166] Node 7: t.sub.31=0.9 and t.sub.37=0.5.

    [0167] Gossip Algorithm: Stable State of the Database (FIG. 3c)

    [0168] FIG. 3c shows the content of the database (200) of node 0 after applying the gossip algorithm a large number of iterations, thus obtaining a stable state of the databases (200) of the nodes (110), i.e. consensus state. FIG. 3c shows the iteration number 1000 thus the index value (idx) is 1000.

    [0169] It should be noted that throughout this entire specification, timesteps and iterations will be understood as equivalent terms.

    [0170] Down below, it is shown the trust endorsements values, t, stored in each database of each node (110) in the stable state: [0171] Node 0: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.31=0.9, t.sub.37=0.5, t.sub.46=0.8, t.sub.56=0.9 and t.sub.65=0.7. [0172] Node 1: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.31=0.9, t.sub.37=0.5, t.sub.46=0.8, t.sub.56=0.9 and t.sub.65=0.7. [0173] Node 2: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.31=0.9, t.sub.37=0.5, t.sub.46=0.8, t.sub.56=0.9 and t.sub.65=0.7. [0174] Node 3: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.31=0.9, t.sub.37=0.5, t.sub.46=0.8, t.sub.56=0.9 and t.sub.65=0.7. [0175] Node 4: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.31=0.9, t.sub.37=0.5, t.sub.46=0.8, t.sub.56=0.9 and t.sub.65=0.7. [0176] Node 5: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.31=0.9, t.sub.37=0.5, t.sub.46=0.8, t.sub.56=0.9 and t.sub.65=0.7. [0177] Node 6: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.31=0.9, t.sub.37=0.5, t.sub.46=0.8, t.sub.56=0.9 and t.sub.65=0.7. [0178] Node 7: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.31=0.9, t.sub.37=0.5, t.sub.46=0.8, t.sub.56=0.9 and t.sub.65=0.7.

    [0179] Thus, in the stable state, all the database of the nodes (101) of the network (100) comprises the same trust endorsement values, t.

    [0180] Steps b) and c) of the Method

    [0181] In this section it is described the local calculation and the local validation of node 0 in different states of its database (200), i.e. at different time steps of execution of the gossip algorithm. For nodes (110) 1 to 7 it is also performed likewise. In this example, the local validation performed by node 0 for each node (110) of its database (200) is based on the calculated trust score of node 0 to the rest of nodes. In order to increase the clarity the rest of the nodes (110) may be called nodes j, thus the trust score to be calculated is s.sub.0j.

    [0182] In particular, it is set a threshold value, thrsh, and it is compared with the value of said at least one trust score s.sub.0j assigned by each node to every other node and if s.sub.0j is higher than thrsh, the node is validated. In this example, thrsh is 0.5. Thus, it is obtained by node 0 a different validation of each digital signature of each node (110), i.e. nodes 1 to 7, of the peer to peer network (100).

    [0183] In this example the local calculation is performed as follows: [0184] running a breath-first search in node 0 obtaining at least one direct and/or indirect endorsement connection of node 0, wherein an indirect endorsement connection between two nodes is stablished by a concatenation of a plurality of direct endorsement connections through at least one node, [0185] if there is a direct endorsement connection, setting the trust score so.sub.j as


    s.sub.0j=t.sub.0j [0186] if the endorsement connection between node i, where the step of locally calculating is been performed, and other node, for example node y, is different than a direct endorsement connection and an indirect endorsement connection: [0187] setting the trust endorsement value between said two nodes to a default trust endorsement value, t.sub.d, preferably 0.4, i.e:


    t.sub.0y==0.4 [0188] if the endorsement connection between a node, where the step of locally calculating is been performed, and other node is different than a direct endorsement connection, iterating the following equation a number of iterations, n_max, [0189] for n form 0 to n_max:

    [00005] s ik ; n + 1 = .Math. .Math. s ik ; n + ( 1 - ) .Math. j V .Math. t jk .Math. s ij ; n + 1 j V .Math. a jk .Math. s ij ; n + ( s ik ; n ) + [0190] wherein [0191] (s.sub.ik;n) is calculated from the following expression:

    [00006] ( s ik ; n ) = tanh ( 3 .Math. - 1 .Math. .Math. j V .Math. a jk .Math. s ij ; n + 1 ) [0192] wherein and equal to 4, [0193] i is node (110) where the calculation is locally performed, in this example i corresponds to 0. [0194] j is a node with direct endorsement connection with node k. [0195] k is a node (110) with indirect endorsement connection with node i. [0196] s.sub.ik;n is the trust score given by node i to node k on iteration n, with s.sub.ik,0 equal to 0.5. [0197] V is set of nodes (110) of the peer to peer network (100). [0198] a.sub.jk is 0 if there is not a direct endorsement connection from node j to node k. [0199] a.sub.kj is 1 if there is a direct endorsement connection. [0200] is preferably 10.sup.8, [0201] is preferably 0.7. [0202] iterating the equation until the following condition is fulfilled,

    [00007] .Math. s ik ; n + 1 - s ik ; n .Math. .Math. s ik ; n .Math. < [0203] wherein is 0.005, and if the condition is fulfilled, then setting


    s.sub.ik=s.sub.ij;n+1 [0204] and, [0205] if the iteration of the equation is the n-iteration, setting


    s.sub.ik=s.sub.ij;n

    [0206] In this example, n_max is value between:


    9.Math.ln(V||N.sub.i) and 12.Math.ln(V||N.sub.i)

    [0207] Wherein N.sub.i is the number of nodes with a direct connection con node i.

    [0208] Performing Steps b) and 0 of the Method in the Initial State

    [0209] In this section, it is locally calculated and validated in node 0, the rest of nodes 1 to 7, in the initial state of the database (200) shown FIG. 3a of node 0 before applying the gossip algorithm.

    [0210] In the initial state, the database (200) of node 0 is t.sub.01=0.9 and t.sub.02=0.1. This defines the endorsement network of node 0 which is shown in FIG. 4a. The endorsement network of node 0 in this initial state comprises two direct endorsement connections to nodes 1 and 2. Thus local calculation in node 0 is performed as follows:


    s.sub.01=t.sub.01=0.9


    s.sub.02=t.sub.02=0.1

    [0211] As the rest of the nodes 3 to 7 there is not any endorsement connection, node 0 the trust endorsement value between node 0 and nodes 3 to 7 to a default trust endorsement value, t.sub.d:


    t.sub.03=t.sub.d=0.4


    t.sub.04=t.sub.d=0.4


    t.sub.06=t.sub.d=0.4


    t.sub.06=t.sub.d=0.4


    t.sub.07=t.sub.d=0.4

    [0212] In FIG. 4a, it can be appreciated in dashed arrows the default direct endorsement connections. Then, the above equation is iterated until n_max. n_max is value between:


    9.Math.ln(V||N.sub.0) and 12.Math.ln(V||N.sub.0)


    thus,


    9.Math.ln(8||2)=16


    12.Math.ln(8||2)=22

    [0213] Therefore in this example, n_max is 20.

    [0214] In this case there is not any direct or indirect endorsement connection between node 0 an 3. Thus, the trust score of node 0 to node 3 is calculated as follows:

    [00008] s 03 ; 5 = 0.5 s 03 ; 1 = .Math. .Math. s 03 ; 0 + ( 1 - ) .Math. j V .Math. t jk .Math. s ij ; 0 + 1 j V .Math. a jk .Math. s ij ; 0 + ( s 03 ; 1 ) + ;

    [0215] Regarding

    [00009] j V .Math. t jk .Math. s ij ; 0 + 1 j V .Math. a jk .Math. s ij ; 0 + ( s 03 ; 1 ) +

    [0216] The numerator is:

    [00010] t 03 .Math. s 00 ; 0 + 1 + t 13 .Math. s 01 ; 0 + 1 + t 23 .Math. s 02 ; 0 + 1 + t 33 .Math. s 03 ; 0 + 1 + t 43 .Math. s 04 ; 0 + 1 + t 53 .Math. s 05 ; 0 + 1 + t 63 .Math. s 06 ; 0 + 1 + t 7 .Math. s 07 ; 0 + 1

    [0217] And the denominator is:

    [00011] a 03 .Math. s 00 ; 0 + ( s 03 ; 0 ) + a 13 .Math. s 01 ; 0 + ( s 03 ; 0 ) + a 23 .Math. s 02 ; 0 + ( s 03 ; 0 ) + a 33 .Math. s 03 ; 0 + ( s 03 ; 0 ) + a 43 .Math. s 04 ; 0 + ( s 03 ; 0 ) + a 53 .Math. s 05 ; 0 + ( s 03 ; 0 ) + a 63 .Math. s 06 ; 0 + ( s 03 ; 0 ) + a 73 .Math. s 07 ; 0 + ( s 03 ; 0 ) +

    [0218] As: [0219] t.sub.03 is 0.4, t.sub.33 is 1, and t.sub.13, t.sub.23 and t.sub.43 to t.sub.63 are 0 and [0220] a.sub.03 is 1, and the remainder values are 0
    (s.sub.03;0) is:

    [00012] ( s 0 ; 30 ) = tanh ( 3 .Math. - 1 .Math. .Math. j V .Math. a jk .Math. s ij ; 0 + 1 ) = 4 + tanh ( 3 .Math. 4 - 1 .Math. ( s 00 ; 0 5 ) ) .Math. == tanh ( 0.75 .Math. ( 1 ) ) = 0.635 .Math. And .Math. .Math. j V .Math. t jk .Math. s ij ; 0 + 1 j V .Math. a jk .Math. s ij ; 0 + ( s ik ; n ) +

    is calculated as follows:

    [00013] 0.4 .Math. s 00 ; 0 + 1 + 1 .Math. s 03 ; 0 + 1 s 00 ; 0 + = 0.4 .Math. 1 + .Math. 0.5 5 1 + 10 - 8 0.43 1 = 0.43

    [0221] Thus:


    s.sub.03;1=0.7.Math.0.5+0.3.Math.0.43=0.48

    [0222] In this embodiment s.sub.ii is equal to 1 because a node will always have the highest validation of itself. In this embodiment, as the database (200) is constant, the value is the same and therefore, s.sub.03;20 is 0.48.

    [0223] It can be appreciated that even if there is not a direct or an indirect connection with a node, the validations of others nodes with respect of said node are taking into account. Similarly applies with the rest of trust scores s.sub.04 to s.sub.07 which are equal to 0.48.

    [0224] Then, node 0 locally validates each node (110) of the peer to peer network (100): [0225] Node 1: s.sub.01>thrd, is it 0.9 bigger than 0.5? Thus the digital signature of node 1 is valid for node 0. [0226] Node 2: s.sub.02>thrd, is it bigger than 0.1>0.5? Thus the digital signature of node 2 is invalid for node 0. [0227] Node 3: s.sub.03>thrd, is it bigger than 0.48>0.5? Thus the digital signature of node 3 is invalid for node 0.

    [0228] Similarly applies with the rest of trust scores s.sub.04 to s.sub.07.

    [0229] Performing Steps b) and c) of the Method in the First State

    [0230] In this section, it is shown the local calculation and validation of the digital signatures of nodes 1 to 7 by node 0. In particular, it is shown the local calculation and validation in the first state of the database (200) of node 0 of the gossip algorithm. The first state of the database of node 0 is shown in FIG. 3b. As it is analyzed a specific state the database (200) is constant and it will be not changes during the iterations.

    [0231] FIG. 4b shows the endorsement network defined by the first state of the database (200) of node 0 of FIG. 3b. It can be appreciated that node 0 has two direct endorsement connections with nodes 1 and 2, because of there are the trust endorsement values tot and toe.

    [0232] Additionally, there is a concatenation of a plurality of direct endorsement connections through at least one node. In particular, there are two direct endorsement connections through node 1: [0233] from node 0 to node 1 and [0234] from node 1 to node 3

    [0235] Therefore, node 0 has an indirect endorsement connection with node 3. With nodes 4 to 7 there is not any endorsement connection. Thus local calculation in node 0 at the first stage is performed as follows: [0236] Database (200) of node 0: Node 0: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, and t.sub.20=0.9. [0237] Direct endorsement connections, nodes 1 and 2:


    s.sub.01=t.sub.01=0.9


    s.sub.02=t.sub.02=0.1 [0238] As the rest of the nodes 4 to 7 there is not any endorsement connection, node 0 the trust endorsement value between node 0 and nodes 4 to 7 to a default trust endorsement value, t.sub.d:


    t.sub.04=t.sub.d=0.4


    t.sub.06=t.sub.d=0.4


    t.sub.06=t.sub.d=0.4


    t.sub.07=t.sub.d=0.4

    [0239] In FIG. 4b, it can be appreciated in dashed arrows the default direct endorsement connections. In this case there is an indirect endorsement connection between node 0 an 3. Thus, as it is commented in the previous section, then, the above equation is iterated until n is 20:

    [00014] s 03 ; 0 = 0.5 s 03 ; 1 = .Math. .Math. s 03 ; 0 + ( 1 - ) .Math. j V .Math. t jk .Math. s ij ; 0 + 1 j V .Math. a jk .Math. s ij ; 0 + ( s 03 ; 0 ) +

    [0240] As: [0241] t.sub.13 is 0.6 t.sub.33 is 1, and t.sub.13, t.sub.23 and t.sub.43 to t.sub.63 are 0 and [0242] a.sub.13 is 1, and the remainder values are 0,
    (s.sub.03;0) is

    [00015] ( s 03 ; 0 ) = tanh ( 3 .Math. - 1 .Math. .Math. j V .Math. a jk .Math. s ij ; 0 + 1 ) = tanh ( 3 .Math. 4 - 1 .Math. ( s 01 ; 0 5 ) ) = = tanh ( 0.75 .Math. ( 0.9 5 ) ) = 0.416 And .Math. .Math. j V .Math. t jk .Math. s ij ; 0 + 1 j V .Math. a jk .Math. s ij ; 0 + ( s ik ; n ) +

    is calculated as follows:

    [00016] 0.6 .Math. 0.9 5 + 1 .Math. 0.5 5 0.9 4.416 + 10 - 8 = 0.79 0.63 = 1.25

    [0243] Thus:


    s.sub.0.3;1=0.7.Math.0.5+0.3*1.25=0.73

    [0244] In this embodiment as the database (200) is constant, the value is the same and therefore, s.sub.03;20 is 0.73. As the endorsement network of node 0 with respect to nodes 4 to 7 is similar to the endorsement network of FIG. 4a, trust scores s.sub.04 to s.sub.07 which are equal to 0.48 as it is indicated in the previous section.

    [0245] Then, node 0 locally validates each node (110) of the peer to peer network (100): [0246] Node 1: s.sub.01>thrd, is it 0.9 bigger than 0.5? Thus the digital signature of node 1 is valid for node 0. [0247] Node 2: s.sub.02>thrd, is it bigger than 0.1>0.5? Thus the digital signature of node 2 is invalid for node 0. [0248] Node 3: s.sub.03>thrd, is it bigger than 0.73>0.5? Thus the digital signature of node 3 is valid for node 0.

    [0249] Similarly applies with the rest of trust scores s.sub.04 to s.sub.07.

    [0250] Performing Steps b) and c) of the Method in the Stable State

    [0251] In this section it is shown the local calculation and validation of the digital signatures of nodes 1 to 7 by node 0 in the stable state of the database (200) of node 0 after applying the gossip algorithm. The stable state of the database of node 0 is shown in FIG. 3c. As it is analyzed a specific state the database is constant and it will be not changes during the iterations.

    [0252] FIG. 4c shows the endorsement network defined by the stable state of the database of node 0 of FIG. 3b. It can be appreciated that node 0 has two direct endorsement connections with nodes 1 and 2, because of there are the trust endorsement values t.sub.01 and t.sub.02. Additionally, it can be appreciated a bidirectional line between nodes 4 and 5 because due to the values of t.sub.45 and t.sub.54.

    [0253] Additionally, there are two indirect endorsement connections with nodes 3 and 7: [0254] Indirect endorsement connection with node 3: a concatenation of a plurality of direct endorsement connections through one node, i.e., through node 1: from node 0 to node 1 and from node 1 to node 3. [0255] Indirect endorsement connection with node 7: a concatenation of a plurality of direct endorsement connections through two nodes i.e., through nodes 1 and 3: from node 0 to node 1, from node 1 to node 3 and from node 3 to node 7. [0256] Database (200) of node 0 Node 0: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.31=0.9, t.sub.37=0.5, t.sub.46=0.8, t.sub.56=0.9 and t.sub.65=0.7. [0257] Direct endorsement connections, nodes 1 and 2:


    s.sub.01=t.sub.01=0.9


    s.sub.02=t.sub.02=0.1 [0258] As the rest of the nodes 4 to 7 there is not any endorsement connection, node 0 the trust endorsement value between node 0 and nodes 4 to 7 to a default trust endorsement value, t.sub.d:


    t.sub.04=t.sub.d=0.4


    t.sub.06=t.sub.d=0.4


    t.sub.06=t.sub.d=0.4


    t.sub.07=t.sub.d=0.4

    [0259] In FIG. 4c, it can be appreciated in dashed arrows the default direct endorsement connections. In this case the indirect endorsement connection between node 0 and 3 is similar than the shown in the previous section. Thus, as it is commented above, then, the above equation is iterated until n is 20.

    [0260] As: [0261] t.sub.03 is 0.4, t.sub.13 is 0.6 t.sub.33 is 1, and t.sub.13, t.sub.23 and t.sub.43 to t.sub.63 are 0 and [0262] a.sub.03 and a.sub.13 are 1, and the remainder values are 0,

    [0263] Thus, it is similar to the first state of the algorithm, the result of the calculation of (s.sub.03;0) and

    [00017] j V .Math. t jk .Math. s ij ; 0 + 1 j V .Math. a jk .Math. s ij ; 0 +

    is the same that in the above step. Thus (s.sub.03;0) is 0.416 and s.sub.03;0 is 0.73.

    [0264] In this embodiment, as the database (200) is constant, the value is the same and therefore, s.sub.03;20 is 0.73. Similarly, the method is applied with the rest of trust scores s.sub.04 to s.sub.07. Then, the node 0 locally validates each node (110) of the peer to peer network (100) as it is indicated in the previous section.

    [0265] Performing Steps a) to e) of the Method Concurrently

    [0266] As it is indicated, steps b) to e) can be performed in a concurrent manner in respect of step a). In other compatible examples, steps b) to e) may further be performed at the node's discretion. Thus, there is no need for waiting the finishing of step a) of the method. In this section, it is shown an example of said concurrent operation.

    [0267] In this example, it is used the peer to peer network (100) of FIG. 1 and initial conditions of FIG. 3a. Thus, the database (200) of node 0 is t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, and t.sub.20=0.9.

    [0268] In the first stage of the gossip algorithm, the endorsement network of node is shown in FIG. 4b and the trust scores, s, of node 0 are obtained as it is above indicated in the example of FIG. 4b: s.sub.01=0.9, s.sub.02=0.1, s.sub.03;1=0.7, s.sub.04=0.5, s.sub.05=0.5, s.sub.06=0.5, s.sub.07=0.5.

    [0269] For indirect endorsement connection of node 0 to node 3, it is shown the first iteration of the calculation, s.sub.03;0.

    [0270] Concurrently, due to its experience with node 3, node 2 sets a new trust endorsement value with respect to node 3, t.sub.23=0.7, and nodes 4 to 6 sets a new trust endorsement value with respect to node 3 t.sub.43=t.sub.53=t.sub.63=0.1. FIG. 5a shows the updated version of the database (200) of node 2. The step d) of the method is executed and node 2 sends the changed trust endorsement value t to each neighbor node (110) and the gossip algorithm is executed in the plurality of nodes (110), i.e., step a) of the method is performed again.

    [0271] In this example, node 2 sends the following endorsement message (201) to their neighbor nodes 0 and 3:


    t.sub.20=0.1 .sub.2; index=2.


    t.sub.23=0.7 .sub.2; index=2.


    t.sub.01=0.9 .sub.2; index=2


    t.sub.02=0.1 .sub.2; index=2


    t.sub.31=0.6 .sub.2; index=2


    t.sub.37=0.1 .sub.2; index=2

    [0272] Node 0 detects the new trust endorsement (201) from node 2 and executes steps a.2 to a.4 of the gossip algorithm for updating its database (200). During the gossip algorithm, node 0 discards the trust endorsement values wherein the origin of the trust is node 0, i.e., t.sub.01, t.sub.02. Similarly, node 4 sends a similar endorsement message (201) indicating the new trust endorsements values from nodes 4 to 6. Thus, the database (200) of node 0 and its endorsement network is updated as it is shown in FIGS. 5b and 5c respectively.

    [0273] Then, node 0 has a two indirect endorsement connection with node 3, one through node 1 and other through node 2. Thus, the second iteration of the locally calculation of the trust score s.sub.03 is performed as follows: [0274] Database (200) of node 0: Node 0: t.sub.01=0.9, t.sub.02=0.1, t.sub.13=0.6, t.sub.12=0.1, t.sub.20=0.9, t.sub.23=0.7 and t.sub.43=t.sub.53=t.sub.63=0.1. [0275] Direct endorsement connections, nodes 1 and 2:


    s.sub.01;1=t.sub.01=0.9


    s.sub.02;1=t.sub.02=0.1 [0276] As the rest of the nodes 4 to 7 there is not any endorsement connection, node 0 the trust endorsement value between node 0 and nodes 4 to 7 to a default trust endorsement value, t.sub.d:


    t.sub.04=t.sub.d=0.4


    t.sub.06=t.sub.d=0.4


    t.sub.06=t.sub.d=0.4


    t.sub.07=t.sub.d=0.4 [0277] Trust scores calculated in the first iteration:


    s.sub.03;1=s.sub.04;1=s.sub.05;1=s.sub.06;1=s.sub.07;1=0.48.

    [0278] Thus, as it can be appreciated in FIG. 5c there are three default endorsements connections between nodes 0 to 3, through nodes 4 to 6. As there is between node 0 and 3 an endorsement connection different than a direct endorsement connection, the second iteration of the locally calculation of the trust score s.sub.03 is performed as follows:

    [00018] s 03 ; 2 = .Math. .Math. s 03 ; 1 + ( 1 - ) .Math. j V .Math. t jk .Math. s ij ; 1 + 1 j V .Math. a jk .Math. s ij ; 1 + ( s 03 ; 1 ) +

    [0279] As: [0280] t.sub.13 is 0.6, t.sub.23 is 0.7, t.sub.33 is 1, t.sub.43, t.sub.53, t.sub.63 are 0.1 and t.sub.03 is 0, [0281] a.sub.13, a.sub.23, a.sub.43, a.sub.53 and a.sub.63 are 1 and the remainder values are 0, [0282] s.sub.03;1=s.sub.04;1=s.sub.05;1=s.sub.06;1=s.sub.07;1=0.48
    (s.sub.03;1) is

    [00019] ( s 03 ; 1 ) = tanh ( 3 .Math. - 1 .Math. .Math. j V .Math. a jk .Math. s ij ; 1 + 1 ) = tanh ( 3 .Math. 4 - 1 .Math. ( s 01 ; 1 5 + s 02 ; 1 5 + s 04 ; 1 5 + s 04 ; 1 5 + s 04 ; 1 5 ) ) = tanh ( 0.75 .Math. ( 0.9 5 + 0.1 5 + 0.48 5 + 0.48 5 + 0.48 5 ) ) = tanh ( 0.75 .Math. 0.66 ) = 0.462 .Math. And .Math. .Math. j V .Math. t jk .Math. s ij ; 0 + 1 j V .Math. a jk .Math. s ij ; 0 + ( s ik ; n ) +

    is calculated as follows:

    [0283] The numerator is:


    t.sub.13.Math.s.sub.01;1.sup.+1+t.sub.23.Math.s.sub.02;1.sup.+1+t.sub.33.Math.s.sub.03;1.sup.+1+t.sub.43.Math.s.sub.04;0.sup.+1+t.sub.53.Math.s.sub.05;0.sup.+1+t.sub.63;0.Math.s.sub.06;0.sup.+1=

    [0284] And the denominator is:

    [00020] a 13 .Math. s 01 ; 1 + ( s 03 ; 1 ) + a 23 .Math. s 02 ; 1 + ( s 03 ; 1 ) + a 33 .Math. s 03 ; 1 + ( s 03 ; 1 ) ++ .Math. a 43 .Math. s 04 ; 0 + ( s 03 ; 0 ) + a 53 .Math. s 05 ; 0 + ( s 03 ; 0 ) + a 63 .Math. s 06 ; 0 + ( s 03 ; 0 ) + 0.6 .Math. 0.9 5 + 0.7 .Math. 0.1 5 + 1 .Math. 0.47 5 + 0.1 .Math. 0.47 5 + 0.1 .Math. 0.47 5 + 0.1 .Math. 0.47 5 0.9 4.462 + 0.1 4.462 + 0.48 4.462 + 0.48 4.462 + 0.48 4.462 + 10 - 8 == 0.38 0.73 = 0.52

    [0285] Thus:


    s.sub.03;2=0.7.Math.0.48+0.3*0.52=0.49

    [0286] It can be appreciated that the low validation values of nodes 4 to 6 with respect to node 3 has been influenced in the calculation even with high validation value of node 1 with respect of node 4.

    [0287] Then, it is checked the following condition:

    [00021] .Math. s ik ; n + 1 - s ik ; n .Math. .Math. s ik ; n .Math. < .Math. s 03 ; 2 - s 03 ; 1 .Math. .Math. s 03 ; 1 .Math. < 0.005 .Math. 0.49 - 0.48 .Math. .Math. 0.48 .Math. = 0.021 < 0.005

    [0288] As the condition is not fulfilled, node 0 will iterate until the iteration number 20 taking in to account any other variation of the database (200), and locally validating each node (110) of the peer to peer network (100).

    [0289] In a preferred illustrative embodiment as embodiment 1, a

    computer-implemented method for validating a digital signature of at least one node (110) in a peer to peer network (100), wherein said network (100) comprises at least three nodes (110), for example nodes i, j and w, wherein each node (110) is configured to store a database (200) and at least one trust score s, for example a trust score s.sub.ij or s.sub.iw of a node (110) i in respect with another node (110) j or w,
    wherein each database (200) is configured to store at least one trust endorsement value t of a node (110) in respect with another node (110) defining a direct endorsement connection between said nodes (110), for example a trust endorsement value t.sub.ij of a node (110) i in respect with another node (110) j defining a direct endorsement connection between nodes (110) i and j,
    wherein the trust endorsement value t is greater or equal than 0 and less or equal than 1, and
    the computer-implemented method comprising the steps of, [0290] a) executing in the plurality of nodes (110) a gossip algorithm, receiving in each node at least one endorsement message (201) and obtaining in each node (110) a updated version of its database (200), wherein the updated database (200) in each node (110) comprises the trust endorsement values t's of at least one different node (110) of the peer to peer network (100); [0291] b) locally calculating in each node (110), a trust score s assigned to other node (110) of the network (100) for each node (110) of its database (200) based on the data contained in said database (200); and [0292] c) locally validating in each node (110), each digital signature of the at least one node (110) of its database (200), based on the value of said trust score (s.sub.ij) of the peer to peer network (100), obtaining in each node (110) a different validation of each digital signature of each node (110) of the network (100), and [0293] d) if there is a change in at least one trust endorsement value t of a database (200) of a node (110) or a at least one new trust endorsement value t, sending the changed or new trust endorsement value t to each neighbour node (110) and executing step a), or [0294] e) if a new node (110) is added or deleted in the peer to peer network (100), executing step a).

    [0295] Embodiment 2. The computer-implemented method according to embodiment 1, wherein steps b) to e) are performed in a concurrent manner in respect of step a).

    [0296] Embodiment 3. The computer-implemented method according to any of the previous embodiments, wherein each node (110) comprises at least one public and private node key pairs and the public keys of the rest of the nodes (110) of the peer to peer network (100), wherein the public and private node key pairs are a public key and a private key related to each node (110),

    wherein the at least one endorsement message (201) comprises at least one trust endorsement value t, an index value (idx) associated to each trust endorsement value t and endorsement signature (.sub.1, .sub.2); and
    wherein said endorsement signature (.sub.1, .sub.2) is signed with the private key of the node which sent the at least one endorsement message (201), and
    wherein, the gossip algorithm of step a) comprising the steps of: [0297] a.1 in each node (110), listening to the other nodes (110) of the network (100) and detecting at least one endorsement message (201) from said other nodes (110); and [0298] a.2 for each detected endorsement message (201): [0299] a.2.1 verifying the endorsement signature (.sub.1, .sub.2) with the public key of said other node (110); [0300] a.2.2 whether at least one trust endorsement value t of the endorsement message (210) already exists in the database (200) and the associated index (idx) of the endorsement message (210) is higher than the index (idx) of the database (200), updating the trust endorsement value t in the database (200), [0301] a.3 increasing the index (idx) value associated to the updated trust endorsement value t by one and signing said the at least one trust endorsement value t and the increased index (idx) of the database (200) with the private key of the node (110) obtaining an endorsement message (201); [0302] a.4 sharing the endorsement message (201) with each neighbour node (110).

    [0303] Embodiment 4. The computer-implemented method according to embodiment 3, wherein between steps a.2.2 and a.3, the gossip algorithm of step a) further comprises:

    whether the at least one trust endorsement value t is new, adding the detected trust endorsement (201) in the database (200).

    [0304] Embodiment 5. The computer-implemented method according to any of the embodiments 3 or 4, wherein in step d) of sending further comprises: [0305] associating an index (idx) to the changed or new trust endorsement value t, [0306] signing the changed or new trust endorsement value t of the database (200) and the associated index (idx) with the private key of the node (110), obtaining an endorsement message (201) thereby; [0307] sharing the endorsement message (201) with each neighbour node (110).

    [0308] Embodiment 6. The computer-implemented method according to any of the previous embodiments, wherein said step of locally calculating in each node (110), at least one trust score s assigned to other node (110) of the network (100) based on the data contained in its own database (200), comprises [0309] locally obtaining at least one direct and/or indirect endorsement connection of a node (110), wherein an indirect endorsement connection between two nodes (110) is stablished by a concatenation of a plurality of direct endorsement connections through at least one node (110), [0310] if there is a direct endorsement connection, setting the trust score s as


    s=t.

    [0311] Embodiment 7. The computer-implemented method according to embodiment 6, wherein the step of locally obtaining at least one direct and/or indirect endorsement connection of a node (110) is performed by running a breath-first search or a depth-first search by said node (110).

    [0312] Embodiment 8. The computer-implemented method according to any of the embodiments 6 or 7, wherein if the endorsement connection between the node (110), where the step of locally calculating is been performed, and other node (110) is different than a direct endorsement connection and an indirect endorsement connection, the step of locally calculating in each node (110) at least one trust score s further comprises [0313] setting the trust endorsement value t between said two nodes to a default trust endorsement value, t.sub.d, preferably t.sub.d is 0.4, and
    wherein if the endorsement connection between a node, where the step of locally calculating is been performed, and other node is different than a direct endorsement connection the step of locally calculating in each node (110) at least one trust score s further comprises iterating the following equation a number of iterations, n_max,
    for n form 0 to n_max:

    [00022] s ik ; n + 1 = .Math. .Math. s ik ; n + ( 1 - ) .Math. j V .Math. t jk .Math. s ij ; n + 1 j V .Math. a jk .Math. s ij ; n + ( s ik ; n ) +

    wherein
    wherein (s.sub.ik;n) is a function between 0 and 1, monotonously increasing function based on:

    [00023] .Math. j V .Math. a jk .Math. s ij ; n + 1

    wherein the limit of (s.sub.ik;n) tends to 1 when .sub.jV a.sub.jks.sub.ij;ns.sup.+1 tends to infinite, and the function (s.sub.ik;n) is 0 when .sub.jV a.sub.jks.sub.ij;n.sup.+1 is 0,
    wherein is integer numbers, being preferably a number between 1 and 6,
    i is the node (110) where the calculation is locally performed,
    j is a node with direct endorsement connection with node k
    k is a node (110) with indirect endorsement connection with node (110) i,
    s.sub.ik;n is the trust score given by node (110) i to node (110) k on iteration n, with s.sub.ik,0 equal to 0.5,
    V is set of nodes (110) of the peer to peer network (100),
    a.sub.jk is 0 if there is not a direct endorsement connection from node (110) j to node (110) k,
    a.sub.kj is 1 if there is a direct endorsement connection,
    is a positive real number, and
    is a positive number, preferably ten to minus eight.

    [0314] Embodiment 9. The computer-implemented method according to the previous embodiments, wherein (s.sub.ik;n) is calculated from the following expression:

    [00024] ( s ik ; n ) = tanh ( 3 .Math. - 1 .Math. .Math. j V .Math. a jk .Math. s ij ; n + 1 )

    wherein is an integer number.

    [0315] Embodiment 10. The computer-implemented method according to any of the embodiments 8 or 9, wherein

    if the iteration of the equation is the n-iteration, setting


    s.sub.ik=s.sub.ij;n

    and/or
    iterating the equation until the following condition is fulfilled,

    [00025] .Math. s ik ; n + 1 - s ik ; n .Math. .Math. s ik ; n .Math. <

    wherein is a positive real number, preferably 0.005, and setting


    s.sub.ik=s.sub.ij;n+1.

    [0316] Embodiment 11. The computer-implemented method according to any of the previous embodiments, wherein locally validating at least one node (110) comprises setting a threshold value and comparing said threshold value with the value of said at least one trust score s assigned by each node (110) to every other node (110).

    [0317] Embodiment 12. A data processing system comprising means for carrying out the steps of the method of any of the embodiments 1 to 11.

    [0318] Embodiment 13. A computer program product comprising instructions which, when the program is executed by a computer, cause the computer to carry out the steps of the method of any of the embodiments 1 to 11.

    [0319] Embodiment 14. A computer-readable storage medium comprising instructions which, when executed by a computer, cause the computer to carry out the steps of the method of any of the embodiments 1 to 11.