DE102021205107A1 - Computer-implemented method and test system for computer-aided testing of a smart contract - Google Patents
Computer-implemented method and test system for computer-aided testing of a smart contract Download PDFInfo
- Publication number
- DE102021205107A1 DE102021205107A1 DE102021205107.3A DE102021205107A DE102021205107A1 DE 102021205107 A1 DE102021205107 A1 DE 102021205107A1 DE 102021205107 A DE102021205107 A DE 102021205107A DE 102021205107 A1 DE102021205107 A1 DE 102021205107A1
- Authority
- DE
- Germany
- Prior art keywords
- smart contract
- new
- original
- chain
- test
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Withdrawn
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/50—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/26—Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Test And Diagnosis Of Digital Computers (AREA)
Abstract
Die Erfindung betrifft ein Testsystem und computerimplementiertes Verfahren zum rechnergestützten Testen eines Smart Contracts, Computerimplementiertes Verfahren zum rechnergestützten Testen eines neuen Smart Contracts (RC) welcher zur Erweiterung einer vorgegebenen Reihe von als Grundregeln ausgebildeten ursprünglichen Smart Contracts (R_1,...,R_N) vorgesehen ist, wobei die ursprünglichen Smart Contracts (R_1,...,R_N) eine ursprüngliche Smart-Contract-Kette (TE1) ausbilden und die ursprünglichen Smart Contracts (R_1,...,R_N) mit dem neuen Smart Contract (RC) eine neue Smart-Contract-Kette (TE2) ausbilden, und wobei jeder der Smart Contracts (R_1,...,R_N) dazu konfiguriert ist, in ein verteiltes Peer-to-Peer System eingestellt zu werden, wobei die einzelnen Smart Contracts (R_1,...,R_N) die gleichen Parameter aufweisen und Ergebniswerte gemäß den in den jeweiligen Smart Contract (R_1,...,R_N) hinterlegten Grundregeln liefern, wobei eine Anzahl von Testparametern (T_1,...,T_M) generiert wird und wobei der zu testende neuen Smart-Contract (RC), um welchen die ursprüngliche Smart-Contract-Kette (TE1) erweitert werden soll, lediglich als ausführbares Programm bereitgestellt wird und wobei eine Testumgebung simuliert wird, welche konfiguriert ist, zumindest die neue Smart-Contract-Kette (TE1) mit bereitgestellten jeweiligen Testparametern (T_1,...,T_M) auszuführen.The invention relates to a test system and computer-implemented method for computer-aided testing of a smart contract, computer-implemented method for computer-aided testing of a new smart contract (RC) which is intended to expand a predetermined series of original smart contracts (R_1,...,R_N) designed as basic rules where the original smart contracts (R_1,...,R_N) form an original smart contract chain (TE1) and the original smart contracts (R_1,...,R_N) with the new smart contract (RC) form a form a new smart contract chain (TE2), and wherein each of the smart contracts (R_1,...,R_N) is configured to be deployed in a distributed peer-to-peer system, wherein the individual smart contracts (R_1 ,...,R_N) have the same parameters and deliver result values according to the basic rules stored in the respective Smart Contract (R_1,...,R_N), whereby a number of test parameters (T_1,...,T_M) are generated and wherein the new smart contract (RC) to be tested, by which the original smart contract chain (TE1) is to be extended, is only provided as an executable program and a test environment is simulated, which is configured, at least the new one Execute smart contract chain (TE1) with provided respective test parameters (T_1,...,T_M).
Description
Die Erfindung betrifft ein computerimplementiertes Verfahren und Testsystem zum rechnergestützten Testen eines Smart Contracts.The invention relates to a computer-implemented method and test system for computer-aided testing of a smart contract.
Peer-to-Peer Systeme ohne zentrale Autorität die den Datenstrom verwalten repräsentieren eine besondere Art verteilter Systeme. Sie bestehen beispielsweise aus Einzelcomputern, auch Knoten genannt. Ein bekanntes Beispiel eines solchen Peer-to-Peer Systems ist eine Blockchain. Eine Blockchain umfasst eine kontinuierlich erweiterbare Liste von Datenblöcken, welche mittels kryptographischer Verfahren miteinander verkettet sind. Dabei kann als Block eine Liste mit Transaktionen/Daten bezeichnet werden, die über einen bestimmten Zeitraum in einem Ledger (Kontenbuch) aufgezeichnet werden. Die Kette umfasst einen Hash-Schlüssel, der die Blöcke miteinander verknüpft.Peer-to-peer systems without a central authority that manage the data flow represent a special type of distributed systems. For example, they consist of individual computers, also called nodes. A well-known example of such a peer-to-peer system is a blockchain. A blockchain comprises a continuously expandable list of data blocks that are linked together using cryptographic processes. A block can be a list of transactions/data that is recorded in a ledger (account book) over a certain period of time. The chain includes a hash key that links the blocks together.
Eine private Blockchain ist eine Form von Blockchain, bei der nur ausgewählte Teilnehmer Zugriffsrechte haben. Die private Blockchain ist nicht öffentlich einsehbar, sondern kann nur von autorisierten Personen angesehen und überprüft werden. Sie gilt durch den stark reglementierten Zugriff als sicherer und wird daher bevorzugt in Unternehmen zur Verwaltung interner Transaktionen eingesetzt.A private blockchain is a form of blockchain where only selected participants have access rights. The private blockchain is not publicly visible, but can only be viewed and checked by authorized persons. It is considered to be more secure due to the heavily regulated access and is therefore preferably used in companies to manage internal transactions.
Transaktionen werden validiert und in Blöcke verpackt, und die Blöcke werden nach Durchlaufen eines Konsensus-Algorithmus an die Blockchain angehängt. Somit wird eine Kette von Datensätzen unveränderlich und fälschungssicher.Transactions are validated and packed into blocks, and the blocks are appended to the blockchain after going through a consensus algorithm. Thus, a chain of data records becomes unchangeable and tamper-proof.
Eine spezielle Blockchain ist Hyperleger Fabric und eine andere ist Ethereum, welche auf einer öffentlichen Blockchain basiert. Ethereum und Hyperleger ermöglichen sogenannte „Smart Contracts (intelligenter Vertrag)“. Damit können Verträge programmiert werden, die elektronisch ausgeführt und überprüft werden. A special blockchain is Hyperleger Fabric and another is Ethereum, which is based on a public blockchain. Ethereum and Hyperleger enable so-called “smart contracts (intelligent contract)”. This allows contracts to be programmed that are executed and checked electronically.
Smart Contracts führen jedoch lediglich eine Code-Snippet Anweisung aus. Ein häufig verwendete Use Case von ‚Smart Contract‘ ist auf „if this then that“ regelbasiert. Dazu werden Programme erstellt und auf einer Virtual Machine (VM) ausgeführt. Smart Contracts bieten gegenüber normalen Verträgen eine höhere Transparenz, Effizienz und die Möglichkeit der Automatisierung von Vertragsfolgen. Ferner erreichen sie eine hohe Verlässlichkeit, da Parameter und Bedingungen eindeutig definiert sind und festen Regeln folgen. Durch kryptografische Verschlüsselungsverfahren (Hashfunktionen) und die Natur des Peer-to-Peer Systems ist eine Manipulation der Vertragsbedingungen nahezu ausgeschlossen und lässt sich auch bei geringem Vertragswert mit standardisierten Mitteln sicherstellen.However, smart contracts only execute a code snippet instruction. A frequently used use case of 'smart contract' is based on "if this then that" rules. To do this, programs are created and executed on a virtual machine (VM). Compared to normal contracts, smart contracts offer greater transparency, efficiency and the possibility of automating contract sequences. They also achieve a high level of reliability, since parameters and conditions are clearly defined and follow fixed rules. Thanks to cryptographic encryption methods (hash functions) and the nature of the peer-to-peer system, manipulation of the contract terms is almost impossible and can be ensured using standardized means even if the contract value is low.
Allerdings muss bei der Programmierung von Smart Contracts besondere Vorsicht gelten. So können einprogrammierte Sicherheitslücken fatale Folgen haben. Dies war beispielsweise beim „The DAO Hack“, der zum Ethereum-Hard-Fork „Ethereum Classic“ führte der Fall.However, special care must be taken when programming smart contracts. Programmed security gaps can have fatal consequences. This was the case, for example, with “The DAO Hack” that led to the Ethereum hard fork “Ethereum Classic”.
Die Blockchain Hyperledger Fabric wurde speziell entwickelt, um Anwendungsfälle in Unternehmen anzusprechen. Insbesondere dient Hyperledger Fabric für die Implementierung von Smart Contracts, welche eine Geschäftslogik wiedergeben. Jedes Mitglied der Hyperledger Fabric muss in der Lage sein, Geschäfte und Verträge mittels Smart Contracts abzuschließen.The Blockchain Hyperledger Fabric is purpose-built to address enterprise use cases. In particular, Hyperledger Fabric is used to implement smart contracts, which reflect business logic. Every member of the Hyperledger Fabric must be able to close deals and contracts using smart contracts.
Die
- Generieren einer vorgegebenen Transaktion und/oder eines vorgegebenen Smart-Contracts , wobei der vorgegebenen Transaktion und/oder dem vorgegebenen Smart-Contract jeweils ein Vorgabewert zugeordnet ist;
- Einfügen der vorgegebenen Transaktion und/oder des vorgegebenen Smart-Contracts in die Blockkette;
- Ausführen der vorgegebenen Transaktion und/oder des vorgegebenen Smart-Contracts, wobei ein Messwert des Ausführens der vorgegebenen Transaktion und/oder des vorgegebenen Smart-Contracts erfasst wird, wobei das Ausführen der vorgegebenen Transaktion und/oder des vorgegebenen Smart-Contracts das Bearbeiten der vorgegebenen Transaktion und/oder des vorgegebenen Smart-Contracts durch die Blockkette bewirkt;
- Testen des Messwertes anhand des Vorgabewertes, wobei bei einer Abweichung von dem Vorgabewert ein Steuersignal bereitgestellt wird.
- generating a specified transaction and/or a specified smart contract, wherein a default value is assigned to the specified transaction and/or the specified smart contract;
- inserting the predetermined transaction and/or the predetermined smart contract into the blockchain;
- Executing the predetermined transaction and/or the predetermined smart contract, capturing a metric of executing the predetermined transaction and/or the predetermined smart contract, wherein executing the predetermined transaction and/or the predetermined smart contract involves processing the predetermined transaction and/or the predetermined smart contract effected by the blockchain;
- Testing the measured value using the default value, with a control signal being provided if there is a deviation from the default value.
Es ist eine Aufgabe der Erfindung ein Mittel anzugeben, welche eine sichere Verwendung von Smart Contracts von Mitgliedern eines Peer-to-Peer Systems ermöglicht.It is an object of the invention to specify a means which enables members of a peer-to-peer system to use smart contracts securely.
Die Aufgabe wird gelöst durch ein computerimplementiertes Verfahren zum rechnergestützten Testen eines neuen Smart Contracts gemäß den Merkmalen des Anspruchs 1 und ein Testsystem zum rechnergestützten Testen eines neuen Smart Contracts gemäß den Merkmalen des Anspruchs 8.The object is achieved by a computer-implemented method for computer-aided testing of a new smart contract according to the features of
In den Unteransprüchen sind weitere vorteilhafte Maßnahmen aufgelistet, die miteinander kombiniert werden können, um weitere Vorteile zu erzielen.Further advantageous measures which can be combined with one another in order to achieve further advantages are listed in the dependent claims.
Erfindungsgemäß wird die Aufgabe gelöst durch ein computerimplementiertes Verfahren zum rechnergestützten Testen eines neuen Smart Contracts, welcher zur Erweiterung einer vorgegebenen Reihe von als Grundregeln ausgebildeten ursprünglichen Smart Contracts vorgesehen ist, wobei die ursprünglichen Smart Contracts eine ursprüngliche Smart-Contract-Kette ausbilden und die ursprünglichen Smart Contracts mit dem neuen Smart Contract eine neue Smart-Contract-Kette ausbilden, und wobei jeder der Smart Contracts dazu konfiguriert ist, in ein verteiltes Peer-to-Peer System eingestellt zu werden, wobei die einzelnen Smart Contracts die gleichen Parameter aufweisen und Ergebniswerte gemäß den in den jeweiligen Smart Contract hinterlegten Grundregeln liefern,
wobei eine Anzahl von Testparametern generiert wird und wobei der zu testende neuen Smart Contract, um welchen die ursprüngliche Smart-Contract-Kette erweitert werden soll, lediglich als ausführbares Programm bereitgestellt wird und wobei eine Testumgebung simuliert wird, welche konfiguriert ist, zumindest die neue Smart-Contract-Kette mit bereitgestellten jeweiligen Testparametern auszuführen.According to the invention, the object is achieved by a computer-implemented method for computer-aided testing of a new smart contract, which is intended to expand a predetermined series of original smart contracts designed as basic rules, the original smart contracts forming an original smart contract chain and the original smart Contracts form a new smart contract chain with the new smart contract, and each of the smart contracts is configured to be deployed in a distributed peer-to-peer system, each smart contract having the same parameters and result values according to deliver the basic rules stored in the respective smart contract,
wherein a number of test parameters are generated and wherein the new smart contract to be tested, with which the original smart contract chain is to be extended, is provided only as an executable program and wherein a test environment is simulated which is configured, at least the new smart Execute the contract chain with the respective test parameters provided.
Dabei bedeutet rechnergestützt, dass das Verfahren beispielsweise auf einem Prozessor ausgeführt wird. Ein Prozessor ist beispielsweise eine elektronische Verschaltung. Bei einem Prozessor kann es sich insbesondere um einen Mikroprozessor oder einen Mikrocontroller, beispielsweise einen integrierten Schaltkreis IS oder ein Embedded System handeln, welche üblicherweise in Kombination mit einer Speichereinheit /Speicher zum Speichern von Programmbefehlen, etc. agieren. Ferner kann es sich um einen Grafikprozessor GPU (Graphic Processing Unit) handeln.In this context, computer-aided means that the method is executed on a processor, for example. A processor is an electronic circuit, for example. A processor can in particular be a microprocessor or a microcontroller, for example an integrated circuit IS or an embedded system, which usually act in combination with a memory unit/memory for storing program instructions, etc. It can also be a graphics processor GPU (Graphic Processing Unit).
Vorzugsweise wird jeder der Smart Contracts in einer vorbestimmten Programmiersprache verfasst.Preferably, each of the smart contracts is written in a predetermined programming language.
Ein Speicher kann beispielsweise ein flüchtiger Speicher in Form von Arbeitsspeicher (engl. Random-Access Memory, RAM) oder ein dauerhafter Speicher wie eine Festplatte oder ein Datenträger sein.For example, memory can be volatile storage in the form of random-access memory (RAM) or permanent storage such as a hard drive or disk.
Eine Smart-Contract-Kette ist eine Reihe von intelligenten Verträgen, von welchem jeder sich nicht widersprechende Grundregeln aufweist. Eine Grundregel beispielsweise kann sein, dass sich die Kilometerzähler bei fortlaufenden Betrieb eines Fahrzeugs nicht verringern darf. So kann aber auch bei Abschluss einer Fahrzeugversicherung die Grundregel sein, dass dieser erst ab 21 Jahren getätigt werden darf. Ein neu hinzugefügter Smart Contract der in Bezug auf denselben Abschluss diesen ab 18 Jahren erlaubt, würde gegen eine solche Grundregel verstoßen.A smart contract chain is a series of smart contracts, each of which has non-conflicting ground rules. A basic rule, for example, can be that the odometer must not decrease as a vehicle is continuously operated. However, when taking out vehicle insurance, the basic rule can also be that this can only be done from the age of 21. A newly added smart contract allowing them to be 18+ in relation to the same deal would violate such a basic rule.
Die Grundregeln sind benutzer- und anwendungsspezifisch in den einzelnen Smart Contracts hinterlegt.The basic rules are stored user- and application-specifically in the individual Smart Contracts.
Jeder der Smart Contracts ist dazu konfiguriert, in ein verteiltes Peer-to-Peer System eingestellt zu werden. Dies gilt ebenso für die Smart-Contract-Kette, welche auf dem verteilten Peer-to-Peer System mit den entsprechenden Parametern ausgeführt werden kann. Der neue hinzuzufügende Smart Contract kann als neuer Vertrag zu der beispielsweise privaten Blockchain (Peer-To-Peer-System) hinzugefügt werden.Each of the smart contracts is configured to be deployed in a distributed peer-to-peer system. This also applies to the smart contract chain, which can be run on the distributed peer-to-peer system with the appropriate parameters. The new smart contract to be added can be added as a new contract to the e.g. private blockchain (peer-to-peer system).
Als lediglich ausführbares Programm gelten hier Smart Contracts, welche ohne Wissen um den genauen Softwarecode / Inhalt bereitgestellt werden.Smart contracts, which are provided without knowledge of the exact software code / content, are considered to be only executable programs.
Bei geschäftlichen Beziehungen müssen die Vertragspartner vorab gestaltete Grundregeln einhalten. Diese können in einem Smart Contract abgelegt sein zu dem sich die Vertragspartner zusammengetan haben, bzw. Mitglieder dieses Netzwerkes sind. Es wurde erkannt, dass jedes Mitglied oder anerkanntes neues Mitglied die Möglichkeit haben muss, einen zu dem bereits in Form von Smart Contracts bestehenden Verträgen einen neuen Vertrag in Form eines Smart Contracts hinzuzufügen, ohne die geltenden Regeln zu verletzen. Dabei kann die Verletzung beispielsweise beabsichtigt sein (Grundregel geändert). Es kann aber auch eine unabsichtliche Verletzung sein, beispielsweise wenn der Smart Contract im Programmcode Fehler aufweist, welche zu einer Grundregelverletzung führt (beispielsweise es wurde vergessen bei einem Fahrer das Mindestalter festzulegen). Dabei wird der neue Smart Contract als zumindest ausführbares Programm bereitgestellt. Eine Bereitstellung des Softwarecodes ist nicht notwendig.In business relationships, the contracting parties must comply with the basic rules that have been set out in advance. These can be stored in a smart contract to which the contractual partners have joined forces or are members of this network. It has been recognized that any member or approved new member must have the ability to add a new smart contract to existing smart contracts without violating the applicable rules. The violation can, for example, be intentional (basic rule changed). However, it can also be an unintentional violation, for example if the smart contract has errors in the program code that lead to a fundamental rule violation (for example, a driver forgot to set the minimum age). The new smart contract is provided as at least an executable program. It is not necessary to provide the software code.
Erfindungsgemäß werden nun zunächst eine Anzahl an Testparametern erzeugt /generiert. Unter Testparametern können auch Test Parameter-Wert Paaren (oder Payloads) verstanden werden.According to the invention, a number of test parameters are first created/generated. Test parameters can also be understood as test parameter-value pairs (or payloads).
Anschließend wird erfindungsgemäß eine Testumgebung simuliert, in der die um den neuen Smart Contract erweiterte neue Smart-Contract-Kette getestet wird. Durch die Erfindung wird es ermöglicht, auch ohne Vorkenntnis bestehende Smart Contract Verträge sicher zu erweitern, ohne bestehende Grundregeln zu verletzen. According to the invention, a test environment is then simulated in which the new smart contract chain expanded by the new smart contract is tested. The invention makes it possible to safely expand existing Smart Contract contracts without violating existing basic rules.
Durch das Testen in einer simulierten Testumgebung mit ausreichenden Testparametern kann eine Erweiterung auf beispielsweise eine Smart-Contract-Kette ohne die komplette Smart-Contract Kette durch einen ungültigen Smart Contract zunichte zu machen, erzielt werden. Ist beispielsweise der Programmcode des neuen Smart Contracts fehlerhaft oder verstößt gegen die Regeln, so kann dies nach aufspielen auf das Peer-to-Peer System wie eine private Blockchain nicht mehr rückgängig gemacht werden. Da Informationen (Smart Contracts) auf einem Peer-to-Peer System wie Blockchain unveränderlich sind, können derartige Fehler im Nachhinein nicht mehr verändert werden, da sonst die Grundregeln, welche für alle Nutzer gelten, verändert werden können. Durch die Erfindung kann eine private Blockchain oder ein verteiltes Peer-to-Peer Netzwerksystem mit Nutzern geschaffen werden, in dem es einige nicht verhandelbare Grundregeln gibt. Trotzdem können bestehende Verträge um gewisse Grundregeln ergänzt oder beschränkt werden, ohne dass Kenntnis des Softwarecodes/genauen Inhalt des neu hinzuzufügenden Smart Contracts notwendig sind.By testing in a simulated test environment with sufficient test parameters, an extension to a smart contract chain, for example, can be achieved without destroying the entire smart contract chain with an invalid smart contract. If, for example, the program code of the new smart contract is faulty or violates the rules, this can no longer be reversed after it has been installed on the peer-to-peer system like a private blockchain. Since information (smart contracts) on a peer-to-peer system such as blockchain is immutable, such errors cannot be changed afterwards, otherwise the basic rules that apply to all users could be changed. The invention can create a private blockchain or distributed peer-to-peer network system with users, in which there are some non-negotiable ground rules. Nevertheless, existing contracts can be supplemented or restricted by certain basic rules without knowledge of the software code/exact content of the new smart contract to be added being necessary.
Durch die simulierte Testumgebung können fehlerhafte Smart Contracts vor dem dauerhaften Hinzufügen zu beispielsweise einer Blockchain geprüft werden. Erfindungsgemäß kann ein so geprüfter neu hinzuzufügender Smart Contract zur Erweiterung eines bestehenden Satzes von Grundregeln verwendet werden, wobei die bestehenden Grundregeln bereits validiert und auf der beispielsweise privaten Blockchain bereitgestellt wurden.The simulated test environment allows faulty smart contracts to be checked before they are permanently added to a blockchain, for example. According to the invention, a smart contract that has been checked in this way and is to be added can be used to expand an existing set of basic rules, with the existing basic rules already being validated and provided on the private blockchain, for example.
Durch das erfindungsgemäße Verfahren wird sichergestellt, dass beispielsweise, wenn die nicht abnehmende Eigenschaft des Kilometerzählerwerts als Grundregel eingesetzt wird, kein Mitglied dies durch einen maßgeschneiderten Smart Contract verletzen kann. Dies bedeutet, dass ein maßgeschneiderter oder fehlerhafter Smart Contract die bereits geltenden und validierten Grundregeln nicht aushebeln kann. Durch das erfindungsgemäße Verfahren können Mitglieder des Peer-to-Peer Systems in die Lage versetzt werden, gemeinsam vereinbarte Geschäftslogik als intelligente Verträge einzusetzen, die nur für die an der Vereinbarung beteiligten Mitglieder gelten, ohne die Grundregeln zu verletzen.The method according to the invention ensures that, for example, if the non-decreasing property of the odometer value is used as a basic rule, no member can violate this through a tailor-made smart contract. This means that a bespoke or flawed smart contract cannot break the ground rules already in place and validated. The method according to the invention enables members of the peer-to-peer system to use jointly agreed business logic as intelligent contracts, which only apply to the members involved in the agreement, without violating the basic rules.
Vorzugsweise wird in der simulierten Testumgebung die ursprüngliche Smart-Contract-Kette sowie die neue Smart-Contract-Kette mit den neu hinzugefügten Smart Contract getestet. Dazu wird die ursprüngliche Smart-Contract-Kette und die neue Smart-Contract-Kette mit dem erweiterten Smart Contract in der simulierten Testumgebung ausgeführt.The original smart contract chain and the new smart contract chain with the newly added smart contract are preferably tested in the simulated test environment. To do this, the original smart contract chain and the new smart contract chain with the extended smart contract are executed in the simulated test environment.
Vorzugsweise liefern die ursprüngliche Smart-Contract-Kette einen ursprünglichen Ergebniswert und die neue Smart-Contract-Kette einen neuen Ergebniswert für jeden Testparameter in der simulierten Testumgebung zurück.Preferably, the original smart contract chain returns an original result value and the new smart contract chain returns a new result value for each test parameter in the simulated test environment.
In weiterer bevorzugter Ausgestaltung sind die Ergebniswerte als bestanden und fehlgeschlagen gekennzeichnet, je nachdem ob ein Ausführen eines jeweiligen Testparameter von den in den Smart Contracts hinterlegten Grundregeln keinen Fehler wiedergibt oder ob das Ausführen des jeweiligen Testparameter von den in den Smart Contracts hinterlegten Grundregeln fehlerhaft ist. Fehlerhaft bedeutet beispielsweise, dass die mit einen Testparameter getestete Smart-Contract-Kette einen Fehler bei Durchlauf zurückgibt.In a further preferred embodiment, the result values are marked as passed and failed, depending on whether executing a respective test parameter from the basic rules stored in the smart contracts does not indicate an error or whether executing the respective test parameter from the basic rules stored in the smart contracts is incorrect. Failed means, for example, that the smart contract chain tested with a test parameter returns an error when run.
Vorzugsweise wird ein Hinzufügen des neuen Smart Contracts zu der ursprünglichen Smart-Contract-Kette bewilligt, wenn für alle Testparameter in Bezug auf die ursprüngliche und neue Smart-Contract-Kette gilt:
- - der ursprüngliche und der neue Ergebniswert sind als fehlgeschlagen gekennzeichnet,
- - der ursprüngliche Ergebniswert ist als bestanden gekennzeichnet und der neue Ergebniswert ist als fehlgeschlagen gekennzeichnet,
- - der ursprüngliche Ergebniswert ist als bestanden gekennzeichnet und der neue Ergebniswert ist als bestanden gekennzeichnet.
- - the original and the new result value are marked as failed,
- - the original result value is marked as passed and the new result value is marked as failed,
- - the original score is marked as passed and the new score is marked as passed.
Somit kann beispielsweise verhindert werden, dass einige nicht verhandelbare Grundregeln eingehalten werden, wie z.B., dass der Kilometerzählerwert eines Fahrzeugs niemals abnehmen darf. Somit kann der Wertebereich in denen der Ergebniswert liegen muss, zwar eingeschränkt werden, kann aber nicht mehr zunehmen. Somit wird beispielsweise die nicht abnehmende Eigenschaft des Kilometerzählerwerts als Grundregel eingesetzt, und es kann kein Mitglied dies durch einen maßgeschneiderten oder fehlprogrammierten Smart Contract verletzen.This can, for example, prevent some non-negotiable ground rules from being adhered to, such as that the odometer value of a vehicle must never decrease. This means that the range of values in which the result value must lie can be limited, but it cannot increase. Thus, for example, the non-decreasing property of the odometer value is employed as a basic rule, and no member can violate this through a custom-made or mis-programmed smart contract.
Vorzugsweise wird ein Hinzufügen des neuen Smart Contracts zu der ursprünglichen Smart-Contract-Kette abgelehnt, wenn für zumindest einen Testparameter in Bezug auf die ursprüngliche und neue Smart-Contract-Kette gilt:
- - der ursprüngliche Ergebniswert ist als fehlgeschlagen gekennzeichnet und der neue Ergebniswert ist als bestanden gekennzeichnet.
- - the original score is marked as failed and the new score is marked as passed.
Dadurch können vereinfacht Smart Contracts erkannt werden, die gegen die in den anderen Smart Contracts festgelegten Grundregeln verstoßen. Ein Hinzufügen eines solchen Smart Contracts wird somit verwehrt und die Funktionsfähigkeit der gesamten Smart-Contract-Kette auf dem Peer-to-Peer System kann somit aufrechterhalten werden.This makes it easier to identify smart contracts that violate the basic rules set out in the other smart contracts. Adding such a smart contract will thus denied and the functionality of the entire smart contract chain on the peer-to-peer system can thus be maintained.
Vorzugsweise wird der neue Smart Contract als blindes ausführbares Programm ausgebildet. Das heißt, dass weitere Informationen wie beispielsweise der Softwarecode oder die enthaltenden Regeln nicht bekannt sind, sondern lediglich die einzugebenden Parameter bekannt sind.The new smart contract is preferably designed as a blind executable program. This means that further information such as the software code or the rules it contains is not known, but only the parameters to be entered are known.
Die Aufgabe wird zudem gelöst durch ein Testsystem zum rechnergestützten Testen eines neuen Smart Contracts welcher zur Erweiterung einer vorgegebenen Reihe von als Grundregeln ausgebildeten ursprünglichen Smart Contracts vorgesehen ist, wobei die ursprünglichen Smart Contracts eine ursprüngliche Smart-Contract-Kette ausbilden und die ursprünglichen Smart Contracts mit dem neuen Smart Contract eine neue Smart-Contract-Kette ausbilden, und wobei jeder der Smart Contracts dazu konfiguriert ist, in ein verteiltes Peer-to-Peer System eingestellt zu werden, wobei die einzelnen Smart Contracts die gleichen Parameter aufweisen und Ergebniswerte gemäß den in den jeweiligen Smart Contract hinterlegten Grundregeln liefern, wobei eine Testumgebung simuliert ist, welche dazu konfiguriert ist, zumindest die neue Smart-Contract-Kette mit bereitgestellten jeweiligen Testparametern auszuführen und wobei der neue Smart-Contract um welchen die ursprüngliche Smart-Contract-Kette, erweitert werden soll als ausführbares Programm bereitgestellt ist.The task is also solved by a test system for computer-aided testing of a new smart contract which is intended to extend a predetermined series of original smart contracts designed as basic rules, with the original smart contracts forming an original smart contract chain and the original smart contracts with form a new smart contract chain from the new smart contract, and wherein each of the smart contracts is configured to be set up in a distributed peer-to-peer system, wherein the individual smart contracts have the same parameters and result values according to the in provide the basic rules stored in the respective smart contract, with a test environment being simulated which is configured to run at least the new smart contract chain with the respective test parameters provided and with the new smart contract being extended by the original smart contract chain should be al s executable program is provided.
Das Testsystem kann beispielsweise einen Prozessor umfassen und einen Speicher sowie eine Übermittlungseinheit, welche bedarfsweise den neuen Smart Contract an beispielsweise eine private Blockchain übermittelt.The test system can, for example, include a processor and a memory as well as a transmission unit, which transmits the new smart contract to a private blockchain, for example, as required.
Die Vorteile des Verfahrens können auch auf das Testsystem übertragen werden. Weitere Merkmale, Eigenschaften und Vorteile der vorliegenden Erfindung ergeben sich aus der nachfolgenden Beschreibung unter Bezugnahme auf die beiliegende Figur. Darin zeigt schematisch:
-
1 : zeigt ein erfindungsgemäßes Verfahren schematisch als Blockschaubild. Obwohl die Erfindung im Detail durch die bevorzugten Ausführungsbeispiele näher illustriert und beschrieben wurde, ist die Erfindung nicht durch die offenbarten Beispiele eingeschränkt. Variationen hiervon können vom Fachmann abgeleitet werden, ohne den Schutzumfang der Erfindung, wie er durch die nachfolgenden Patentansprüche definiert wird, zu verlassen.
-
1 : shows a method according to the invention schematically as a block diagram. Although the invention has been illustrated and described in detail by the preferred embodiments, the invention is not limited by the disclosed examples. Variations may be devised by those skilled in the art without departing from the scope of the invention as defined by the following claims.
Eine solche Grundregel kann beispielsweise sein, dass sich der Kilometerzählerwert eines Fahrzeugs niemals reduzieren darf.Such a basic rule can be, for example, that the odometer value of a vehicle must never be reduced.
Gehören zu den Mitgliedern beispielsweise ein Autowartungsunternehmen und eine Versicherungsgesellschaft, so kann eine Grundregel beispielsweise sein, dass ein notwendiger, von Seiten des Halters jedoch nicht eingehaltener Wartungstermin eines Fahrzeug der Versicherungsgesellschaft mitzuteilen ist.If the members include, for example, a car maintenance company and an insurance company, a basic rule can be, for example, that the insurance company must be informed of a necessary maintenance appointment for a vehicle that the owner has not kept.
Ein Ablegen solcher Grundregeln in Form von Smart Contracts auf einer privaten Blockchain garantiert den Nutzern, dass die Grundregeln nicht einseitig veränderbar sind. Eine private Blockchain bietet einerseits Datenschutz durch Verschlüsselung, bei gleichzeitiger Manipulationssicherheit. Durch die Vermeidung von zentralen Strukturen, wird zudem die Sicherheit erhöht und Kosten gespart. Änderungen oder Updates sind nur möglich, wenn alle zustimmen. Damit sind in einer privaten Blockchain abgelegte Daten akkurat, transparent und konsistent. Sie sind von allen Mitgliedern der Gruppe verifiziert und genehmigt worden.Storing such basic rules in the form of smart contracts on a private blockchain guarantees users that the basic rules cannot be changed unilaterally. On the one hand, a private blockchain offers data protection through encryption, while at the same time being tamper-proof. By avoiding central structures, security is also increased and costs saved. Changes or updates are only possible if everyone agrees. This means that data stored in a private blockchain is accurate, transparent and consistent. They have been verified and approved by all members of the group.
Ein bisheriges oder neues Mitglied möchte einen neuen Smart Contract RC zu der bereits auf der privaten Blockchain befindliche und validierte sowie durch die Mitglieder anerkannte Smart-Contract-Kette TE1 hinzufügen. Dieser soll insbesondere als blinder Smart Contract RC, also lediglich als ausführbares Programm zu der Smart-Contract-Kette TE1 hinzugefügt werden. Selbst jedoch, wenn der Softwarecode mitgeliefert wird, können Programmierfehler und damit unbeabsichtigte Änderungen der Grundregeln nur schwer überprüft werden. Ein solcher neuer Smart Contract RC kann damit durch beispielsweise Programmierfehler ungewollte Änderungen der gültigen Grundregeln darstellen, welche nach Aufspielen auf die private Blockchain nur noch schwer zu korrigieren ist.A current or new member wants to add a new smart contract RC to the smart contract chain TE1 already on the private blockchain and validated and recognized by the members. In particular, this is to be added to the smart contract chain TE1 as a blind smart contract RC, i.e. only as an executable program. However, even if the software code is included, it is difficult to verify programming errors and thus unintentional changes to the basic rules. Such a new smart contract RC can thus represent unwanted changes to the valid basic rules, for example due to programming errors, which are difficult to correct after being installed on the private blockchain.
Erfindungsgemäß wurde erkannt, dass vorab ein Testen des neuen Smart Contracts RC notwendig ist.According to the invention, it was recognized that testing of the new smart contract RC is necessary in advance.
Hierzu wird eine Testumgebung in einem Testsystem 1 simuliert. Anschließend werden eine hohe Anzahl von Testparametern T_1,...,T_M generiert, wobei M eine sehr große ganze Zahl ist. Unter Testparametern können auch Test Parameter-Wert Paaren (oder Payloads)verstanden werden.For this purpose, a test environment in a
Mit diesen Testparametern T_1,...,T_M wird zunächst die bereits validierte Smart-Contract-Kette TE1 getestet, so dass für jeden Testparameter T_1,...,T_M (bzw. jedes Testparameterset) in der simulierten Testumgebung ein ursprünglicher Ergebniswert zurückgeliefert wird.The already validated smart contract chain TE1 is first tested with these test parameters T_1,...,T_M, so that an original result value is returned for each test parameter T_1,...,T_M (or each test parameter set) in the simulated test environment .
Ferner wird die neue Smart-Contract-Kette TE2, welche aus der ursprünglichen Smart-Contract-Kette TE1 und dem hinzugefügten neuen Smart Contract RC besteht mit den Testparametern T_1,...,T_M getestet, so dass für jeden Testparameter T_1,...,T_M (bzw. jedes Testparameterset) in der simulierten Testumgebung ein neuer Ergebniswert zurückgeliefert wird. Damit wird für den Smart Contract RC die höchste Priorität festgelegt. Dies bedeutet, dass wenn RC z.B. R1 verletzt, das Ergebnis von RC und nicht von R1 übernommen wird.Furthermore, the new smart contract chain TE2, which consists of the original smart contract chain TE1 and the added new smart contract RC, is tested with the test parameters T_1,...,T_M, so that for each test parameter T_1,... .,T_M (or each test parameter set) returns a new result value in the simulated test environment. This sets the highest priority for the Smart Contract RC. This means that if RC violates e.g. R1, the result will be taken from RC and not from R1.
Diese Ergebniswerte werden als bestanden (passed) und fehlgeschlagen (failed) gekennzeichnet, je nachdem ob ein Ausführen eines jeweiligen Testparameters T_1,..T_M von der Smart-Contract-Kette TE1 oder TE2, keinen Fehler wiedergibt oder ob das Ausführen eines jeweiligen Testparameters T_1,..T_M von der Smart-Contract-Kette TE1 oder TE2 fehlerhaft ist.These result values are marked as passed and failed, depending on whether executing a respective test parameter T_1,..T_M from the smart contract chain TE1 or TE2 does not return an error or whether executing a respective test parameter T_1 ,..T_M from smart contract chain TE1 or TE2 is faulty.
Dabei wird ein Hinzufügen des neuen Smart Contracts RC zu der ursprünglichen Smart-Contract-Kette TE2 bewilligt, wenn für alle getesteten Testparameter T_1,..T_M in Bezug auf die ursprüngliche Smart-Contract-Kette TE1 und neue Smart-Contract-Kette TE2 gilt:
- - der ursprüngliche Ergebniswert der ursprünglichen Smart-Contract-Kette TE1 und der neue Ergebniswert der neuen Smart-Contract-Kette TE2 ist als fehlgeschlagen (Failed) gekennzeichnet. Dies ist in
1 mit F1 beschrieben. - - der ursprüngliche Ergebniswert der ursprünglichen Smart-Contract-Kette TE1 ist als bestanden gekennzeichnet (Passed) und der neue Ergebniswert der neuen Smart-Contract-Kette TE2 ist als fehlgeschlagen (Failed) gekennzeichnet. Dies ist in
1 mit F2 beschrieben. - - der ursprüngliche Ergebniswert der ursprünglichen Smart-Contract-Kette TE1 ist als bestanden gekennzeichnet (Passed) und der neue Ergebniswert der neuen Smart-Contract-Kette TE2 ist als bestanden (Passed) gekennzeichnet. Dies ist in
1 mit F3 beschrieben.
- - the original result value of the original smart contract chain TE1 and the new result value of the new smart contract chain TE2 are marked as failed. this is in
1 described with F1. - - the original result value of the original smart contract chain TE1 is marked as Passed and the new result value of the new smart contract chain TE2 is marked as failed (Failed). this is in
1 described with F2. - - the original result value of the original smart contract chain TE1 is marked as passed (Passed) and the new result value of the new smart contract chain TE2 is marked as passed (Passed). this is in
1 described with F3.
Dadurch wird eine Erweiterung der bestehenden ursprünglichen Smart-Contract-Kette TE1 um den neuen Smart Contract RC möglich, ohne den Inhalt des neuen Smart Contracts RC genau zu kennen und/oder ungewollte Programmierfehler die eine Grundregeländerung nach sich ziehen kann, zu vermeiden.
Dies kann ebenfalls zur Erweiterung eines bestehenden Satzes von Grundregeln in Form von Smart Contracts R_1,..,R_N verwendet werden.This makes it possible to expand the existing original smart contract chain TE1 with the new smart contract RC without knowing the content of the new smart contract RC exactly and/or avoiding unwanted programming errors that can entail a change in the basic rules.
This can also be used to extend an existing set of ground rules in the form of smart contracts R_1,..,R_N.
Ferner wird ein Hinzufügen des neuen Smart Contracts RC zu der ursprünglichen Smart-Contract-Kette TE2 abgelehnt, wenn für alle getesteten Testparameter T_1,..T_M in Bezug auf die ursprüngliche Smart-Contract-Kette TE1 und neue Smart-Contract-Kette TE2 gilt:
- - der ursprüngliche Ergebniswert der ursprünglichen Smart-Contract-Kette TE1 ist als fehlgeschlagen gekennzeichnet (Failed) und der neue Ergebniswert der neuen Smart-Contract-Kette TE2 ist als bestanden (Passed) gekennzeichnet. Dies ist in
1 mit F4 beschrieben.
- - the original result value of the original smart contract chain TE1 is marked as failed (Failed) and the new result value of the new smart contract chain TE2 is marked as passed (Passed). this is in
1 described with F4.
Durch das erfindungsgemäße Verfahren und das erfindungsgemäße Testsystem 1 wird sichergestellt, dass, kein Mitglied durch einen maßgeschneiderten Smart Contract eine der Grundregeln verletzen kann. Die bereits validierten Grundregeln, die von allen Mitgliedern eingehalten werden müssen, können nun ohne genaue Kenntnis des neuen Smart Contracts RC eingehalten werden. Jedes Mitglied der Blockchain ist somit in der Lage, kundenspezifische Smart Contracts hinzuzufügen, ohne die bereits validierten und anerkannten Grundregeln zu verletzen.The method according to the invention and the
Bezugszeichenlistereference list
- T_1,...,T_MT_1,...,T_M
- Testparametertest parameters
- TE1TE1
- ursprüngliche Smart-Contract-Ketteoriginal smart contract chain
- TE2TE2
- neue Smart-Contract-Kettenew smart contract chain
- R_1,...,R_NR_1,...,R_N
- ursprüngliche Smart Contractsoriginal smart contracts
- RCRC
- neuer Smart Contractnew smart contract
ZITATE ENTHALTEN IN DER BESCHREIBUNGQUOTES INCLUDED IN DESCRIPTION
Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.This list of documents cited by the applicant was generated automatically and is included solely for the better information of the reader. The list is not part of the German patent or utility model application. The DPMA assumes no liability for any errors or omissions.
Zitierte PatentliteraturPatent Literature Cited
- WO 2018188967 A1 [0009]WO 2018188967 A1 [0009]
Claims (14)
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102021205107.3A DE102021205107A1 (en) | 2021-05-19 | 2021-05-19 | Computer-implemented method and test system for computer-aided testing of a smart contract |
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| DE102021205107.3A DE102021205107A1 (en) | 2021-05-19 | 2021-05-19 | Computer-implemented method and test system for computer-aided testing of a smart contract |
Publications (1)
| Publication Number | Publication Date |
|---|---|
| DE102021205107A1 true DE102021205107A1 (en) | 2022-11-24 |
Family
ID=83899173
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| DE102021205107.3A Withdrawn DE102021205107A1 (en) | 2021-05-19 | 2021-05-19 | Computer-implemented method and test system for computer-aided testing of a smart contract |
Country Status (1)
| Country | Link |
|---|---|
| DE (1) | DE102021205107A1 (en) |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018188967A1 (en) | 2017-04-12 | 2018-10-18 | Siemens Aktiengesellschaft | Method and device for testing a blockchain in a computer-aided manner |
| US20200410460A1 (en) | 2018-03-18 | 2020-12-31 | Valid Network Ltd | Method and system for assessing future execution of a smart contract based on previous executions on a blockchain-based platform |
| CN109829296B (en) | 2019-01-29 | 2021-04-02 | 中化能源科技有限公司 | Sandbox implementation method of intelligent contract based on alliance chain |
-
2021
- 2021-05-19 DE DE102021205107.3A patent/DE102021205107A1/en not_active Withdrawn
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| WO2018188967A1 (en) | 2017-04-12 | 2018-10-18 | Siemens Aktiengesellschaft | Method and device for testing a blockchain in a computer-aided manner |
| US20200410460A1 (en) | 2018-03-18 | 2020-12-31 | Valid Network Ltd | Method and system for assessing future execution of a smart contract based on previous executions on a blockchain-based platform |
| CN109829296B (en) | 2019-01-29 | 2021-04-02 | 中化能源科技有限公司 | Sandbox implementation method of intelligent contract based on alliance chain |
Non-Patent Citations (3)
| Title |
|---|
| Englischsprachige Übersetzung „CN109829296B (WIPO)" der Druckschrift D4 [abgerufen am 17. März 2022 |
| Englischsprachige Übersetzung „CN109829296B (WIPO)" der Druckschrift D4 [abgerufen am 17. März 2022] |
| Softwareentwicklung Testmanagement; erzeugt am 27.04.2011;URL: http://wwwlehre.dhbw-stuttgart.de/~hoyer/ePapers/Wikipedia/SWE1_Testmanagement_Wikipedia.pdf ; [abgerufen am 16.03.2022] |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| EP3696699B1 (en) | Secure and flexible firmware updating in electronic devices | |
| EP3435270B1 (en) | Device and method for cryptographically protected operation of a virtual machine | |
| EP1611510B1 (en) | Controlled execution of a program used for a virtual machine on a portable data carrier | |
| DE102013213314A1 (en) | Deposit at least one computable integrity measure in a memory area of a memory | |
| DE112019006673T5 (en) | DATA LOSS PROTECTION | |
| DE10340411B4 (en) | Device and method for the safe execution of a program | |
| EP3599740A1 (en) | Control of a data network with respect to a use of a distributed database | |
| DE102021205107A1 (en) | Computer-implemented method and test system for computer-aided testing of a smart contract | |
| EP2394232B1 (en) | Device and method for preventing unauthorized use and/or manipulation of software | |
| EP2990941B1 (en) | Computer-implemented method for generating a control device program codes and related report management environment | |
| DE102019001100A1 (en) | Method for monitoring a functionality of a vehicle information system of a motor vehicle, as well as electronic computing device, computer program and data carrier | |
| EP2524333A1 (en) | Method for providing a secure counter on a terminal | |
| EP4297332B1 (en) | Method for the implementation and use of cryptographic material in at least one system component of an information technology system | |
| DE102019005545A1 (en) | Method for operating a machine data communication network and machine data communication network | |
| EP3876123B1 (en) | Arrangement and operating method for a secure start-up of an electronic device | |
| DE102018200807A1 (en) | Method and server device for providing a digital vehicle companion book for a motor vehicle | |
| DE102008039121A1 (en) | Method for encoding character string of digital signature of manufacturer of vehicle, involves determining digital signature such that preset area of character string is changed so that another digital signature is same as former signature | |
| EP4421622A1 (en) | Method and system for implementing a service on a runtime environment | |
| DE102024000269A1 (en) | Computer-implemented method and system for marking data with a digital watermark | |
| DE102021006638A1 (en) | Method for implementing and using cryptographic material in at least one system component of an information technology system | |
| DE102021006637A1 (en) | Method for implementing and using cryptographic material in at least one system component of an information technology system | |
| EP4080847A1 (en) | Secure modification of application data in a blockchain | |
| DE102020118479A1 (en) | Method for enabling automatic evaluation of a current software security status and data processing device | |
| DE102020208331A1 (en) | Procedure for operating a hardware safety module | |
| EP3786818A1 (en) | Method for protecting a software application against unauthorzed use |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| R163 | Identified publications notified | ||
| R081 | Change of applicant/patentee |
Owner name: CONTINENTAL AUTOMOTIVE TECHNOLOGIES GMBH, DE Free format text: FORMER OWNER: CONTINENTAL AUTOMOTIVE GMBH, 30165 HANNOVER, DE |
|
| R119 | Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee |