A computer-implemented content distribution method for decentralized cloud storage

The method addresses decentralized storage challenges by segmenting and encrypting data with balanced redundancy and erasure coding, ensuring secure, scalable, and compliant data distribution across multiple nodes.

WO2026114955A1PCT designated stage Publication Date: 2026-06-04KUNDU ROHON

Patent Information

Authority / Receiving Office
WO · WO
Patent Type
Applications
Current Assignee / Owner
KUNDU ROHON
Filing Date
2025-11-26
Publication Date
2026-06-04

AI Technical Summary

Technical Problem

Decentralized storage systems face challenges in managing data distribution to balance scalability, security, and fault tolerance while ensuring privacy and compliance with data sovereignty laws.

Method used

A method for storing data in decentralized storage involves dividing data into segments, creating concatenated segment pairs with balanced redundancy, encrypting each pair with distinct keys, and using erasure coding to distribute these pairs across a network of nodes, ensuring data availability and compliance with regulations.

Benefits of technology

This approach enhances data security, privacy, and scalability, reduces the risk of data loss, and ensures compliance with data privacy regulations by distributing data across multiple nodes with balanced redundancy and encryption, enabling seamless data retrieval and compliance with legal requirements.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure EP2025084363_04062026_PF_FP_ABST
    Figure EP2025084363_04062026_PF_FP_ABST
Patent Text Reader

Abstract

The present invention relates to a content distribution method for storing data in a decentralized storage, comprising dividing (105) the data into a set of n segments, wherein each segment has a maximum size K 0, and wherein n is determined dependent upon a size, G, of the data, determining (110) a first set of concatenated segment pairs, wherein one instance of each of the unique segments in the set of n segments is comprised in the first set of concatenated segments pairs, determining (115) a parameter k such that the number of pairs in the first set of concatenated segment pairs is equal to k, and wherein k is equal to n / 2 if n is even, and n is equal to (n + 1) / 2) if n is odd, such that one segment is repeated in the first set of concatenated segments pairs if n is odd, determining (120) a second set of concatenated segment pairs, wherein the number of pairs in the second set of concatenated segment pairs is equal to n - 1, and wherein the second set of concatenated segment pairs represent a subset of a Cartesian square of the set of n segments, determining (125) a set of concatenated segment pairs for storing, comprising the first set of concatenated segment pairs and the second set of concatenated segment pairs.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] A COMPUTER-IMPLEMENTED CONTENT DISTRIBUTION METHOD FOR DECENTRALIZED CLOUD STORAGE

[0002] TECHNICAL FIELD

[0003] The present inventive content distribution concept relates, in general, to a decentralized cloud storage method and, more particularly, to a computer-implemented content distribution method for storing data in a decentralized storage.

[0004] BACKGROUND

[0005] Decentralized storage solutions represent a fundamental shift from traditional cloud storage. Unlike centralized systems that rely on large data centres owned by a single entity, decentralized storage operates by distributing data across a network of independent nodes. This architecture enhances security and privacy while also providing a higher degree of fault tolerance. By splitting files into smaller pieces and distributing them across multiple nodes, decentralized storage ensures that data remains accessible even if some nodes go offline or fail.

[0006] One of the key benefits of decentralized storage is its significant advantages in data privacy and security, making it especially appealing for industries that handle sensitive information, such as finance, healthcare, artificial intelligence, large-language models and blockchain-based applications that require secure, decentralized data storage.

[0007] However, despite its advantages, decentralized storage presents challenges in managing data distribution. To address these challenges, intelligent data placement strategies are needed to account for factors like scalability, security, and geographic distribution. At the same time, it is crucial to maintain balanced levels of data redundancy to ensure fault tolerance, while minimizing bottlenecks and preventing excessive load on any single part of the network.

[0008] As demand for decentralized storage solutions grows, platforms are evolving to offer more sophisticated mechanisms for distributing content in ways that balance performance, security, and scalability. Looking ahead, these systems will need to continue refining their data distribution models to support privacy-conscious applications and blockchain ecosystems that require both scalable and secure data handling.

[0009] SUMMARY

[0010] It is an objective of the present inventive concept to provide / enable a secure content distribution method. It is a further objective of the present inventive concept to provide / enable a scalable content distribution method.

[0011] These and other objectives of the inventive concept are met by the invention as defined in the independent claims. Preferred embodiments are set out in the dependent claims.

[0012] According to a first aspect, there is provided a computer-implemented content distribution method for storing data in a decentralized storage, the method comprising dividing the data into a set of n segments, wherein each segment has a maximum size Ko, and wherein n is determined dependent upon a size, G, of the data, determining a first set of concatenated segment pairs, wherein the first set of concatenated segment pairs represent a subset of the Cartesian square of the set of n segments, and wherein one instance of each of the unique segments in the set of n segments is comprised in the first set of concatenated segments pairs, determining a parameter, k, such that the number of pairs in the first set of concatenated segment pairs is equal to k, and wherein k is equal to n / 2 if n is even, and k is equal to , — , if n is odd, such that one segment in the set of n segments is repeated in the first set of concatenated segments pairs if n is odd, determining a second set of concatenated segment pairs, wherein the number of pairs in the second set of concatenated segment pairs is equal to n - 1, and wherein the second set of concatenated segment pairs represent a subset of a Cartesian square of the set of n segments, determining a set of concatenated segment pairs for storing, wherein the set of concatenated segment pairs for storing comprises the first set of concatenated segment pairs and the second set of concatenated segment pairs, storing each pair, in the set of concatenated segment pairs for storing, wherein the storing comprises distributing the set of concatenated segment pairs for storing to nodes in a decentralized storage network.

[0013] The method for storing data in a decentralized storage, as presented herein, allows for storing and retrieving data in a secure, private, and scalable manner. Instead of relying on centralized data centres like traditional cloud storage services, a centralized storage network allows data to be distributed across a network of individual nodes. When splitting data into smaller segments and distributing the segments across many different nodes in a network, no single entity controls all the data. By distributing segments of data across multiple nodes and locations, high redundancy may be achieved. This means even if some nodes go offline, the data remains retrievable.

[0014] Utilizing a network of individual nodes may increase scalability. As new nodes join the network, storage capacity may grow dynamically without the need for investment in large physical infrastructure, as is the case with centralized providers. This natural scalability allows for seamless adaptation to increased data demands without bottlenecks, making it particularly effective e.g., for managing large-scale data storage over time.

