Computer-based methods and systems for acquiring or using SVD-based assets on a blockchain.
SVD-based digital assets address inefficiencies in blockchain tokenization by enhancing security and control, enabling efficient storage and verification of tokenized assets, and allowing dynamic updates.
Patent Information
- Authority / Receiving Office
- JP · JP
- Patent Type
- Applications
- Current Assignee / Owner
- NCHAIN LICENSING AG
- Filing Date
- 2024-03-12
- Publication Date
- 2026-04-10
AI Technical Summary
Existing blockchain-based tokenization systems face challenges in efficiently storing and processing asset-related data, preventing theft and fraudulent activity, ensuring data retention, and verifying the legality and ownership of tokenized assets.
Utilizing Singular Value Decomposition (SVD) to generate SVD-based digital assets, which are stored or referenced on a blockchain ledger, enabling secure and efficient tokenization, ownership verification, and data management through hierarchical properties and cryptographic techniques.
SVD-based assets enhance security, facilitate efficient storage and transfer, enable ownership verification, and allow for dynamic asset updates, thereby improving the control and integrity of tokenized assets on the blockchain.
Smart Images

Figure 2026510873000001_ABST
Abstract
Description
[Technical Field]
[0001] This disclosure relates to improved techniques and systems for handling digital assets, i.e., digitized assets, more specifically, tokenized assets that are stored, transferred, accessed, or otherwise processed via a blockchain. Some embodiments provide novel techniques for generating assets for subsequent tokenization, while other embodiments provide novel techniques for using, controlling, transferring, verifying, and / or securing blockchain-based tokens and / or their associated assets.
[0002] The benefits provided by the embodiments disclosed herein include, but are not limited to, improved security and control of tokenized assets, improved authentication and verification of ownership, improved data persistence and digital retention, digital rights management (DRM) solutions, improved secret partitioning and thresholding schemes to ensure the privacy and security of data being transferred between parties, and improved efficiency of data storage on the blockchain ledger. [Background technology]
[0003] It is easy to understand that the inherent characteristics of blockchain technology give rise to advantages that extend far beyond simply providing a means of communication for the transfer of currency-related assets. Over the past few years, there has been growing interest in the use of blockchain as a platform on which various technical applications can be implemented. Blockchain-based solutions have been devised to store, secure, share, transfer, and authenticate diverse types of data. Tokenization schemes offer one such method, in which several physical, virtual, or digital assets are represented through tokens stored in a ledger.
[0004] However, while tokenization offers advantages, it also presents challenges. These include, but are not limited to, how to efficiently store and process asset-related data on-chain; how to prevent the theft, theft, or fraudulent activity of tokenized assets; how to ensure data retention when on-chain tokens become unassociated from the off-chain assets they represent; and how to verify the legality and ownership of tokenized assets.
[0005] Embodiments of this disclosure provide technical configurations that solve or mitigate at least these problems. [Prior art documents] [Patent Documents]
[0006] [Patent Document 1] WO2017 / 145016 [Patent Document 2] PCT / EP2023 / 053998 [Patent Document 3] PCT / EP2023 / 053862 [Non-patent literature]
[0007] [Non-Patent Document 1] Bitcoin White Paper, "Bitcoin: a peer-to-peer electronic cash system," 2008, Satoshi Nakamoto [Overview of the Initiative] [Problems that the invention aims to solve]
[0008] Embodiments of this disclosure comprise methods, systems, and apparatus for generating, transferring, using, storing, or otherwise processing at least one SVD-based asset, which may be referred to as an SVD-based blockchain asset. [Means for solving the problem]
[0009] One embodiment may involve the use of singular value decomposition (SVD) to generate one or more SVD-based digital assets. An SVD-based digital asset may be used to acquire at least one SVD-based blockchain asset. An SVD-based blockchain asset may be an SVD-based digital asset that is stored in, related to, or referenced from a blockchain ledger, or stored in a transaction formed according to a blockchain protocol. Additionally or alternatively, an SVD-based blockchain asset may comprise or be associated with logical code relating to the generation or use of blockchain-based assets / tokens, such as a smart contract.
[0010] SVD-based digital assets may be used by, or configured for use by, any suitable blockchain-related protocol, scheme, or method. In some cases, the blockchain-related protocol / method may be a tokenization protocol (sometimes called a “tokenization scheme”). It may be a method / protocol for generating non-fungible tokens (NFTs). The blockchain-related protocol / method / scheme may be an application layer protocol / method in that it is separate from the blockchain protocol / method executed by nodes on the blockchain network to implement the blockchain and its associated network.
[0011] A blockchain protocol / method / system may generate tokens that represent (blockchain) assets, such as SVD-based digital assets. Tokens may be stored in blocks on the blockchain ledger. Tokens may also be stored in transactions within blocks on the blockchain ledger. The blockchain ledger is sometimes simply referred to as the "blockchain" for ease of reference.
[0012] One, some, or all of the SVD-based digital assets may be stored on the blockchain ledger. Alternatively, one, some, or all of the SVD-based digital assets may be stored off-chain (i.e., "off-chain") in one or more storage resources.
[0013] Preferred embodiments of this disclosure may provide a technical solution comprising at least one or more of the following: • Use SVD to generate at least one SVD-based digital asset. To process at least one original (i.e., existing) digital asset and generate at least one SVD-based digital asset, by using SVD to generate at least one SVD-based digital asset, • To generate at least one SVD-based digital asset derived from at least one artificially constructed SVD, • Encrypt at least one portion of the SVD-based digital assets.
[0014] This disclosure may also provide solutions for acquiring or providing SVD-based blockchain assets derived from or associated with one or more SVD-based digital assets.
[0015] Furthermore, one, some, or all embodiments may leverage the hierarchical properties of SVD to benefit from blockchain-based solutions in at least the following ways: • Minimizing the on-chain storage requirements for blockchain-based tokenization solutions. • To enable the creation of multiple, as many versions as possible of the base asset. • Enables the creation and control of assets at different levels of fidelity / quality. • To enable the content and / or attributes of an asset to be updated over time (for example, to reflect changes in ownership, or other criteria such as the number of accesses to the asset or the passage of a certain period of time), • To enable the generation of a large number (set) of assets from a single base asset, and • To enable the generation of new assets from an existing asset set.
[0016] SVD is known in the art for numerous applications. For example, SVD forms the basis for dimensionality reduction for machine learning in principal component analysis and is used in art fields such as signal processing, image processing, and facial recognition. However, embodiments of the present disclosure apply SVD to the advantages in a novel way to provide improved processing of blockchain-based assets. Such embodiments may modify, generate, and process (digital) assets that will be stored or represented on a blockchain.
[0017] According to one aspect of this disclosure, an embodiment uses an SVD to enable the division, transfer, and ownership of individual unique components of an asset.
[0018] In another embodiment, the embodiment utilizes the hierarchical properties of SVD to create a new form of generated (digital) asset.
[0019] In another embodiment, the embodiment provides a tokenized asset that enables new functionality for existing tokenization solutions, such as the ability to update the content of the (digital) asset or to watermark it.
[0020] According to one or more embodiments disclosed herein, a method and system are provided in which an SVD is used to extract one or more features from at least one existing digital asset, for example, a digital image. One or more modifications may then be made to the extracted features to generate a new version of the original features. The modifications may be small and simple, but may result in several types of modifications. The SVD can then be rolled back to provide a modified SVD-based digital asset.
[0021] Conveniently, this allows for the creation of derivative works of the original digital asset that feature embedded modifications. As will be discussed below, these modifications may be carried out in various ways for various purposes. From one perspective, this may be described as “watermarking” the original, where verifiable markers are embedded within it, allowing its history, authenticity, or ownership to be verified.
[0022] In other embodiments, SVD may be used to provide an enhanced security technique for transferring digital assets between parties. In some cases, the digital asset may be, or comprise, a blockchain-based token, though not necessarily so. In other cases, the digital asset may be used for generating blockchain-based tokens, but again, this disclosure is not limited to this, and the SVD-based cryptographic techniques described herein may be used for any type of digital asset when it is required that it be stored, accessed, or transmitted in a controlled and secure manner.
[0023] To aid in understanding the embodiments of this disclosure and to illustrate how such embodiments may be effective, the accompanying drawings are referenced merely as examples. [Brief explanation of the drawing]
[0024] [Figure 1] This is a schematic block diagram of a system for implementing blockchain technology. [Figure 2] This diagram schematically illustrates some examples of transactions that can be recorded in a blockchain. [Figure 3A] This is a schematic block diagram of the client application. [Figure 3B] Figure 3A shows a schematic mockup of an exemplary user interface that may be presented by the client application. [Figure 4] This is a schematic block diagram of several node software programs for processing transactions. [Figure 5] This figure shows an example of matrix addition for illustrative purposes. [Figure 6a] This figure shows an example of matrix multiplication where the calculation of term c22 is emphasized. [Figure 6b] This figure shows matrix multiplication in reverse order, as shown in Figure 6a. [Figure 7] This figure shows the singular value decomposition (SVD) of matrix A into the product of three matrices U, Σ, and VT for illustrative purposes. [Figure 8] This figure shows the visualization of the rank r approximation of matrix A. [Figure 9] This figure shows the relationship between economic SVD and matrix approximation using truncation. [Figure 10] This figure shows the SVD expansion of an image to illustrate how an image can be approximated by retaining the first r terms in the expansion. [Figure 11] This figure shows three examples of new NFT A' generated according to an exemplary embodiment by randomly correcting singular values in the SVD of the original image A. [Figure 12] This figure illustrates one embodiment that enables the separation of individual components of a digital entity, and in which the series sum expansion of an SVD-based digital entity is separated into components that are controlled, stored, or processed separately. [Figure 13]This figure shows a high-level overview of embodiments of this disclosure, which may employ different techniques to generate SVD-based digital assets subsequently used in blockchain-based tokenization schemes, such as non-fungible tokens (NFTs), but are not limited to. [Modes for carrying out the invention]
[0025] Next, some background information for clarifying the technical context is provided without limiting the embodiments disclosed herein.
[0026] matrix A matrix is a two-dimensional rectangular array of elements arranged in rows and columns. An m×n matrix is a matrix with m rows and n columns. (Uppercase letter and its element 'a') ij Let A be represented using the formula, where i and j indicate that its elements are in the i-th column and j-th row of the matrix. In general, an m × n matrix A can be written as follows:
[0027]
number
[0028] Matrices are used to represent linear transformations or linear maps that can map a vector u ∈ U in one vector space onto another vector v ∈ V in another vector space. The matrix action on such a vector can be written as Au = v.
[0029] In general, an m×n matrix maps n-dimensional vectors onto m-dimensional vectors. This can be written as the following determinant, also known as a right-aligned map.
[0030]
number
[0031] Matrix addition Assuming they have the same dimension, the element-wise sum of each entry in the resulting matrix C = A + B is c. ij =a ij +b ij By calculating [a certain value], two matrices A and B can be added together. This can be written as shown in Figure 5, which illustrates an example of matrix addition for illustrative purposes.
[0032] Matrix multiplication Two matrices can be multiplied if they share a common dimension. Given an m×k matrix A and a k×n matrix B, an m×n matrix product C = AB can be found. The entries in C are defined as follows:
[0033]
number
[0034] As an example, consider a 4x3 matrix A and a 3x4 matrix B. Since both A and B have a dimension equal to 3, we can multiply these matrices to generate a 4x4 matrix product C = AB. The resulting matrix C and its elements are shown in Figure 6a, and term c 22 The calculation is emphasized.
[0035] Note that in this case, A and B share a second dimension equal to 4, so we can also generate a 3x3 product matrix C' by multiplying them in the reverse order. This is shown in Figure 6b, which shows the matrix multiplication in reverse order as in Figure 6a.
[0036] In this example, we find that C ≠ C', so matrix multiplication is not commutative. In other words, since AB ≠ BA in general, the order of operations is important in matrix multiplication.
[0037] Eigenvalues and eigenvectors A linear transformation represented by a given matrix A, i.e., u∈U→v∈V, is generally a combination of rotation and scaling of the input vector u. Rotation changes the direction of u, and scaling changes the magnitude of u, and together they generate a new vector v.
[0038] However, for a given transformation A, there may be special vectors called eigenvectors that cannot be rotated by A. These vectors are simply scaled by coefficients λ called eigenvalues. The eigenvectors and their corresponding eigenvalues for a given transformation matrix A are solutions to the characteristic equation, and are written as follows: Av=λv
[0039] Since the vector v is the same on both sides of the characteristic equation, matrix A must be a square (m × m) matrix. In other words, eigenvectors and eigenvalues can only be found for square matrices. Note that if λ=0 is an eigenvalue of A, then A is an irreversible matrix.
[0040] Singular Value Decomposition (SVD) The eigenvectors of a linear transformation can be used to understand and examine the properties of the transformation through a process called decomposition. However, many of the matrices we wish to examine are actually rectangular (m≠n). Since eigenvalues and eigenvectors can only be found for square matrices, the standard decomposition method cannot be used to examine such transformations.
[0041] Singular value decomposition (SVD) is an analogue of eigenvalue decomposition for rectangular matrices. The SVD of matrix A is also given by SVD(A) = UΣV T Three new matrices U, Σ, and V are written as =A. T It can be understood as its factorization into a product of . To illustrate this, consider three matrices U, Σ, V T Figure 7 shows the SVD of matrix A into the product of the two matrix numbers.
[0042] As shown in the unfolded form in Figure 7, the SVD of an m×n matrix A is the decomposition of matrix A into an m×m matrix U, an m×n matrix Σ, and an n×n matrix V T This is a decomposition of matrix A into To assume that A has exactly n singular values, generally, A has r ≤ min(m,n) singular values, where r is the rank of matrix A. Next, each of these four matrices will be defined and their interpretations will be explained.
[0043] Data matrix (A) SVD is usually used in data science to decompose a matrix A with real data, which is usually called a data matrix. Usually, this data matrix represents a dataset with a large number of dimensions such that m ≫ n.
[0044] For example, in a face recognition application, A may well encode a set of face images, whereby each column of A is an ordered list of pixels that make up the image. If each image consists of one million pixels and the dataset contains only 1000 faces, the shape of A is 10 9 ×10 3 with m ≫ n. Recognizing that each column of A represents a high-dimensional entry in our dataset, A can be written as a matrix of n column vectors A1,..., A n of.
[0045]
Number
[0046] The goal of SVD is to reveal the main features of the data contained in A and to represent this data matrix as a product of matrices that can be used to approximate A with minimal information loss.
[0047] Singular vectors and singular values Product matrices U, Σ, V TBefore defining the singular vectors and singular values of a matrix, we must first define what they mean. The singular vectors of a rectangular matrix are analogous to the eigenvectors of a square matrix. In effect, the singular vectors of a rectangular matrix A are defined as the eigenvectors of the correlation matrix of A.
[0048] The correlation matrix of A is one of two ways, namely, AA T Or A T It is a square matrix that can be written as any of A. Since A is an m×n matrix, AA T The dimension becomes m × m and A T Recall that the dimension of A is n × n. Based on these correlation matrices, we can define the set of left singular vectors {u} and the set of right singular vectors {v} of matrix A as vectors to solve the respective eigenvector equations. AA T u = λu A T Av=λv
[0049] Note that the dimension of a left singular vector is m×1 and the dimension of a right singular vector is n×1. We interpret the left singular vectors of A as a basis for the column space of A, which are sometimes called "eigenfaces" of A, given a data matrix where each column of A is a face image. In other words, the columns of A can be represented as a linear combination of left singular vectors {u}. Similarly, we interpret the right singular vectors of A as a basis for the row space of A.
[0050] The set of singular values {σ} for A is simply σ i =√λ i Defined as, however, λ i is the i-th positive eigenvalue of the eigenvector equation above. The absolute values of these singular values correspond to the relative "importance" of the corresponding singular vectors. In other words, if σ1 is the largest singular value of A, then AA T u1 = λu1 and A T Solving Av1=λv1, the corresponding singular vectors u1 and v1 have the greatest influence when describing the dataset in A.
[0051] Singular vector matrix (U,V T ) SVD is the product of the data matrices A = UΣV T It is decomposed into the matrices on the left and right of this product, namely U and V. T This encodes the singular vectors of A. The m×m matrix U of the left singular vectors is located to the left of the SVD product.
[0052] This specification uses U i The sequences of U are shown for all i∈[1,m]. These sequences are identical to the left singular vectors of A, as shown below.
[0053]
number
[0054] Each column U i σ1>σ2>...>σ m The corresponding singular value σ i They are arranged in descending order according to the absolute value of . In other words, the columns of U are simply left singular vectors of A, ordered according to their relative importance in describing dataset A.
[0055] On the right side of the SVD product is an n×n matrix V of the transposed right singular vectors. T It is located in the i-th row.
[0056]
number
[0057] This is the i-th right singular vector v i transpose
[0058]
number
[0059] This corresponds to the following. Note that, as shown below, the transposed right singular vectors are arranged in descending order of importance according to the absolute values of their corresponding singular values.
[0060]
number
[0061] Both matrices U and V are unitary matrices, and as a result, UU T =U T U=I m×m and VV T =V T V=I n×n And, however, I l×l This is the l-dimensional identity matrix.
[0062] Singular value matrix (Σ) The matrix at the center of the SVD product is a matrix Σ containing the singular values of A. This matrix is diagonal and sparse, and its elements are the positive singular values {σ} located on the main diagonal. i That's all.
[0063]
number
[0064] U and V T Similarly, the elements of Σ are ordered hierarchically. Singular values are σ1≧σ2≧...≧σ n The elements are arranged diagonally in descending order of absolute value such that ≥ 0. Since Σ has dimension m × n, it contains only the first n singular values along this diagonal, and everything below them is 0. As previously mentioned, this matrix actually contains r ≤ min(m,n) non-zero diagonal entries, where r is the rank of A.
[0065] matrix expansion Finding the SVD of a data matrix A is also possible by expanding A into a series of components.
[0066]
number
[0067] This makes it possible to write it as a sum of the following. The expansion of A can be written with respect to these matrices, assuming n non-zero singular values, as follows:
[0068]
number
[0069] Each term in the addition is a left singular vector U i and the corresponding right singular vector
[0070]
number
[0071] Cross product with
[0072]
number
[0073] This is a rank-1 matrix formed from these elements. Note that the expansion of A as the sum of these rank-1 matrices is accurate and does not lose any information about A.
[0074] matrix approximation The expansion of A as a sum of rank 1 component matrices can be used to approximate the original matrix A by removing the "least important" terms of the expansion.
[0075]
number
[0076] or
[0077]
number
[0078] This demonstrates such an approximation.
[0079] SVD arranges singular values and vectors in order of decreasing influence on the original matrix A, thus preserving the ordering of the matrix expansion of A. This means that the first terms of the matrix expansion (i=1, 2, ...) have the greatest influence in describing the dataset in A, and the last terms (i=..., n-1, n) have the least influence.
[0080] Using this fact, we define the rank r approximation of A (i.e., truncation) as a matrix expansion of A that contains only the first r terms, as shown in Figure 8, and Figure 8 visualizes the rank r approximation of matrix A.
[0081] For readability, this specification uses the rank r approximation for A.
[0082]
number
[0083] This is shown as follows. In this approximation,
[0084]
number
[0085] ,
[0086]
number
[0087] These include the first r column of U and V, respectively.
[0088]
number
[0089] This represents the first r×r block of the Σ. The nr terms that are discarded from the expansion are called the residual of the approximation.
[0090] As is well known in the art, the Eckart-Young theorem states that the best rank r approximation of A is given by the rank r truncation SVD of A. Consequently, the SVD truncation method is widely used for dimensionality reduction of datasets. This allows a data matrix A encoding measurements in a large m-dimensional space to be projected into a lower r-dimensional subspace that captures the main features of the dataset with minimal loss. Because this lower-dimensional representation of A is generally computationally inefficient to work with, SVD forms the basis for dimensionality reduction techniques such as principal component analysis (PCA), which is used to prepare large datasets for use in machine learning applications.
[0091] Economical SVD An m×n data matrix A with m>n has at most n linearly independent columns. This means that to accurately encode A, only at most the first n columns of U in SVD(A) are needed. The remaining mn columns of U can be removed from the SVD without losing any information about the original dataset.
[0092]
number
[0093] Therefore, the remaining mn column
[0094]
number
[0095] This is shown by [the method].
[0096] Similarly, only the first n rows of the Σ contain any non-zero entries. This means that to reconstruct A from its SVD without loss of information,
[0097]
number
[0098] This means that only these first lines, as shown, are needed.
[0099] Using these facts, we can define economic SVD as follows:
[0100]
number
[0101] Figure 9 provides a diagram illustrating the relationship between economic SVD and matrix approximation by truncation.
[0102]
number
[0103] Please note that the economic SVD is accurate, as it means that...
[0104]
number
[0105] The relationship between standard SVD, economic SVD, and truncated SVD is schematically shown in Figure 9. Economic SVD
[0106]
number
[0107] However, it removes irrelevant information from a standard SVD without loss of information, but truncates the SVD.
[0108]
number
[0109] However, we understand that approximating A involves removing further information (columns and rows) from the SVD matrix, at the expense of introducing some errors.
[0110] Image compression Singular Value Decomposition (SVD) can be used as an image compression technique. This utilizes the hierarchy of terms in the series sum expansion of SVD, so that the first r terms in the expansion can be used to approximate the original image, and the remainder is discarded.
[0111] Consider an image represented as an m×n matrix A, where m is the height of the image in pixels and n is the width of the image in pixels. Taking the SVD of A is the usual product matrix U, Σ, V that can be truncated to approximate the original image. T Give.
[0112] The column U represents the dominant features in the original image and forms a basis for the (1 × m) pixel column of the original image A. Similarly, V T The rows form a basis for the (1 × n) pixel rows of the image. Scaled by the singular values in Σ, V T Each column in specifies a precise linear combination of columns in U, which can be used to reconstruct the corresponding original column of pixels in A.
[0113] Each consecutive column U i ,line
[0114]
number
[0115] , and singular value σ i Rank 1 matrix formed by
[0116]
number
[0117] The complete original image matrix A can be represented as the series sum of . In the context of image compression, these matrices
[0118]
number
[0119] Let us call these the "components" of the original matrix A. This should not be confused with the components referred to in principal component analysis in this technical field.
[0120] From these components, our previous notation
[0121]
number
[0122] Using this, C(A)=[A] r A rank r approximation [A] such that r Rank-r compression of A can be defined as follows: In other words, rank-r approximation is the sum of the first r components of the image, i.e., [A] r =A1+A2+...+A r Figure 10 provides an SVD expansion of the image to show how the image can be approximated by retaining the first r terms in the expansion.
[0123] [A] rThe Eckart-Young theorem states that is the best rank r approximation of the original matrix, but it should be noted that this is a lossy approximation. This means that SVD-based compression of an image can be interpreted as the best way to represent a lower-fidelity version of the original image using a lower r-dimensional basis, not that compressing the original image without loss is the best way.
[0124] Detailed description of exemplary embodiments of this disclosure With reference to the attached drawings, preferred embodiments and aspects of novel methods for creating, controlling, transferring, and securing tokenized assets via blockchain are disclosed below.
[0125] For convenience and ease of reference, non-fungible tokens (NFTs) and related schemes may occasionally be referred to below, as they provide context for one or more well-known and therefore easily understandable exemplary embodiments. However, this disclosure is not limited to these exemplary uses, and other tokenization schemes may be used in conjunction with the techniques disclosed herein.
[0126] The embodiments disclosed herein may provide novel design paradigms for digital tokens and token-based schemes that are based on or utilize Singular Value Decomposition (SVD). These embodiments can be combined in various ways to provide novel blockchain-based tokenization schemes depending on the specific implementation or use case.
[0127] Referring to Figure 13, a preferred embodiment involves the generation of an SVD-based digital asset. An SVD-based digital asset (SVD-DA) can be described as a digital asset generated using SVDs. There are various methods that can be used for this purpose and are outlined below (see Algorithms 1, 2, and 3). These can be considered a form of “generation” tokenization protocol.
[0128] In the first ("image-first") methods of algorithms 1 and 2, this is achieved by using SVD to process one or more existing digital assets (S1310). In the alternative ("SVD-first") method of algorithm 3, this is achieved by using SVD to artificially generate digital assets from a blank slate (S1320). Regardless of which of these two methods is used, the result is the generation of SVD-based digital assets (S1330). In other words, singular value decomposition is used in the creation of digital assets representing several physical, virtual, or digital entities / resources.
[0129] The selected tokenization scheme may then be used to generate tokens that comprise, are associated with, or represent an SVD-based digital asset (S1340). Referring particularly to Figures 1-4 and the following section titled “Exemplary System Overview”, the tokens may then be submitted to a node (104) of the blockchain network (106) as part of a blockchain transaction (152). The node (104) then performs its verification and mining functions, and if not rejected by the node, the transaction comprising the tokens is written to the blockchain (150) as part of a block (151). The tokens may be provided in the output of the transaction (203), for example, in a UTXO, and / or as metadata within the transaction (152).
[0130] The tokenization scheme can comprise any suitable protocol, which is typically selected according to the requirements of a given implementation. In some cases, the selected tokenization scheme may be an NFT protocol that enables the generation and processing of one or more NFTs. Therefore, an implementation using the disclosed embodiment in conjunction with an NFT protocol generates and processes SVD-based NFTs.
[0131] Structure of digital assets Embodiments of this disclosure provide solutions for representing, generating, and manipulating tokenized digital content (e.g., NFT images) using singular value decomposition. The exemplary embodiments provided herein provide a range of various ways in which this can be achieved. Two generalizations of possible methods can be described below, but are not limited to: 1. Image-prioritizing method Here, we start with an original digital entity (such as an image or digital artwork), take its SVD, modify the components of the SVD in several ways, and construct a new entity (or multiple entities) based on the original by multiplying the modified SVD matrices together. 2. SVD priority method Here, we begin by artificially constructing SVD elements that are not based on the original digital entity (e.g., a digital image), and then generate derivatives (e.g., an NFT image) by multiplying the SVD matrices together.
[0132] These general techniques can be applied to both individual digital assets or collections of digital assets. They are explained in more detail below.
[0133] 1. "Image-prioritizing" method Methods for generating SVD-based tokens from existing digital assets are described in the two subsequent algorithms in this section, with reference to the attached diagrams, particularly Figure 7. For illustrative purposes only, we use digital images as our initial digital assets, but this disclosure is not limited thereto. The terms “initial,” “original,” and “existing” may be used interchangeably herein.
[0134] Algorithm 1 uses a single original image as the starting point for the SVD operation. Many different versions of the new image can then be generated from this base asset.
[0135] Algorithm 2 uses the original set of images as a starting point for computation, from which a generator matrix capable of creating a wider range of new images can be derived.
[0136] Both algorithms may include a step of generating a data matrix A representing or based on an initial digital asset to be tokenized, so that the SVD matrix of A can then be obtained.
[0137] Algorithm 1: Generate an SVD-based asset from a single initial digital asset. In a preferred embodiment, an algorithm for generating an SVD-based digital asset based on a single initial image may comprise the following steps: 1. Represent the initial image as an m×n matrix A. 2. Obtain the SVD matrix. That is, U, Σ, V T ←SVD(A). 3. U', Σ', V T' ←M(U,Σ,V T Modify some of the elements of ). 4. Generate a new image from the new matrix. That is, A'←U'Σ'V T' .
[0138] The matrix dimensions m and n are the height and width of the initial image, measured in pixels. This means that step 1 can be considered a direct mapping of pixels from the original 2D image to the corresponding entries in A (spatially). For example, the value of the top-left pixel in the original image corresponds to entry a. 0,0 It is positioned, and the value of the bottom right pixel is a m,n It is placed in [location]. In examples using different types of initial digital assets other than images, other appropriate metrics and attributes may be used to map the initial assets to their data matrix A. Note that m=n is a valid choice for an m×n matrix. Therefore, the embodiments described herein are not limited to cases where m≠n.
[0139] The function M() used in step 3 is the three original SVD matrices U, Σ, V T This is a correction function that acts on (modifies) at least one of the three matrices. For the sake of simplicity, this step is always performed even if M has no effect on one or two of the three matrices. T We choose to write it as ). When at least one of the three matrices needs to be modified, for example, if U is not the modified matrix, then U'=U is possible.
[0140] For example, numerous examples of such functions can be devised, including modifications that incorporate arithmetic functions, Boolean operations, bitwise operations, and so on. The choice of modification function affects the resulting matrix. Referring to our earlier explanation in image compression, modifying each matrix has the following effects: • U - This matrix contains hierarchical features that form the basis for the columns of A. By modifying one of these features, the resulting matrix will also have different basic features in its columns. Modifying a dominant feature (e.g., U1 or U2) has a significant impact on the resulting image, which may cause it to lose its resemblance to the original. However, modifying a less dominant feature may allow the resulting image to maintain a degree of resemblance to the original, albeit with subtle differences, which may be more desirable. ·V T - Similarly, this matrix contains a hierarchical feature basis for the rows of A. Therefore, the same consideration for the columns of U is given for V T This applies to correcting the line. ·Σ - This matrix scales the dominance of row and column features present in the obtained image. Therefore, the modification of Σ to the diagonal elements is equivalent to the dominance of U in the column and V in the obtained image A'. T This changes the relative dominance of the row.
[0141] In some cases, different modification operations M() may be used to modify each matrix in the SVD. In other cases, the same modification operation may be used to modify different SVD matrices, but with the use of different operands for each. In other embodiments, the modification step (step 3) may involve the use of two or more modification functions.
[0142] An example of using this method to generate a new blockchain-based token is shown in Figure 11, which provides three examples of a new digital asset (image) A' generated by randomly modifying singular values in the SVD of the original asset (image) A. Each example applies a different degree of randomness to the original Σ matrix. In this way, random or pseudo-random modification operations can be used in which the modification of the SVD product matrix is affected by random or pseudo-random coefficients or values.
[0143] In this example, the modification function used simply applies random scaling to each singular value of the original Σ matrix. In each example, a uniform scaling (0.25, 0.5, and 1, respectively) is further applied to the randomness to demonstrate the different effects on the derived image in each case. In alternative embodiments, a non-uniform scaling of the randomness may be chosen. For example, this may be proportional to the index of the singular value.
[0144] When modifying the SVD matrix of the original image, there are two options. 1. Randomization Randomness can be applied to existing elements of the SVD matrix to generate a new image that resembles the random disturbances of the original. For example, randomly or pseudo-randomly generated values can be applied to the original SVD matrix U, Σ, V. T It can be used as an operand to a modification function M() that operates on at least one of the following. Different random values / operands may be used for each of the multiple modification operations M() or for each of the matrices / singular values being modified. 2. Replacement It is possible to substitute elements of an existing SVD matrix. This can be done at the level of individual elements (such as singular values in Σ) or at the level of the overall vector (columns or V in U). T This may be performed in the row indicated by the substitution operation. In this method, the substitution operation may replace one or more singular values with other values.
[0145] In some embodiments, the choice of which of the two options to use may be based on, or influenced by, the characteristics of the original image. These may include, for example, its dominant features, structure, and / or resolution.
[0146] Advantageously, the substitution method allows specific features to be introduced into a new SVD matrix, which may provide a greater degree of control over the resulting SVD-based image (which is then used by the token generation protocol). According to one or more embodiments, any combination of element randomization and substitution may be used with respect to the SVD matrix.
[0147] Correction function According to one or more embodiments disclosed herein, when a blockchain-based token (e.g., an NFT) is generated using a modification function M, a link can be established from the source image and the derived image by also verifying the function itself and any parameters used when generating the new NFT. In other words, a verifying party, e.g., a new controller of a token or SVD-based digital asset, may be provided with the modification operation and parameters used to generate them. The verifying party can apply the specified modification operation to the original version and check that they arrive at the SVD-based version they are obtaining.
[0148] The parameters used for modification may include a seed that can be used to derive a pseudorandom number for randomizing the elements in the source SVD product matrix. This additional verification would enable a new owner / receiver / controller to independently derive a new NFT given the source asset and M, and to verify that the NFT they receive was generated as expected. Thus, the method of this disclosure may comprise the steps of providing a blockchain-based token and data related to the generation of that token to a receiver, and then having the receiver verify the authenticity and integrity of the token they receive.
[0149] Generation of randomness In one or more embodiments disclosed herein, the randomness used to modify the SVD matrix when generating new tokens may be derived from the blockchain itself. In this case, the token scheme would need to pre-define an unpredictable source of this randomness, such as "block hash at height T+X," where T is the current block height and X is an integer. In this way, SVD-based tokens can embed the blockchain itself into their generation process, which timestamps their creation. Any party that needs to verify the authenticity, origin, history, or ownership of a tokenized digital asset can do so.
[0150] Algorithm 2: Generate an NFT from a set of images. According to this embodiment of the disclosure, the process begins with a set of initial digital assets rather than a single initial digital asset, as in Algorithm 1. According to Algorithm 2, the data matrix A is generated in a different way. In this second method, each column in the data matrix A represents or originates from each initial digital asset.
[0151] It should be recalled from the above that SVD can be used to "represent a data matrix as a matrix product that can be used to reveal the main features of the data contained in A and to approximate A with minimal information loss." This aspect of SVD is utilized in Algorithm 2 by selecting common features of the set of images represented in the matrix, in a manner similar to the use of eigenfaces described above.
[0152] In a preferred embodiment, an algorithm for generating an SVD-based digital asset based on a set of initial digital assets (sometimes referred to as an "initial image / asset set") may comprise the following steps: 1. Represent the set of k initial images as an l×k matrix A. 2. Obtain the SVD product matrix. That is, U, Σ, VT ←SVD(A). 3. k×1 column vector
[0153]
number
[0154] Choose this option. 4. New image sequence vector
[0155]
number
[0156] Generates. 5. A ⊥ Reshape it to create a new image. That is, A'←R(A ⊥ ).
[0157] In the above example, the column vector V ⊥ T It is not based on the SVD matrix of matrix A. Instead, it is the result of a newly chosen selection of values provided as column vectors.
[0158] Compared to Algorithm 1, Algorithm 2 differs in that a single column vector is selected and the initial digital assets are reshaped to provide new initial digital assets. In detail, steps 3 and 5 of Algorithm 2 differ from Algorithm 1.
[0159] In this second method, the set matrix A consists of k column vectors of length l = m·n. Each column vector results in a reshaping of the m × n initial image, where m and n are the height and width of the initial image, measured in pixels.
[0160] Performing SVD on set A extracts the "unique features" stored in the column U, which form a basis for representing the initial set of images. (Column vector in step 3)
[0161]
Number
[0162] is the selection of k coefficients for taking the linear combination of these basis features to form a new image sequence vector A in step 4. In other words, the new l×1 vector A ⊥ is simply a linear combination of the eigenfeatures of the initial image dataset. ⊥
[0163] The final step is to reshape A ⊥ into an m×n matrix A' representing a new SVD-based image. To show this reshaping process, the function R( ) is used.
[0164] To ensure that there are coherent eigenfeatures to be extracted from the initial matrix A, the set of initial images in the set should be similar. This condition is usually satisfied in most token / NFT sets that are already generated by randomly selecting from a given set of features.
[0165] In one or more embodiments, a modified step similar to step 3 in the previous algorithm may also be applied to the above procedure, where elements of either or both of U and Σ may be modified. As in the previous case, these modifications may comprise a combination of randomness and / or replacement.
[0166] When based on an initial set where the features are very well defined, it may be advantageous to retain the singular values to ensure that the relative dominance of each feature is maintained, the selection vectors
[0167]
Number
[0168] It simply involves selecting them from a new combination to form a new digital image (asset).
[0169] Token set generation Both methods described above can be used to generate a set of SVD-based digital assets based on either a single initial image or an overall existing collection of digital assets. The terms “set,” “collection,” and “multiple” may be used interchangeably herein.
[0170] In the first example, to generate a new set from a single image, steps 3 and 4 of algorithm 1 would simply be repeated multiple times, using different modifications in step 3, to create the same number of new SVD-based digital assets (e.g., images) as needed. The steps for iterating on modifications may involve using different modification functions M() and / or using different operands in that function.
[0171] In the second example, steps 3-5 are repeated similarly the same number of times as needed to generate a new set based on the existing set, but with a different selection vector.
[0172]
number
[0173] This is chosen every time.
[0174] 2. “SVD first” method In contrast to the methods described above, the SVD-first approach does not start with any initial asset (e.g., image) data from which it should function. This means that only one asset generation algorithm needs to be specified, rather than the two possible options described above for the image-first approach.
[0175] Algorithm 3: SVD generates digital assets from the selected A. In the method shown in S1320 of Figure 13, at least one SVD-based digital asset is generated from an artificially constructed SVD rather than from one or more existing digital assets. The base features used to form the matrix can be selected by the user according to the needs and requirements of a particular use case, implementation, or application, or can be obtained from the user.
[0176] In this sense, the SVD from which tokens / assets are subsequently derived can be described as "user-specified" in that the user specifies at least one or more elements of the initial data matrix (A), rather than them being defined by assets or some other entities. In this method, rather than being derived from some other assets / entities such as images, the SVD product matrix UΣV T The user designs and builds it (at least partially).
[0177] This gives the user complete freedom of choice in specifying the characteristics of the asset, which will then be used by the user's choice tokenization protocol. Thus, it is possible to generate fully customized and specified tokens that have characteristics and attributes chosen specifically for a given purpose.
[0178] Advantageously, such an approach facilitates the construction of the SVD to which multiple users contribute. For example, one user may contribute to one set of basis features, and another party may contribute to a further set of features. Thus, the resulting SVD (and thus the token) is formed as a joint product of multiple contributors. Each contributor may have a share of the resulting token. Consider scenarios where multiple artists participate in a performance, or a painting is composed from layers or components contributed by different artists. Consider another exemplary scenario where a contract or intent is signed by multiple parties providing signatures to a document. A matrix may then be formed using the input of each contributor as basis features that are then combined via an SVD-based approach to form one or more tokenized assets that are then implemented on a blockchain.
[0179] It should also be noted that, as described with respect to other embodiments herein, other operations may be performed on the data matrix and / or the SVD product matrix. For example, modification operations, approximation operations, and / or encryption operations may be applied to the data matrix and / or the SVD matrix.
[0180] Advantageously, this can provide numerous benefits, including, but not limited to, reduced risk of forgery and other types of fraud, seizure, etc., since, for example, a user can design an asset having one or more attributes that are not identifiable, reproducible, and / or predictable to parties not known and authorized by the user. In other situations, existing digital assets may not be available, possible, or desirable for various potential reasons. In such cases, the disclosed SVD-first approach enables a more versatile, secure, and flexible tokenization technique.
[0181] An exemplary algorithm formed in accordance with such an embodiment may comprise the following steps. 1. Basis features F, each as an m×n matrix iDefine a set k. 2. Reshape each feature matrix into an l×1 column vector. That is, U i ←R -1 (F i ). 3. U as that column i We form an l×k matrix U using [the specified formula]. 4. Singular values σ1, ..., σ k Choose set k 5. On its diagonal are σ1, ..., σ k It forms a k×k diagonal matrix Σ having the following properties: 6. Convert the set of N selection results into a k×1 column vector.
[0182]
number
[0183] Defined as follows. 7. As that row
[0184]
number
[0185] Using a k×N matrix V T It forms. 8. Generate a set matrix. That is, A←UΣV T . 9. New image R(A i To generate ), each column A i Reshape it.
[0186] In the above example, using our image-based example again, m and n are the pixel height and width of the output digital asset, and N is the desired number of SVD-based digital assets. A single SVD-based digital asset may be generated by setting N=1, and a set may be generated by setting N>1. Function R -1 ( ) represents the inverse function of the reshaping function R() defined earlier.
[0187] Singular value According to one or more embodiments, in this algorithm, the singular values can be freely selected. However, in some implementations, a hierarchy of features may be required. For example, there may be a need to indicate that the obtained tokens or their related assets, such as VIP tickets vs. priority tickets vs. standard tickets, or first edition artworks vs. reprints, belong to a hierarchy. In such cases, the singular values can be selected to reflect this. The columns of U and the diagonal entries of Σ should also be reordered to match the corresponding hierarchy.
[0188] Binary feature selection According to one or more other embodiments, the algorithm can be modified to enable binary feature selection in the sense that for each feature U within a particular image sequence A j it is either present ("true / 1") or not present ("false / 0"). This can be achieved by removing the hierarchy from the SVD, such that all singular values are defined as σ1 =... = σ i = 1, and each k component of
[0189]
Number
[0190] is set to either 1 or 0. If feature U j is present in A i then the element V ij = 1, and if not, V ij = 0.
[0191] SVD matrix encryption According to another aspect, embodiments of the present disclosure provide techniques for SVD-based generation of digital assets that can be used to create and transfer tokens (including NFTs) with a greater degree of privacy, security, and control to the original controller.
[0192] The two main ideas are as follows: User-specific matrix Tokens can be transferred to different users multiple times. Each time a token is transferred, the user receives a modified version of the token, where one or more elements of the SVD are manipulated (modified) based on selected features or variables, such as the recipient's unique identifier or unique token version, or the transfer timestamp, recipient address, etc. This provides a more secure, customizable tokenization scheme, as it allows for verification of the authenticity of the sender and / or recipient, thus reducing the possibility of forgery or fraud or unauthorized access / interference. Embedding this transfer-specific data within the generated digital asset itself allows for verification of the token's origin and history, providing the verification data as an integral part of the asset itself. Moreover, there are no additional resource costs for separately storing or sending the verification data. • Encrypted transfer Before the token is transferred from the initial controller to the new receiver, the matrix is encrypted element by element using a key that can be derived by the receiver to decrypt the matrix. Again, this provides a more secure encryption and transfer solution for blockchain-based tokens and / or their digital assets, as encryption is performed at the element level of the matrix.
[0193] Each of these concepts can be used independently and separately. However, in combination, they enable us to implement SVD-based token / asset data transfers in a more secure manner. Making each matrix unique to a given user (i.e., each recipient of an NFT) ensures that each individual purchase of the base NFT is verifiablely linked to the recipient. Using encryption to transfer the actual data of the user-specific NFT matrix ensures that the resulting NFT can only be reconstructed by the intended recipient.
[0194] The initial controller (owner) Alice who mints the base token A, and the version A of the token unique to Bob B Consider Bob, the recipient, who wishes to obtain control (e.g., ownership) of such a version. The following example uses NFTs merely for illustration. Other types of tokens may be used instead.
[0195] The protocol that Alice can use to transfer such a version to Bob may comprise the following steps. 1. Alice generates the base NFT A. 2. Alice obtains the SVD matrix for A. That is, U, Σ, V T ←SVD(A). 3. Bob sends some information (e.g., public key P B ) that uniquely identifies Bob to Alice. 4. Alice modifies the base NFT matrix. That is,
[0196]
Number
[0197] . 5. Alice generates Bob's new NFT matrix. That is,
[0198]
Number
[0199] . 6. Alice and Bob generate a shared secret s between them. 7. Alice encrypts Bob's NFT matrix using the shared secret. That is, E B ←Encrypt(A B , s). 8. Alice sends E B to Bob. 9. Bob decrypts it to restore his NFT. That is, A B ←Decrypt(EB ,s).
[0200] The step of generating matrix A for the base token is implicit in the above. The data matrix for A is obtained before Alice can obtain the SVD (i.e., multiple matrices) in step 2.
[0201] User-specific matrix A in Step 5 B The generation involves returning and expanding the SVD matrix to obtain a modified version of the base matrix A. This also uses a modification function M, as previously used in algorithms 1, 2, and 3 described above. However, in this embodiment, the randomization and / or substitution performed by M uses Bob's unique identifier as a parameter. For example, if the information is Bob's public key P B If this is the case, this is a random disturbance of U, Σ, V T It can be used as a seed for applying to the elements of. In some embodiments, Alice is Bob's new matrix A B You may send an unencrypted version of, or an SVD-based digital asset based on its new matrix, or a blockchain-based token generated using its new matrix.
[0202] However, assuming Alice chooses to send an encrypted version, Alice and Bob generate a shared secret s in step 6. In one method, this could be a shared symmetric key derived using a Diffie-Hellman process (as disclosed in WO2017 / 145016, which is incorporated in its entirety herein). Using this symmetric key, the resulting matrix A B This can be encrypted using a suitable cryptographic technique. For example, this could be a block cipher, as disclosed in international applications PCT / EP2023 / 053998 or PCT / EP2023 / 053862, which are entirely incorporated herein. In other embodiments, a (symmetric) stream cipher may be used, where A B Each element is encrypted and then EB It generates E. B This simply means that the element is A B A matrix which is an encrypted element of E B This can be sent directly to Bob to be decrypted using s.
[0203] A token set is often described as one of N sets when there are N possessable copies of the same token set. Therefore, in some embodiments, there may be multiple receivers and multiple corresponding transfers.
[0204] Other features and embodiments outlined herein may be combined with this protocol to provide further variations and embodiments. For example, low-rank thumbnails of base tokens [A] r This may be the only version published by Alice (see the following section related to "thumbnails").
[0205] Examples of Use Cases Next, we provide examples of use cases in which the embodiments disclosed herein may be used to benefit from them. These are provided to illustrate the versatility of the techniques disclosed herein and some of the technical advantages that the disclosed embodiments may offer.
[0206] Non-fungible tokens (NFTs) The techniques outlined above are compatible with any existing tokenization protocol, provided we assume that the issue concerns how new digital content is created, rather than how the tokenization scheme can use these results. Therefore, the techniques disclosed are agnostic to how tokens are used after their creation.
[0207] However, an exemplary use case for which this disclosure is particularly suitable lies in the design, generation, and processing of tokenization techniques called non-fungible tokens (NFTs). Wikipedia describes NFTs as "unique digital identifiers that cannot be copied, replaced, or respun off, recorded in a blockchain and used to provide assurance of ownership and authenticity" - see https: / / en.wikipedia.org / wiki / Non-fungible_token. Like a passport, each NFT token has a unique and non-transferable identifier that distinguishes it from other NFTs. An NFT is a digital on-chain representation of an asset (physical, virtual, or digital) or a part thereof, such as a single piece of digital content like a work of art, a video, or an image, a pair of shoes, personal identification information, or a domain name. Perhaps the most widely known use of NFTs is to demonstrate and prove ownership of the represented asset.
[0208] NFTs utilize so-called "smart contracts." Rather than legally enforceable contracts, smart contracts are machine-executable programs containing logical code that specifies how an NFT is created ("minted") and how it can be managed, for example, transferred from one owner to another. IF-THEN statements within the NFT's logical code specify conditions and the actions to be taken with respect to the NFT if those conditions are met. In some cases, NFTs are stored entirely on the blockchain, resulting in the smart contract, NFT identifier, metadata, and associated tokenized digital assets being stored on-chain. In other cases, the digital assets represented by the NFT may be stored off-chain, as described elsewhere in this specification.
[0209] Embodiments of SVD-based tokens as disclosed herein enable new functionality and various improvements to existing NFT schemes. For example, in some sense, the “SVD-first approach” of algorithm 3 described above can be considered analogous to the concept of “layering” used in many generated NFT sets, where each NFT is a combination of variable default features overlaid on top of each other. According to embodiments of the present invention, the ordering of layers can be encoded by the absolute value of the singularity of the SVD-based NFT.
[0210] While not limited to use with NFT technology, the use cases, applications, and benefits provided below are applicable to NFT applications and implementation forms.
[0211] Thumbnail A major challenge for many tokenization schemes is the numerous resources that may be required when data related to the digital asset itself is to be stored on a ledger. Furthermore, some blockchain protocols impose limitations on how and to what extent data can be stored within those transactions. Storing data on a ledger offers numerous technical advantages, such as a time-stamped, immutable record of when and by whom the data was stored, and subsequent cryptographically enforced access control of that data. However, when tokens represent digital assets with significant amounts of data, it may not be possible, depending on the relevant protocol, to store that data on-chain, or even if possible, it may be economically or technically undesirable.
[0212] For example, when using NFTs, including NFT image data natively on-chain along with the NFT logic itself can consume a significant number of costs (e.g., storage, processing, cryptocurrency). This often means that storing the token data itself on the blockchain ledger is impractical, leading many token schemes to rely on auxiliary networks such as IPFS or third parties to store the actual token content. The off-chain data must then be linked via a URL to associate it with the token on the blockchain. Thus, in an attempt to reduce the resources required for online storage and processing, the on-chain token is separated from the data related to the asset the token represents.
[0213] However, such methods are known to introduce technical problems, such as how to maintain the association between tokens and their associated asset data. For example, linked data may be altered or even removed after control of the token is transferred to a new recipient, or a "link rot" may occur when the URL no longer points to the correct location of the data. In such cases, the data may become inaccessible. Thus, there are challenges related to at least the technologies of digital retention, data persistence, and data sustainability.
[0214] Advantageously, embodiments such as those disclosed herein offer, among other advantages, an extended and improved alternative form that addresses the storage and processing resource requirements for blockchain-based tokenization. Instead of storing the entire raw data on the blockchain, a low-rank approximation [A] r This can be stored on-chain. This can be thought of as an on-chain "thumbnail" for an NFT image, which can be represented using significantly less data and therefore requiring fewer resources for storage in the ledger.
[0215] Referring to Figures 4, 5, and 6, such embodiments are substantially generated as described above in the sections entitled “Singular Value Decomposition (SVD)” and “Image Compression,” and are low-rank approximations of digital assets [A] r It may then be provided with using a low-rank approximation of SVD to generate an SVD-based digital asset. The SVD-based digital asset can be used to generate blockchain-based tokens such as NFTs. Advantageously, the asset data associated with the token can be stored on the blockchain in the same or different transactions as other token-related data, as it requires fewer resources due to its approximation.
[0216] Therefore, using our example of a digital image as an asset, where m is the height of the image in pixels and n is the width of the image in pixels, such an embodiment may comprise one or more of the following steps. 1. Generate an m x n data matrix A for digital assets. 2. Product matrices U, Σ, V T To provide this, obtain the SVD of A. 3. Truncating one or more of the product matrices in order to approximate digital assets.
[0217] Step 3 above may consist of steps substantially described in the section above titled "Economic SVD". Therefore, after the truncation operation in Step 3, the product matrix is
[0218]
number
[0219] It may be shown as such, however,
[0220]
number
[0221] This shows the first n columns of U,
[0222]
number
[0223] This shows the first n rows of the summation.
[0224] Therefore, after rounding down, the economic SVD of A is,
[0225]
number
[0226] It can be shown as follows.
[0227] Private-Public Token Components The tokenization scheme can utilize the series sum expansion of SVD-based tokens to enable distinction between different components of the token. For example, different components may be characterized as public or private. By thus separating the components of a tokenized asset, each component can be stored, processed, controlled, and / or transferred separately.
[0228] As an example, consider a scenario in which a receiving party acquires a specific component of an NFT for a particular artwork. This is effectively similar to gaining control of a partial NFT of the original artwork, as visualized in Figure 12, which provides a diagram in which the series sum expansion of an SVD-based NFT is separated into public, private, and owned components.
[0229] For a suitable r, the first r components of the SVD expansion are A1, ..., A r It is possible to make this publicly available, and as a result, anyone can independently perform rank r approximation or thumbnail [A] from the available data. rIt can be reconstructed, as shown on the left side of Figure 12.
[0230] Each of the remaining components may then be transferred privately and / or separately to different receiving parties by the controller, e.g., the original creator of the NFT image. Once a recipient obtains a k-rank version of the NFT, the user (e.g., the token controller) can then transfer Set A r+1 , A r+2 ,...,A k or pair [A] k-1 , A k You can send them one of these.
[0231] The separation of private and public (NFT) components allows for the implementation of new token mechanics. For example, the transfer of a component to a recipient A k If only the components are to be revealed privately, a specific recipient must collect all n components so that they can reconstruct the original image A. Public / private communication of the components can be carried out using any preferred known method, for example, via a public blockchain or the internet, or via encrypted communication in the case of private communication.
[0232] In other embodiments, a token logic may be implemented for a given token to enable the transfer of a sequence of components, where each transfer successively reveals each component. This would allow anyone to construct a k-rank version of A, assuming that k is the highest-ranked term being transferred. In this way, tokens such as NFTs can "evolve" over time, with each new transfer revealing new details about the tokenized asset, such as an NFT image, until the original is completely reconstructed.
[0233] Therefore, it can be understood that embodiments of this disclosure offer numerous technical advantages, including, but not limited to, the provision of more versatile methods for transferring and controlling assets via blockchain. Other advantages include improved data security for blockchain-based data transfer or processing, in which unauthorized interference or access to one or more components may not be sufficient for an interferer to reconstruct the assets in a meaningful way. For example, a partial copy of a document or file of interest may be worthless to a hacker. Thus, even though each component may be transferred between the sending and receiving parties by entirely different means, a hacker must somehow obtain all components to achieve their desired goal. This greatly reduces the likelihood of successful interference / access.
[0234] From a certain perspective, embodiments of this disclosure provide novel and improved alternatives to “secret sharing” and new ways of implementing threshold schemes. Wikipedia describes them as follows (https: / / en.wikipedia.org / wiki / Secret_sharing): "Secret sharing (also called 'secret partitioning') refers to a method of distributing a secret among a group in such a way that no individual holds any explicit information about the secret, but a sufficient number of individuals can combine their 'shares' to reconstruct the secret. 'Insecure' secret sharing allows an attacker to gain more information using each share, while 'secure' secret sharing is 'all or nothing' (where 'all' means the required number of shares)." In one type of secret sharing scheme, there is one "dealer" and "n players." The dealer gives the players a share of the secret, but the players can only reconstruct the secret from their share when certain conditions are met. The dealer achieves this by giving each player a share in such a way that any group of t or more players (in the case of a threshold) can reconstruct the secret together, but a group of fewer than t players cannot. Such a system is called a (t,n) threshold scheme (sometimes written as an (n,t) threshold scheme).
[0235] As understood above, embodiments of this disclosure enable tokenized data to be stored on-chain in a secure, cryptographically enforced ledger and to be incrementally distributed to potentially different recipients by various transfer methods. Machine-executable logic may be implemented to automate and control the distribution process and to include criteria that must be met for a given component to be transferred to a particular recipient. If the criteria specified in the logic code are not met, the component is not released to the recipient.
[0236] This allows for the development of secure, automated solutions where sensitive private or otherwise valuable data can be distributed efficiently and only when specified conditions are met. For example, one or more components may be released to a designated recipient only if digital signatures are provided by two of three predetermined parties, or if a specified amount of cryptocurrency has been transferred to a specified address, or if a specified amount of time has elapsed or a specific date and time has been reached. Of course, there are numerous other possibilities beyond these examples.
[0237] Minting With regard to embodiments using the private-public component method described above, each component A obtained by the receiving party kIt is assumed that the token is part of the exact original digital asset (e.g., an image) A. This may require a certain degree of trust. In some embodiments, when the token (e.g., an NFT) is created, one or more verifications may be introduced into the minting (token generation) process. This allows for verification of the authenticity and integrity of the received components.
[0238] A simple example of such a minting process may include the following steps: 1. Generate an NFT / blockchain-based token A using an algorithm essentially as described in Algorithms 1, 2, or 3 above. 2. Set of hashes
[0239]
number
[0240] Calculate. 3. Low-rank thumbnail [A] r Generates. 4. Tokenize tokens / NFT data D:=[A] on-chain using a tokenization protocol. r ,
[0241]
number
[0242] To mint (i.e., produce).
[0243] This minting process is used for all NFT component A i and the corresponding approximation [A] i Proof of the set
[0244]
number
[0245] This includes. These proofs allow the receiving party to verify that each component they receive corresponds to a component of the original image matrix A.
[0246]
number
[0247] However, please note that it can take many different formats, such as the root of a Merkle tree or a hash chain. i =H(A i ||H i-1 Therefore, the authenticity of each component can only be verified if all previous components have been identified.
[0248] In other embodiments, the generation step (Step 1) may be omitted. In such cases, an SVD-based thumbnail technique may be used to profit from digital assets that have not been preprocessed using SVD. In other words, a set of hashes can be obtained using a data matrix derived from any digital asset, whether or not it is an SVD-based digital asset that is generated according to algorithms 1, 2, or 3 herein.
[0249] Rarity The perceived scarcity of tokenized digital assets or asset sets is typically an important metric that helps determine their value. According to the disclosed SVD-based token design, for an m x n digital asset (e.g., image) matrix A, there are at most max(m,n) components, and therefore it is the maximum number of matrix components that can be transferred and the maximum number of approximate versions of the digital asset that can be generated, thus giving rise to the obvious concept of scarcity.
[0250] Summary of Exemplary Embodiments of the Disclosure Embodiments of this disclosure may be expressed using one or more of the alternative phrases. • Blockchain-based tokenization methods / protocols, • Methods / protocols for using singular value decomposition to acquire one or more digital assets and / or blockchain-based tokens. • A secure method for generating, storing, and / or transferring blockchain-based tokens and / or digital assets.
[0251] The methods disclosed herein may be carried out using computer code, systems, and / or computer equipment (including hardware, software, and / or firmware) configured and / or capable of carrying out the methods.
[0252] In addition or alternatively, one or more preferred embodiments include: A method for obtaining at least one blockchain-based token that represents and / or is associated with an asset, comprising at least one asset processed using singular value decomposition, Methods and related systems / code may be provided.
[0253] In alternative wording, the embodiment is, Acquire SVD-based assets, and To acquire and / or transfer blockchain-based tokens, use SVD-based assets, Methods and related systems / code may be provided.
[0254] Preferred embodiments claimed, illustrated, or described herein may comprise one or more of the following steps, which are provided merely as examples. According to some embodiments, the order of the following steps may be modified from the order in which they are provided below, some embodiments may include one or more additional steps not listed below, and other embodiments may omit one or more of the following steps. • Acquire at least one digital asset. A digital asset may be a digital / electronically formed representation of a virtual or physical asset, and may be generated by a user or received from one or more other parties, and may subsequently be used in the generation of blockchain-based tokens, such as NFTs, and may, in some cases, be or comprise a digital token representing several other assets, and in some embodiments, this asset generation step may be omitted (see Algorithm 3, where the SVD is artificially constructed rather than based on any initial digital asset). • To generate a singular value decomposition of at least one digital asset. This means, To obtain a (data) matrix (A) representing a digital asset, It may be provided that a set of (product) matrices is obtained from matrices, and for ease of reference, the set of matrices may be referred to herein as the “SVD of digital assets,” or sometimes as the “SVD of tokens,” or sometimes simply as the “SVD.” As described above, in some embodiments the SVD may be constructed artificially from a blank slate rather than being defined / influenced by or based on any existing digital (see Algorithm 3, SVD-first approach). • Processing SVDs in several ways. In other words, SVDs, regardless of how or from what they are generated, may then be processed at least partially. This processing may consist of one or more of the following: - Modifying one, some, or all of the elements in at least one of the multiplicative matrices. Such modification may involve any type of modification operation and / or variables appropriate to a given use case, which may include, for example, but are not limited to: At least one random or pseudo-random parameter, Blockchain-related data, such as block height or hash of at least a portion of a block. Assets / tokens, such as cryptographic keys, passwords, or identifiers, are data relating to or representing one or more entities, including the current, original, or intended owner. Data related to the version or hierarchical attributes of assets / tokens, Watermarks or other embedded data suitable for verifying the authenticity and / or integrity of digital assets. - Encrypting one, some, or all of the elements in the product matrix or data matrix generated after the SVD has been modified. - To truncate, crop, or reduce at least one of the matrices. • Expand the (modified) product matrix to obtain a new data matrix A' obtained using singular value decomposition. Thus, the modified matrix is based on the original data matrix A of the digital asset, but processed using SVD. For ease of reference, this new matrix is sometimes referred to as the "SVD-based digital asset / token". The modified matrix A' may be processed in any preferred manner to provide a digital asset that makes a desired format, for example, suitable for viewing, listening to, or watching via a software application. - Associating an SVD-based digital asset with a blockchain-based token. This may involve generating a new token that possesses (represents or is otherwise associated with) an SVD-based digital asset, or, in other cases, modifying or replacing an asset represented by an existing blockchain-based token. Sending one or more of the following from the sender to at least one receiver: the modified matrix A', an encrypted version of the modified matrix A', or a processed version of the modified matrix. • Writing SVD-based digital assets and / or tokens to the blockchain. In some embodiments, SVD-based assets are stored on-chain, but in other embodiments, they may be stored off-chain.
[0255] In some cases, a single party / user / actor, or a single group of parties / users / actors, may perform all of the steps of the method disclosed or claimed herein. In other cases, one or part of the steps may be performed by at least one further user / group / party / actor.
[0256] Enumerated clauses The following enumerated clauses are provided as non-limiting examples of some exemplary embodiments of this disclosure. Features described with respect to one set of clauses may be incorporated into one or more other sets of clauses.
[0257] Clause Set 1 The embodiments specified in Set 1 may relate in particular to a section entitled “Image-First Techniques,” and more specifically to algorithms 1 and 2 as disclosed herein.
[0258] Clause 1.1: Methods performed by computer, The method comprises a step of using Singular Value Decomposition (SVD) to generate at least one SVD-based digital asset (SVD-DA). Additionally or alternatively, the method may comprise a step of using SVD to generate at least one blockchain-based token associated with the SVD-based digital asset (SVD-DA).
[0259] The method may be a method for acquiring, for example, generating, a digital asset, a blockchain-based asset (e.g., a token), or both. Additionally or alternatively, the method may be described as a (blockchain-based) tokenization method, a method for secure generation, transfer, and / or transfer of blockchain-based tokens and / or digital assets.
[0260] Alternatively, the method may be described as a computer-performed method for using Singular Value Decomposition (SVD) to generate blockchain-based assets derived from or associated with SVD-based digital assets (SVD-DA).
[0261] Alternatively, the method may be described as a computer-operated method comprising the steps of generating, acquiring, storing, transferring, or otherwise processing blockchain-based assets derived from or associated with at least one SVD-based digital asset (SVD-DA).
[0262] The method may be implemented in machine-executable code and may be configured for execution by one or more processors. The machine-executable code may be stored in memory associated with one or more processors.
[0263] Clause 1.2. The method under Clause 1.1, the method is: This involves acquiring the SVD of one or more Initial Digital Assets (DAs). Initial DAs are sometimes referred to as base assets or underlying assets. For readability and ease of reference, Initial Digital Assets may be referred to in the singular. However, the term is intended to be interpreted as encompassing multiple Initial Digital Assets and covering multiple Initial Digital Assets.
[0264] Clause 1.3. The method under Clause 1.2, wherein the SVD is obtained from the initial digital assets (DA), and the method is i) Obtain the SVD matrix of the initial digital assets (DA), ii) Modify at least one matrix of the SVD matrix in order to generate a modified version of the SVD matrix. ii) Generating SVD-based digital assets (SVD-DA) from a modified version of the SVD matrix. It further comprises one or more of the following.
[0265] Clause 1.4. The method according to Clause 1.2 or Clause 1.3, i) Represent the initial digital assets (DA) as matrix A, ii) Using matrix A to obtain the SVD matrix of the initial digital assets (DA), i.e., U,Σ,V T ←SVD(A), iii) To provide a modified version of the SVD matrix, modify at least one matrix of the obtained SVD matrix, i.e., U'sΣ'sV T' ←M(U,Σ,V T ), iv) Multiplying by a modified version of the SVD matrix in order to provide SVD-based digital assets (SVD-DA), i.e., A'←U'Σ'V T' It further comprises one or more of the following.
[0266] Clause 1.5. Modifying at least one matrix of the SVD matrix by any method according to Clause 1.3 or 1.4, i) Using random or pseudo-random modification operations, and / or ii) It includes a substitution operation.
[0267] Clause 1.6. The method under Clause 1.2, wherein the SVD is obtained from multiple initial digital assets (DAs), and the method is i) Select or otherwise obtain the SVD matrices of multiple initial digital assets. ii) Select or otherwise obtain a column vector. iii) Generate SVD-based digital assets (SVD-DA) from a new column vector based on the selected column vector. It further comprises one or more of the following.
[0268] Column vector V ⊥ T This may be a newly selected / obtained result of values represented as a column vector.
[0269] Clause 1.7. The method pursuant to Clause 1.2 or Clause 1.6, i) Representing multiple initial digital assets (DAs) as a matrix A having multiple column vectors, wherein each column vector represents an initial digital asset among the multiple initial digital assets (DAs), ii) Using matrix A to obtain the SVD matrix of multiple initial digital assets (DAs), i.e., U,Σ,V T ←SVD(A), iii) Column vectors
[0270]
number
[0271] To choose or otherwise obtain iv) Generating a new column vector, that is,
[0272]
number
[0273] , v) To generate a new column vector having a linear combination of column vectors, vi) To generate SVD-based digital assets, a new column vector A ⊥ Reshaping, that is, A'←R(A ⊥) It further comprises one or more of the following.
[0274] Clause 1.8. A method under Clause 1.6 or 1.7, the method is: Further includes modifying at least one matrix of the SVD matrix, Preferably, the correction step is: i) Using random or pseudo-random modification operations, and / or ii) It includes a substitution operation.
[0275] Clause 1.9. Any method provided for in any of the preceding clauses in this set of clauses, the method is: It further comprises generating a set of SVD-based digital assets (SVD-DA) based on one or more initial digital assets (DA).
[0276] Article 1.10. The method according to Article 1.9, i) The set of SVD-based digital assets is generated based on the initial digital assets (DA), and the method is as follows: To generate a modified version of the SVD matrix, the method further includes repeating the step of modifying at least one matrix of the SVD matrix at least once, or ii) A set of SVD-based digital assets (SVD-DA) is generated based on multiple initial digital assets (DA), and the method is as follows: The process further includes iterating at least once through the step of selecting or otherwise obtaining a column vector.
[0277] Clause 1.11. By any means of any of the preceding clauses within this set of clauses, blockchain-based tokens are: i) Having a token ID and / or metadata associated with the tokenized asset, and / or ii) One or more physical, virtual, or digital tokenized assets that are associated with or represent such assets. Preferably, the tokenized asset is a work of art, computer code such as source code or executable code, data relating to one or more individual people, and / or iii) Machine executable code, e.g., minted and / or controlled by a part of a smart contract, and / or iv) It is a non-fungible token (NFT).
[0278] Clause 1.12. A method for generating a blockchain-based non-fungible token (NFT), the method is: The steps involve using Singular Value Decomposition (SVD) to generate at least one SVD-based digital asset (SVD-DA), At least one SVD-based digital asset (SVD-DA) Logical code to influence the creation or use of NFTs, An identifier for uniquely identifying an NFT and / or at least one SVD-based digital asset (SVD-DA), Metadata related to NFTs and / or at least one SVD-based digital asset (SVD-DA) The process includes the step of associating with one or more of the following.
[0279] The method may further comprise generating at least one SVD-based digital asset (SVD-DA) and obtaining SVDs for one or more initial digital assets. The logical code, identifiers, metadata, and / or at least one SVD-based digital asset (SVD-DA) are stored in at least one transaction on the blockchain. Additionally or alternatively, the logical code may comprise machine-executable code that, when executed, tests at least one condition and, if the condition is met, performs at least one condition-based action.
[0280] Clause 1.13. Computer equipment, A memory comprising one or more memory units, The system comprises a processing unit having one or more processing units, the memory storing code configured to run on the processing unit, and the code, when on the processing unit, is configured to run in any of the ways described in clauses 1.1 to 1.12.
[0281] Clause 1.14. A computer-based system configured to implement any of the methods described in Clauses 1.1 to 1.12, Computer equipment as defined in Article 1.13, Digital wallet, Currency exchange platform (this may be a currency exchange platform and / or a cryptocurrency exchange platform), Nodes on a blockchain network It further comprises one or more of the following.
[0282] Clause 1.15. A computer program, which is implemented on computer-readable storage and is configured to perform any of the methods described in Clauses 1.1 to 1.13 when executed on one or more processors, At your discretion, A computer program may include a logical code or smart contract associated with a token, and optionally, the token is a non-fungible token (NFT). Computer-readable storage is established or associated with nodes on a blockchain network.
[0283] Clause Set 2 The embodiments provided for in Set 2 may, in particular, relate to a section entitled “SVD Preferred Techniques,” and in particular to algorithm 3 as disclosed herein.
[0284] Clause 2.1. Methods performed by computer, The system includes using a user-specified singular value decomposition (SVD) to generate at least one blockchain-based token or SVD-based digital asset (SVD-DA).
[0285] Clause 2.2. The method under Clause 2.1, i) Obtain the data matrix (A) from the user-specified SVD. ii) Use at least one SVD-based digital asset (SVD-DA) to generate at least one blockchain-based token. It comprises one or more of the following.
[0286] Clause 2.3. The method according to Clause 2.1 or Clause 2.2, wherein the user-specified SVD is: i) Multiple SVD product matrices, i.e., U, Σ, V T Obtained from, constructed by such SVD product matrices, and / or specified by such SVD product matrices, ii) Obtained using one or more base features selected from, specified by, or otherwise obtained from, at least one user.
[0287] Clause 2.4. A method under Clause 2.1 or Clause 2.2, the method is: The process involves generating a feature matrix U, wherein one, some, or all of the elements in the feature matrix are obtained from at least one user. The method further comprises generating one or more of multiple basis feature matrices, where each of the multiple basis feature matrices is It comprises at least one element obtained by the user, and / or Defines or represents a base feature obtained from at least one user, and / or Define or represent a base feature for at least one SVD-based digital asset.
[0288] Article 2.5. The method under Article 2.4, Reshaping each feature matrix within multiple base feature matrices into a column vector. The method further comprises generating a feature matrix U from multiple basis feature matrices, preferably in which each of the multiple basis feature matrices is reshaped.
[0289] Clause 2.6. A method according to any of Clauses 2.2 to 2.5, i) Singular values (σ1, ..., σ k This involves choosing a set k of ) Preferably, k is the number of basic feature matrices among multiple basic feature matrices. ii) Singular values (σ1, ..., σ) lie on the diagonal. k Obtain a k×k diagonal matrix (Σ) having the set of ), iii) Obtaining a set of N k×1 column vectors, preferably, N specifies the number of SVD-based digital assets that will be acquired and / or generated by the user. iv) A k×N matrix (V) that uses a set of column vectors as its columns. T ) to obtain, v) To obtain the data matrix (A), we have the feature matrix U, the diagonal matrix (Σ), and the column vector (V). T Use the set of ) It further comprises one or more of the following.
[0290] Clause 2.7. By any of the aforementioned clauses in Clause Set 2, Obtaining the data matrix (A) involves multiplying by the SVD product matrix, where the SVD product matrix is the feature matrix U, the diagonal matrix (Σ), and the k×N matrix (V). T ) is equipped with, that is, A←UΣV T That is the case.
[0291] Clause 2.8. By any of the aforementioned clauses in Clause Set 2, Reshaping at least one column of the data matrix, To generate SVD-based digital assets, use at least one column of the data matrix. It comprises one or more of the following.
[0292] Clause 2.9. By any of the aforementioned clauses in Clause Set 2, At least one blockchain-based token is a non-fungible token (NFT).
[0293] Clause 2.10. By any of the above-mentioned clauses, User-specified SVDs are generated using inputs or base features obtained from multiple users.
[0294] Clause 2.11. By any of the aforementioned clauses in Clause Set 2, The process includes a step of processing a data matrix and / or at least one element of at least one matrix among multiple SVD product matrices, wherein the processing step includes modifying, approximating, truncating, encrypting, and / or substituting at least one element.
[0295] Clause 2.12. Computer equipment, A memory comprising one or more memory units, The system comprises a processing unit having one or more processing units, the memory storing code configured to run on the processing unit, and the code, when on the processing unit, is configured to run in any of the ways described in sections 2.1 to 2.11.
[0296] Clause 2.13. A computer-based system configured to implement any of the methods described in Clauses 2.1 to 2.11, Computer equipment as defined in Article 2.12, Digital wallets, exchange platforms (e.g., currency and / or cryptocurrency exchange platforms), nodes on blockchain networks. It further comprises one or more of the following.
[0297] Clause 2.14. A computer program that is implemented on computer-readable storage and, when executed on one or more processors, is configured to perform any of the methods described in Clauses 2.1 to 2.11.
[0298] Clause 2.15. A computer program under Clause 2.14, The computer program contains logical code or smart contracts associated with blockchain-based tokens. At your discretion, Blockchain-based tokens are non-fungible tokens (NFTs) and / or Computer-readable storage is established by or associated with nodes on a blockchain network.
[0299] Clause Set 3 The embodiments provided for in Set 3 may, in particular, relate to sections such as “Thumbnail,” “Private-Public Token Component,” and “Minting,” as disclosed herein.
[0300] Clause 3.1. Methods performed by computer, i) To generate an m x n data matrix (A) for digital assets (DA), ii) To provide multiple matrices, obtain the singular value decomposition (SVD) of matrix (A), iii) Processing one or more matrices among multiple matrices in order to provide an approximation of digital assets (DAs), iv) It includes associating approximations of digital assets (DAs) with blockchain-based tokens.
[0301] Clause 3.2. The method under Clause 3.1, i) A step of processing one or more matrices in order to provide an approximation of a digital asset comprises truncating one or more matrices, and / or ii) The approximation of digital assets (DA) is a low-rank approximation of matrix A [A] r That is the case.
[0302] Clause 3.3. The method under Clause 3.2 or Clause 3.1, i) The method further comprises accumulating blockchain-based tokens on a blockchain ledger (150) and accumulating approximations of digital assets in the blockchain or in at least one off-blockchain storage resource, and / or ii) Blockchain-based tokens are non-fungible tokens (NFTs).
[0303] Clause 3.4. Methods performed by computer, This involves obtaining multiple components, where each component among the multiple components comprises or derives from a matrix that is a term in the series expansion of the data matrix. This comprises associating at least one component or derivative thereof with a blockchain-based token.
[0304] Clause 3.5. The method under Clause 3.4, The method includes a step of obtaining a data matrix by multiplying by the product matrix of the singular value decomposition (SVD).
[0305] Clause 3.6. The method according to Clause 3.4 or Clause 3.5, wherein the data matrix is: i) derived from one or more digital assets, ii) comprising one or more elements that are selected by the user or otherwise provided.
[0306] Clause 3.7. A method according to any of Clauses 3.4 to 3.6, Data matrix, or At least one element of the SVD product matrix The process further includes a step of processing at least one element of the process, Preferably, the processing steps are: Modification, replacement, removal, encryption It comprises one or more of the following.
[0307] Clause 3.8. A method according to any of Clauses 3.4 to 3.7, the method being: The further step involves making at least one of several components available publicly or privately to one or more recipients.
[0308] Clause 3.9. A method according to any of Clauses 3.4 to 3.8, The process includes steps of using or providing machine-executable code to generate blockchain-based tokens or to control the use of blockchain-based tokens.
[0309] Clause 3.10. Methods performed by computer, i) Obtaining a hash of at least one component among multiple components, wherein each component among the multiple components comprises or originates from a matrix that is derived from a digital asset or is a term in a series expansion of an initial matrix representing a digital asset. ii) Use singular value decomposition (SVD) to obtain an approximation of digital assets. iii) Generating token data for a digital token, wherein the token data comprises an approximation and / or hash of the digital asset.
[0310] Clause 3.11. A method according to Clause 3.10, wherein the step of obtaining an approximation is: i) Processing one or more product matrices obtained from the SVD of the initial matrix, and / or ii) comprising truncating one or more matrices, preferably one or more matrices obtained from the SVD of the initial matrix.
[0311] Clause 3.12. The method pursuant to Clause 3.10 or Clause 3.11, i) The approximation of the digital asset (DA) is a low-rank approximation of the digital asset, and / or ii) The hash is provided within the token data as the root of the Merkle tree or as part of the hash chain.
[0312] Clause 3.13. Computer equipment, A memory comprising one or more memory units, The system comprises a processing unit having one or more processing units, the memory storing code configured to run on the processing unit, and the code, when on the processing unit, is configured to run in any of the manner described in Sections 3.1 to 3.12.
[0313] Clause 3.14. A computer-based system configured to implement any of the methods described in Clauses 3.1 to 3.12, Computer equipment as defined in Article 3.13, Digital wallet, Currency exchange platform (this may be a currency exchange platform and / or a cryptocurrency exchange platform), Nodes on the blockchain network Computer executable code configured to generate and / or control the use of blockchain-based tokens. It further comprises one or more of the following.
[0314] Clause 3.15. A computer program, which is implemented on computer-readable storage and is configured to perform any of the methods described in Clauses 3.1 to 3.12 when executed on one or more processors, Preferably, i) The computer program comprises a logical code or smart contract associated with the token, and optionally the token is a non-fungible token (NFT) and / or ii) Computer-readable storage is provided by or associated with nodes on the blockchain network.
[0315] Clause Set 4 The embodiments specified in Set 4 may, in particular, relate to a section titled “SVD Matrix Encryption” as disclosed herein.
[0316] Clause 4.1. Methods performed by computer, Digital assets (DA), or Blockchain-based tokens associated with digital assets, Steps to obtain singular value decomposition (SVD), To obtain a modified singular value decomposition (M-SVD), the steps involve modifying the SVD. The process involves using a modified SVD (M-SVD) to acquire a new blockchain-based token.
[0317] Clause 4.2. The method under Clause 4.1, i) SVD has multiple multiplication matrices, ii) The step of obtaining the SVD provides multiple matrices and / or ii) The modified SVD comprises multiple matrices, and at least one element of at least one of these matrices is modified from its previous state as a result of the modification.
[0318] Clause 4.3. Any step in using a modified SVD to acquire a new blockchain-based token, as stipulated in Clause 4.1 or Clause 4.2, is: i) A matrix representing a modified version of a digital asset or blockchain-based token, and / or ii) SVD-based digital assets (SVD-DA) To obtain it, use the modified SVD.
[0319] Clause 4.4. By any of the aforementioned clauses in Set 4 of Clauses, i) SVD of a digital asset (DA) or blockchain-based token is obtained from a matrix of digital assets and / or ii) The method comprises the step of obtaining a data matrix for a digital asset (DA), iii) Modifying SVD is Modify at least one element of at least one matrix, and / or It includes modifying at least one of several matrices.
[0320] Clause 4.5. Modifying the SVD by any of the aforementioned clauses in Set 4 of Clauses, The data to be acquired, At least one parameter, selected, calculated, or otherwise acquired by the owner of a digital asset or blockchain-based token, At least one parameter relating to, depending on, secret to, unique to, or representing at least one organization, individual, or other entity, Blockchain-related parameters such as the height of at least one block, the timestamp derived from the block, the transaction ID or hash of the block, or parts thereof. At least one cryptographic key or digital signature, or data derived from them. This includes using one or more of them or performing modifications based on them.
[0321] Clause 4.6. Any method provided for in any of the aforementioned clauses in Set 4, the method is: In order to provide an encrypted matrix, at least a portion of the matrix obtained from the modified SVD (M-SVD) is encrypted, The system further comprises sending an encrypted matrix from the sender to at least one receiver.
[0322] Clause 4.7. The method according to Clause 4.6, wherein the matrix is: i) A shared secret generated between the sender and at least one receiver, ii) Cryptographic key, iii) Cryptography such as stream ciphers or block ciphers It is encrypted using one or more of the following methods.
[0323] Clause 4.8. Methods performed by computer, Steps to obtain a matrix for digital assets or blockchain-based tokens associated with a base digital asset, The method includes a step of encrypting one, some, or all elements of a matrix in order to provide an encrypted matrix.
[0324] Article 4.9. The method under Article 4.8, i) Digital assets and / or blockchain-based tokens are obtained using Singular Value Decomposition (SVD), and / or ii) The matrix is obtained from multiple matrices generated using the Singular Value Decomposition (SVD) operation.
[0325] Clause 4.10. The method according to Clause 4.8 or Clause 4.9, wherein the matrix is: i) A shared secret generated between the sender and at least one receiver, ii) Cryptographic keys obtained arbitrarily using the Diffie-Hellman process, iii) Cryptography such as stream ciphers or block ciphers It is encrypted using one or more of the following methods.
[0326] Clause 4.11. A method according to any of Clauses 4.8 to 4.10, i) Use a cryptographic key as a seed to make random modifications to one or more elements of at least one matrix. ii) Send the encrypted matrix to at least one recipient. iii) Decrypting encrypted matrices The decoding further comprises one or more of the following, preferably the decoding is Blockchain-based tokens and / or digital assets are issued by at least one recipient. and / or It will be executed using a shared secret.
[0327] Clause 4.12. Computer equipment, A memory comprising one or more memory units, The system comprises a processing unit having one or more processing units, the memory storing code configured to run on the processing unit, and the code, when on the processing unit, is configured to run in any of the ways described in sections 4.1 to 4.11.
[0328] Clause 4.13. A computer-based system configured to implement any of the methods described in Clauses 4.1 to 4.11, Computer equipment as defined in Clause 4.12, Digital wallet, Currency exchange platform (this may be a currency exchange platform and / or a cryptocurrency exchange platform), Nodes on the blockchain network Computer executable code configured to generate and / or control the use of blockchain-based tokens. It further comprises one or more of the following.
[0329] Clause 4.14. A computer program that is implemented on computer-readable storage and is configured to perform any of the methods described in Clauses 4.1 to 4.11 when executed on one or more processors.
[0330] Clause 4.15. A computer program under Clause 4.14, A computer program may include a logical code or smart contract associated with a token, and optionally, the token is a non-fungible token (NFT). Computer-readable storage is established or associated with nodes on a blockchain network.
[0331] Exemplary System Overview Embodiments of this disclosure may be implemented in conjunction with blockchain technology. This section provides technical details of systems that may be used to implement various embodiments of this disclosure, but is not limited to them.
[0332] A blockchain is a form of distributed data structure in which copies of the blockchain are maintained and widely published on each of several nodes in a decentralized peer-to-peer (P2P) network (hereinafter referred to as the "blockchain network"). A blockchain consists of a chain of blocks of data, each containing one or more transactions. Each transaction, other than so-called "coinbase transactions," points backward to a preceding transaction in a sequence that can span one or more blocks, leading backward to one or more coinbase transactions. Coinbase transactions are explained further below. Transactions submitted to the blockchain network are included in a new block. New blocks are often created by a process called "mining," which involves each of several nodes competing to solve a cryptographic puzzle based on a representation of "proof of work," i.e., a defined set of ordered and validated pending transactions waiting to be included in a new block of the blockchain. It should be noted that blockchains may be pruned on some nodes, and block publication may be achieved simply by publishing the block header.
[0333] Transactions within a blockchain may be used for one or more of the following purposes: carrying digital assets (i.e., several digital tokens), ordering a set of entries in a virtualized ledger or registry, receiving and processing timestamp entries, and / or ordering index pointers in time. Blockchains can also be leveraged to layer additional functionality on top of them. For example, blockchain protocols may allow the storage of additional user data or indices to data within a transaction. There are no predetermined limits on the maximum amount of data that can be stored within a single transaction, and therefore, increasingly complex data can be incorporated. For example, this may be used to store electronic documents, or audio or video data, within a blockchain.
[0334] In the “output-based” model (sometimes called the UTXO-based model), the data structure of a given transaction comprises one or more inputs and one or more outputs. Any consumable output comprises an element specifying the amount of digital asset that can be derived from the evolving sequence of the transaction. A consumable output is sometimes called a UTXO (“unconsumed transaction output”). That output may further comprise a lock script that specifies the conditions for the future redemption of that output. A lock script is a predicate that defines the conditions necessary to activate and transfer a digital token or digital asset. Each input of a transaction (other than a coinbase transaction) comprises a pointer (i.e., a reference) to such an output in a preceding transaction and may further comprise an unlock script to unlock the lock script of the pointed-to output. Thus, a pair of transactions are taken into consideration and referred to as the first transaction and the second transaction (or “target” transaction). The first transaction comprises at least one output which comprises a lock script that specifies the amount of digital asset and defines one or more conditions for unlocking the output. The second target transaction has at least one input, which includes a pointer to the output of the first transaction and a lock release script for unlocking the output of the first transaction.
[0335] In such a model, when a second target transaction is sent to the blockchain network to be propagated and recorded within the blockchain, one of the validity criteria applied at each node is that the unlock script satisfies all one or more conditions specified in the lock script of the first transaction. Another criterion is that the output of the first transaction has not already been redeemed by another valid transaction earlier. Any node that finds a target transaction invalid according to any of these conditions will neither propagate it (as a valid transaction, but in some cases to register an invalid transaction) nor include it in a new block to be recorded in the blockchain.
[0336] An alternative type of transaction model is the account-based model. In this case, each transaction specifies the amount to be transferred not by backward referencing the UTXO of a preceding transaction in a sequence of past transactions, but rather by referencing an absolute account balance. The current state of all accounts is accumulated and constantly updated by nodes separate from the blockchain.
[0337] Figure 1 shows an exemplary system 100 for implementing blockchain 150. System 100 may include a packet-switched network 101, i.e., a wide-area internet, typically such as the internet. The packet-switched network 101 may include a number of blockchain nodes 104 (often called "miners") that are configured to form a peer-to-peer (P2P) network 106 within the packet-switched network 101. Although not shown, the blockchain nodes 104 may be configured as a quasi-complete graph. Thus, each blockchain node 104 is highly connected to other blockchain nodes 104.
[0338] Each blockchain node 104 is equipped with the computer equipment of its peers, and different nodes 104 belong to different peers. Each blockchain node 104 is equipped with one or more processors, such as processing units comprising one or more central processing units (CPUs), accelerator processors, application-specific processors, and / or field-programmable gate arrays (FPGAs), and other equipment such as application-specific integrated circuits (ASICs). Each node also has memory, i.e., computer-readable storage in the form of one or more non-temporary computer-readable media. The memory may comprise one or more memory units employing one or more memory media, such as magnetic media such as hard disks, solid-state drives (SSDs), flash memory, or electronic media such as EEPROMs, and / or optical media such as optical disc drives.
[0339] Blockchain 150 comprises a chain of data blocks 151, with each copy of blockchain 150 maintained in each of the multiple blockchain nodes 104 within the distributed network or blockchain network 106. As mentioned above, maintaining a copy of blockchain 150 does not necessarily mean accumulating blockchain 150 as a whole. Instead, blockchain 150 may be a pruned version of the data, as long as each blockchain node 104 accumulates the block header (described below) of each block 151. Each block 151 in the chain comprises one or more transactions 152, where a transaction refers to a certain type of data structure. The nature of that data structure depends on the type of transaction protocol used as part of the transaction model or transaction scheme. A given blockchain uses one particular transaction protocol throughout.
[0340] Blockchain node 104 may be configured to forward transaction 152 to other blockchain nodes 104, thereby propagating transaction 152 across the entire network 106. Blockchain node 104 may be configured to create block 151 and store each copy of the same blockchain 150 in their respective memories. Blockchain node 104 may also maintain an ordered set (or “pool”) 154 of transactions 152 waiting to be incorporated into block 151. The ordered pool 154 is often referred to as a “mempool”. This term, as used herein, is not intended to be limited to any particular blockchain, protocol, or model. It refers to an ordered set of transactions that node 104 accepts as valid and that node 104 is obligated not to accept any other transaction attempting to consume the same output.
[0341] In a given current transaction 152j, its (or each) input comprises a pointer to the output of a preceding transaction 152i in the sequence of transactions, specifying that this output will be redeemed or "consumed" within the current transaction 152j. Consumption or redemption does not necessarily imply the transfer of a financial asset, but that is certainly one common application. More generally, consumption can be described as consuming an output, i.e., allocating it to one or more outputs in another transaction forward. Generally, a preceding transaction can be any transaction in an ordered set 154 or any block 151. The preceding transaction 152i does not necessarily need to exist at the time the current transaction 152j is created and sent to network 106, but the preceding transaction 152i must exist and be enabled for the current transaction to be valid. Therefore, "predecessor" as used herein does not necessarily refer to the time of creation or transmission in a temporal sequence, but rather to the predecessor in a logical sequence linked by pointers, and thus does not necessarily rule out the possibility that transactions 152i and 152j may be created or transmitted out of order (see the following explanation of orphan transactions). The predecessor transaction 152i may be equated with the antecedent transaction or the former transaction.
[0342] Due to the resources involved in transaction activation and publication, each of the blockchain nodes 104 typically takes the form of a server comprising one or more physical server units, or even an entire data center. However, in principle, any given blockchain node 104 may take the form of a user terminal, or a group of user terminals networked together.
[0343] The memory of each blockchain node 104 stores software configured to run on the processing unit of the blockchain node 104 in order to perform one or more of its respective roles and to process transaction 152 in accordance with the blockchain node protocol. It will be understood that any action attributed to blockchain node 104 herein may be performed by software running on the processing unit of each computer device. The node software may be implemented in one or more applications at the application layer, or in lower layers such as the operating system layer, the protocol layer, or any combination thereof.
[0344] Any given blockchain node may be configured to perform one or more of the following operations: validating transactions, storing transactions, propagating transactions to other peers, and performing consensus (e.g., proof-of-work) / mining operations. In some examples, each type of operation is performed by a different node 104; that is, nodes may specialize in a particular operation. For example, node 104 may focus on transaction validation and propagation, or on block mining. In some examples, blockchain node 104 may perform two or more of these operations in parallel. Any reference to blockchain node 104 may refer to an entity configured to perform at least one of these operations.
[0345] Furthermore, the computer devices 102 of each of the multiple parties 103 acting as consuming users are connected to the network 101. These users may interact with the blockchain network 106, but do not participate in activating transactions or building blocks. Some of these users or agents 103 may act as senders and receivers in transactions. Other users may interact with the blockchain 150 without necessarily acting as senders or receivers. For example, some parties may act as storage entities that store copies of the blockchain 150 (for example, by obtaining a copy of the blockchain from a blockchain node 104).
[0346] Some or all of the parties 103 may be connected as part of a different network, for example, as part of a network overlaid on top of the blockchain network 106. Users of the blockchain network (often referred to as “clients”) may be said to be part of the system including the blockchain network 106, but these users are not blockchain nodes 104 as they do not perform the required roles of blockchain nodes. Instead, each party 103 may interact with the blockchain network 106 and thereby utilize the blockchain 150 by connecting to (i.e., communicating with) the blockchain nodes 104. Two parties 103 and their respective devices 102, namely the first party 103a and their respective computer devices 102a, and the second party 103b and their respective computer devices 102b, are shown for illustrative purposes. It will be understood that many more such parties 103 and their respective computer devices 102 may exist and participate in the system 100, but for convenience they are not shown. Each party 103 may be an individual or an organization. For purely illustrative purposes, the first party 103a is referred to as Alice and the second party 103b as Bob in this specification, but it should be understood that this is not limiting, and any reference to Alice or Bob in this specification may be replaced with "the first party" and "the second party," respectively.
[0347] Each computer device 102 of Party 103 comprises a processing unit comprising one or more processors, for example, one or more CPUs, GPUs, other accelerator processors, application-specific processors, and / or FPGAs. Each computer device 102 of Party 103 further comprises memory, i.e., computer-readable storage in the form of one or more non-temporary computer-readable media. This memory may comprise one or more memory units employing one or more memory media, for example, magnetic media such as hard disks, SSDs, flash memory, or electronic media such as EEPROMs, and / or optical media such as optical disc drives. The memory on each computer device 102 of Party 103 stores software comprising at least one instance of a client application 105 configured to run on the processing unit. It will be understood that any action attributed to a given Party 103 herein can be performed using the software running on the processing unit of each computer device 102. Each party 103's computer equipment 102 includes at least one user terminal, such as a desktop or laptop computer, tablet, smartphone, or wearable device such as a smartwatch. A given party 103's computer equipment 102 may also include one or more other networked resources, such as cloud computing resources, accessed via the user terminal.
[0348] The client application 105 may initially be provided to the computer equipment 102 of any given party 103 on one or more suitable computer-readable storage media, for example, by downloading from a server, or on a removable storage device such as a removable SSD, flash memory key, removable EEPROM, removable magnetic disk drive, magnetic floppy disk or tape, optical disk such as a CD or DVD ROM, or removable optical drive.
[0349] The client application 105 includes at least a “wallet” function, which has two main functions. One of these is to enable each party 103 to create, authorize (e.g., sign) a transaction 152, send it to one or more blockchain nodes 104, and then propagate it across the entire network of blockchain nodes 104, thereby being included in blockchain 150. The other is to report back to each party the amount of digital assets they currently own. In an output-based system, this second function includes matching the amounts defined in the outputs of various transactions 152 distributed across blockchain 150 belonging to the party in question.
[0350] Note: While various client functionalities may be described as being integrated into a given client application 105, this is not necessarily limited. Instead, any client functionality described herein may instead be implemented in a set of two or more separate applications that interface via an API, for example, or one being a plug-in to the other. More generally, client functionalities may be implemented at the application layer, or at lower layers such as the operating system, or any combination thereof. The following description will be based on client application 105, but it should be understood that this is not limited.
[0351] Each computer device 102 instance of a client application or software 105 is operably coupled to at least one of the blockchain nodes 104 of the network 106. This allows the wallet function of client 105 to send transaction 152 to the network 106. Client 105 can also contact a blockchain node 104 to query the blockchain 150 for any transaction to which each party 103 is the recipient (or, in embodiments, to actually examine the transactions of other parties in the blockchain 150, since the blockchain 150 is a public facility that provides trust in transactions, partly through its public visibility). The wallet function on each computer device 102 is configured to organize and send transaction 152 according to the transaction protocol. As described above, each blockchain node 104 runs software configured to validate transaction 152 according to the blockchain node protocol and to forward transaction 152 to propagate them across the entire blockchain network 106. Transaction protocols and node protocols correspond to each other; a given transaction protocol is used together with a given node protocol to implement a given transaction model. The same transaction protocol is used for all transactions 152 in blockchain 150. The same node protocol is used by all nodes 104 in network 106.
[0352] An alternative type of transaction protocol, powered by several blockchain networks, is sometimes referred to as an "account-based" protocol as part of the account-based transaction model. In the account-based example, each transaction specifies the amount to be transferred not by retrospectively referencing the UTXO of a preceding transaction in a sequence of past transactions, but rather by referencing an absolute account balance. The current state of all accounts is accumulated and constantly updated by nodes of that network, separate from the blockchain. In such a system, transactions are ordered using the account's running transaction account (also called a "position" or "nonce"). This value is signed by the sender as part of their cryptographic signature and hashed as part of the transaction reference calculation. In addition, an optional data field may also be signed by the transaction. This data field may point backward to a previous transaction, for example, if the data field contains a previous transaction ID.
[0353] Several account-based transaction models share some similarities with the output-based transaction models described herein. For example, as mentioned above, the data fields of an account-based transaction may point backward to a previous transaction, which is equivalent to the input of an output-based transaction, referencing the output point of the previous transaction. Thus, both models enable links between transactions. As another example, an account-based transaction includes a “recipient” field (where the receiving address of the account is specified) and a “value” field (where the amount of the digital asset may be specified). Together, the recipient and value fields are equivalent to the output of an output-based transaction, which may be used to assign the amount of the digital asset to a blockchain address. Similarly, an account-based transaction has a “signature” field containing a signature for the transaction. The signature is generated using the sender’s private key and verifies that the sender authorizes this transaction. This is equivalent to the input / unlock script of an output-based transaction, which typically includes a signature for the transaction. Once both types of transactions are submitted to their respective blockchain networks, the signature may be checked to determine whether the transaction is valid and recorded on the blockchain. In an account-based blockchain, a “smart contract” refers to a transaction that includes a script configured to perform one or more actions (for example, sending or “releasing” a digital asset to a receiving address) in response to one or more conditions defined by the smart contract's script being met by one or more inputs (provided by the transaction). A smart contract exists as a transaction on the blockchain and can be invoked (or triggered) by a subsequent transaction.Therefore, in some examples, a smart contract can be considered equivalent to a lock script for an output-based transaction that can be triggered by a subsequent transaction, checking whether one or more conditions defined by the lock script are met by the input of the subsequent transaction.
[0354] 3. UTXO base model Figure 2 shows an exemplary transaction protocol, which is an example of a UTXO-based protocol. A transaction 152 (abbreviated as "Tx") is the fundamental data structure of blockchain 150 (each block 151 contains one or more transactions 152). The following will be described by reference to output-based or "UTXO"-based protocols. However, this does not necessarily limit all possible embodiments. While the exemplary UTXO-based protocol is described with reference to Bitcoin, it should be noted that it can be equally implemented in other exemplary blockchain networks.
[0355] In the UTXO-based model, each transaction ("Tx") 152 comprises a data structure having one or more inputs 202 and one or more outputs 203. Each output 203 may have an unspent transaction output (UTXO) that can be used as a source for the input 202 of another new transaction (if the UTXO has not already been redeemed). The UTXO contains a value that specifies the amount of the digital asset, which represents a set number of tokens on the distributed ledger. The UTXO may also contain, among other information, the transaction ID of the transaction from which the UTXO originated. The transaction data structure may also comprise a header 201, which may include an indicator of the size of the input fields 202 and the output fields 203. The header 201 may also contain the ID of the transaction. In an embodiment, the transaction ID is a hash of the transaction data (excluding the transaction ID itself) and is stored in the header 201 of the raw transaction 152 submitted to node 104.
[0356] For example, Alice 103a wants to create transaction 152j to transfer a certain amount of the digital asset in question to Bob 103b. In Figure 2, Alice's new transaction 152j is labeled "Tx1". It takes a certain amount of the digital asset locked in Alice in the output 203 of the preceding transaction 152i in the sequence and transfers at least some of this to Bob. The preceding transaction 152i is labeled "Tx0" in Figure 2. Tx0 and Tx1 are merely arbitrary labels. They do not necessarily mean that Tx0 is the first transaction in blockchain 150, or that Tx1 is the next transaction in pool 154. Tx1 could point backward to any preceding (i.e., ancestor) transaction that still has the unspent output 203 locked in Alice.
[0357] In the context of a transaction sequence, the terms “preceding” and “subsequent” as used herein refer to the order of transactions in a sequence, as defined by transaction pointers specified within the transaction (such as which transaction points to which other transactions later). They can be equally replaced with “former” and “successor,” or “ancestor” and “descendant,” “parent” and “child,” or similar terms. This does not necessarily imply the order in which they are created, sent to network 106, or arrive at any given blockchain node 104. However, a subsequent transaction (descendant transaction or “child”) that points to a preceding transaction (ancestor transaction or “parent”) will not be activated until the parent transaction is activated, and unless the parent transaction is activated. A child that arrives at blockchain node 104 before its parent is considered an orphan. Depending on the node protocol and / or node behavior, orphans may be discarded or buffered for a period of time while waiting for their parent.
[0358] One of the one or more outputs 203 of the preceding transaction Tx0 contains a specific UTXO, here labeled UTXO0. Each UTXO contains a value specifying the amount of the digital asset represented by the UTXO, and a lock script that specifies the conditions that must be met by the unlock script in the subsequent transaction's input 202 in order for the subsequent transaction to be activated and therefore for the UTXO to be successfully redeemed.
[0359] A lock script (also called scriptPubKey) is a snippet of code written in a domain-specific language recognized by the node protocol. A specific example of such a language is called "Script" (uppercase S), used by blockchain networks. The lock script specifies what information is needed to consume transaction output 203, for example, the requirement for Alice's signature. The lock script appears in the output of the transaction. An unlock script (also called scriptSig) is a snippet of code written in a domain-specific language that provides the information needed to satisfy the lock script criteria. For example, it may include Bob's signature. The unlock script appears in input 202 of the transaction.
[0360] Therefore, in the illustrated example, the UTXO0 in output 203 of Tx0 is signed by Alice Sig P for the UTXO0 to be redeemed (more precisely, for subsequent transactions attempting to redeem the UTXO0 to be valid). A Lock script that requires [Checksig P A [Equipped with] [Checksig P A ] is the public key P from Alice's public key-private key pair. A The notation (i.e., hash) is included. Input 202 of Tx1 includes a pointer that points backward to Tx1 (by its transaction ID, i.e., TxID0, which in this embodiment is the hash of the entire transaction Tx0). Input 202 of Tx1 includes an index that identifies the UTXO0 in Tx0 to identify it among any other possible outputs of Tx0. Input 202 of Tx1 includes an unlock script with Alice's cryptographic signature, which is created by Alice applying her private key from a key pair to a default portion of the data (sometimes called a "message" in cryptography). <Sig P A>Furthermore, the data (or "message") that needs to be signed by Alice to provide a valid signature may be defined by a lock script, by the node protocol, or a combination thereof.
[0361] When a new transaction Tx1 arrives at blockchain node 104, the node applies the node protocol. This involves executing the lock script and the unlock script together to check whether the unlock script satisfies the conditions specified in the lock script (if this condition may have one or more criteria).
[0362] Note that script code is often expressed in a general way (i.e., without using a strict language). For example, arithmetic codes (opcodes) may be used to represent specific functions. "OP_..." refers to a specific opcode in the Script language. For example, OP_RETURN is a Script language opcode that, when preceded by OP_FALSE at the beginning of a lock script, creates a non-consumable output of a transaction that allows data to be stored within the transaction, thereby immutably recording the data in blockchain 150. For example, the data may consist of documents that are desired to be stored in the blockchain.
[0363] Typically, the input to a transaction is the public key P A This includes a corresponding digital signature. In embodiments, this is based on ECDSA using the elliptic curve secp256k1. The digital signature signs a specific fragment of data. In some embodiments, for a given transaction, the signature signs some or all of the transaction inputs and some or all of the transaction outputs. The specific portion of the output it signs depends on the SIGHASH flag. The SIGHASH flag is a 4-byte code typically included at the end of the signature to select which outputs are signed (and therefore fixed at the time of signing).
[0364] A lock script is sometimes referred to as a “scriptPubKey,” referring to the fact that it typically contains the public key of the party to which each transaction is locked. An unlock script is sometimes referred to as a “scriptSig,” referring to the fact that it typically supplies the corresponding signature. However, more generally, the requirement that a UTXO be redeemed includes authenticating a signature is not mandatory in all blockchain applications. More generally, a scripting language may be used to define any one or more conditions. Thus, the more general terms “lock script” and “unlock script” may be preferred.
[0365] 4. Side Channels As shown in Figure 1, the client applications on Alice's and Bob's computer devices 102a and 102b, respectively, may have additional communication functionality. This additional functionality allows Alice 103a to establish a separate side channel 301 with Bob 103b (instinctively by either the parties or a third party). The side channel 301 allows for the exchange of data independently of the blockchain network. Such communication is sometimes called “off-chain” communication. For example, it may be used to exchange transaction 152 between Alice and Bob without the transaction being (still) registered on the blockchain network 106 or entering the chain 150 until one of the parties chooses to broadcast it to the network 106. Sharing a transaction in this manner is sometimes called sharing a “transaction template.” A transaction template may not have one or more inputs and / or outputs required to form a complete transaction. Alternatively or additionally, the side channel 301 may be used to exchange any other transaction-related data, such as keys, agreed amounts or conditions, or data content.
[0366] Side channel 301 may be established via the same packet-switched network 101 as blockchain network 106. Alternatively or additionally, side channel 301 may be established via a variety of networks, such as a mobile cellular network or a local area network such as a local wireless network, or even a direct wired or wireless link between Alice's device 102a and Bob's device 102b. Generally, side channel 301 as referenced anywhere in this specification may comprise one or more links via one or more networking technologies or communication media for exchanging data “off-chain,” i.e., independently of blockchain network 106. When two or more links are used, the bundle or collection of off-chain links as a whole may be referred to as side channel 301. Therefore, when it is said that Alice and Bob exchange some fragments or such of information or data via side channel 301, it should be noted that this does not necessarily imply that all these fragments of data must be sent via the exact same link or the same type of network.
[0367] 5. Client Software Figure 3A shows an exemplary implementation of a client application 105 for carrying out an embodiment of the scheme disclosed herein. The client application 105 comprises a transaction engine 401 and a user interface (UI) layer 402. The transaction engine 401 is configured to perform the transaction-related functionalities underlying the client 105, such as organizing transactions 152, receiving and / or sending transactions and / or other data via side channels 301, and / or sending transactions to one or more nodes 104 to be propagated through the blockchain network 106, in accordance with the scheme described above and as will be briefly described in more detail.
[0368] The UI layer 402 is configured to render a user interface via the user input / output (I / O) means of each user's computer device 102, including outputting information to each user 103 via the user output means of the device 102 and receiving input back from each user 103 via the user input means of the device 102. For example, the user output means may include one or more display screens (touchscreen or non-touchscreen) for providing visual output, one or more speakers for providing audio output, and / or one or more haptic output devices for providing haptic output. The user input means may include, for example, one or more touchscreen input arrays (same or different as those used for the output means), one or more cursor-based devices such as a mouse, trackpad, or trackball, one or more microphones and voice or speech recognition algorithms for receiving voice or speech input, one or more gesture-based input devices for receiving input in the form of hand or body gestures, or one or more mechanical buttons, switches, or joysticks.
[0369] Note: While various functionalities described herein may be described as being integrated within the same client application 105, this is not necessarily limited to them. Instead, they may be implemented within a pair of two or more separate applications, for example, one being a plug-in into the other, or interfaced via an API (Application Programming Interface). For example, the functionality of the transaction engine 401 may be implemented in an application separate from the UI layer 402, or the functionality of a given module, such as the transaction engine 401, may be divided among two or more applications. It is not excluded that some or all of the functionalities described may be implemented, for example, at the operating system layer. Wherever a single or given application 105 or such is referenced anywhere in this specification, it should be understood that this is merely an example, and more generally, the functionalities described may be implemented in any form of software.
[0370] Figure 3B provides a mockup of an example of a user interface (UI) 500 that may be rendered by the UI layer 402 of the client application 105a on Alice's device 102a. It will be understood that a similar UI may be rendered by a client 105b on Bob's device 102b or any other party's device.
[0371] As an example, Figure 3B shows UI500 from Alice's perspective. UI500 may include one or more UI elements 501, 502, 503 which are rendered as separate UI elements via a user output means.
[0372] For example, the UI elements may comprise one or more user-selectable elements 501, which may be various on-screen buttons, or various options in a menu, or the like. User input means are configured to allow user 103 (in this case, Alice 103a) to select or otherwise interact with one of the options, such as by clicking or touching the UI elements on the screen, or by speaking the name of the desired option (Note: The term “manual” as used herein is intended solely in contrast to “automatic” and is not necessarily limited to the use of one or more hands).
[0373] Alternatively or additionally, a UI element may include one or more data entry fields 502 through which a user can interact. These data entry fields may be rendered, for example, on a screen via user output means, and data may be entered into the fields via user input means, such as a keyboard or touchscreen. Alternatively, data may be received orally, for example, based on speech recognition.
[0374] Alternatively or additionally, a UI element may have one or more information element outputs for outputting information to the user. For example, these may be rendered on the screen or audibly.
[0375] It will be understood that the specific means of rendering various UI elements, selecting options, and inputting data are not physical objects. The functionality of these UI elements will be explained in more detail and briefly. It will also be understood that UI500 shown in Figure 3 is merely a diagrammatic mockup, and that in reality, it may have one or more additional UI elements that are not shown for the sake of brevity.
[0376] 6. Node Software Figure 4 shows an example of node software 450 running on each blockchain node 104 of network 106 in an example of a UTXO-based or output-based model. Note that another entity may run the node software 450 without being classified as a node 104 on network 106, i.e., without performing the actions required of a node 104. The node software 450 may include, but is not limited to, a protocol engine 451, a scripting engine 452, a stack 453, an application-level determination engine 454, and a set of one or more blockchain-related functional modules 455. Each node 104 may run node software that includes one or more of the following: a consensus module 455C (e.g., proof-of-work), a propagation module 455P, and a storage module 455S (e.g., a database). The consensus module 455C may include an enablement module (not shown) configured to enable transactions according to the blockchain protocol. The enablement module may, instead, be separate from the consensus module 455C. One or more of the modules may operate in parallel. Node 104 may include additional modules. The protocol engine 451 is typically configured to recognize different fields of transaction 152 and process them according to the node protocol. m-1 Transaction 152j(Tx) has an input that points to the output (e.g., UTXO) of ) j When ) is received, the protocol engine 451 then sends Tx j Identify the unlock script within and pass it to script engine 452. Protocol engine 451 also handles Tx j Based on the pointer in the input, Tx i Identify and extract. Transactions are processed on blockchain 150. i A transaction may be issued, in which case the protocol engine will take a copy of block 151 of blockchain 150 stored at node 104 and send a transaction. iYou may extract it. Alternatively, Tx i It may not have been issued yet on blockchain 150. In that case, the protocol engine 451 will retrieve the Tx from the ordered set of unissued transactions 154 maintained by node 104. i You may extract it. In any case, protocol engine 451 will Tx i Identify the lock script in the referenced output and pass it to script engine 452.
[0377] Script engine 452 is Tx i Lock script and Tx j The corresponding inputs have unlock scripts in this manner. For example, transactions labeled Tx0 and Tx1 are shown in Figure 2, but the same can be applied to any pair of transactions. The script engine 452 executes the two scripts together as previously described, which involves placing data on and off the stack 453 according to the stack-based scripting language being used (e.g., Script).
[0378] By executing the scripts together, the script engine 452 determines whether the unlock script satisfies one or more criteria specified in the lock script—that is, whether the unlock script "unlocks" the output contained within the lock script. The script engine 452 returns the result of this decision to the protocol engine 451. If the script engine 452 determines that the unlock script satisfies one or more criteria specified in the corresponding lock script, it returns a result of "true." Otherwise, the script engine 452 returns a result of "false."
[0379] In the output-based model, the result "true" from script engine 452 is one of the conditions for transaction validity. Typically, Tx jThe total amount of digital assets specified in the output does not exceed the total amount indicated by its input, and Tx i There are also one or more further protocol-level conditions, which must be satisfied and are evaluated by the protocol engine 451, such as that the indicated output has not already been consumed by another valid transaction. The protocol engine 451 evaluates the result from the script engine 452 together with one or more protocol-level conditions, and only if they are all true does transaction Tx j Do not enable it. The protocol engine 451 outputs an indication to the application-level determination engine 454 whether the transaction is valid. Tx j Only under the condition that it is indeed enabled, the decision engine 454 will Tx j You may choose to control both the consensus module 455C and the propagation module 455P to perform their respective blockchain-related functions. This means that the consensus module 455C will send Tx to each ordered set 154 of the transaction nodes to be incorporated into block 151. j Adding the propagation module 455P to another blockchain node 104 in network 106 will enable Tx j The system includes forwarding the data. Optionally, in the embodiment, the application-level decision engine 454 may apply one or more additional conditions before triggering any or both of these functions. For example, the decision engine may choose to issue a transaction only on the condition that both transactions are valid and leave sufficient transaction fees.
[0380] It should be noted that the terms “true” and “false” as used herein are not necessarily limited to returning results expressed solely as a single binary digit (bit), although this is certainly one possible implementation. More generally, “true” can refer to any state indicating a successful or positive outcome, and “false” can refer to any state indicating a failed or negative outcome. For example, in an account-based model, a “true” outcome may be indicated by a combination of implicit protocol-level verification of the signature and an additional positive output from the smart contract (if both individual outputs are true, the overall result is considered to signal true).
[0381] 7. Further special notes As the disclosures herein are given, other variations or uses of the techniques disclosed may become apparent to those skilled in the art. The scope of this disclosure is limited solely by the appended claims and not by the embodiments described herein.
[0382] For example, some of the embodiments described above relate to a Bitcoin network 106, a Bitcoin blockchain 150, and a Bitcoin node 104. However, it should be understood that the Bitcoin blockchain is just one specific example of blockchain 150, and the above description may generally apply to any blockchain. That is, the present invention is by no means limited to the Bitcoin blockchain. More generally, any above references to Bitcoin network 106, Bitcoin blockchain 150, and Bitcoin node 104 may be replaced with references to blockchain network 106, blockchain 150, and blockchain node 104, respectively. Blockchains, blockchain networks, and / or blockchain nodes may share some or all of the described characteristics of Bitcoin blockchain 150, Bitcoin network 106, and Bitcoin node 104 as described above.
[0383] In a preferred embodiment of the present invention, the blockchain network 106 is a Bitcoin network, and the Bitcoin node 104 performs at least all of the described functions, including creating, issuing, propagating, and accumulating a block 151 of the blockchain 150. It is not excluded that there may be other network entities (or network elements) that perform only one or some of these functions, rather than all of them. That is, a network entity may perform the function of propagating and / or accumulating blocks without creating and issuing blocks (it should be noted that these entities would not be considered nodes of the preferred Bitcoin network 106).
[0384] In other embodiments of the present invention, the blockchain network 106 does not have to be a Bitcoin network. In these embodiments, it is not excluded that a node may perform at least one or part of, but not all, of the functions of creating, issuing, propagating, and accumulating blocks 151 of blockchain 150. For example, in those other blockchain networks, “node” may be used to refer to a network entity configured to create and issue blocks 151 but not to accumulate those blocks 151 and / or propagate them to other nodes.
[0385] More generally, any reference to the term “Bitcoin node” 104 above may be replaced with the term “network entity” or “network element,” such entities / elements configured to perform some or all of the roles of creating, issuing, propagating, and accumulating blocks. The functionality of such network entities / elements may be implemented in hardware in a similar manner to that described above with reference to blockchain nodes 104.
[0386] Several embodiments have been described regarding blockchain networks implementing a proof-of-work consensus mechanism to secure the underlying blockchain. However, proof-of-work is only one type of consensus mechanism, and generally, embodiments may use any type of preferred consensus mechanism, such as proof-of-stake, delegated proof-of-stake, proof-of-capacity, or proof-of-elapsed time. As a specific example, proof-of-stake uses a randomized process to determine which blockchain node 104 will be given the opportunity to generate the next block 151. The node chosen is often called a validator. Blockchain nodes can hoard their tokens for a certain period of time to have the opportunity to become a validator. Generally, the node that locks the largest contribution for the longest period of time has the best opportunity to become the next validator.
[0387] It should be understood that the embodiments described above are merely illustrative. More generally, methods, apparatus, or programs may be provided by any one or more of the following statements.
[0388] term Without limitation, the following terms may be used in this specification as provided below. "Processing" includes, but is not limited to, one or more of the following: generating, storing, transmitting (over an electronic network), transferring control thereof, accessing, viewing, or modifying. "Acquiring" includes any means of obtaining possession of any entity, including generating, calculating, selecting, or receiving from one or more sources. • The terms “Asset,” “Resource,” and “Item” may be used interchangeably and are intended to include physical, virtual, or digital assets / resources / items. "Digital asset" may mean any asset that is processed or stored on an electronic processing device, or that can be processed or stored, and may include a portion of digital content / data. In some cases, a digital asset may be, or include, a digital representation of a physical or virtual asset, such as a scan, photograph, recording, or other electronic version of a physical or virtual asset, and the content, purpose, or format of a digital asset is not limited, and for example, a digital asset may include, but is not limited to, digital content such as images, sounds, videos, computer code. "SVD-based digital assets" may mean digital assets obtained using Singular Value Decomposition (SVD) in accordance with any embodiment of this disclosure. "User" may mean one person or group of people or one computer-based resource or group of computer-based resources, for example, at least one person may be a token creator or token administrator, a creator or controller of an asset which may or may not be a digital asset, such as an artist or designer or manufacturer, and at least one computer-based resource may, in some examples, comprise processor-based hardware and at least one portion of executable code which, when executed on the hardware, is operable to perform one or more of the method steps disclosed and / or claimed herein. The phrases "derived from" and "based on" may be used interchangeably. The term "blockchain-based asset / token" may be used to refer to a digital asset / token, i.e., one that can be stored in a blockchain ledger, and the token may be a fungible or nonfungible token (NFT), and may be formed according to any known suitable tokenization protocol, and in some cases, the blockchain-based asset / token may have an identifier and / or metadata to uniquely identify the underlying (base) asset that the token represents, and the blockchain-based asset / token may have or be associated with logical code relating to the creation or use of the asset / token, such as a smart contract, and the term "SVD-based blockchain asset / token" may be used herein interchangeably with "blockchain-based asset / token". "Transfer" may mean the transfer of an entity, such as a digital, physical, or virtual asset, or the transfer of control or ownership of that entity. A “component” may comprise elements of an entity, and the term may be used interchangeably with “portion,” “part,” “element,” or “sub-component.” • For convenience, “control” and “ownership” may be used interchangeably herein, but it should be noted that they are not necessarily synonymous. For example, an entity (such as an individual, organization, or designated group) may have control over an asset on behalf of the owner, and such control may be authorized by the owner. In some cases, the term “owner / ownership” may refer to a control hierarchy, where the highest level of control belongs to the owner, and (potentially temporary) authorization / control is delegated to or shared with a third party holding control. As used herein, “Bitcoin” is intended to include all protocols and implementations that are derived from or deviate from the original protocol described by Satoshi Nakamoto in the Bitcoin white paper, “Bitcoin: a peer-to-peer electronic cash system,” 2008. The Bitcoin blockchain is the most widely known and may be referred to herein for convenience. However, embodiments of this disclosure are not limited to this, and other blockchain protocols and implementations, whether or not they are derived from the original Bitcoin protocol, fall within the scope of this disclosure. In this specification, any use or reference to the term “cryptocurrency” may be replaced with and / or used interchangeably with “token,” “asset,” or “protocol-specific transfer item.” The term “Bitcoin” may be replaced with and / or used interchangeably with “blockchain protocol” or “one or more examples of blockchain protocols.” [Explanation of symbols]
[0389] 100 Systems 101 Packet-switched network 102 Computer equipment and devices 103 Parties, Users, Agents 103a The first party, Alice 103b The second party, Bob 104 blockchain nodes, Bitcoin nodes 105 Client Applications 106 Blockchain networks, peer-to-peer (P2P) networks, Bitcoin networks 150 blockchains, blockchain ledgers, Bitcoin blockchain 151 blocks 152 blockchain transactions 154 ordered sets, ordered pools 201 Header 202 Input, Input Field 203 Output, Output Fields 301 Side Channel 401 Transaction Engine 402 User Interface (UI) Layer 450 node software 451 Protocol Engine 452 Script Engine 453 stacks 454 Application Level Determination Engine 455 Blockchain-related functional modules 455C Agreement Module 455P propagation module 455S Memory Module 500 User Interfaces (UI) 501 User-selectable elements 502 Data Entry Field 503 Information Element
Claims
1. A method performed by a computer, Steps to generate, store, or transfer blockchain-based assets derived from or associated with at least one SVD-based digital asset (SVD-DA) obtained using singular value decomposition (SVD) of one or more initial digital assets (DAs). A method for providing this.
2. i) A step of obtaining the SVD matrix of one or more initial digital assets (DAs), ii) A step of modifying at least one matrix of the SVD matrix in order to generate a modified version of the SVD matrix, iii) A step of generating the SVD-based digital asset (SVD-DA) from the modified version of the SVD matrix. The method according to claim 1, further comprising one or more of the above.
3. i) A step of representing the initial digital assets (DA) as a matrix (A), ii) A step of using the matrix (A) to obtain the SVD matrix of the initial digital asset (DA), iii) A step of modifying at least one matrix of the obtained SVD matrix in order to provide a modified version of the SVD matrix, iv) Multiplying the modified version of the SVD matrix in order to provide the SVD-based digital asset (SVD-DA) The method according to claim 1 or 2, further comprising one or more of the above.
4. The step of modifying at least one matrix of the SVD matrix is: i) A step that uses a random or pseudo-random modification operation, and / or ii) Equipped with a substitution operation, The method according to claim 2 or 3.
5. The SVD is obtained from the plurality of initial digital assets (DAs), and the method is i) A step of selecting or otherwise obtaining the SVD matrix of the plurality of initial digital assets, ii) A step of selecting or otherwise obtaining a column vector, iii) A step of generating the SVD-based digital asset (SVD-DA) from a new column vector based on the selected column vector. The method according to claim 1, further comprising one or more of the above.
6. i) A step in which the plurality of initial digital assets (DA) are represented as a matrix (A) having a plurality of column vectors, wherein each column vector represents an initial digital asset among the plurality of initial digital assets (DA), ii) A step of using the matrix (A) to obtain the SVD matrix of the plurality of initial digital assets (DA), iii) A step of selecting or otherwise obtaining a column vector, iv) A step of generating a new column vector, preferably the generation comprising a linear combination of vectors, v) Reshaping the column vector in order to generate the SVD-based digital asset. The method according to claim 1 or 5, further comprising one or more of the above.
7. The step further comprises modifying at least one matrix of the SVD matrix, Preferably, the modification step is i) A step that uses a random or pseudo-random modification operation, and / or ii) Equipped with a substitution operation, The method according to claim 5 or 6.
8. Steps to generate a set of SVD-based digital assets (SVD-DA) based on one or more initial digital assets (DAs) The method according to any one of claims 1 to 7, further comprising:
9. i) The set of SVD-based digital assets is generated based on the initial digital assets (DA), and the method is The step of modifying at least one matrix of the SVD matrix is further repeated at least once in order to generate a modified version of the SVD matrix, or ii) The set of SVD-based digital assets (SVD-DA) is generated based on the plurality of initial digital assets (DA), and the method The method further comprises the step of repeating the step of selecting or otherwise obtaining a column vector at least once. The method according to claim 8.
10. The aforementioned blockchain-based token is i) Having a token ID and / or metadata associated with the tokenized asset, and / or ii) One or more physical, virtual, or digital tokenized assets that are associated with or represent such assets. Preferably, the tokenized asset is a work of art, computer code such as source code or executable code, data relating to one or more individual people, and / or iii) Minted and / or controlled by a portion of machine executable code, and / or iv) Non-fungible tokens (NFTs) The method according to any one of claims 1 to 9.
11. A method for generating blockchain-based non-fungible tokens (NFTs), The steps involve using Singular Value Decomposition (SVD) to generate at least one SVD-based digital asset (SVD-DA), The aforementioned at least one SVD-based digital asset (SVD-DA) Logical code for influencing the creation or use of the aforementioned NFT, An identifier for uniquely identifying the aforementioned NFT and / or at least one SVD-based digital asset (SVD-DA), Metadata related to the aforementioned NFT and / or at least one SVD-based digital asset (SVD-DA) The step of associating with one or more of the following A method for providing this.
12. The step of generating the at least one SVD-based digital asset (SVD-DA) comprises the step of obtaining the SVD of one or more initial digital assets. The method according to claim 11, further comprising:
13. i) The logical code, identifier, metadata, and / or at least one SVD-based digital asset (SVD-DA) is stored in at least one transaction on the blockchain, and / or ii) The logical code comprises machine-executable code that, when executed, tests at least one condition and, if the condition is met, performs at least one condition-based action. The method according to claim 11 or 12.
14. Computer equipment, A memory comprising one or more memory units, A processing unit comprising one or more processing units, wherein the memory stores code configured to be executed on the processing unit, and the memory is configured to execute the method according to any one of claims 1 to 13 when the code is on the processing unit. Computer equipment.
15. A computer-based system configured to carry out the method described in any one of claims 1 to 13, Computer equipment according to claim 14, Digital wallet, Currency exchange platform, Nodes on a blockchain network A system further comprising one or more of the following.
16. A computer program, which is implemented on computer-readable storage and, when executed on one or more processors, is configured to perform the method described in any one of claims 1 to 13, Optionally, the computer program comprises a logical code or smart contract associated with the token, and optionally, the token is a non-fungible token (NFT). The computer-readable storage is provided by or associated with a node on the blockchain network. Computer program.
Citation Information
Patent Citations
Determining a common secret for the secure exchange of information and hierarchical, deterministic cryptographic keys
WO2017145016A1
Improved hill cipher encryption based on blockchain
WO2023174629A1
Computer implemented methods & systems for improved security, encryption and communication of data
WO2023174633A1