"Method for executing smart contracts through electronic processing means using the blockchain technology"
DESCRIPTION
TECHNOLOGICAL BACKGROUND OF THE INVENTION
Field of application.
The present invention generally relates to the technical field of methods and systems for executing smart contracts via electronic processing means using blockchain technology.
In particular, the invention relates to a method and to a system for executing smart contracts which employ blockchain technology and provide appropriate approval and checking steps.
Description of the prior art.
The expression "smart contract" indicates a known, rapidly developing technological solution adapted to support the execution of contracts and transactions in a manner as automated as possible, making use of digital data processing via computer procedures implemented by software programs.
In particular, smart contracts are computer protocols intended to facilitate, verify or enforce the negotiation or execution of a contract.
Smart contracts aim at making many contractual clauses partially or fully self- executing and/or self-enforcing, in order to improve security and reduce the transaction costs associated with existing methods for executing contracts.
It is known that solutions based on "smart contract" may be advantageously supported by blockchain technology. Indeed, a smart contract may benefit from some peculiar characteristics of blockchains.
As known, a blockchain is a distributed database which maintains a list of records, named "blocks", constantly growing over time, protected by cryptographic algorithms to prevent to tampering and undue revision. Each block contains a timestamp and a logical connection to a previous block, usually calculated as a "hash" of the content of the previous block.
Due to the intrinsic design features, blockchains are inherently resistant to data changes: once recorded, the data in a block cannot be retroactively modified.
A blockchain type database can be managed independently, e.g. by using a peer- to-peer computer network which also provides a distributed timestamp.
So, blockchains constitute a distributed ledger which can record transactions between two or more parties in an efficient, verifiable and permanent manner.
From the point of view of hardware architecture, blockchains are supported by a distributed network of electronic computers which can replicate and store data produced locally during the transaction exchange. The strategy of replicating data can be appropriately pushed to a given point determined by a compromise between redundancy costs and overall robustness of the platform. Experience deriving from the use of blockchain technology for exchanging cryptocurrency has demonstrated that these networks are extremely robust against deliberate attacks or system malfunctions.
Essentially, smart contracts based on blockchain technology envisage a technology for software coding the verification of a set of prerequisites (e.g. , events which determine given results in a given moment of time), and a manner for executing the aforesaid software code by a predefined set of participants in an appropriate moment, in order to evaluate the results which must be implemented in light of events published on the blockchain. On the basis of the implementation of the aforesaid code, by the participants, it is established whether a consensus exists or not to perform the actions provided in the contract, for example., a transaction of digital resources (more commonly named "digital assets").
The limited experience available until today, relative to the practical application of the aforesaid concepts, shows that the approach described above can work when the contracts are very simple, and only in particular situations in which the occurrence of borderline cases, not predicted during the preparation of the code, is either absent or very limited.
On the contrary, serious problems have been encountered when the software implementation of contracts, as envisaged in the known smart contract solutions, was used and tested in real situations characterized by more complex legal structures.
Just to mention an example, the management of securitization processes determines cases which are very difficult or practically impossible to predict exhaustively in the preparation of the smart contract code.
Legal contracts in this context are extremely complex, because they must take into account of all the situations which may occur. Experience teaches us that, even in normal practice, it may be difficult to reach an agreement when external factors change suddenly.
In these cases, it is necessary to resort to human action, represented by the verdict of a court or by an arbitration activity, which falls completely beyond and outside an automated smart contract procedure. This nullifies the advantages of an automated smart contract type solution and in practice precludes the use of such a solution for a wide range of complex contracts.
In light of the above, the need is strongly felt for methods and systems for executing smart contracts via electronic processing means which better exploit the potentials of blockchain technology and which are improved in such a way to provide the technical performance needed to adapt the method to the most diverse situations: maintaining a nearly total process automation and therefore maximizing efficiency and rapidity, when there are no different requirements; or allowing a more incisive human verdict-making intervention, integrated as far as possible with the automatic smart contract procedure, if this is appropriate in light of the transaction complexity, or of disagreements or misunderstandings between the parties.
SUMMARY OF THE INVENTION
It is the object of the present invention to provide a method for executing smart contracts via electronic processing means using blockchain technology, which makes it possible at least in part to solve the drawbacks described above with reference to the prior art and to respond to the aforesaid needs particularly felt in the considered technical sector.
Such an object is achieved by a method according to claim 1.
Further embodiments of such a method are defined in claims from 2 to 1 1.
BRIEF DESCRIPTION OF THE DRAWINGS
Further features and advantages of such method according to the invention will be apparent in the following description which illustrates preferred embodiments, given by way of indicative, non-limiting examples, with reference to the accompanying figures, in which:
- figures 1-5 schematically show some steps of the method according to an embodiment of the present invention.
DETAILED DESCRIPTION
A method is described for executing, via electronic processing means using the blockchain technology, a smart contract 1 associated with a contract which involves a computer transaction between two or more contracting parties (e.g., P1 , P2).
The method, firstly, comprises the step of publishing, by storage on a shared computer infrastructure, a software code 10 of the smart contract 1. Such software code 10 is associated with one or more actions to be performed, after verification, in relation to the transaction associated with the smart contract 1.
The method then provides establishing a computer connection between the aforesaid code software 10 and an electronic copy of the text version 11 , readable by humans, of the associated contract. In this manner, the smart contract 1 comprises a set of digital data comprising the software code 10 of the smart contract 1 and the electronic copy of the text version 1 1 , available on a distributed blockchain platform 2.
The method further provides publishing, on the distributed blockchain platform, digital execution data 12 required for executing the one or more actions associated with the software code 10 of the smart contract 1.
It is then provided the step of either granting or not granting, in automatic manner, a validation based on the digital execution data 12 published on the distributed blockchain platform by each of a plurality of validation computer programs C, D, E, wherein each validation computer program C, D, E generates a positive or negative validation result; then, the step of calculating, using an algorithm executed by electronic processing means, a result RV of the obtained validation results, and either enabling or not enabling the continuation of the transaction on the basis of the validation result.
If continuation is enabled, the method provides evaluating the execution data published on the distributed blockchain platform, by each of the contracting parties (P1 , P2) by means of a respective associated approval computer program, to either approve or reject the transaction.
In case of approval by all contracting parties, the method provides proceeding with the execution of the transaction by performing the steps of publishing digital approval data 13 of the transaction on the distributed blockchain platform and of executing the computer transaction by the distributed blockchain platform.
If at least one of the contracting parties does not approve, an arbitration evaluation procedure is carried out.
Such arbitration evaluation procedure comprises the steps of evaluating the electronic text version 1 1 associated with the smart contract 1 , by one or more Arbitrators (G, H, L); and either approving or rejecting the transaction, on the basis of the aforesaid evaluation of the electronic text version, by the one or more Arbitrators (G, H, L). The possible approval takes place by using a digital signature or authentication procedure.
The method provides proceeding with the computer transaction execution, by the distributed blockchain platform 2, only in case of approval by the arbitration evaluation procedure.
With reference to figures 1-5, some details are now provided, by way of non-limiting example, of possible embodiments of the method of the invention.
In figure 1 , the step of publishing a software code 10 of the smart contract 1 and the step of establishing a computer connection between the software code 10 and the electronic copy of the text version 11 (both forming part of the smart contract 1) are respectively indicated by references S1 and S2.
In the illustrated example, the aforesaid steps S1 and S2 are performed by an
entity B (for example, a provider of smart-contract-type services, having access to a blockchain platform). Such entity B takes care of publishing, on the shared computer infrastructure (e.g. on a blockchain platform), the software code which defines the actions and the rules associated with the contract and the respective transaction.
As already noted, when published, such code is connected to the text version of the contract which is readable by humans, who can therefore interpret its meaning, if and when required.
In figure 2, the step of publishing digital execution data 12 is indicated by reference S3. This step makes it possible to code as software the verification of a set of prerequisites, e.g., events which produce results in given moments.
In the illustrated example, step S3 is performed by another entity O (sometimes named "oracle") which can be, for example, an ICT (Information and Communication Technology) service provider and/or a blockchain platform manager. Indeed, the participants typically deem it appropriate to appoint a third party to perform such publication. In this manner, a community of participants can verify the timing of the publication which is established by the timestamp of the blockchain itself. Therefore, the role of "oracle" can be performed by an ICT service supplier, the reliability of which is verified or recognized by all parties.
As mentioned above, the execution digital data 12 are those data needed to run the software code 10 and the actions associated with it.
In figure 3, the step of either granting or not granting a validation on the digital execution data 12 is indicated by reference S4. The validation is a preliminary verdict stage, executed automatically by a plurality of validation computer programs (C,D,E), each of which provides a result, on the basis of predefined formal or substantial rules. Such rules can be expressed by means of structured languages (e.g. "Decision Management and
Notation") which provide a manner for identifying patterns in the data, on the basis of which patterns decisions are taken. Alternatively, other languages may be used which provide a more free approach to the smart contract expression, such as for example those in use in Ethereum.
The step of either granting or not granting a validation is comparable to an automatic vote by a committee of "computer judges". This committee, in an implementation example, may also include the totality of the participants of the blockchain platform itself.
In an implementation option, if a validation computer program grants the validation, the result is expressed by means of a digital signature characteristic of the program itself, which can be stored on the blockchain platform.
The result of the overall vote RV is obtained by means of the step of calculating, indicated by reference S5, and executed by an appropriate calculation algorithm.
In several implementation options, various validation result calculation algorithms may be used. For example, an algorithm may be used which recognizes the digital validation signatures, counts them and decides whether the result of the validation is positive or negative according to whether the majority of validation programs has given consent or not; or according to whether a predefined number of consensuses has been reached or not; or, according to other known criteria, used within the context of digital multi- signature authorization.
It is worth noting that if the data are published on a blockchain platform accessible to the various concerned parties and the aforesaid algorithm is known and shared by the parties, any interested party may calculate and verify the validation result, with evident advantages in terms of transparency.
As shown in figure 3, if the validation result is negative, the process stops and the transaction is not performed. If the validation result is positive, the method proceeds with the step of evaluating, performed by the contracting parties, indicated by reference S6.
A sequential transaction is introduced at this point which requires the approval of the parties. The approval is supplied via approval computer programs, each associated respectively with each of the parties, which are configured to provide an approval on the basis of an input of the respective contracting party and/or on the basis of one or more predefined approval algorithms, operating in turn on the basis of several possible criteria and/or rules.
If all the parties agree that the execution of the code represents the intents of the contract, then all parties approve the transaction. Indeed, a consensus on the obtained result is achieved in an algorithmic manner, which enables the implementation of the actions envisaged in the contract (for example, transaction of digital asset). This specific scenario describes the situation of normal processing of transactions and regular application of the underlying contract.
Instead, if at least one of the parties raises objections, deeming that the execution of the code does not represent the correct interpretation of the contract, there will be no agreement on the result.
So, the decision is based on the presence or absence of a "consensus" (indicated by reference "UA" in the diagram of figure 3).
If there is unanimous consensus, the method proceeds with the step of executing the transaction (step indicated as S7 in figure 3), associated with a procedure called
"Approved Result", which firstly stores digital data 13 of approval of the transaction on a block of the distributed blockchain platform (as also shown in figure 5).
If instead there is no unanimous consensus, the arbitration evaluation procedure ("Request for Arbitration"), indicated in figure 3 by reference S8, is requested and performed.
According to the implementation option shown in figure 3, the completion of the transaction following the approval of the contracting parties and the arbitration evaluation procedure are mutually exclusive. In such case, by virtue of the mutually exclusive nature of the two procedures, they can be implemented as a single procedure with two alternative outcomes, i.e. steps S7 or S8. This implementation option is preferred, because it avoids possible stalling of the process.
Some example details of the arbitration evaluation procedure S8 (described above in general terms) are shown in figure 4.
The management of the arbitration evaluation requires the involvement of "Arbitrators" who are people able to evaluate the content of the contract on the basis of the text version 12 made available by the method.
The Arbitrators (G, H, L) act by means of computer programs both to retrieve the text of the contract (on which their verdict is based) and to provide approval or not, e.g., by means of a digital signature or other type of computer authorization, after having reached a verdict. The result of the arbitration procedure is based, in this step, on a "human" verdict of expert people, using the text of the contract, made available by the method, as an essential basis for the verdict. It is worth noting that, on the contrary, the aforesaid step of validating is based on a vote performed in a completely automated manner, by executing a software program and obtaining results derived from published data on the blockchain platform.
The evaluation of Arbitrators' verdict, i.e., the result RA of the arbitration procedure, is performed algorithmically, considering the authorization provided (or not) by each of the Arbitrators via computer. In different implementation options, the approval may be recognized automatically according to whether a majority or unanimity is reached or according to a minimum number of consensuses, or according to other criteria.
If approval is achieved (positive result RA), the method proceeds with the step of executing the transaction, i.e., with the aforesaid step S7, similar to that executed in the event of unanimous consent of the parties.
If approval is not obtained (negative result RA), the transaction will remain silent until expiry.
Ultimately, the step of executing the transaction S7, following the approval either by the unanimous parties (positive UA) or by the Arbitrators (positive RA) determines the publication, on the blockchain, of a predefined transaction identifier, which enables the last step of the method, i.e. , the actual execution of the transaction (e.g., the transfer of digital assets).
In figure 5, by way of example, the predefined identifier of the parties' unanimous approval is indicated as ID1 , while the predefined identifier of the arbitration approval is indicated as ID2.
The execution of the transaction can be supported by the entity which manages the blockchain and by the timestamping procedure of blockchain itself.
If neither authorization identifiers are published within a time period, which is also established and registered in blockchain (indicated as "Texp" in figure 5), the potential transaction will expire after this period. Obviously, in such case, the transfer of digital assets does not occur.
According to different possible implementation options, the method may comprise further steps dependent on the specific contract type (e.g. , associated with additional clauses, such as for example an escrow before activating the arbitration procedure). The implementation of these variants of the method can be easily understood by a person skilled in the art.
According to an embodiment of the method, the step of publishing S1 a software code of the smart contract comprises storing the software code 10 on the blockchain platform 2.
According to an alternative embodiment, the step of publishing S1 a software code of the smart contract comprises issuing a "hash" of the code and an address of a shared infrastructure where the code is stored and accessible.
According to an embodiment of the method, the step of establishing S2 a computer connection between the software code 10 and the electronic copy of the text version 11 comprises publishing the software code 10 and the electronic copy of the text version 1 1 in a same block of the blockchain 2.
According to an alternative embodiment, the step of establishing S2 a computer connection between the software code 10 and the electronic copy of the text version 1 1 comprises publishing a "hash code" of the combination of the software code 10 and the electronic copy of the text version 1 1.
In either case, after completing the aforesaid step S2, the smart contract is an indissoluble combination of software code 10 and text version 1 1.
According to an embodiment of the method, the software code of the smart contract implements rules and/or procedures associated with the transaction.
These rules and procedures may be relevant for one or more parties: indeed, various entities may be involved in the definition and/or in the verification and/or in the enabling and/or in the execution of these rules or procedures.
In an implementation option, each of aforesaid validation computer programs C, D, E executes validation procedures based on published rules.
According to an embodiment of the method, each of the approval computer programs is configured to provide a computer approval based on an input of the respective contracting party (P1 , P2) and/or based on one or more predefined approval algorithms.
According to an implementation option, the aforesaid one or more predefined approval algorithms operate on the basis of one or more parameters which can be defined and set by the respective contracting party.
According to a typical implementation example, the computer transaction between two or more contracting parties (P1 , P2) comprises a transfer of digital assets.
The method described above may be used for smart contracts of the most diverse kinds, in all contract contexts. An example of application is provided below, by way of mere example, in a context in which the advantages of the method are particularly apparent.
The example relates to the financial context, in which there may be the need of securitizing a set of contracts and goods into aggregates having a much greater size. The securitization process takes place today, typically, in "package mode": an operator, who assembles the package, collects all the assets constituting it and then proposes the securitized package to another investor for a purchase. The purchaser, at this point of the process, can fully evaluate the content of the product deriving from the securitization process, making sure that it is coherent with what expected. However, in this manner, there is a step of the process during which the assembler of the package is exposed to the risk of having complete exposure with respect to the respective underlying. In case of tensions on the financial market, the potential buyer may not go ahead with the purchase, whereby causing a risky unexpected exposure for the person/entity who proceeded to carry out the securitization.
The method of the present invention makes it possible to manage this situation by executing a securitization process in dynamic manner. For example, a first step of the process may provide an undertaking, by the potential purchaser, to buy a stream of products which are coherent with the defined profiles, by means of a smart contract. This continuously flowing process removes the previously described risk. On the other hand, it
is necessary to ensure for the purchaser the certainty that the software-implemented contract (smart contract) considers all possible variables which may have an impact on the asset transfer process. The method according to the invention makes it possible to introduce a structural surveillance mechanism that the software contract is compliant to the agreed arrangements, by means of the contract in textual form. This kind of protection provides the buyer with greater confidence in the process (which under normal conditions is much more efficient), and the assembler with the advantage of cancelling the risk arising from exposure to the assets and consequently reducing the cost of capital held in reserve. Indeed, if the purchaser decides to enable the arbitration process, this event is immediately received by the institutions which assemble the financial product, which therefore can interrupt the stipulation of contracts to avoid unexpected exposure.
As illustrated above, the method of the invention may be supported by a network of computers connected together by means of a telecommunication network, preferably operating in a distributed manner. Such network of computers is configured to implement a hardware/software blockchain-type platform and allow the access to each of the contracting parties and to each of the judging parties, by means of respective computers.
The processors included in the network are configured to store and execute, either locally or in distributed manner, all the aforesaid different software programs (e.g. , smart contract software code, computer validation programs, computer approval programs, software signature and/or digital authorization programs, software programs for implementing consent calculation algorithms, and so on) and to store and process all the different data types used in the method (e.g. execution digital data, timestamp data, approval digital data, transaction identification data, and so on).
According to an implementation option, the method is supported by an Ethereum- type blockchain platform.
It can be observed that the object of the present invention is fully achieved by the method illustrated above by virtue of the above described functional and structural features thereof.
Indeed, the described method can allow the preparation, management and execution of smart contracts in a highly automated and articulated manner in different stages of validation, verification and approval.
At the same time, the method allows the intervention of a human verdict by the Arbitrators, where appropriate and/or required, integrating it in all cases in the context of the automatic procedure, whereby maintaining all its advantages.
Indeed, the Arbitrators' verdict is based on the access via computer, allowed by
the method, to data made available by the method (in particular, the text version of the contract, associated with the software code of the smart contract); furthermore, the approval or not, by the Arbitrators, occurs through computer authorization and/or digital signature means, and the result of the arbitration evaluation is automatically calculated and inserted in the flow of the overall computer blockchain-based process.
On the other hand, the steps of validating and approving by the parties are implemented in fully automatic manner.
In brief, the method of the present invention makes it possible to maintain a nearly total automation of the smart contract process, and therefore to maximize its efficiency and rapidity, when there are no different requirements; and at the same time, it allows a more incisive intervention of human judgement, entirely compatible and integrated (in input and output) with the automatic smart contract procedure, if this is appropriate in light of the complexity of the transaction or of disagreements or misunderstandings between the parties.
A person skilled in art may make changes and adaptations to the embodiments to the method described above or can replace elements with others which are functionally equivalent to satisfy contingent needs without departing from the scope of protection of the appended claims. All the features described above as belonging to one possible embodiment may be implemented independently from the other described embodiments.