[0015] In addition, the method presented herein is fully compatible with blockchain technology. The method for storing data in a decentralized storage may therefore be based on blockchain and / or implemented in a blockchain architecture, wherein ledger data is distributed across multiple nodes to ensure transparency, security, and trust less operations. The distributed, decentralized architecture, where no central authority controls the data or transactions makes the present inventive concept naturally compatible with blockchain systems. By distributing data across independent nodes in a global network, enhanced data availability, fault tolerance, and privacy may be enabled.

[0016] The method for storing data in a decentralized storage, as presented herein, may for example be used for backing up files or storing large datasets, and may be especially appreciated when privacy and security are priorities. Due to its scalable nature, the method for storing data in a decentralized storage, as presented herein, may be ideal for storing large files and / or datasets such as e.g., videos, images, scientific datasets, 3D-modelling files, machine learning datasets, medical records, software repositories, and / or blockchain data. Large files and datasets often require a lot of storage capacity and transfer bandwidth, both of which may be enabled by the inventive concept presented herein.

[0017] Furthermore, the method for storing data in a decentralized storage, as presented herein, may be energy-efficient and sustainable. Instead of e.g., requiring vast data centres, it may for example leverage existing underused resources (such as unused disk space and bandwidth), minimizing environmental impact. Therefore, the inventive concept disclosed herein may contribute to sustainability efforts by reducing overall energy consumption and lowering carbon emissions associated with large-scale data storage.

[0018] As used herein, the term “set” should be construed as a collection of distinct objects forming a group. A set can contain any number of elements, including none at all. A set can also contain a single element, or multiple elements.

[0019] As used herein, the term “subset” should be construed as a set where all elements of the subset are also elements of another set.

[0020] The segments in each concatenated segment pair may be selected such that the index in the ordered set n of one segment in the pair is distinct from the index in the ordered set n of the other segment in the pair.

[0021] The segments in the concatenated segment pair may therefore be selected such that the two segments are not two instances of the same segment. By selecting each segment pair such that the index in the ordered set n of one segment in the pair is distinct from the index in the ordered set n of the other segment in the pair, a balanced redundancy may, for example, be enabled, wherein a segment pair in itself does not comprise duplicated segments, further enabling e.g., the optimization of storage and bandwidth costs.

[0022] The second set of concatenated segment pairs may comprise at least one instance of each of the unique segments of the set of n segments.

[0023] Therefore, one instance of each of the unique segments in the set of n segments is comprised in the first set of concatenated segments pairs, and at least one instance of each of the unique segments of the set of n segments is comprised in the second set of concatenated segment pairs. This redundancy of data segments may be beneficial for several reasons. Redundancy may, for example, enhance data reliability and fault tolerance. By keeping more than one instance of the same data segment, information may still be able to be recovered in the event of for example hardware failure, data corruption, or loss, thereby reducing the risk of permanent data loss.

[0024] Additionally, redundancy may improve data availability. In distributed systems, having redundant copies allows for quicker access and retrieval of data, as requests can be fulfilled by whichever server or storage unit is available, rather than relying on a single point of access. This reduces the likelihood of bottlenecks and ensures smoother operations, especially during periods of high demand. Furthermore, redundancy also plays a role in load balancing and system optimization. By distributing identical data across multiple locations, systems may share the workload, which leads to more efficient processing and reduces the strain on any single storage device. This, in turn, enhances overall system performance and ensures better scalability as data demands grow.

[0025] The segments in each concatenated segment pair in the second set of concatenated segment pairs may be selected such that the index i in the ordered set n of one segment is less than the index j in the ordered set n of the other segment, such that j = i + 1 and {i,j | i e {1, 2, ... , n - 1}}.

[0026] Selecting the segment pairs of the second set of segment pairs such that the index i in the ordered set n of one segment is less than the index j in the ordered set n of the other segment may enable a balanced redundancy.

[0027] A balanced redundancy, where data is neither overly redundant nor insufficiently redundant, offers distinct advantages in terms of efficiency, reliability, and resource optimization. Excessive redundancy, while providing high fault tolerance, can lead to wasteful resource consumption, including excessive storage space, higher maintenance costs, and increased complexity in data management. On the other hand, minimal or insufficient redundancy can increase the risk of data loss in the event of system failures, as fewer copies are available for recovery. A balanced redundancy addresses the trade-off between risk management and resource efficiency and involves creating redundancy of the segments that enables retrieval of the original data from different combinations of the redundant data set.

[0028] The segments in each concatenated segment pair in the first set of concatenated segment pairs may be selected such that if n is even, n is set to be equal to 2m, and the index i in the ordered set n of one segment is less than the index j in the ordered set n of the other segment, such that j = ri le + i and {i, j | i G {1, 2, ... , k}} where k = m = n / 2, and if n is odd, n is set to be equal to 2m0+ 1, and the index i in the ordered set n of one segment is less than the index j in the ordered set n of the other segment, such that j =

[0029] The first set of segment pairs therefore may not comprise more segments than one instance of each of the unique segments of the set of n segments if n is even, and one instance of each of the unique segments of the set of n segments and one repeated segment if n is odd. As stated before, one instance of each of the unique segments in the set of n segments are comprised in the first set of concatenated segments pairs. Carefully selecting the segment pairs of the second set of segment pairs further enables a balanced redundancy. By carefully creating the right amount of redundancy, data can be reconstructed from various subsets of the stored pieces, providing resilience against loss. Enabling availability of data segments may be important for reliable data retrieval, especially in decentralized storage systems. A balanced approach to redundancy helps maintain this availability by creating just enough duplicates or parity segments so that the original data can still be reconstructed even if some segments become unavailable.

[0030] The value of n may be determined to be greater than or equal to 4, such that n > 4.

[0031] The minimal value of n may be set in such a way so that two distinct sets of concatenated segments pairs are provided. Determining the least value of n may enable data processing and storage to be planned more effectively, and that resources are allocated appropriately, avoiding unnecessary complexity. Knowing the least number of segments may allow for better optimization of memory allocation, which may lead to more efficient use of available resources.

[0032] If the value of n is determined to be greater than or equal to 4, the maximum size Koof a segment may be determined by KQ= J . However, the maximum size of a segment must be a positive integer. Therefore, the least integer function may be used such that Ko=

[0033] Consequently, the maximum size Koof a segment may be determined by dividing the least integer function of the square root of the size of the data with two, using the least integer function, such that Ko= ^]-

[0034] Knowing the maximum size of a segment may allow for better planning and more efficient data processing. By knowing the maximum size of a segment, system administrators may be able to allocate memory, storage, and bandwidth more effectively. By capping the size of each segment, operations like sorting, indexing, or transmitting data across networks may be performed more efficiently, enabling individual segments to remain manageable and responsive. Furthermore, in terms of data integrity and recovery, determining segment size may facilitate faster backup and recovery processes. When data is segmented into manageable chunks, restoring or transferring data may become more efficient and less prone to errors or corruption.

[0035] In addition, knowing the maximum size of a segment enables further calculations. The maximum size of a segment may be such that all segments have the same size. However, Komay not divide G without leaving a remainder. In that case, the size of the n-th segment may be determined as a remainder of a division of G by Ko, following the conditions for Euclidean Algorithm. To determine the value of n, accounting for the remainder, the least integer function may be employed when performing the division of G by Ko.

[0036] Therefore, the value of n may be determined by dividing the size of the data with the maximum size of a segment, using the least integer function, such that Kodivides G. If Kodoes not divides G, then G = n0K0+ 8, where 1 < 8 < Ko. Then the total number of segments will be n = n0+ 1.

[0037] Knowing the total number of segments may allow for better allocation of computational resources such as memory, storage, and processing power. It may further enable each segment being processed within the system's capacity, preventing over-allocation to individual segments or under-utilization of available resources. It also helps in load balancing, where tasks can be distributed more evenly across processing units.

[0038] Knowing the total number of segments may also enable scheduling and prioritization of operations more effectively. For instance, in parallel processing environments, tasks can be assigned to different processors or threads with a clear understanding of how many segments need to be handled. This results in better task distribution and faster processing times, as each segment can be managed more predictably.

[0039] As mentioned above, the value of n is utilized for determining e.g., the size of the first set of segment pairs and the second set of segment pairs. By knowing the total number of segments, the content distribution method for storing data in a decentralized storage can be approached with greater predictability and precision comprising defined parameters, contributing to the overall efficiency and reliability of the method. The size, 8, of the n-th segment may be determined as the remainder of the division of G by Ko, such that 6 = G mod Ko.

[0040] Knowing the size of the n-th segment may enable allocation of the minimal necessary resources to handle segments, enabling excess resources not to be wasted. This may consequently allow for finer granularity in managing resources. Understanding the size of the n-th segment may allow for more precise performance tuning and adjusting the system to handle both small and large segments.

[0041] Additionally, knowing the size of the n-th segment may enhance system stability and load balancing. It may allow for distribution of tasks more evenly, reducing the likelihood of performance bottlenecks or underutilization of resources. This may be especially important in parallel processing environments, where balancing workloads across different processors or nodes can significantly improve overall system performance.

[0042] The method may further comprise determining at least one additional set of concatenated segment pairs, wherein the at least one additional set of concatenated segment pairs represent a subset of the Cartesian square of the set of n segments, and wherein the at least one additional set of concatenated segment pairs comprises concatenated segment pairs that are distinct from the concatenated segment pairs comprised in the set of concatenated segment pairs for storing.

[0043] As stated before, one instance of each of the unique segments in the set of n segments is comprised in the first set of concatenated segments pairs, and at least one instance of each of the unique segments of the set of n segments is comprised in the second set of concatenated segment pairs. Determining which segment pairs that is comprised in the set of concatenated segment pairs for storing comprises considerations regarding which segment pairs should be included in order to create a set that is well balanced in view of balancing redundancy and security. The number of pairs comprised in the set of concatenated segment pairs for storing is equal to n - 1 + k. The at least one additional set of concatenated segment pairs comprises concatenated segment pairs that are distinct from the segment pairs comprised in the set of concatenated segment pairs for storing. The at least one additional set of concatenated segment pairs may be advantageously used for complementary redundancy in order to, for example, in case of data loss, be used to recreate what has been lost. By keeping more than one instance of the same data segment, information may still be able to be recovered in the event of for example hardware failure, data corruption, or loss, thereby reducing the risk of permanent data loss. This may also ensure that in case of a deletion or loss of one random concatenated segment from the network, the data will be still fully retrievable.

[0044] The at least one additional set of concatenated segment pairs may for example be determined such that it does not comprise at least one instance of each of the unique segments of the set of n segments. In this example, the data comprised in the set of n segments could not be completely reassembled from the at least one additional set of concatenated segment pairs, which in some cases may be advantageous. The at least one additional set of concatenated segment pairs may therefore be considered an uncomplete subset of data, since the set of n segments cannot be reassembled from the at least one additional set of concatenated segment pairs.

[0045] Storing incomplete subsets of data for redundancy may be a strategic way to balance fault tolerance and resource efficiency. While the at least one additional set of concatenated segment pairs cannot fully reconstruct the original data on their own, it still offers protection against data loss by enabling partial recovery. Pieces of data may therefore still be accessible even in the event of node failure or data corruption, without the need for full replication.

[0046] The method may further comprise encrypting each of the concatenated segment pairs, wherein each pair is encrypted separately with distinct keys.

[0047] Encrypting each pair separately with distinct keys may provide multiple layers of protection. Encrypting the segment pairs may enable sensitive information to be kept private and protected from unauthorized access and only the user may have access to the encryption keys. This may mean that even the storage node operators, who physically store the data segments, have no way of accessing or viewing the contents, unless authorized to do so. The segment pairs may therefore be protected in transit and at rest, enabling complete privacy across the entire lifecycle of the storage process.

[0048] Furthermore, each pair is encrypted separately with distinct keys, which further enables security and privacy aspects. Even if a malicious actor were to gain access to a node storing a portion of the data, they would be unable to interpret or use the data without access to all the distinct decryption keys for each segment pair of the portion of the data. This may create a robust layer of defence against cyberattacks and breaches, as the encrypted data remains unreadable and useless to anyone who doesn’t have the specific keys.

[0049] Encryption may also play an important role in data integrity by protecting it from tampering or corruption. If any changes or modifications are made to an encrypted segment, the data may fail to decrypt properly, allowing users to detect and respond to potential issues immediately.

[0050] In decentralized networks, where data is distributed across a network of independent nodes, encryption may be even more important. Each node storing one or more segment pairs may, without encryption, be vulnerable to inspection or tampering by the node operator or external attackers. However, with encryption in place, even if individual nodes are compromised, the data remains protected. This ensures that user data is secure and private, regardless of where it is stored or who manages the nodes.

[0051] Moreover, encryption enables compliance with strict data privacy regulations such as GDPR and NIS2, as it enables sensitive data being handled with the highest level of security. Organizations may for example store their data on decentralized networks while remaining confident that they meet regulatory requirements for protecting personal and financial information. In the event of node failures or network issues, encryption also mitigates the risks of data exposure. Even if a node goes offline or is compromised, the encrypted data stored on that node remains secure, reducing the impact of such failures.

[0052] The method may further comprise erasure coding each of the concatenated segment pairs, using Reed-Solomon parameters, wherein the erasure coding comprises generating erasure pieces from each of the concatenated segment pairs.

[0053] Erasure coding may refer to the concept of adding redundancy to data for fault tolerance. Erasure coding offers a different kind of redundancy, compared to traditional replication, wherein full copies of data segments are made. With erasure coding, only a fraction of the data may be stored in redundant form, while still enabling the system to recover from data loss. Erasure coding splits the data into smaller fragments and generates additional parity fragments. If some of the fragments are lost or corrupted, the original data can still be reconstructed using the remaining fragments. Erasure coding may therefore offer high fault tolerance with low storage overhead. Reed-Solomon erasure coding may be a specific and highly effective technique based on algebraic principles. Reed-Solomon erasure coding divides data into d data fragments and generates p parity fragments, ensuring that the original data can be recovered from any d fragments out of the total t fragments, where t = d + p. Each segment pair may be erasure coded, for example, with Reed-Solomon parameters (t, d), meaning the segment pair may be divided into d data fragments, and p additional parity fragments are generated. The d data fragments and p parity fragments together make up the t erasure pieces. In this example, a loss of up to p erasure pieces may be tolerated while still allowing recovery of the original data using any d of the total t erasure pieces.

[0054] Reed-Solomon codes may be highly resilient, as they can recover data even when multiple fragments are lost. Such coding process may be both powerful and flexible enough to handle data loss, enabling data durability and integrity with low overhead.

[0055] Therefore, by using erasure coding with Reed-Solomon parameters, both high fault tolerance and reduced storage overhead may be achieved.

[0056] The distribution of the set of concatenated segment pairs for storing to nodes in a decentralized storage network may comprise distributing the erasure pieces.

[0057] Therefore, by distributing the erasure pieces, the set of concatenated segment pairs for storing are distributed in erasure coded form. The step of distributing the set of concatenated segment pairs for storing to nodes in a decentralized storage network may therefore be performed by distributing the erasure pieces. The erasure pieces may be distributed e.g., across multiple storage locations, for example nodes such as servers or data centres. This distribution may further enhance e.g., data durability and fault tolerance. Even if some of the storage locations experience failures or data corruption, original data may be reconstructed from the available fragments. The distribution may not only protect against hardware failures, but may also safeguard against localized data loss, network outages, or other disruptions, thereby improving the overall reliability and resilience of the storage.

[0058] The method may further comprise selecting a set of appropriate nodes for storing in the decentralized storage network, wherein the set of appropriate nodes for storing are appropriate for storing the set of concatenated segment pairs for storing. The ability to select a set of appropriate nodes for storing in the decentralized storage network may offer several advantages. It may for example improve data locality, reducing latency and enhancing performance by placing data closer to where it will be accessed. Strategic node selection may also enable better load balancing, preventing bottlenecks and ensuring optimal performance. By choosing a set of appropriate nodes, fault tolerance may be increased, minimizing the risk of data loss. Optimizing network bandwidth and selecting energy-efficient or cost-effective nodes may also reduce operational costs.

[0059] Additionally, choosing nodes based on e.g., geographic location may enable compliance with data sovereignty laws, while selecting secure nodes may enhance data protection. In some cases, it may be necessary to store data on nodes located within specific jurisdictions to comply with data privacy regulations (e.g., GDPR, NIS2, American Data Privacy and Protection Act (ADPPA), HIPAA, Digital Personal Data Protection Act (DPDP)). By selecting nodes in the appropriate geographic regions, compliance with legal requirements may be enabled. Selecting a set of appropriate nodes for storing in the decentralized storage network may therefore maximize e.g., performance, reliability, and compliance.

[0060] The method may further comprise distributing a subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs to nodes in the decentralized storage network that are distinct from the nodes in the set of appropriate nodes for storing, wherein the number of erasure pieces in the subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs is less than the number of erasure pieces required for recovery of a segment in the set of n segments.

[0061] The subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs may e.g., be complemented by additional erasure pieces such that recovery of a segment in the set of n segments can be performed, wherein the additional erasure pieces may be stored on a node in the set of appropriate nodes for storing in the decentralized storage network.

[0062] Put differently, specific erasure pieces may be stored on nodes that e.g., may be outside of a specific jurisdiction or geographic location, in such a way that recovery of a segment in the set of n segments cannot be performed by only accessing the specific erasure pieces. The recovery of the segment will be dependent on erasure pieces stored on nodes that are e.g., within the specific jurisdiction or geographic location. This may enable compliance with data privacy regulations (e.g., GDPR, NIS2, American Data Privacy and Protection Act (ADPPA), HIPAA, Digital Personal Data Protection Act (DPDP)) even though nodes outside of a specific jurisdiction or geographic location are used.

[0063] Therefore, by distributing a subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs, wherein the number of erasure pieces in the subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs is less than the number of erasure pieces required for recovery of a segment in the set of n segments, additional redundancy may be achieved.

[0064] As stated before, redundancy may improve data availability. In distributed systems, having redundant copies of data across multiple nodes enables requests being fulfilled by whichever server or storage unit is available, rather than relying on fewer points of access. This may not only reduce the risk of bottlenecks but may also enhance fault tolerance, enabling operation even if certain nodes become unavailable due to failures or maintenance. Redundancy also allows for quicker access to data, as multiple sources can respond to user requests, improving overall response times and ensuring seamless operations, particularly during periods of high demand or network congestion. By distributing data across diverse nodes, redundancy further strengthens resilience and reliability.

[0065] BRIEF DESCRIPTION OF THE DRAWINGS

[0066] The above, as well as additional objects, features and advantages of the present inventive concept, will be better understood through the following illustrative and non-limiting detailed description, with reference to the appended drawings. In the drawings like reference numerals will be used for like elements unless stated otherwise.

[0067] Fig. 1 is a block diagram illustrating the method for storing data in a decentralized storage.

[0068] Fig. 2 is the Cartesian square of ordered set n represented in a matrix.

[0069] Fig. 3 is a subset of the Cartesian square of ordered set n represented in a matrix. Fig. 4 is the Cartesian square of an ordered set of 6 segments represented in a matrix.

[0070] Fig. 5 is the matrix of concatenated segments where n=7.

[0071] DETAILED DESCRIPTION

[0072] Together with the attached drawings, the technical contents and detailed description of the present inventive concept are described hereinafter according to examples that are not intended to limit the claimed scope. This inventive concept may be exemplified in many different forms and should not be construed as limited to the examples set forth herein; rather, these examples are provided to facilitate the understanding of the inventive concepts, and to convey the scope to the skilled person.

[0073] FIG. 1 illustrates the method 100 for storing data in a decentralized storage.

[0074] As illustrated in step 105 in FIG. 1 , the method comprises dividing the data into a set of n segments. Each segment has a maximum size Ko, and n is determined dependent upon a size, G, of the data.

[0075] The value of n may be determined by dividing the size, G, of the data with the maximum segment size, Ko, and rounding up to the closest integer.

[0076] Steps 110 and 120 of FIG. 1 , illustrate determining a first set of segment pairs and a second set of segment pairs, respectively.

[0077] In step 115 of FIG. 1 , a parameter, k, is determined such that the number of pairs in the first set of concatenated segment pairs is equal to k.

[0078] The number of pairs in the first set of segment pairs is equal to k, and the number of pairs in the second set of segment pairs is equal to n - 1. The first set of segment pairs and the second set of segments pairs each represent a subset of a Cartesian square of the set of n segments. The Cartesian square of a set n, denoted by n x n, is defined as the set of all ordered pairs (i,j) where i e n and j e n. A subset of this Cartesian square is a set of ordered pairs, wherein each pair (i,j) cnx n.

[0079] The first set of segment pairs does not comprise more segments than one instance of each of the unique segments of the set of n segments if n is even. If n is odd, the first set of segment pairs does not comprise more segments than one instance of each of the unique segments of the set of n segments and one repeated segment. Therefore, the entire set of n segments is comprised in the first set of segments. Step 125 of FIG. 1 , illustrates that a set of concatenated segment pairs for storing is determined. The set of concatenated segment pairs for storing comprises the first set of segment pairs and the second set of segment pairs. Since the entire set of n segments is comprised in the first set of segment pairs, the segments in the segment pairs comprised in the second set of segment pairs may be seen as duplicates of the segments in the segment pairs comprised in the first set of segment pairs. By creating duplicates of the segmented file, redundancy is introduced to enable e.g., fault tolerance. The duplicates may act as a fallback mechanism, allowing for recovery in the event of data loss or corruption. This redundancy mitigates the risk of unrecoverable data loss and enables lost, missing, or corrupted segments to be replaced by their duplicates.

[0080] Step 130 illustrates storing each pair, in the set of concatenated segment pairs for storing. Storing each pair, in the set of concatenated segment pairs for storing, wherein the storing comprises distributing the set of concatenated segment pairs for storing to nodes in a decentralized storage network may enable e.g., enhanced fault tolerance, scalability, and security. By distributing segment pairs across multiple independent nodes, the risk of data loss is reduced, as data availability is not reliant on any single point of failure. This distributed structure enables continuous access to the data, even if some nodes become unavailable.

[0081] Furthermore, decentralized storage enhances privacy, as no single node has access to the complete file, reducing the likelihood of unauthorized access. The system's scalability is supported by the ability to dynamically add new nodes, enabling the network to expand storage capacity and accommodate growing data needs. This distributed architecture also enables more efficient data transfer, as segments can be uploaded and retrieved in parallel from different nodes, reducing latency and improving overall performance.

[0082] The segments in each concatenated segment pair may be selected such that the index in the ordered set n of one segment in the pair is distinct from the index in the ordered set n of the other segment in the pair.

[0083] Therefore, if for example the segments, si-sn, of the Cartesian square of ordered set n were represented in a matrix, such as the matrix 200 in FIG. 2, each segment pair would be selected such that the diagonal (sisi , S2S2, S3S3, ... , SnSn) of the matrix would not be represented in the selected segment pairs. The internal order of the segments within the segment pairs does not have to be considered when comparing segment pairs. If the segments, si-sn, of the Cartesian square of ordered set n were represented in a matrix, such as the matrix 200 in FIG. 2, the segment pairs represented in the second set of segment pairs would be represented in the matrix, either directly above or directly below the diagonal (sisi, S2S2, S3S3, ... , snsn) of the matrix, i.e., segments S1S2, S2S3, ... , sn-isnor s2Si, S3S2, ... , snsn-i in FIG. 2.

[0084] If the segments, si-sn, of the Cartesian square of ordered set n were represented in a matrix, the first set of segment pairs would be represented in the matrix that comprises segments si-Sk on one axis and segments sn-k+i-snon the other axis. Matrix 300 of FIG. 3 may be considered a sub-square matrix to matrix 200 of FIG. 2. The diagonal of matrix 300 illustrates segments comprised in the first set of segment pairs, wherein the first set of segment pairs are represented by segment pairs sisn-k+i , S2Sn-k+2, S2Sn-k+2, ... , SkSn.

[0085] As can be seen in matrix 300 of FIG. 3, k may be used in determining the segment pairs comprised in the first set of concatenated segment pairs. The entire set of n segments is comprised in the first set of segments. Therefore, k may be determined such that it represents the dimension of the submatrix 300, illustrated in FIG. 3, such that the diagonal of matrix 300 illustrates segments comprised in the first set of segment pairs.

[0086] Fig. 4 is the Cartesian square of an ordered set of 6 segments represented in matrix 400. The number of segments illustrated is only one of many possible number of segments and should in this context only be seen as an example to further clarify how concatenated segment pairs may be selected for the first set of concatenated segment pairs and the second set of concatenated segment pairs. The internal order of the segments within the segment pairs does not have to be considered when comparing segment pairs. Therefore, the matrix representation of FIG. 4 is for illustration purposes only.

[0087] The value of n in FIG. 4 is determined to be 6. Since 6 is an even number, k is equal to n / 2 = 3. Therefore, the dimensions of submatrices 405 and 425 are 3 by 3.

[0088] The diagonal of submatrix 405 comprises the concatenated segment pairs of the first set of concatenated segment pairs 410, and the number, k, of concatenated segment pairs in the first set of concatenated segment pairs 410 is equal to 3. The segment pairs represented in the first set of segment pairs 410 are thereby S1S4, S2S5, S3S6. Alternatively, since the internal order of the segments within the segment pairs does not have to be considered when comparing segment pairs, the diagonal of submatrix 425 comprises the concatenated segment pairs of the first set of concatenated segment pairs 430, i.e. segment pairs S4S1 , S5S2, S6S3.

[0089] The first set of concatenated segment pairs is formed by diagonal elements of a k*k sub-square matrix of the upper-triangular matrix. Alternatively, by diagonal elements of a k*k sub-square matrix of the lower- triangular matrix.

[0090] The segment pairs represented in the second set of segment pairs 415, is represented in matrix 400 directly above the diagonal (S1S1 , S2S2, S3S3, S4S4, S5S5, sese) of the matrix, i.e., segments S1S2, S2S3, S3S4, S4S5, S5S6 in FIG. 4. Alternatively, the segment pairs represented in the second set of segment pairs 435, is represented in matrix 400 directly below the diagonal of the matrix, i.e., segments S2S1, S3S2, S4S3, S5S4, S6S5 in FIG. 4.

[0091] In the illustrated embodiment, the second set of concatenated segments is formed by super-diagonal elements (segment pairs) of the upper- triangular matrix. Alternatively, by super-diagonal elements of the lower- triangular matrix.

[0092] The value of n may be determined to be greater than or equal to 4, such that n > 4. The value of n may then be determined according to the following:

[0093] The maximum size Koof a segment may then be determined by KQ= J . However, the maximum size of a segment has to be a positive integer. Therefore, the least integer function is used such that Ko= ^]-

[0094] Consequently, the maximum size Koof a segment may be determined by dividing the least integer function of the square root of the size of the data with two, using the least integer function, such that Ko= [^1. As an example for understanding how these calculations may be carried out, the size, G, of the data may be e.g., 1000 MB. This value of the size of the data is only one of many possible values and should in this context only be seen as an example to further clarify calculations.

[0095] Komay then be calculated as follows:

[0096] K =r[Viooo]i 0 2 I

[0097] _ [31.6]

[0098] = 16

[0099] The maximum size, Ko, of a segment in the example above is therefore 16 MB.

[0100] Knowing the maximum size of a segment enables further calculations. The maximum size of a segment may be such that all segments have the same size. However, Komay not divide G without leaving a remainder. In that case, the size of the n-th segment may be determined as a remainder of a division of G by Ko. To determine the value of n, accounting for the remainder, the least integer function may be employed when performing the division of G by Ko.

[0101] Therefore, the value of n may be determined by dividing the size of the data with the maximum size of a segment, using the least integer function, such that:

[0102] To build upon the example above, wherein the maximum segment size is 16 MB, n may be calculated as follows:

[0103] Therefore, in the example above, the value of n equals 63, such that the size of the set of n segments equal 63.

[0104] Similarly, the size, 6, of the n-th segment may be determined as the remainder of the division of G by Ko, such that <5 = 6 mod Ko.

[0105] Therefore, further building upon the example above, the size of the n- th segment could be calculated as follows: 1000 mod 16 = 8

[0106] The size of the n-th segment, 8, in the example above is therefore 8 MB.

[0107] The Euclidean Algorithm employs these principles, therefore, the Euclidean Algorithm may be used to calculate the size, 6, of the n-th segment. The number of segments of the size Komay be set to n0such that:

[0108] 6 represents the size of the n-th segment and the total number of segments (n) is n0+ 1.

[0109] Each of the concatenated segment pairs may be encrypted, wherein each pair is encrypted separately with distinct keys.

[0110] Encrypting each pair separately with distinct keys may provide multiple layers of protection. For instance, encryption using AES-256 may be applied to the concatenated segment pairs. Each pair may be encrypted separately with distinct keys, which further enables security and privacy aspects.

[0111] Moreover, encryption may enable compliance with strict data privacy regulations such as GDPR and NIS2, as it enables sensitive data being handled with the highest level of security.

[0112] The method according to some embodiments may further comprise erasure coding each of the concatenated segment pairs, using Reed- Solomon parameters, wherein the erasure coding comprises generating erasure pieces from each of the concatenated segment pairs.

[0113] Erasure coding may refer to the concept of adding redundancy to data for fault tolerance. Erasure coding offers a different kind of redundancy, compared to traditional replication, wherein full copies of data segments are made. With erasure coding, only a fraction of the data may be stored in redundant form, while still enabling the system to recover from data loss. Erasure coding splits the data into smaller fragments and generates additional parity fragments. If some of the fragments are lost or corrupted, the original data can still be reconstructed using the remaining fragments. Erasure coding may therefore offer high fault tolerance with low storage overhead. Reed-Solomon erasure coding may be a specific and highly effective technique based on algebraic principles. Reed-Solomon erasure coding divides data into d data fragments and generates p parity fragments, ensuring that the original data can be recovered from any d fragments out of the total t fragments, where t = d + p. Each segment pair may be erasure coded, for example, with Reed-Solomon parameters (t, d), meaning the segment pair may be divided into d data fragments, and p additional parity fragments are generated. The d data fragments and p parity fragments together make up the t erasure pieces. In this example, a loss of up to p erasure pieces may be tolerated while still allowing recovery of the original data using any d of the total t erasure pieces.

[0114] Reed-Solomon codes may be highly resilient, as they can recover data even when multiple fragments are lost. Such coding process may be both powerful and flexible enough to handle data loss, enabling data durability and integrity with low overhead.

[0115] The distribution of the set of concatenated segment pairs for storing to nodes in a decentralized storage network may comprise distributing the erasure pieces.

[0116] Therefore, by distributing the erasure pieces, the set of concatenated segment pairs for storing are distributed in erasure coded form. The step of distributing the set of concatenated segment pairs for storing to nodes in a decentralized storage network may therefore be performed by distributing the erasure pieces. The erasure pieces may be distributed e.g., across multiple storage locations, for example nodes such as servers or data centres. This distribution may further enhance e.g., data durability and fault tolerance. Even if some of the storage locations experience failures or data corruption, original data may be reconstructed from the available fragments. The distribution may not only protect against hardware failures, but may also safeguard against localized data loss, network outages, or other disruptions, thereby improving the overall reliability and resilience of the storage.

[0117] Further, appropriate nodes for storing in the decentralized storage network may be selected, wherein the set of appropriate nodes for storing are appropriate for storing the set of concatenated segment pairs for storing.

[0118] Additionally, choosing nodes based on e.g., geographic location may enable compliance with data sovereignty laws, while selecting secure nodes may enhance data protection. In some cases, it may be necessary to store data on nodes located within specific jurisdictions to comply with data privacy regulations (e.g., GDPR, NIS2, American Data Privacy and Protection Act (ADPPA), HIPAA, Digital Personal Data Protection Act (DPDP) ). By selecting nodes in the appropriate geographic regions, compliance with legal requirements may be enabled. Selecting a set of appropriate nodes for storing in the decentralized storage network may therefore maximize e.g., performance, reliability, and compliance.

[0119] A subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs may be distributed to nodes in the decentralized storage network that are distinct from the nodes in the set of appropriate nodes for storing, wherein the number of erasure pieces in the subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs is less than the number of erasure pieces required for recovery of a segment in the set of n segments.

[0120] The subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs may e.g., be complemented by additional erasure pieces such that recovery of a segment in the set of n segments can be performed, wherein the additional erasure pieces may be stored on a node in the set of appropriate nodes for storing in the decentralized storage network.

[0121] Put differently, specific erasure pieces may be stored on nodes that e.g., may be outside of a specific jurisdiction or geographic location, in such a way that recovery of a segment in the set of n segments cannot be performed by only accessing the specific erasure pieces. The recovery of the segment will be dependent on erasure pieces stored on nodes that are e.g., within the specific jurisdiction or geographic location. This may enable compliance with data privacy regulations (e.g., GDPR, NIS2, American Data Privacy and Protection Act (ADPPA), HIPAA, Digital Personal Data Protection Act (DPDP)) even though nodes outside of a specific jurisdiction or geographic location are used.

[0122] Therefore, by distributing a subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs, wherein the number of erasure pieces in the subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs is less than the number of erasure pieces required for recovery of a segment in the set of n segments, additional redundancy may be achieved.

[0123] As stated before, redundancy may improve data availability. In distributed systems, having redundant copies of data across multiple nodes enables requests being fulfilled by whichever server or storage unit is available, rather than relying on fewer points of access. This may not only reduce the risk of bottlenecks but may also enhance fault tolerance, enabling operation even if certain nodes become unavailable due to failures or maintenance. Redundancy also allows for quicker access to data, as multiple sources can respond to user requests, improving overall response times and ensuring seamless operations, particularly during periods of high demand or network congestion. By distributing data across diverse nodes, redundancy further strengthens resilience and reliability.

[0124] As stated before, specific erasure pieces may be stored on nodes that e.g., may be outside of a specific jurisdiction or geographic location, in such a way that recovery of a segment in the set of n segments cannot be performed by only accessing the specific erasure pieces. The recovery of the segment will be dependent on erasure pieces stored on nodes that are e.g., within the specific jurisdiction or geographic location. This may enable compliance with data privacy regulations (e.g., GDPR, NIS2, American Data Privacy and Protection Act (ADPPA), HIPAA, Digital Personal Data Protection Act (DPDP)) even though nodes outside of a specific jurisdiction or geographic location are used.

[0125] For example, in order to comply e.g., with cross-border transfer rules mandated by GDPR, but still make use of a decentralized storage network comprising nodes outside of the European Union, the set of appropriate nodes for storing may be nodes that are located within the European Union, and nodes in the decentralized storage network that are distinct from the nodes in the set of appropriate nodes for storing may be located outside of the European Union. As stated above, each segment pair may be erasure coded, for example, with Reed-Solomon parameters (t, d), such that the segment pair is divided into d data fragments, and p additional parity fragments are generated. A segment pair may then be recovered using any d of the total t erasure pieces. In this example, a maximum of d - 1 erasure pieces would be stored on nodes that are distinct from the nodes in the set of appropriate nodes for storing, i.e. , nodes outside of the European Union.

[0126] To further exemplify, each segment pair may be erasure coded, for example, with Reed-Solomon parameters (120, 40), meaning the data is divided into 40 data fragments, and 80 additional parity fragments are generated. The 40 data fragments and 80 parity fragments together make up the 120 erasure pieces. In this example, a loss of up to 80 erasure pieces may be tolerated while still allowing recovery of the original data using any 40 of the total 120 erasure pieces. In this example, a maximum of 39 erasure pieces would be stored on nodes that are distinct from the nodes in the set of appropriate nodes for storing, i.e. , nodes outside of the European Union.

[0127] The erasure pieces selected for distribution among nodes outside of the European Union may for example be erasure pieces generated from the at least one additional set of concatenated segment pairs. The erasure pieces selected for distribution among nodes outside of the European Union would then be a subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs. Consequently, in this example, the number of erasure pieces in the subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs is less than the number of erasure pieces required for recovery of a segment in the set of n segments.

[0128] As an exemplary embodiment, as illustrated in fig. 5, erasure pieces corresponding to the first and second set of concatenated segment pairs (n+k-1 segments) may only be stored on nodes within the European Union to comply with GDPR or the nodes that fall under specific geographical jurisdiction to comply with the corresponding data protection regulation.

[0129] To distribute the data outside the specific geographical jurisdiction, e.g. the European Union, and to comply with the corresponding data protection law, the following principles may be applied:

[0130] Concatenated segments may be chosen from the set of concatenated segments present in a first row of the matrix that are left after selecting the concatenated segments corresponding to the first and second sets of concatenated segments.

[0131] Concatenated segments may be chosen from the set of concatenated segments present in the last column of the matrix without any repetition that is left after selecting the concatenated segments corresponding to the first and second sets of concatenated segments.

[0132] For a file / data set with n-segments there are n-3 such concatenated segments in the first row and n-4 such concatenated segments in the last column, as follows:

[0133] Row-elements = {s<i ,3), ... ,S(i ,n-k),S(i ,n-k+2), ... ,S(i ,n)} = (n-3) elements Column-elements = {S(2,n), ... ,S(k-i ,n),S(k+i ,n), ... ,S(n-2,n)} = (n-4 elements.

[0134] A new parameter n may be defined such that

[0135] Any n-concacenated segments out of the (n-3) concatenated segments 520 in the first row may be chosen, and another n-concacenated segments out of the (n-4) concatenated segments 525 in the last column of the matrix may be chosen.

[0136] In total, there are 2n concatenated segments which can be referred to as a third set of concatenated segments. These 2n concatenated segments may undergo encryption followed by Reed-Solomon coding with parameters (t, d). For each of the 2n concatenated segments, a maximum of (d-1) erasure pieces are distributed among the nodes that lie outside of the specific geographical jurisdiction, i.e. for instance non-Ell nodes. A minimum of (t- d+1) erasure pieces of each of the 2n concatenated segments are stored on the nodes that lie within the specific geographical jurisdiction (e.g. Ell nodes).

[0137] For n=7, then n=2. The number of row elements is 4 and the number of column elements is 3. There are then 4C2 different ways of selecting the concatenated segments from the row elements, and 3C2 different ways of selecting the concatenated segments from the column elements. In general, for any given value of n, there are (n - 3)Cn different ways of choosing n- concatenated segments from the mentioned row elements and there are (n - 4)Cn different ways of choosing n-concatenated segments from the mentioned column elements.

[0138] The above generalization holds for datasets or files with n>6. For files or datasets with n=4 and n=5, the erasure pieces may be stored based on the proposed protocol only among the nodes that lies in the specific geographical jurisdiction (e.g. in Ell nodes).

[0139] The total number of concatenated segments that may be needed to be stored for a given dataset with n segments such that n>6 is given by:

[0140] The method 100 as illustrated in fig. 1 may further comprise a step of determining a third set of concatenated segments according to any one of the embodiments discussed above.

[0141] Under a normal scenario where there is no attack it may only be needed the concatenated elements of the first set which consists of k elements to successfully reconstruct the file or dataset.

[0142] Data to be stored may be labelled into different categories such as:

[0143] 1 ) Public data, 2) Semi-confidential data,

[0144] 3) Confidential data.

[0145] These choices may only be known to the user and not to a node provider.

[0146] If the user classifies a specific dataset to be public, then nodes may be chosen irrespective of the geographical location while complying with the proposed content distribution and the local data protection law. If the user classifies a specific dataset to be semi-confidential or confidential, then the protocol may be used to choose only the (n+k-1) nodes that lies within the specific geographical jurisdiction. That would give flexibility to the user to store sensitive data using the decentralized architecture while complying with the local data protection law.

[0147] The inventive concept has mainly been described with reference to a limited number of examples. However, as is readily appreciated by a person skilled in the art, other examples than the ones disclosed above are equally possible within the scope of the inventive concept, as defined by the appended claims.

Claims

1. 26CLAIMS1 . A computer-implemented content distribution method (100) for storing data in a decentralized storage, the method comprising: dividing (105) the data into a set of n segments, wherein each segment has a maximum size Kobeing a positive integer, and wherein n is determined dependent upon a size, G, of the data, and Kois determined by dividing the least integer function of the square root of the size G of the data with 2, using the least integer function; determining (110) a first set of concatenated segment pairs, wherein the first set of concatenated segment pairs represent a subset of the Cartesian square of the set of n segments, and wherein one instance of each of the unique segments in the set of n segments is comprised in the first set of concatenated segments pairs, determining (115) a parameter, k, such that the number of pairs in the first set of concatenated segment pairs is equal to k, and wherein k is equal to n / 2 if n is even, and k is equal to ((n + l) / 2) if n is odd, such that one segment in the set of n segments is repeated in the first set of concatenated segments pairs if n is odd, and the first set of segment pairs does not comprise more segments than one instance of each of the unique segments of the set of n segments if n is even; determining (120) a second set of concatenated segment pairs, wherein the number of pairs in the second set of concatenated segment pairs is equal to n - 1, and wherein the second set of concatenated segment pairs represent a subset of a Cartesian square of the set of n segments, wherein the Cartesian square of the set n, denoted by n x n, is defined as the set of all ordered pairs (i,j) where i e n and j e n, and a subset of this Cartesian square is a set of ordered pairs, wherein each pair (i,j) cnx n; wherein the segments in each concatenated segment pair in the second set of concatenated segment pairs are selected such that an index i in the ordered set n of one segment is less than an index j in the ordered set n of the other segment, such that j = i + 1 and {i,j | i e {1, 2, ... , n - 1}}, determining (125) a set of concatenated segment pairs for storing, wherein the set of concatenated segment pairs for storing comprises the first set of concatenated segment pairs and the second set of concatenated segment pairs,storing (130) each pair, in the set of concatenated segment pairs for storing, wherein the storing comprises distributing the set of concatenated segment pairs for storing to nodes in a decentralized storage network.

2. The method according to claim 1 , wherein the segments in each concatenated segment pair are selected such that an index in the ordered set n of one segment in the pair is distinct from an index in the ordered set n of the other segment in the pair.

3. The method according to claim 1 or 2, wherein the second set of concatenated segment pairs comprises at least one instance of each of the unique segments of the set of n segments.

4. The method according to any preceding claim, wherein the segments in each concatenated segment pair in the first set of concatenated segment pairs are selected such that: if n is even, n is set to be equal to 2m, and the index i in the ordered set n of one segment is less than the index j in the ordered set n of the other segment, such that j = n — k + i and {i,j | i e {1, 2, ... , k}} where k = m = n / 2. if n is odd, n is set to be equal to 2m0+ 1, and the index i in the ordered set n of one segment is less than the index j in the ordered set n of the other segment, such that j = n - k + i and {i, j | i e {1, 2, ... , k = mQ+ 1}}.

5. The method according to any preceding claim, wherein n is greater than or equal to 4, such that n > 4.

6. The method according to any preceding claim, wherein the maximum size Koof a segment is determined by dividing the least integer function of the square root of the size of the data with two, using the least integer function, such that7. The method according to any preceding claim, wherein n is determined by dividing the size of the data with the maximum size of a segment, using the least integer function, such that n = — 1.

8. The method according to any preceding claim, wherein the size, 5, of the n-th segment is determined as the remainder of the division of G by Ko, such that 5= G mod Ko.

9. The method according to any preceding claim, further comprising: determining at least one additional set of concatenated segment pairs, wherein the at least one additional set of concatenated segment pairs represent a subset of the Cartesian square of the set of n segments, and wherein the at least one additional set of concatenated segment pairs comprises concatenated segment pairs that are distinct from the concatenated segment pairs comprised in the set of concatenated segment pairs for storing.

10. The method according to any preceding claim, further comprising: encrypting each of the concatenated segment pairs, wherein each pair is encrypted separately with distinct keys.11 . The method according to any preceding claim, further comprising: erasure coding each of the concatenated segment pairs, using Reed- Solomon parameters, wherein the erasure coding comprises generating erasure pieces from each of the concatenated segment pairs.

12. The method according to claim 11 , wherein the distribution of the set of concatenated segment pairs for storing to nodes in a decentralized storage network comprises distributing the erasure pieces.

13. The method according to any preceding claim, further comprising: selecting a set of appropriate nodes for storing in the decentralized storage network, wherein the set of appropriate nodes for storing are appropriate for storing the set of concatenated segment pairs for storing.

14. The method according to claims 9, 11 and 13, further comprising: distributing a subset of the erasure pieces generated from the at least one additional set of concatenated segment pairs to nodes in the decentralized storage network that are distinct from the nodes in the set of appropriate nodes for storing, wherein the number of erasure pieces in the subset of the erasure pieces generated from the at least one additional set of29 concatenated segment pairs is less than the number of erasure pieces required for recovery of a segment in the set of n segments.