WO2021095926A1 - Complex iot device and sharing service providing method using same, and method for recognizing external information through blockchain application and providing information - Google Patents
Complex iot device and sharing service providing method using same, and method for recognizing external information through blockchain application and providing information Download PDFInfo
- Publication number
- WO2021095926A1 WO2021095926A1 PCT/KR2019/015544 KR2019015544W WO2021095926A1 WO 2021095926 A1 WO2021095926 A1 WO 2021095926A1 KR 2019015544 W KR2019015544 W KR 2019015544W WO 2021095926 A1 WO2021095926 A1 WO 2021095926A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- information
- data
- oracle
- shared resource
- blockchain network
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 120
- 238000013500 data storage Methods 0.000 claims description 62
- 230000006870 function Effects 0.000 claims description 44
- 230000008569 process Effects 0.000 claims description 34
- 239000002131 composite material Substances 0.000 claims description 32
- 238000004891 communication Methods 0.000 claims description 31
- 230000008859 change Effects 0.000 claims description 13
- 238000013503 de-identification Methods 0.000 claims description 10
- 238000012544 monitoring process Methods 0.000 claims description 7
- 238000013459 approach Methods 0.000 claims description 4
- 238000001514 detection method Methods 0.000 claims description 3
- 230000000977 initiatory effect Effects 0.000 claims 1
- 230000002457 bidirectional effect Effects 0.000 abstract 1
- 238000010586 diagram Methods 0.000 description 20
- 238000007726 management method Methods 0.000 description 11
- 238000012795 verification Methods 0.000 description 11
- 230000010365 information processing Effects 0.000 description 8
- 238000013523 data management Methods 0.000 description 7
- 238000005516 engineering process Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000000903 blocking effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000002776 aggregation Effects 0.000 description 2
- 238000004220 aggregation Methods 0.000 description 2
- 238000013480 data collection Methods 0.000 description 2
- 230000002265 prevention Effects 0.000 description 2
- 230000004308 accommodation Effects 0.000 description 1
- 150000001875 compounds Chemical class 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L65/00—Network arrangements, protocols or services for supporting real-time applications in data packet communication
- H04L65/40—Support for services or applications
Definitions
- the present invention relates to a complex IoT device, a method for providing a shared service using the same, and a method for recognizing external information and providing information using a block chain application.
- the current sharing service is performed in the form of a company brokering an individual and an individual and receiving a fee, and the service is provided based on a centralized sharing service provision system operated by the company.
- the current shared service has a form of providing a service to share a single item. For example, Uber provides a vehicle-sharing service, and Airbnb provides a lodging-sharing service.
- Blockchain technology is a distributed ledger technology that distributes and stores/manages ledgers recording transaction details across multiple nodes.
- Blockchain has a structure in which multiple transaction records are recorded in one block, and the previous block and the next block are connected to each other in a chain.
- Blockchain technology is being applied in various fields based on the characteristics that it is difficult to forge or falsify records stored in the blockchain. In other words, it is difficult to forge or alter the information recorded in the blockchain, in other words, it is difficult to modify the information that has already been recorded, and problems may arise if incorrect information is initially recorded in the blockchain.
- Blockchain technology can provide smart contract functions.
- Smart contract is a technology that creates an electronic contract document by programming the contents previously negotiated by the contracting party, and automatically executes the contract contents when all the contract conditions are satisfied. If the contract condition of the smart contract is information that cannot be obtained from the blockchain network, it is necessary to obtain information from outside the blockchain. Once information outside the blockchain is recorded on the blockchain, it is difficult to modify it, so it is necessary to determine whether the information outside the blockchain is reliable.
- Patent Document 1 KR 10-2013-0047915 A
- Patent Document 2 KR 10-2018-0102269 A
- An object according to an embodiment of the present invention is to provide a blockchain-based sharing and trading platform capable of sharing and transacting various types of shared resources.
- an object according to an embodiment of the present invention is a complex IoT that can be combined with various types of shared resources and allows access to shared resources only to those with permission by interacting with the blockchain network and user terminals. It is to provide a device.
- An object according to an embodiment of the present invention is to ensure the confidentiality and integrity of data when the Oracle blockchain exchanges information with an external system.
- an object according to an embodiment of the present invention is to secure information access paths, verify external information providers, ensure the privacy of acquired data and information users, so that the Oracle blockchain can exchange information with external systems, It is to provide a smart contract type of Oracle framework that can provide data storage functions.
- the complex IoT device includes a lock module that is coupled to various types of shared resources to physically or electrically open and close the shared resource, a communication module that transmits and receives data to and from a user terminal or a blockchain network, and the It may include a controller module that determines whether the user terminal has the right to use the shared resource based on a key received from the blockchain network, and controls to open and close the lock module.
- the controller module may start a procedure of determining whether the user terminal has the use right only when the user terminal approaches a predetermined distance using GPS information or short-range communication between the communication module and the user terminal.
- the complex IoT device generates usage status information by monitoring the usage status of the shared resource using at least one of a motion sensor, a human body detection sensor, an infrared sensor, an ultrasonic sensor, and a touch sensor.
- a gateway module provided to the controller module.
- the gateway module may be physically formed as a separate device, and may be coupled to the shared resource at a location capable of monitoring the state of use of the shared resource.
- the locking module may be installed in an add-on method to the locking device so that the user must open the locking module based on the permission to use the shared resource to access another locking device previously installed on the shared resource.
- the controller module may provide a key for opening the locking device to the user terminal when opening the locking module based on the right to use the shared resource.
- a method of providing a shared service using a complex IoT device wherein a manager terminal provides information of a shared resource and information of a complex IoT device coupled to the shared resource to a blockchain network through a manager dApp.
- Shared resource registration step of providing shared resources to be shared a user terminal requests permission to use the shared resource registered in the blockchain network through a user dApp, and the manager terminal uses it based on a smart contract designated in advance. It may include a use permission acquisition step in which the permission is granted, and a use start step of opening a lock to allow access to the shared resource by determining whether the use permission exists in the user terminal by the composite IoT device.
- the manager terminal provides the information of the shared resource and the information of the complex IoT device to the blockchain network through a dApp for a manager, and based on a smart contract for an administrator of the blockchain network.
- the information on the shared resource and the information on the complex IoT device may be recorded in a block generated by the blockchain network, and the block may be shared.
- the dApp for the user is shared recorded in the blockchain.
- the smart contract for use may include determining whether or not the requested shared resource is available and, if available, recording in the blockchain that the user terminal has been given permission to use it.
- the use start step is a step of requesting, by a user terminal, to unlock the complex IoT device based on usage rights to the blockchain network through a dApp for the user, whether the complex IoT device is located within a predetermined distance.
- the complex IoT device and the user terminal each requesting execution of a one-time authentication protocol from the blockchain network, the blockchain network According to the one-time authentication protocol, generating a one-time key and transmitting it to the composite IoT device and the user terminal, respectively, when the one-time key received by the composite IoT device and the one-time key received from the user terminal match It may include the step of opening the lock by determining that the user terminal has permission to use.
- the blockchain network stores a block chain including information necessary for sharing the shared resource, a record of the use of the shared resource, and information on an administrator or user of the shared resource, and functions related to the sharing of the shared resource It may include a plurality of nodes that perform at least some of them.
- the complex IoT device includes a locking module that physically or electrically opens and closes the shared resource by being coupled to various types of shared resources, a communication module that transmits and receives data to and from a user terminal or a blockchain network, and the user terminal is the shared resource. It may include a controller module that determines whether or not to have the right to use of, based on a key received from the blockchain network, and controls to open and close the lock module.
- Blockchain application external information recognition and information provision method according to an embodiment of the present invention, a data acquisition step of acquiring data from an information source existing outside the Oracle blockchain network, by verifying the trust of the information source, the The reliability determination step of determining the reliability of the data, the parsing step of parsing the data, the data protection step of providing protection according to the type of the data, and the data storage history while storing the data in a distributed data storage are stored in the Oracle blockchain. It may include a storage step of storing in.
- the method for recognizing external information and providing information on a blockchain application includes a loading step of acquiring data requested from the inside or outside of the Oracle blockchain network from the distributed data storage, the requested A protection change step of removing or changing the protection given to data, a reconfiguration step of organizing the requested data in a required format based on the data supply request, and providing the requested data and providing the data provision details to the Oracle block It may further include a provision step of storing in the chain.
- the method for recognizing and providing information outside the blockchain application determines whether the requested data exists in the decentralized data storage by searching the data storage details, and It may further include a request determination step of performing the loading step when data exists in the distributed data storage, and performing the data acquisition step when the requested data does not exist in the distributed data storage.
- the reliability determination step is a first determination step of determining whether the information source is trusted using the SSL certificate provided by the information source, and the information source obtained through the Whois service based on the domain of the information source.
- a second determination step of determining whether or not the information source is trusted using domain registration information, and an Oracle node voting in a delegated stake-proof method regarding whether or not the information source is trusted, and the information source based on the Oracle node vote.
- At least one of the third determination steps of determining whether or not is trusted may be performed.
- the method for recognizing and providing information outside the blockchain application includes the untrusted information source in the source-blacklist when it is determined as an untrusted information source as a result of performing the reliability determination step.
- a source-blacklist adding step of adding a may be further included.
- the method for recognizing and providing information on external information applied to a block chain is to determine the reliability of a new node that has requested to join the Oracle blockchain network, the increase amount per unit time of the new node is a reference value. If exceeded, the joining of the new node is stopped for a predetermined period, and if there is an oracle block created in the new node, it is determined as an untrusted oracle node, and the joining is blocked and added to the node-blacklist, and the new node is In the case of being included in the node-blacklist, the step of determining the reliability of an Oracle node may further include blocking the joining.
- the Oracle blockchain network is composed of a plurality of oracle nodes, the oracle node includes an enclave for operating at least a part of the oracle block chain program code, and determining the reliability of the oracle node within the enclave, and The Oracle block generation consensus process can be performed.
- the data protection step may be to anonymize or delete information corresponding to personal information from the data, or to perform de-identification in which only necessary data is categorized or aggregated, and if necessary, the de-identified data may be encrypted. .
- an object according to an embodiment of the present invention is to use a complex IoT device that can be combined with various types of shared resources, and to use or trade various types of shared resources by using a smart contract provided by a blockchain network. can do.
- data confidentiality, integrity, and privacy of information users can be guaranteed when exchanging data.
- various mainnet connectors and dApps can be serviced, and a service that gives reliability to data can be provided.
- FIG. 1 shows an environment for providing a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
- FIG. 2 is a diagram showing the functions of a smart contract for a manager according to an embodiment of the present invention.
- FIG. 3 is a diagram showing the functions of a smart contract for a user according to an embodiment of the present invention.
- FIG. 4 is a diagram illustrating a composite IoT device according to an embodiment of the present invention.
- 5A is a diagram illustrating a composite IoT device coupled with an add-on method according to an embodiment of the present invention.
- 5B is a diagram illustrating a gateway module of a composite IoT device according to an embodiment of the present invention.
- FIG. 6 is a flowchart illustrating a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
- FIG. 7 is a diagram showing an Oracle blockchain network that performs a method of recognizing external information and providing information applied to a block chain according to an embodiment of the present invention.
- FIG. 8 is a diagram showing each step of a method for recognizing external information and providing information applied to a block chain according to an embodiment of the present invention.
- FIG. 9 is a diagram showing a framework structure of a program code that performs a method of recognizing external information and providing information applied to a block chain according to an embodiment of the present invention.
- FIG. 10 is a diagram illustrating a step of determining reliability of an information source according to an embodiment of the present invention.
- FIG. 11 is a diagram illustrating a node reliability verification step of a new node according to an embodiment of the present invention.
- FIG. 1 shows an environment for providing a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
- a method of providing a shared service using a complex IoT device may be performed using a complex IoT device 20, a manager terminal 31, a user terminal 32, and a block chain network 50. .
- the blockchain network 50 is a network in which a plurality of nodes 51 are connected in a peer-to-peer (P2P) method.
- the blockchain network 50 may perform a method of providing a shared service using a complex IoT device based on information processing between a plurality of nodes 51 and information processing of each node 51.
- the blockchain network 50 stores a block chain 60 that can store information necessary for sharing the shared resource 10, the use record of the shared resource 10, and information about the administrator or user of the shared resource 10. And, it may be composed of a plurality of nodes 51 that perform at least some of the functions related to the sharing of the shared resource (10).
- the node 51 may include a communication unit 51a, a control unit 51b, and a storage unit 51c.
- the node 51 includes an information processing device such as a server computer, a PC, a notebook PC, a tablet PC, and a smart phone.
- the communication unit 51a may transmit and receive data to and from the other node 51, the manager terminal 31, the user terminal 32, and the complex IoT device 20.
- the communication unit 51a may configure the block chain network 50 by connecting the node 51 and another node 51.
- the storage unit 51c may store all or part of the block chain 60.
- the storage unit 51c may store a program code for performing a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
- the control unit 51b may include a processor capable of executing a program code for performing a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
- the block chain 60 may be composed of a continuous connection of blocks 61 including the hash value of the previous block 61 as a configuration of the magnetic block 61.
- the block 61 includes the hash value and storage space of the previous block 61.
- the block chain 60 is stored in a plurality of nodes 51 constituting the block chain network 50, respectively, and the block chains 60 stored in the plurality of nodes 51 have the same data.
- information about the shared resource 10 information about the complex IoT device 20, information about the administrator, information about the user, usage records of the shared resource 10, etc. may be stored. have.
- the manager terminal 31 and the user terminal 32 are information processing devices that can connect to the blockchain network 50 to transmit and receive data.
- the manager terminal 31 and the user terminal 32 may include portable electronic devices such as a smart phone, a notebook PC, a tablet PC, and a wearable computer.
- the manager terminal 31 and the user terminal 32 may transmit and receive data to and from the blockchain network 50 through a dApp.
- the dApp (distributed application) is a front-end interface that users and managers access through the manager terminal 31 and the user terminal 32 in order to use a method of providing a shared service using a complex IoT device.
- the dApp may be installed and executed on the administrator terminal 31 and the user terminal 32, or provided to the administrator terminal 31 and the user terminal 32 in the form of a web page operated on a server separate from the blockchain network 50 It can be, and it can also be executed on the node 51 of the blockchain network 50.
- the dApp may include a dApp 41 for an administrator and a dApp 42 for a user.
- the dApp 41 for the manager provides information on the shared resource 10, the registration function of the information on the complex IoT device 20, the monitoring function of the shared resource 10, and various management permission functions to the manager terminal 31. Can provide.
- the user dApp 42 may provide functions such as a search function for the shared resource 10, a request for use permission, and a request for unlocking the complex IoT device 20 to the manager terminal 31.
- the dApp transfers data or commands received from the manager terminal 31 and the user terminal 32 to a smart contract existing in the blockchain network 50.
- Smart contracts running on the blockchain network 50 include a smart contract 41a for administrators and a smart contract 42a for users.
- the manager smart contract 41a may operate based on data and commands received from the manager dApp 41.
- the user's smart contract 42a may operate based on data and commands received from the user's dApp 42.
- FIG. 2 is a diagram showing the functions of the manager's smart contract 41a according to an embodiment of the present invention
- FIG. 3 is a diagram showing the functions of the user's smart contract 42a according to an embodiment of the present invention.
- the manager's smart contract 41a may perform shared resource information management, shared resource access management, user status information management, and location-based access management functions.
- the shared resource information management function may include functions such as adding shared resources, modifying shared resource information, and deleting shared resources, and a list of shared resources required to perform the function, devices (compound IoT device 20, manager terminal ( 31), information such as the Mac Address of the user terminal 32, etc.), the sensor type of the gateway module 27, and the sensor measurement interval of the gateway module 27 can be stored in a table format.
- the shared resource access management function can include functions such as adding an access-allowing device, deleting an access-allowing device, and adding an access log, and devices such as the Mac Address of the access device, connected user ID, and additional time required to perform the function.
- connection status such as status, device ID, connection route, and connection time
- the user status information management function can include functions such as member blocking, and information such as user status such as ID, age, gender, and region necessary to perform the function, and membership registration time, etc., in a table format. Can be saved.
- the location-based access management function can perform functions such as inserting access records and modifying indoor/outdoors. Sender device ID, receiver device ID, latitude/longitude, access point, indoor/outdoor, indoor Location data information such as coordinates can be stored in a table format.
- the manager's smart contract 41a may perform a function of registering the shared resource 10 in the blockchain network 50, a function of monitoring the state of use of the shared resource 10, and the like.
- the smart contract 42a for a user may include a user function, a device function, and a location function.
- User functions may include functions such as membership registration, member information modification, and withdrawal, and user data information such as ID, age, gender, region, and user data information necessary to perform the function is tabled. Can be saved in a format.
- Device functions may include functions such as registering access devices and checking device status, and device data such as the Mac Address of the access device to perform the function, connection user ID, and additional time, and device ID, access route, and access Information such as access status, such as time, can be saved in a table format.
- the location function may include functions such as inserting access location data and querying logs, and information such as sender device ID, receiver device ID, latitude/longitude, access point, indoor/outdoor, indoor coordinates, etc. necessary to perform the function. Can be saved in a table format. Information used by the manager's smart contract 41a and the user's smart contract 42a may be stored in the storage space of the block 61, and may be encrypted and stored.
- FIG. 4 is a diagram illustrating a composite IoT device 20 according to an embodiment of the present invention.
- the complex IoT device 20 is coupled to various types of shared resources 10 to physically or electrically open and close the shared resources 10. ), the user terminal 32 or the communication module 22 for transmitting and receiving data with the blockchain network 50, and whether the user terminal 32 has the right to use the shared resource 10 or not, the blockchain network 50 ), and may include a controller module 23 for controlling to open and close the locking module 21, based on a key received from).
- the composite IoT device 20 includes a display module 25 capable of visually or aurally providing information to a user or an administrator, a command or a touch of a user or an administrator, and the like.
- It may include an input module 24 that can receive input and a power module 26 such as a battery that supplies power to components of the composite IoT device 20.
- a power module 26 such as a battery that supplies power to components of the composite IoT device 20.
- Each of the modules 21 to 27 included in the composite IoT device 20 may be configured as a physically independent device, or some modules may be configured as a single device.
- the locking module 21 may be opened or closed under the control of the controller module 23.
- the locking module 21 may be physically coupled to the shared resource 10 to block a user from accessing a part of the shared resource 10 required when using the shared resource 10.
- the lock module 21 may be physically coupled to a door lock or lock of a door to block the user from arbitrarily opening the door.
- the shared resource 10 is an electronic device
- the locking module 21 is coupled to an input device or an output device of the electronic device, or is integrally combined with the electronic device to prevent the user from using all or part of the electronic device.
- the locking module 21 may be integrally formed with a door lock or a lock.
- the locking module 21 may be coupled to various shared resources 10.
- the communication module 22 can transmit and receive data with the manager terminal 31, the user terminal 32, and the blockchain network 50.
- the communication module 22 may use a short-range communication method such as Wi-Fi, Bluetooth, and NFC.
- the communication module 22 may recognize its own location using GPS information.
- the controller module 23 may control opening and closing of the locking module 21.
- the controller module 23 may check the usage rights of the user terminal 32 that has requested the use of the shared resource 10.
- the controller module 23 compares the key received from the blockchain network 50 with the key transmitted through the communication module 22 by the user terminal 32 according to the one-time authentication protocol to determine the right to use the user terminal 32. I can confirm. If the key received from the blockchain network 50 and the key transmitted by the user terminal 32 through the communication module 22 match, the controller module 23 determines that the user terminal 32 has permission to use it. can do.
- the controller module 23 controls to open the locking module 21 when the existence of the right to use the user terminal 32 is confirmed.
- the controller module 23 may control to lock the locking module 21 when a predetermined period of use has elapsed or a necessary condition is satisfied.
- the controller module 23 may start a procedure to determine whether the user terminal 32 has the right to use only when the user terminal 32 approaches a predetermined distance using GPS information or short-range communication between the communication module 22 and the user terminal 32. have.
- the proximity determination is an additional safety device in that the user terminal 32 and the communication module 22 must be unlocked when the user terminal 32 and the communication module 22 are approached by a predetermined distance to prevent the use of a person without permission.
- the communication module 22 performs a distance determination based on the intensity of radio waves such as Wi-Fi, Bluetooth, and NFC, or compares its GPS coordinates with the GPS information of the user terminal 32 received from the user terminal 32 to provide proximity. You can judge whether or not.
- the controller module 23 may request the block chain network 50 to check usage rights based on a one-time authentication protocol.
- the controller module 23 may further perform a procedure required to use the shared resource 10 based on information input by a user or an administrator to the input module 24.
- the controller module 23 may provide a key for opening the locking device to the user terminal 32 when opening the locking module 21 based on the right to use the shared resource 10.
- the controller module 23 provides information such as a password required to use the shared resource 10 to the user terminal 32 or through the display module 25. It can be provided to the user.
- the controller module 23 controls to open the lock module 21 when the user terminal 32 is authorized to use the door lock and opens the door lock.
- the door lock password required for this may be provided to the user terminal 32 or may be provided to the user through the display module 25.
- 5A is a diagram illustrating a composite IoT device 20 coupled in an add-on method according to an embodiment of the present invention.
- Arrow A shows that the locking module 21 is coupled to a portion indicated by a dotted line on the door lock.
- the lock module 21 of the composite IoT device 20 is preinstalled on the shared resource 10 only when the user opens the lock module 21 based on the permission to use the shared resource 10.
- it may be installed in the locking device 100 in an add-on method.
- the locking device 100 installed on the shared resource 10 is maintained as it is, and the complex IoT device 20 is additionally coupled to the locking device 100.
- the locking module 21 of the complex IoT device 20 is coupled to cover a keypad, a keyhole, a dial, etc.
- the complex IoT device 20 is coupled to the door lock, which is the locking device 100 installed on the door entering the space as the shared resource 10, so that the locking module 21 covers the keypad 110 of the door lock. It is coupled, and when the open area 21a of the locking module 21 is opened in a slide manner or a hinge manner that moves along the arrow B, it may be formed so that the user can access the keypad 110 of the door lock.
- 5B is a diagram showing the gateway module 27 of the composite IoT device 20 according to an embodiment of the present invention.
- the composite IoT device 20 may further include a gateway module 27.
- the gateway module 27 monitors the usage status of the shared resource 10 using at least one of a motion sensor, a human body detection sensor, an infrared sensor, an ultrasonic sensor, and a touch sensor to generate usage status information, and the controller module 23 Can be provided to.
- the gateway module 27 monitors whether or not a person 32a using the shared resource 10 exists.
- the gateway module 27 may be physically formed as a separate device, and may be coupled to the shared resource 10 at a location capable of monitoring the state of use of the shared resource 10.
- the gateway module 27 may be installed at a location where it is possible to check whether a person 32a exists in the space. At this time, the gateway module 27 is formed as a physically separate device from the lock module 21, and the state of use of the shared resource 10 detected by the gateway module 27 is determined by the controller module 23 through the communication module 22. ) Can be passed on.
- the controller module 23 may determine whether the person 32a using the shared resource 10 is an intruder or a legitimate user based on the use right.
- the controller module 23 may provide an alarm to the administrator terminal 31 when it is determined as an intruder.
- the controller module 23 checks whether there is no person 32a using the shared resource 10 based on the usage state received from the gateway module 27, and accesses the shared resource 10. If there is no person 32a to use, the locking module 21 can be controlled to be locked.
- the complex IoT device 20 may be coupled to various shared resources 10, and the locking module 21 is provided only to a user who has the right to use the shared resource 10. It can be opened to provide the use of the shared resource (10).
- FIG. 6 is a flowchart illustrating a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
- the manager terminal 31 through the manager dApp (41) information and sharing of the shared resource (10) The shared resource registration step (S10) of providing information of the complex IoT device 20 coupled to the resource 10 to the blockchain network 50 so that the shared resource 10 can be shared, the user terminal 32
- the usage right is granted based on the smart contract designated by the administrator terminal 31 by requesting the right to use the shared resource 10 registered in the blockchain network 50 through the user dApp 42 It may include an acquisition step (S20), and a use start step (S30) in which the composite IoT device 20 determines whether the user terminal 32 has permission to use it and opens the lock so that the shared resource 10 can be accessed.
- the usage time set based on the usage permission expires, when it is determined that the usage is terminated by checking the usage status of the shared resource 10 It may include a use end step (S40) of controlling the locking module 21 to be locked.
- a method of providing a shared service using a complex IoT device may be performed in a system including a complex IoT device 20, a manager terminal 31, a user terminal 32, and a block chain network 50.
- the administrator and the user may register as a member and register predetermined information.
- the shared resource registration step (S10) is a step in which the manager terminal 31 provides the information of the shared resource 10 and the information of the complex IoT device 20 to the blockchain network 50 through the dApp 41 for the manager, And, based on the smart contract 41a for the manager of the blockchain network 50, the information of the shared resource 10 and the information of the complex IoT device 20 are recorded in the block 61 generated by the blockchain network 50. And block 61 is shared.
- the administrator installs the composite IoT device 20 on the shared resource 10.
- the manager executes the manager dApp 41 using the manager terminal 31 or accesses the manager dApp 41 to input information about the shared resource 10 and the complex IoT device 20.
- the information on the shared resource 10 includes information necessary for the user to use the shared resource 10, such as the type, characteristics, rental cost, available rental time, minimum available rental time of the shared resource 10.
- Information on the complex IoT device 20 includes the device ID, Mac Address, sensor type of the gateway module 27, sensor addition time, etc.
- the user terminal 32 and the blockchain network 50 recognize the complex IoT device 20. And includes information that enables data to be transmitted and received.
- the information on the shared resource 10 and the information on the complex IoT device 20 input to the manager terminal 31 is transmitted to the smart contract 41a for the manager of the blockchain network 50 through the dApp.
- the manager dApp 41 provides information on the shared resource 10 and the complex IoT device 20 received by calling the manager smart contract 41a of the blockchain network 50.
- the dApp 41 for administrators can transmit and receive data with the blockchain network 50 using Restful API.
- the manager's smart contract 41a registers the shared resource 10 on the blockchain network 50 so that the user can use the shared resource 10 by performing a shared resource information management function.
- the manager's smart contract 41a configures the blockchain network 50 to store information on the shared resource 10 and information on the complex IoT device 20 in the storage space of the block 61 in a table format. It can be shared with the constituent nodes 51. Information on the shared resource 10 and information on the complex IoT device 20 are stored in the block 61 through a verification and consensus process.
- the step of providing a list of available shared resources 10 to the user terminal 32 by searching for the shared resources 10 recorded in the block chain 60 by the user dApp 42, the user terminal 32 Selecting a shared resource 10 from the list of available shared resources 10 and requesting the acquisition of usage rights, and the smart contract 41a for the administrator of the blockchain network 50 It may include the step of determining whether or not the availability is available and, if available, recording in the block chain 60 that the user terminal 32 has been given permission to use it.
- the user In order to use the shared resource 10, the user must first obtain the right to use.
- the user may request a search of the shared resource 10 registered in the blockchain network 50 by executing the dApp 42 for the user on the user terminal 32 or by accessing the dApp 42 for the user.
- the dApp may provide an interface for searching the shared resource 10 by selecting conditions such as the type, location, usage period, and rental cost of the shared resource 10.
- the dApp may request a search from any node 51 constituting the blockchain network 50 based on the search condition received from the user terminal 32. Since each of the plurality of nodes 51 stores the same blockchain 60, it is possible to perform a search requested by the dApp 42 for a user and return a result.
- the user terminal 32 may receive a result of performing a search in a node 51 through the dApp 42 for a user.
- the user terminal 32 displays the received search result to the user.
- the user may select the shared resource 10 from the list of shared resources 10 provided as a result of the search and request the acquisition of permission to use the shared resource 10.
- the user terminal 32 may request to obtain the permission to use the shared resource 10 selected by the user through the dApp 42 for the user to the smart contract 41a for the administrator of the blockchain network 50.
- the manager's smart contract 41a When the manager's smart contract 41a receives the request for acquiring the use rights of the shared resource 10 received from the user dApp 42, it determines whether the shared resource 10 is available. Whether or not the shared resource 10 is available may be determined based on conditions included in the request for obtaining use rights of the shared resource 10. It is possible to determine whether there is another user already reserved at the time requested by the user, and to determine whether the user is registered in the blacklist and is not entitled to obtain use rights. The manager's smart contract 41a records in the block chain 60 that, when the requested shared resource 10 is available, the permission is granted to the user terminal 32 requesting the permission.
- the manager's smart contract 41a shares the content that the user terminal 32 has the right to use at the requested time to the blockchain network 50, and the blockchain network 50 through verification and consensus It is stored in block 61 that the user has been given permission to use it.
- the manager's smart contract 41a may provide the user terminal 32 that the use right has been granted through the dApp 42 for the user.
- the user terminal 32 When the user terminal 32 obtains the use right, the user may open the lock of the complex IoT device 20 through the user terminal 32 and start using the shared resource 10.
- the user terminal 32 requests the block chain network 50 to unlock the complex IoT device 20 based on the usage rights through the user dApp 42, the complex IoT device Determining whether the user terminal 32 is located within a predetermined distance, when the complex IoT device 20 and the user terminal 32 are located within a predetermined distance, the complex IoT device 20 and the user terminal ( 32) each requesting execution of a one-time authentication protocol to the blockchain network 50, the blockchain network 50 generates a one-time key according to the one-time authentication protocol, and the composite IoT device 20 and the user Delivering each to the terminal 32, and permission to use the user terminal 32 when the disposable key received by the composite IoT device 20 and the disposable key received from the user terminal 32 match. It may include the step of opening the lock by determining that there is.
- the user may request the unlocking of the complex IoT device 20 coupled to the shared resource 10 that has obtained the use right through the user terminal 32.
- the user terminal 32 may request the complex IoT device 20 to open the lock directly or through a dApp or a blockchain network 50.
- the composite IoT device 20 may perform proximity determination to determine whether the user terminal 32 is located within a predetermined distance. If the user terminal 32 is not near the shared resource 10 and the lock module 21 is opened based on the use right, there is a risk that another person without the use right will use the shared resource 10, It is determined whether the user is located within a predetermined distance to the shared resource 10. Determination of proximity has been described in the process of describing the controller module 23 of the composite IoT device 20, and therefore, overlapping content will be omitted.
- the user terminal 32 may transmit and receive signals to the complex IoT device 20 using short-range communication such as Wi-Fi, bluetooth, and NFC. The user terminal 32 transmits its GPS coordinates to the complex IoT device 20 so that the complex IoT device 20 can determine whether or not the complex IoT device 20 is in proximity.
- the complex IoT device 20 may provide a signal indicating that the proximity determination has passed to the user terminal 32.
- the complex IoT device 20 and the user terminal 32 may request the blockchain network 50 to execute a one-time authentication protocol.
- the execution request of the one-time authentication protocol received from the composite IoT device 20 and the user terminal 32 match, the blockchain network 50 executes the one-time authentication protocol.
- the one-time authentication protocol searches for the use permission record stored in the block chain 60, determines whether the user terminal 32 has permission to use the shared resource 10 at a predetermined time, and if the use permission exists, the one-time authentication protocol Generates and provides a one-time key to the composite IoT device 20 and the user terminal 32.
- the disposable key may be a randomly generated value, and may be encrypted with public keys of the composite IoT device 20 and the user terminal 32 and transmitted.
- the composite IoT device 20 determines that the user terminal 32 has the right to use the lock module. (21)
- the lock can be opened.
- the user can use the shared resource 10 when the lock module 21 is opened.
- the complex IoT device 20 provides the password of the existing locking device to the user terminal 32, and the user The shared resource 10 can be used by entering the password displayed in 32) into the existing locking device.
- the gateway module 27 may monitor the state of the shared resource 10 while the user uses the shared resource 10.
- the gateway module 27 can sense whether a person enters or exits the space that is the shared resource 10. .
- the gateway module 27 may continuously sense the state of use of the shared resource 10 at a predetermined period or when the lock module 21 is opened.
- the gateway module 27 may transmit the state of use of the shared resource 10 to the complex IoT device 20.
- the manager terminal 31 may perform an access management function of the shared resource 10 through the dApp 41 for the manager.
- the manager terminal 31 can monitor information about users who have applied for use of the shared resource 10, information about the use status of the shared resource 10, and the use record and reservation record of the shared resource 10. have.
- the manager dApp 41 can request the manager's smart contract 41a to monitor the current status of the shared resource 10, and the manager's smart contract 41a is provided by the gateway module 27 from the complex IoT device 20
- the usage status of one shared resource 10 may be received and provided to the manager terminal 31 through the dApp 41 for managers.
- the complex IoT device 20 receives information on the state of use of the shared resource 10 from the gateway module 27 when the usage time based on the usage permission ends, and operates the lock module 21 to enable the user and the shared resource ( Determine if it is okay to block 10).
- the gateway module 27 can sense whether a user exists in the space that is the shared resource 10, and the space that is the shared resource 10
- the composite IoT device 20 may perform a use end step (S40) of controlling the locking module 21 to be locked.
- the composite IoT device 20 transmits the end of use fact to the blockchain network 50.
- the user's usage record may be stored in the blockchain 60.
- FIG. 7 is a diagram showing an Oracle blockchain network 1020 that performs a method of recognizing external information and providing information applied to a block chain according to an embodiment of the present invention.
- Blockchain application external information recognition and information provision method may be performed in a plurality of oracle nodes 1030 constituting the Oracle blockchain network 1020.
- the Oracle blockchain network 1020 performs a method of recognizing and providing information outside of the blockchain application, acquiring data from an information source 1010 outside the Oracle blockchain network 1020 to obtain a distributed data storage 1040. ), and upon receiving a data request, data stored in the distributed data storage 1040 may be provided to the information user 1050.
- the Oracle blockchain network 1020 is a network in which a plurality of Oracle nodes 1030 are connected in a peer-to-peer (P2P) method.
- the Oracle blockchain network 1020 recognizes external information and provides information applied to the blockchain according to an embodiment of the present invention based on information processing between a plurality of oracle nodes 1030 and information processing of each oracle node 1030. Method can be carried out.
- the oracle node 1030 may include a communication unit 1031, a control unit 1032, and a storage unit 1033.
- the Oracle node 1030 includes information processing devices such as a server computer, a PC, a notebook PC, a tablet PC, and a smart phone.
- the communication unit 1031 may transmit and receive data between the Oracle node 1030 and another Oracle node 1030 to connect the Oracle blockchain network 1020.
- the storage unit 1033 may store all or part of the Oracle blockchain 1060.
- the storage unit 1033 may store a program code for performing a method of recognizing external information and providing information in a block chain application according to an embodiment of the present invention.
- the control unit 1032 may include a processor capable of executing a program code that performs a method of recognizing external information and providing information in a block chain application according to an embodiment of the present invention.
- the Oracle blockchain 1060 may be configured by successive connections of oracle blocks 1060a including the hash value of the previous oracle block 1060a as a configuration of the own oracle block 1060a.
- the oracle block 1060a includes a storage space for storing the hash value and data of the previous oracle block 1060a.
- the Oracle blockchain 1060 is stored in a plurality of Oracle nodes 1030 constituting the Oracle blockchain network 1020, and the Oracle blockchains 1060 stored in the plurality of Oracle nodes 1030 have the same data. .
- the storage details 1061 and the provision details 1062 may be stored.
- the storage details 1061 may include the execution result of the storage process S1030 in which the Oracle blockchain network 1020 obtains, verifies and stores data from the information source 1010.
- the provision details 1062 may include the execution result of the provision process S1040 in which the Oracle blockchain network 1020 receives a data request from the information user 1050 and provides the data.
- the information source 1010 refers to a device that exists outside of the Oracle blockchain network 1020 and can provide data.
- the information source 1010 may include a web server, a cloud storage, a database, an external blockchain network (Ethereum, EOS, etc.) other than the Oracle blockchain network 1020 according to an embodiment of the present invention, an IoT device, and the like. have.
- the IoT device may be a complex IoT device that includes a lock function to allow or block a user's access by being connected to a shared resource, and a gateway module capable of detecting the presence or absence of a person using the shared resource.
- the information source 1010 may be a payment institution that mediates financial services, or may be a data provider of various types.
- the Oracle node 1030 constituting the Oracle blockchain network 1020 may access the information source 1010 and collect data.
- the information user 1050 refers to a subject who requests data necessary for the Oracle node 1030 constituting the Oracle blockchain network 1020 and receives and uses the requested data.
- Information users 1050 are various smart contract accounts operating inside the Oracle blockchain network 1020, and other blockchain networks (Ethereum, EOS, etc.) that exist outside the Oracle blockchain network 1020.
- Terminal devices of personal information users 1050 who request data by accessing an arbitrary Oracle node 1030 of the Oracle blockchain network 1020 may be included.
- the Oracle blockchain network 1020 may receive data from the information source 1010.
- the Oracle blockchain network 1020 may provide the requested data to the information user 1050 upon receiving a data request from the information user 1050.
- the information source 1010 and the information user 1050 may be the same target outside the Oracle blockchain network 1020. That is, the information source 1010 may provide data to the Oracle blockchain network 1020, and the information source 1010 is an information user 1050 who requests data from the Oracle blockchain network 1020 when data is needed. May be.
- the Ethereum blockchain network may be an information source 1010 that provides data to the Oracle blockchain network 1020, or the Ethereum blockchain network requests necessary information from the Oracle blockchain network 1020 and It may be an information user 1050 who receives necessary information from the Oracle blockchain network 1020.
- the distributed data storage 1040 is a data distributed storage system based on the Oracle blockchain 1060.
- the distributed data storage 1040 divides data into a plurality of pieces and stores them in a storage space of nodes constituting the distributed data storage 1040. ), a distributed storage method such as IPFS (Interplanetary File Storage), Corda, etc. can be used.
- IPFS Interplanetary File Storage
- Corda Corda, etc.
- the distributed data storage 1040 stores data received from the Oracle blockchain network 1020 and transmits the requested data from the Oracle blockchain network 1020.
- FIG. 8 is a diagram showing each step of a method for recognizing external information and providing information applied to a block chain according to an embodiment of the present invention
- FIG. 9 is a method for recognizing external information and providing information applied to a block chain according to an embodiment of the present invention. It is a diagram showing a framework structure 1100 of a program code that performs an operation.
- the method of recognizing external information and providing information applied to a block chain includes acquiring data from an information source 1010 external to the Oracle blockchain network 1020.
- a method for recognizing external information and providing information applied to a block chain is to obtain data requested from the inside or outside of the Oracle blockchain network 1020 from the decentralized data storage 1040.
- a provision step (S1044) of providing and storing the data provision details 1062 in the Oracle blockchain 1060 may be further included.
- the access module 1110 includes an API 1111, a parser 1112, a malicious oracle node prevention algorithm 1113, and a BFT consensus algorithm 1114.
- the information source verification module 1120 includes an SSL certificate-based trust judgment model 1121, a Whois-based trust judgment model 1122, and a voting-based trust judgment model 1123.
- the data management module 1130 includes a scheduler 1131, a de-identification algorithm 1132, and an encryption unit 1133.
- the Oracle smart contract module 1140 includes a data storage usage record smart contract 1141 and an Oracle blockchain network operation unit 1142.
- an arbitrary Oracle node 1030 of the Oracle blockchain network 1020 receives a data request from the information user 1050.
- the data request includes information on data required by the information user 1050 and may include whether or not the data is to be accessed only by the specified information user 1050.
- the data request may be received through the API 1111 of the access module 1110.
- API 1111 may utilize Restful API or SDK API.
- the API 1111 may be connected to the information source 1010 to receive data, and may be connected to the information user 1050 to provide a channel for requesting and receiving data.
- the Oracle node 1030 Upon receiving the data request, the Oracle node 1030 performs a request determination step S1020 of determining whether the requested data exists in the distributed data storage 1040.
- the request determination step S1020 whether the requested data exists in the distributed data storage 1040 is determined by searching the data storage details 1061, and when the requested data exists in the distributed data storage 1040
- a loading step (S1041) is performed to start the provision process (S1040), and a data acquisition step (S1031) is performed to perform a storage process (S1030) when the requested data does not exist in the distributed data storage 1040.
- the storage process S1030 is a process of acquiring data that does not exist in the distributed data storage 1040 and the Oracle blockchain network 1020 from the information source 1010 existing outside the Oracle blockchain network 1020.
- the providing process S1040 is a process of providing data existing in the distributed data storage 1040 to the information user 1050.
- the Oracle node 1030 searches the storage details 1061 stored in the Oracle blockchain 1060 to determine whether the requested data matches the previously stored data to determine the existence of the requested data. can do.
- the storage details 1061 include the type of data, the name, the name of the acquired information source 1010, the content of protection, acquisition time, reliability determination information of the information source 1010, and storage location information of the distributed data storage 1040. And the like. Since the storage details 1061 are stored in the Oracle blockchain 1060 stored in the storage unit 1033 of the Oracle node 1030, the request determination step (S1020) does not go through the consensus or verification process of the Oracle blockchain network 1020. Can be operated without.
- a storage process (S1030) is performed to bring the requested data into the Oracle blockchain network 1020.
- the data acquisition step (S1031) is to acquire data from an information source 1010 existing outside the Oracle blockchain network 1020.
- the data collection method applied may vary depending on the type of the information source 1010.
- the data collection method may be different when the information source 1010 is an external blockchain network and an external device other than a blockchain network.
- the information source 1010 is the EOS blockchain network
- the EOS blockchain network stores data in a table manner, so data is collected by reading a table, and the information source 1010 is an Ethereum block.
- the information source 1010 is an Ethereum block.
- data can be collected using the View function provided by the Ethereum blockchain network.
- the Oracle blockchain network 1020 acquires data from the information source 1010, only data according to the request of the information user 1050 may be selectively collected.
- the data acquisition step (S1031) may be performed in such a way that the Oracle node 1030 that has received the data request accesses the data of the information source 1010 through the API 1111.
- the Oracle node 1030 searches whether or not the requested data exists in the information source 1010, and if the data exists, fetches the data.
- the scheduler 1131 of the data management module 1130 may manage a schedule for collecting data that should be collected on a regular basis.
- the scheduler 1131 may operate the storage process S1130 to collect data when a predetermined time is reached.
- a reliability determination step (S1032) is performed to determine the reliability of the data.
- the Oracle blockchain network 1020 determines the reliability of the data provided by the information source 1010 by determining the reliability of the information source 1010 itself.
- the information source 1010 generates or receives and provides a result performed, generated, or determined in the real world outside the Oracle blockchain network 1020 in a data format that can be recognized by a computer device, and provides the World Wide Web (WWW). ), etc., it provides the result data that is performed, generated, or determined in the network.
- WWW World Wide Web
- the reliability of the information source 1010 may be determined by verifying information on a real subject providing information using a physical computer device.
- the reliability determination step S1032 is a process of verifying information about the information source 1010 itself provided by the information source 1010 to the Oracle blockchain network 1020. That is, in the reliability determination step (S1032), who is the subject operating the information source 1010, whether the subject operating the information source 1010 exists, and the subject operating the information source 1010 can be trusted in the real world. It is judged whether or not it has been verified.
- the reliability determination step S1032 may be omitted when it is determined that the information source 1010 is already reliable.
- the reliability determination step S1032 may be performed to determine the reliability of the information source 1010 again when a predetermined period has elapsed after the information source 1010 is determined to be reliable.
- a parsing step (S1033) is performed.
- the parsing step (S1033) is to parse the data acquired from the information source (1010).
- the parsing step S1033 may be performed by the parser 1112 of the access module 1110.
- the parser 1112 may analyze data acquired from the information source 1010 and classify it by detailed type.
- the parser 1112 may classify detailed data by applying various parsing algorithms according to the type of data acquired from the information source 1010.
- the data protection step S1034 is to provide protection according to the type of data. Since the data contains personal information, it is necessary to protect the privacy, or it is necessary to protect the data so that only the information user 1050 requesting the data can access it.
- the protection that can be given to data includes anonymization, categorization, aggregation, encryption, etc.
- Anonymization, categorization, and aggregate processing may be performed through the de-identification algorithm 1132 of the data management module 1130.
- Anonymization is the modification or removal of some or all of the names of people in the data so that they cannot be recognized. For example, a part of the name "Hong Gil-dong” may be transformed into “Hong*Dong", or all may be transformed, such as "Customer 1".
- Total processing is to calculate the total amount when there are multiple values of a specific item. For example, if the number of transactions of "Hong*Dong" is "20/40/10", the total number of transactions can be counted as "70".
- Categorization is the aggregation according to the range in which a specific value is included. For example, if the number of transactions for "Hong*Dong” is "13", it can be counted as "10-20 times", which is a predetermined range.
- Encryption is encryption so that only the specified information user 1050 can view the data. Encryption may be performed in the encryption unit 1133 of the data management module 1130. Encryption may be performed by receiving a public key of the information user 1050 and encrypting data using the public key of the information user 1050. Encryption may be performed by encrypting a symmetric key using the public key of the information user 1050, encrypting data using the symmetric key, and then storing or providing the encrypted symmetric key and data together. If personal information protection is unnecessary or data that can be disclosed, protection may not be provided in the data protection step (S1034).
- the data that has undergone the protection phase is shared with the Oracle nodes 1030 constituting the Oracle blockchain network 1020 to reach consensus.
- the storage step S1035 may be performed.
- the data storage details 1061 are stored in the Oracle blockchain 1060 while storing the data in the distributed data storage 1040.
- the operation of storing the data storage details 1061 in the Oracle blockchain 1060 may be performed according to the data storage usage record smart contract 1141 of the Oracle smart contract module 1140.
- the data storage usage record smart contract 1141 may perform an operation of storing data in the distributed data storage 1040 and an operation of storing the storage details 1061 in the Oracle blockchain 1060.
- the distributed data storage 1040 may store the received data.
- the Oracle smart contract module 1140 may record and manage the storage details 1061 and the provision details 1062.
- the Oracle smart contract module 1140 may define a table inside for data management, record and manage all storage details 1061 and provision details 1062, and update data storage and provision details.
- the storage details 1061 and the provision details 1062 are shared and verified by at least some of the Oracle nodes 1030 participating in the Oracle blockchain network 1020 according to a consensus algorithm such as BFT, and the Oracle block 1060a according to the consensus. Can be stored in the storage space of.
- Data can be of various sizes. Since it is difficult to store all data in the storage space of the Oracle block 1060a, the data may be stored in the distributed data storage 1040.
- the distributed data storage 1040 can guarantee the integrity of files by managing the storage of files based on a block chain.
- the decentralized data storage 1040 receives a data storage request from the Oracle blockchain network 1020 through the API 1111, selects a category suitable for the data, indexes it, and stores this content in the decentralized data storage 1040 After sharing it to some of the nodes that make up its own blockchain network, it is recorded in the storage medium of the shared node.
- the loading step (S1041) is to acquire data requested from the inside or outside of the Oracle blockchain network 1020 from the distributed data storage 1040. Since the storage details 1061 include information related to a location where data is stored in the distributed data storage 1040, requested data may be obtained based on the storage details 1061.
- the protection change step S1042 is performed.
- the protection change step S1042 is to remove or change the protection given to the requested data.
- the protection change step S1042 may be performed using the de-identification algorithm 1132 or the encryption unit 1133 of the data management module 1130.
- the protection may be removed or changed according to a data request so that the information user 1050 can use the data.
- the data may be decrypted by receiving the private key of the information user 1050.
- the reconfiguration step is a process of reconstructing data parsed and stored in the distributed data storage 1040 into a data format based on a data request.
- the reconfiguration step may be performed in the parser 1112 of the access module.
- the transaction details stored in the distributed data storage 1040 may be processed into a data format that can be used in another Oracle blockchain network 1020.
- a providing step (S1044) of providing the reconstructed data to the information user 1050 is performed.
- the requested data is provided and the data provision details 1062 are stored in the Oracle blockchain 1060.
- the providing step S1044 may be performed according to the data storage usage record smart contract 1141 of the Oracle smart contract module 1140.
- important data is stored as a provision history 1062 in the storage space of the Oracle block 1060a. Is saved.
- the provision details 1062 may include the contents of the data request, the type, name, and format of the requested data, the information of the information user 1050, the contents of protection removal or change, and the like.
- an embodiment of the present invention can service various Mainnet connectors and dApps that can connect the blockchain and the blockchain to each other, and the reliability of the data exchanged between the blockchains It can provide a service that grants.
- Encryption may be performed using a public key/private key encryption method, and data may be encrypted with the public key of a specific information user 1050. Alternatively, encryption may be encrypted with the public key of a specific Oracle node 1030 and stored in the distributed data storage 1040.
- the protection change step (S1042) of the provision process (S1040) may be omitted. If the data is not disclosed to the public and only needs to be accessed by a specific information user 1050, the data can be decrypted with the private key of a specific Oracle node 1030 in the protection change step (S1042) of the storage process (S1030) to decrypt the data. have.
- the information user 1050 can decrypt the data with his own private key to recognize the data, so the protection is changed. Decryption may not be performed in step S1042.
- FIG. 10 is a diagram showing a reliability determination step (S1032) of the information source 1010 according to an embodiment of the present invention.
- the reliability determination step (S1032) is a first determination step of determining whether the information source 1010 is trusted using an SSL certificate provided by the information source 1010, the information source 1010 A second determination step of determining whether the information source 1010 is trusted by using the domain registration information of the information source 1010 obtained through the Whois service based on the domain, and the trust of the information source 1010 This is a process of performing at least one of the third determination steps of determining whether or not the information source 1010 is trusted based on the vote of the Oracle node 1030 in the proof-of-stake method and based on the vote of the Oracle node 1030. In the reliability determination step S1032, all of the first to third determination steps may be performed.
- the first determination step may determine whether the information source 1010 is operated by a trusted subject using an SSL certificate provided in an HTTPS environment. Based on the SSL certificate, information such as the address, domain, etc. in which the information source 1010 is operated can be recognized, and the SSL certificate is certified by a certificate authority (CA). Reality can be recognized, and the information source 1010 can be trusted by trusting the certification authority.
- CA certificate authority
- the domain registration information includes information such as a domain name, a registrant address, a registrant email, and an IP address, and may be obtained using a Whois search service that provides domain registration information.
- trust of the information source 1010 by checking whether the SSL certificate and domain registration information are the same or related, whether the access IP and the domain registration information are the same or similar, and whether the domain nationality and IP nationality are the same. You can judge whether or not.
- the Oracle nodes 1030 participating in the Oracle blockchain network 1020 may vote to determine the reliability of the information source 1010. Voting can be conducted in a delegated proof-of-stake (DPoS) method.
- DDoS delegated proof-of-stake
- the oracle nodes 1030 select a legislative oracle node 1030 to conduct a vote to determine the reliability of the information source 1010.
- Clinician Oracle nodes 1030 may be selected with an odd number of 11, 21, 99, and so on.
- the legislator Oracle nodes 1030 can trust the information source 1010.
- the information source 1010 is trusted when a vote is made on whether or not there is a vote in favor of more than the reference value.
- the reliability determination step (S1032) of the method for recognizing external information and providing information applied to a block chain according to an embodiment of the present invention is determined as an unreliable information source 1010 as a result of performing the reliability determination step (S1032).
- -A source-blacklist adding step of adding the untrusted information source 1010 to the blacklist may be further included. If any one of the first to third determination steps is not passed, the information source 1010 cannot be trusted, and the unreliable information source 1010 is added to the source-blacklist. The data acquired from the source-blacklisted information source 1010 is unreliable, so the data is collected from another information source 1010. The information source 1010 registered in the source-blacklist may be deleted after a predetermined period of time elapses. If it has already passed the reliability determination step S1032 and is recognized as a reliable information source 1010, the data obtained from the information source 1010 may be trusted without performing the reliability determination step S1032 for a predetermined period of time.
- FIG. 11 is a diagram illustrating a node reliability verification step of a new node according to an embodiment of the present invention.
- Oracle nodes 1030 constituting the Oracle blockchain network 1020 may be added or removed. When a new node wants to join the Oracle blockchain network 1020, it is necessary to determine whether the node can be trusted.
- Oracle node reliability determination steps (S1101 to S1106) may be performed when a new node requests to join the Oracle blockchain network 1020.
- the Oracle node reliability determination step (S1101 to S1106) is a process of allowing or blocking the joining by determining the reliability of a new node requesting the joining.
- Oracle node reliability determination step (S1101 to S1106) is to determine the reliability of a new node that has requested to join the Oracle blockchain network 1020, when the increment per unit time of the new node exceeds the reference value (Y in S1101) for a predetermined period. During the period, the joining of the new node is stopped (S1105), and if there is an oracle block 1060a already created in the new node (Y of S1102), it is determined as an untrusted oracle node 1030 and the joining is blocked (S1105).
- the node-blacklist is added (S1106), and when a new node is included in the node-blacklist (Y of S1103), the joining may be blocked (S1105).
- the Oracle blockchain network 1020 can control the growth rate of new nodes (S1101), and the new node in which the pre-created Oracle blockchain 1060 exists is determined as a malicious oracle node 1030. The joining can be blocked by (S1102).
- a rapid increase in the number of oracle nodes 1030, or an organization that has performed an attack in which the pre-storing oracle blockchain 1060 exists, or has a history of attacking in the past, such as Antminer, can be added to the node-blacklist.
- organizations added to the node-blacklist can block related IPs or domains.
- the node-blacklist S1106
- it may be added to the node-blacklist (S1106) to block the same oracle node 1030 from continuing to perform the join request. If the Oracle node 1030 already included in the node-blacklist makes a request to join, the joining of the malicious Oracle node 1030 can be immediately blocked.
- the Oracle blockchain network 1020 may be composed of a plurality of Oracle nodes 1030.
- the Oracle node 1030 includes an enclave 1032a that operates at least a part of the Oracle block chain program code, and the Oracle node reliability determination steps (S1101 to S1106) and the Oracle block creation consensus process are performed within the enclave 1032a. Can be done.
- the control unit 1032 of the oracle node 1030 may include an enclave 1032a.
- the enclave 1032a is an information processing space that is physically/software separated from the control unit 1032 so that external access is impossible.
- all or part of the program code for performing the method for recognizing external information and providing information in a block chain application according to an embodiment of the present invention may be executed.
- the program code operating in the enclave 1032a is reliable that it has not been forged or tampered with, and consensus between the oracle nodes 1030, verification of transactions, etc. may be performed in the enclave 1032a.
- a reliability determination step of determining the reliability of the information source 1010 (S1032)
- an Oracle node reliability determination step of determining whether or not a new node is joined (S1101 to S1106)
- data The storage step (S1035) of storing the distributed data storage 1040 and the providing step (S1044) of providing the data to the information user 1050 are performed between the Oracle nodes 1030 constituting the Oracle blockchain network 1020. This can be done with verification and agreement. Verification and agreement between the Oracle nodes 1030 constituting the Oracle blockchain network 1020 may be performed based on the program code included in the operation unit 1142 of the Oracle blockchain network 1020.
- the Oracle blockchain network 1020 can perform consensus or voting based on the Byzantine Fault Tolerance (BFT) algorithm.
- the Oracle blockchain network 1020 can conduct consensus or voting in a distributed proof-of-stake (DPoS) method.
- DDoS distributed proof-of-stake
- the Oracle nodes 1030 elect a legislator Oracle node 1030 to proceed with the voting (S1201).
- information IP address, etc.
- the legislator Oracle nodes 1030 are individually assigned to the information source 1010. Approach to and perform the first or second judgment step, and share the result.
- the legislator Oracle node 1030 may wait until they are shared (S1205).
- the number of oracle nodes 1030 determined to be reliable as a result of performing the first or second determination step is greater than the reference value (S1203), it may be determined that the information source 1010 is reliable (S1204).
- the number of oracle nodes 1030 determined to be reliable is less than the reference value (S1203), consensus or voting has failed, and it is determined that the information source 1010 is not trusted and can be recorded in the source-blacklist (S1206). . If the agreement fails, the shared data may be discarded (S1206).
- the Oracle node reliability determination steps S1101 to S1106 may be performed.
- the Oracle nodes 1030 elect the legislator Oracle node 1030 (S1201), and the legislator Oracle node 1030 is the number of requests to join the Oracle node 1030 per hour, Determine whether there is an oracle block 1060a created in advance in the new node, or whether it is a malicious node registered in the node-blacklist, and share the result (S1202), and the number of oracle nodes 1030 that the new node determines to be reliable is a reference value. In more cases (S1203), a new node may be joined (S1204).
- the result of performing the storage process S1030 and the provision process S1040 is shared and verified with the Oracle nodes 1030 to be stored in the Oracle block 1060a as the storage details 1061 and the provision details 1062.
- the oracle nodes 1030 may perform verification and consensus for generating the oracle block 1060a including the storage details 1061 or the provision details 1062 at a predetermined time in a delegated proof-of-stake (DPoS) method.
- DoS delegated proof-of-stake
- data existing outside the Oracle blockchain 1060 is imported into the Oracle blockchain 1060, and data stored inside the Oracle blockchain 1060 is transferred to the Oracle block chain 1060.
- Two-way data exchange provided to the outside of the blockchain 1060 may be provided.
- control unit 51b control unit
- control unit 1032 control unit
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Storage Device Security (AREA)
Abstract
One embodiment of the present invention: provides a sharing service providing method using a complex IoT device, so as to register various types of shared resources in a blockchain network so that the shared resources can be used, and can provide a sharing service so that the shared resources are used on the basis of use authority; and provides a method for recognizing external information through blockchain application and providing information, so as to ensure the confidentiality and integrity of data and privacy of information users when exchanging data while providing a bidirectional data exchange for bringing data that exists outside an Oracle blockchain into the Oracle blockchain and providing data stored in the Oracle blockchain to the outside of the Oracle blockchain.
Description
본 발명은 복합 IoT 디바이스 및 이를 이용한 공유서비스 제공방법 및 블록체인 응용 외부 정보 인식 및 정보 제공방법에 관한 것이다. The present invention relates to a complex IoT device, a method for providing a shared service using the same, and a method for recognizing external information and providing information using a block chain application.
현재의 공유서비스는 기업이 개인과 개인을 중개하고 수수료를 받는 형태로 이루어지고 있으며, 기업이 운영하는 중앙집중화된 공유서비스 제공 시스템에 기초하여 서비스가 제공되고 있다. 현재의 공유서비스는 하나의 품목을 공유하기 위한 서비스 제공형태를 갖고 있다. 예를 들어, 우버(Uber)는 차량공유 서비스를 제공하고, 에어비엔비(Airbnb)는 숙박공유 서비스를 제공한다. 이러한 기존 공유서비스는 다양한 종류의 제품이나 서비스를 제공하지 못하는 한계가 있다. The current sharing service is performed in the form of a company brokering an individual and an individual and receiving a fee, and the service is provided based on a centralized sharing service provision system operated by the company. The current shared service has a form of providing a service to share a single item. For example, Uber provides a vehicle-sharing service, and Airbnb provides a lodging-sharing service. These existing shared services have limitations in that they cannot provide various types of products or services.
또한, 현재의 공유서비스는 공유서비스를 제공하기 위한 중앙집중화된 시스템을 이용하므로, 해킹이나 서버에 대한 공격을 받는 경우 서비스의 제공이 어려워지는 단일실패지점이 존재하는 문제가 있다. In addition, since the current shared service uses a centralized system for providing the shared service, there is a problem that there is a single point of failure that makes it difficult to provide the service when it is hacked or attacked on the server.
블록체인(blockchain) 기술은 거래내역을 기록한 원장을 다수의 노드(Node)에 분산하여 저장/관리하는 분산 원장(distributed ledger) 기술이다. 블록체인은 다수의 거래 기록을 하나의 블록(block)에 기록하고 이전 블록과 다음 블록을 연결하여 체인(chain)으로 연결한 구조를 갖는다. 블록체인 기술은 블록체인에 저장된 기록을 위조하거나 변조하기 어려운 특성에 기초하여 다양한 분야에 적용되고 있다. 블록체인에 기록된 정보를 위조하거나 변조하기 어렵다는 것은 달리 말하면 이미 기록된 정보를 수정하기 어렵다는 것이고, 최초에 잘못된 정보가 블록체인에 기록되는 경우 문제가 발생할 수 있다.Blockchain technology is a distributed ledger technology that distributes and stores/manages ledgers recording transaction details across multiple nodes. Blockchain has a structure in which multiple transaction records are recorded in one block, and the previous block and the next block are connected to each other in a chain. Blockchain technology is being applied in various fields based on the characteristics that it is difficult to forge or falsify records stored in the blockchain. In other words, it is difficult to forge or alter the information recorded in the blockchain, in other words, it is difficult to modify the information that has already been recorded, and problems may arise if incorrect information is initially recorded in the blockchain.
블록체인 기술은 스마트 컨트랙트(smart contract) 기능을 제공할 수 있다. 스마트 컨트랙트는 계약 당사자가 사전에 협의한 내용을 미리 프로그래밍하여 전자계약 문서를 생성하고 계약 조건이 모두 만족되면 자동으로 계약 내용을 실행하는 기술이다. 스마트 컨트랙트의 계약 조건이 블록체인 네트워크에서 획득할 수 없는 정보인 경우 블록체인 외부에서 정보를 획득할 필요가 있다. 블록체인 외부의 정보가 블록체인에 일단 기록되면 수정하기 어렵기 때문에, 블록체인 외부의 정보가 신뢰할 수 있는 것인지 판단할 필요가 있다. Blockchain technology can provide smart contract functions. Smart contract is a technology that creates an electronic contract document by programming the contents previously negotiated by the contracting party, and automatically executes the contract contents when all the contract conditions are satisfied. If the contract condition of the smart contract is information that cannot be obtained from the blockchain network, it is necessary to obtain information from outside the blockchain. Once information outside the blockchain is recorded on the blockchain, it is difficult to modify it, so it is necessary to determine whether the information outside the blockchain is reliable.
[선행기술문헌][Prior technical literature]
[특허문헌][Patent Literature]
(특허문헌 1) KR 10-2013-0047915 A (Patent Document 1) KR 10-2013-0047915 A
(특허문헌 2) KR 10-2018-0102269 A (Patent Document 2) KR 10-2018-0102269 A
본 발명의 일실시예에 따른 목적은, 다양한 종류의 공유자원을 공유하고 거래할 수 있는 블록체인 기반의 공유 및 거래 플랫폼을 제공하는 것이다. An object according to an embodiment of the present invention is to provide a blockchain-based sharing and trading platform capable of sharing and transacting various types of shared resources.
또한, 본 발명의 일실시예에 따른 목적은, 다양한 종류의 공유자원에 결합가능하고 블록체인 네트워크 및 사용자 단말과 상호작용하여 이용권한이 있는 사람에게만 공유자원에의 접근을 허가할 수 있는 복합 IoT 디바이스를 제공하는 것이다.In addition, an object according to an embodiment of the present invention is a complex IoT that can be combined with various types of shared resources and allows access to shared resources only to those with permission by interacting with the blockchain network and user terminals. It is to provide a device.
본 발명의 일실시예에 따른 목적은, 오라클 블록체인이 외부 시스템과 정보 교환시 데이터의 기밀성과 무결성을 보장하기 위한 것이다.An object according to an embodiment of the present invention is to ensure the confidentiality and integrity of data when the Oracle blockchain exchanges information with an external system.
또한, 본 발명의 일실시예에 따른 목적은, 오라클 블록체인이 외부 시스템과 정보를 교환할 수 있도록, 정보 접근 경로에 대한 보안, 외부 정보 제공자의 검증, 획득된 데이터 및 정보사용자의 프라이버시 보장, 데이터 스토리지 기능을 제공할 수 있는 스마트 컨트랙트 방식의 오라클 프레임워크를 제공하기 위한 것이다. In addition, an object according to an embodiment of the present invention is to secure information access paths, verify external information providers, ensure the privacy of acquired data and information users, so that the Oracle blockchain can exchange information with external systems, It is to provide a smart contract type of Oracle framework that can provide data storage functions.
본 발명의 일실시에에 따른 복합 IoT 디바이스는, 다양한 종류의 공유자원에 결합되어 물리적 또는 전기적으로 상기 공유자원을 개폐하는 잠금모듈, 사용자 단말 또는 블록체인 네트워크와 데이터를 송수신하는 통신모듈, 및 상기 사용자 단말이 상기 공유자원의 이용권한을 갖는지 여부를 상기 블록체인 네트워크로부터 수신하는 키에 기초하여 판단하고, 상기 잠금모듈을 개폐하도록 제어하는 컨트롤러모듈을 포함할 수 있다. The complex IoT device according to an embodiment of the present invention includes a lock module that is coupled to various types of shared resources to physically or electrically open and close the shared resource, a communication module that transmits and receives data to and from a user terminal or a blockchain network, and the It may include a controller module that determines whether the user terminal has the right to use the shared resource based on a key received from the blockchain network, and controls to open and close the lock module.
또한, 상기 컨트롤러모듈은 상기 통신모듈과 상기 사용자 단말 사이의 근거리 통신 또는 GPS 정보를 이용하여 상기 사용자 단말이 정해진 거리만큼 접근하여야 상기 이용권한을 갖는지 여부를 판단하는 절차를 시작할 수 있다. In addition, the controller module may start a procedure of determining whether the user terminal has the use right only when the user terminal approaches a predetermined distance using GPS information or short-range communication between the communication module and the user terminal.
또한, 본 발명의 일실시에에 따른 복합 IoT 디바이스는, 모션센서, 인체감지센서, 적외선센서, 초음파센서, 터치센서 중에서 적어도 하나를 이용하여 상기 공유자원의 이용상태를 감시하여 이용상태정보를 생성하고 상기 컨트롤러모듈에 제공하는 게이트웨이모듈을 더 포함할 수 있으며, 상기 게이트웨이모듈은 물리적으로 별도의 디바이스로 형성되고, 상기 공유자원의 이용상태를 감시 가능한 위치의 상기 공유자원에 결합될 수 있다.In addition, the complex IoT device according to an embodiment of the present invention generates usage status information by monitoring the usage status of the shared resource using at least one of a motion sensor, a human body detection sensor, an infrared sensor, an ultrasonic sensor, and a touch sensor. And a gateway module provided to the controller module. The gateway module may be physically formed as a separate device, and may be coupled to the shared resource at a location capable of monitoring the state of use of the shared resource.
또한, 상기 잠금모듈은 상기 사용자가 상기 공유자원의 이용권한에 기초하여 상기 잠금모듈을 개방하여야 상기 공유자원에 미리 설치되어 있는 다른 잠금장치에 접근가능하도록, 상기 잠금장치에 애드온 방식으로 설치될 수 있고, 상기 컨트롤러모듈은 상기 공유자원의 이용권한에 기초하여 상기 잠금모듈을 개방하는 경우, 상기 잠금장치를 개방할 수 있는 키를 상기 사용자 단말로 제공할 수 있다. In addition, the locking module may be installed in an add-on method to the locking device so that the user must open the locking module based on the permission to use the shared resource to access another locking device previously installed on the shared resource. In addition, the controller module may provide a key for opening the locking device to the user terminal when opening the locking module based on the right to use the shared resource.
본 발명의 일실시에에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법은, 관리자 단말이 관리자 dApp을 통하여 공유자원의 정보 및 상기 공유자원에 결합된 복합 IoT 디바이스의 정보를 블록체인 네트워크에 제공하여 상기 공유자원을 공유가능하도록 제공하는 공유자원 등록단계, 사용자 단말이 사용자 dApp을 통하여 상기 블록체인 네트워크에 등록된 상기 공유자원의 이용권한을 요청하고 상기 관리자 단말이 사전에 지정해놓은 스마트 컨트랙트에 기초하여 이용권한이 부여되는 이용권한 획득단계, 및 상기 복합 IoT 디바이스가 상기 사용자 단말에 이용권한이 존재하는지 판단하여 상기 공유자원에 접근가능하도록 잠금을 개방하는 이용시작단계를 포함할 수 있다. A method of providing a shared service using a complex IoT device according to an embodiment of the present invention, wherein a manager terminal provides information of a shared resource and information of a complex IoT device coupled to the shared resource to a blockchain network through a manager dApp. Shared resource registration step of providing shared resources to be shared, a user terminal requests permission to use the shared resource registered in the blockchain network through a user dApp, and the manager terminal uses it based on a smart contract designated in advance. It may include a use permission acquisition step in which the permission is granted, and a use start step of opening a lock to allow access to the shared resource by determining whether the use permission exists in the user terminal by the composite IoT device.
또한, 상기 공유자원 등록단계는 관리자 단말이 관리자용 dApp을 통하여 상기 공유자원의 정보 및 상기 복합 IoT 디바이스의 정보를 상기 블록체인 네트워크에 제공하는 단계, 및 상기 블록체인 네트워크의 관리자용 스마트 컨트랙트에 기초하여 상기 공유자원의 정보 및 상기 복합 IoT 디바이스의 정보가 상기 블록체인 네트워크가 생성하는 블록에 기록되고 상기 블록이 공유되는 단계를 포함할 수 있다. In addition, in the step of registering the shared resource, the manager terminal provides the information of the shared resource and the information of the complex IoT device to the blockchain network through a dApp for a manager, and based on a smart contract for an administrator of the blockchain network. Thus, the information on the shared resource and the information on the complex IoT device may be recorded in a block generated by the blockchain network, and the block may be shared.
또한, 상기 이용권한 획득단계는 상기 사용자 단말이 상기 사용자용 dApp을 통해 상기 블록체인 네트워크에 분산 저장된 블록체인에 기록된 공유자원의 검색을 요청하면, 상기 사용자용 dApp이 상기 블록체인에 기록된 공유자원을 검색하여 제공가능한 공유자원의 목록을 상기 사용자 단말로 제공하는 단계, 상기 사용자 단말이 제공가능한 공유자원의 목록 중에서 공유자원을 선택하여 이용권한 획득을 요청하는 단계, 및 상기 블록체인 네트워크의 관리자용 스마트 컨트랙트는 요청된 공유자원의 이용가능여부를 판단하고 이용가능한 경우 상기 사용자 단말에 이용권한을 부여하였음을 블록체인에 기록하는 단계를 포함할 수 있다. In addition, in the step of acquiring the use right, when the user terminal requests a search for shared resources recorded in the blockchain distributedly stored in the blockchain network through the dApp for the user, the dApp for the user is shared recorded in the blockchain. Searching for a resource and providing a list of available shared resources to the user terminal, selecting a shared resource from a list of shared resources that can be provided by the user terminal and requesting acquisition of use rights, and the administrator of the blockchain network The smart contract for use may include determining whether or not the requested shared resource is available and, if available, recording in the blockchain that the user terminal has been given permission to use it.
또한, 상기 이용시작단계는 사용자 단말이 사용자용 dApp을 통하여 상기 블록체인 네트워크에 이용권한에 기초한 상기 복합 IoT 디바이스의 잠금 개방을 요청하는 단계, 상기 복합 IoT 디바이스가 상기 사용자 단말이 정해진 거리 이내에 위치하는지 판단하는 단계, 상기 복합 IoT 디바이스와 상기 사용자 단말이 정해진 거리 이내에 위치하는 경우, 상기 복합 IoT 디바이스와 상기 사용자 단말이 각각 상기 블록체인 네트워크에 일회용 인증 프로토콜의 실행을 요청하는 단계, 상기 블록체인 네트워크는 상기 일회용 인증 프로토콜에 따라, 일회용 키를 생성하여 상기 복합 IoT 디바이스와 상기 사용자 단말에 각각 전달하는 단계, 상기 복합 IoT 디바이스가 수신한 상기 일회용 키와 상기 사용자 단말로부터 수신한 상기 일회용 키가 일치하는 경우 상기 사용자 단말에 이용권한이 있는 것으로 판단하여 잠금을 개방하는 단계를 포함할 수 있다. In addition, the use start step is a step of requesting, by a user terminal, to unlock the complex IoT device based on usage rights to the blockchain network through a dApp for the user, whether the complex IoT device is located within a predetermined distance. Determining, when the complex IoT device and the user terminal are located within a predetermined distance, the complex IoT device and the user terminal each requesting execution of a one-time authentication protocol from the blockchain network, the blockchain network According to the one-time authentication protocol, generating a one-time key and transmitting it to the composite IoT device and the user terminal, respectively, when the one-time key received by the composite IoT device and the one-time key received from the user terminal match It may include the step of opening the lock by determining that the user terminal has permission to use.
또한, 상기 블록체인 네트워크는 상기 공유자원의 공유에 필요한 정보, 상기 공유자원의 이용 기록, 상기 공유자원의 관리자 또는 사용자에 관한 정보를 포함한 블록체인을 저장하고, 상기 공유자원의 공유에 관련된 기능의 적어도 일부를 수행하는 복수의 노드를 포함할 수 있다. In addition, the blockchain network stores a block chain including information necessary for sharing the shared resource, a record of the use of the shared resource, and information on an administrator or user of the shared resource, and functions related to the sharing of the shared resource It may include a plurality of nodes that perform at least some of them.
또한, 상기 복합 IoT 디바이스는 다양한 종류의 공유자원에 결합되어 물리적 또는 전기적으로 상기 공유자원을 개폐하는 잠금모듈, 사용자 단말 또는 블록체인 네트워크와 데이터를 송수신하는 통신모듈, 및 상기 사용자 단말이 상기 공유자원의 이용권한을 갖는지 여부를 상기 블록체인 네트워크로부터 수신하는 키에 기초하여 판단하고, 상기 잠금모듈을 개폐하도록 제어하는 컨트롤러모듈을 포함할 수 있다. In addition, the complex IoT device includes a locking module that physically or electrically opens and closes the shared resource by being coupled to various types of shared resources, a communication module that transmits and receives data to and from a user terminal or a blockchain network, and the user terminal is the shared resource. It may include a controller module that determines whether or not to have the right to use of, based on a key received from the blockchain network, and controls to open and close the lock module.
본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크의 외부에 존재하는 정보소스로부터 데이터를 획득하는 데이터 획득단계, 상기 정보소스의 신뢰 여부를 검증하여 상기 데이터의 신뢰도를 판단하는 신뢰도 판단단계, 상기 데이터를 파싱하는 파싱단계, 상기 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계, 및 상기 데이터를 분산형 데이터 스토리지에 저장하면서 데이터 저장내역을 오라클 블록체인에 저장하는 저장단계를 포함할 수 있다. Blockchain application external information recognition and information provision method according to an embodiment of the present invention, a data acquisition step of acquiring data from an information source existing outside the Oracle blockchain network, by verifying the trust of the information source, the The reliability determination step of determining the reliability of the data, the parsing step of parsing the data, the data protection step of providing protection according to the type of the data, and the data storage history while storing the data in a distributed data storage are stored in the Oracle blockchain. It may include a storage step of storing in.
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 오라클 블록체인 네트워크의 내부 또는 외부로부터 요청된 데이터를 상기 분산형 데이터 스토리지로부터 획득하는 로딩단계, 상기 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계, 상기 데이터 공급 요청에 기초하여, 상기 요청된 데이터를 필요한 형식으로 정리하는 재구성단계, 및 상기 요청된 데이터를 제공하고 데이터 제공내역을 상기 오라클 블록체인에 저장하는 제공단계를 더 포함할 수 있다. In addition, the method for recognizing external information and providing information on a blockchain application according to an embodiment of the present invention includes a loading step of acquiring data requested from the inside or outside of the Oracle blockchain network from the distributed data storage, the requested A protection change step of removing or changing the protection given to data, a reconfiguration step of organizing the requested data in a required format based on the data supply request, and providing the requested data and providing the data provision details to the Oracle block It may further include a provision step of storing in the chain.
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는지 여부를 상기 데이터 저장내역을 검색하여 판단하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는 경우 상기 로딩단계를 수행하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하지 않는 경우 상기 데이터 획득단계를 수행하는 요청판단 단계를 더 포함할 수 있다. In addition, the method for recognizing and providing information outside the blockchain application according to an embodiment of the present invention determines whether the requested data exists in the decentralized data storage by searching the data storage details, and It may further include a request determination step of performing the loading step when data exists in the distributed data storage, and performing the data acquisition step when the requested data does not exist in the distributed data storage.
또한, 상기 신뢰도 판단단계는 상기 정보소스가 제공하는 SSL 인증서를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제1 판단단계, 상기 정보소스의 도메인에 기초하여 Whois 서비스를 통해 획득한 상기 정보소스의 도메인 등록 정보를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제2 판단단계, 및 상기 정보소스의 신뢰여부에 관하여 위임된 지분 증명 방식의 오라클 노드 투표를 진행하고 오라클 노드 투표에 기초하여 상기 정보소스의 신뢰여부를 판단하는 제3 판단단계 중에서 적어도 하나를 수행할 수 있다. In addition, the reliability determination step is a first determination step of determining whether the information source is trusted using the SSL certificate provided by the information source, and the information source obtained through the Whois service based on the domain of the information source. A second determination step of determining whether or not the information source is trusted using domain registration information, and an Oracle node voting in a delegated stake-proof method regarding whether or not the information source is trusted, and the information source based on the Oracle node vote. At least one of the third determination steps of determining whether or not is trusted may be performed.
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 신뢰도 판단단계를 수행한 결과 신뢰할 수 없는 정보소스로 판단되는 경우 소스-블랙리스트에 상기 신뢰할 수 없는 정보소스를 추가하는 소스-블랙리스트 추가 단계를 더 포함할 수 있다. In addition, the method for recognizing and providing information outside the blockchain application according to an embodiment of the present invention includes the untrusted information source in the source-blacklist when it is determined as an untrusted information source as a result of performing the reliability determination step. A source-blacklist adding step of adding a may be further included.
또한, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 상기 오라클 블록체인 네트워크에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 상기 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우 정해진 기간동안 신규 노드의 합류를 중지하고, 상기 신규 노드에 생성된 오라클 블록이 존재하는 경우 신뢰할 수 없는 오라클 노드로 판단하여 합류를 차단하고 노드-블랙리스트에 추가하며, 상기 신규 노드가 상기 노드-블랙리스트에 포함된 경우 합류를 차단하는, 오라클 노드 신뢰도 판단단계를 더 포함할 수 있다. In addition, the method for recognizing and providing information on external information applied to a block chain according to an embodiment of the present invention is to determine the reliability of a new node that has requested to join the Oracle blockchain network, the increase amount per unit time of the new node is a reference value. If exceeded, the joining of the new node is stopped for a predetermined period, and if there is an oracle block created in the new node, it is determined as an untrusted oracle node, and the joining is blocked and added to the node-blacklist, and the new node is In the case of being included in the node-blacklist, the step of determining the reliability of an Oracle node may further include blocking the joining.
또한, 상기 오라클 블록체인 네트워크는 복수의 오라클 노드로 구성되며, 상기 오라클 노드는 상기 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브를 포함하며, 상기 인클레이브 내에서 상기 오라클 노드 신뢰도 판단단계 및 오라클 블록생성 합의과정이 수행될 수 있다. In addition, the Oracle blockchain network is composed of a plurality of oracle nodes, the oracle node includes an enclave for operating at least a part of the oracle block chain program code, and determining the reliability of the oracle node within the enclave, and The Oracle block generation consensus process can be performed.
또한, 상기 데이터 보호단계는 상기 데이터에서 개인정보에 해당하는 정보를 익명화하거나 삭제하거나 필요한 데이터만을 범주화 또는 총계처리하는 비식별화를 수행하고, 필요한 경우 비식별화가 수행된 데이터를 암호화하는 것일 수 있다. In addition, the data protection step may be to anonymize or delete information corresponding to personal information from the data, or to perform de-identification in which only necessary data is categorized or aggregated, and if necessary, the de-identified data may be encrypted. .
본 발명의 특징 및 이점들은 첨부도면에 의거한 다음의 상세한 설명으로 더욱 명백해질 것이다.Features and advantages of the present invention will become more apparent from the following detailed description based on the accompanying drawings.
이에 앞서 본 명세서 및 청구범위에 사용된 용어나 단어는 통상적이고 사전적인 의미로 해석되어서는 아니 되며, 발명자가 그 자신의 발명을 가장 최선의 방법으로 설명하기 위해 용어의 개념을 적절하게 정의할 수 있다는 원칙에 입각하여 본 발명의 기술적 사상에 부합되는 의미와 개념으로 해석되어야만 한다.Prior to this, terms or words used in the present specification and claims should not be interpreted in a conventional and dictionary meaning, and the inventor may appropriately define the concept of the term in order to describe his own invention in the best way. It should be interpreted as a meaning and concept consistent with the technical idea of the present invention on the basis of the principle that there is.
본 발명의 일실시예에 따르면, 블록체인 기반의 공유 및 거래 플랫폼을 이용하여 누구라도 다양한 종류의 공유자원을 등록할 수 있고 블록체인에 등록된 공유자원을 이용하거나 거래할 수 있다. According to an embodiment of the present invention, anyone can register various types of shared resources and use or trade shared resources registered in the blockchain by using a blockchain-based sharing and transaction platform.
또한, 본 발명의 일실시예에 따른 목적은, 다양한 종류의 공유자원에 결합될 수 있는 복합 IoT 디바이스를 이용하고, 블록체인 네트워크가 제공하는 스마트 컨트랙트를 이용하여 다양한 종류의 공유자원을 이용하거나 거래할 수 있다. In addition, an object according to an embodiment of the present invention is to use a complex IoT device that can be combined with various types of shared resources, and to use or trade various types of shared resources by using a smart contract provided by a blockchain network. can do.
본 발명의 일실시예에 따르면, 오라클 블록체인의 외부에 존재하는 데이터를 오라클 블록체인의 내부로 들여오고 오라클 블록체인의 내부에 저장된 데이터를 오라클 블록체인의 외부로 제공하는 양방향 데이터 교환을 제공할 수 있다. According to an embodiment of the present invention, it is possible to provide a two-way data exchange that brings data existing outside of the Oracle blockchain into the inside of the Oracle blockchain and provides data stored inside the Oracle blockchain to the outside of the Oracle blockchain. I can.
또한, 본 발명의 일실시예에 따르면, 데이터 교환시 데이터의 기밀성, 무결성, 정보사용자의 프라이버시를 보장할 수 있다. In addition, according to an embodiment of the present invention, data confidentiality, integrity, and privacy of information users can be guaranteed when exchanging data.
또한, 본 발명의 일실시예에 따르면, 다양한 외부 데이터의 접근을 위한 데이터 획득, 저장, 처리, 스케쥴링을 오라클 블록체인 네트워크에서 수행할 수 있는 스마트 컨트랙트 오라클을 제공할 수 있다. In addition, according to an embodiment of the present invention, it is possible to provide a smart contract oracle capable of performing data acquisition, storage, processing, and scheduling for accessing various external data in an Oracle blockchain network.
또한, 본 발명의 일실시예에 따르면, 각종 메인넷 커넥터 (Mainnet connector)와 dApp 을 서비스 할 수 있으며, 데이터에 신뢰도를 부여하는 서비스를 제공할 수 있다. In addition, according to an embodiment of the present invention, various mainnet connectors and dApps can be serviced, and a service that gives reliability to data can be provided.
도 1은 본 발명의 일실시예에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법을 제공하는 환경을 나타낸 것이다. 1 shows an environment for providing a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
도 2는 본 발명의 일실시예에 따른 관리자용 스마트 컨트랙트의 기능을 나타내는 도면이다.2 is a diagram showing the functions of a smart contract for a manager according to an embodiment of the present invention.
도 3은 본 발명의 일실시예에 따른 사용자용 스마트 컨트랙트의 기능을 나타내는 도면이다. 3 is a diagram showing the functions of a smart contract for a user according to an embodiment of the present invention.
도 4는 본 발명의 일실시예에 따른 복합 IoT 디바이스를 나타내는 도면이다. 4 is a diagram illustrating a composite IoT device according to an embodiment of the present invention.
도 5a는 본 발명의 일실시예에 따른 애드온 방식으로 결합되는 복합 IoT 디바이스를 나타내는 도면이다. 5A is a diagram illustrating a composite IoT device coupled with an add-on method according to an embodiment of the present invention.
도 5b는 본 발명의 일실시예에 따른 복합 IoT 디바이스의 게이트웨이모듈을 나타내는 도면이다. 5B is a diagram illustrating a gateway module of a composite IoT device according to an embodiment of the present invention.
도 6은 본 발명의 일실시예에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법을 나타낸 흐름도이다. 6 is a flowchart illustrating a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
도 7은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 오라클 블록체인 네트워크를 나타낸 도면이다. 7 is a diagram showing an Oracle blockchain network that performs a method of recognizing external information and providing information applied to a block chain according to an embodiment of the present invention.
도 8는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 각 단계를 나타내는 도면이다. 8 is a diagram showing each step of a method for recognizing external information and providing information applied to a block chain according to an embodiment of the present invention.
도 9은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 프레임워크 구조를 나타내는 도면이다. 9 is a diagram showing a framework structure of a program code that performs a method of recognizing external information and providing information applied to a block chain according to an embodiment of the present invention.
도 10는 본 발명의 일실시예에 따른 정보소스의 신뢰도 판단단계를 나타내는 도면이다. 10 is a diagram illustrating a step of determining reliability of an information source according to an embodiment of the present invention.
도 11는 본 발명의 일실시예에 따른 신규 노드의 노드 신뢰도 검증단계를 나타내는 도면이다. 11 is a diagram illustrating a node reliability verification step of a new node according to an embodiment of the present invention.
본 발명의 일실시예의 목적, 특정한 장점들 및 신규한 특징들은 첨부된 도면들과 연관되어지는 이하의 상세한 설명과 바람직한 실시예들로부터 더욱 명백해질 것이다. 본 명세서에서 각 도면의 구성요소들에 참조번호를 부가함에 있어서, 동일한 구성 요소들에 한해서는 비록 다른 도면상에 표시되더라도 가능한 한 동일한 번호를 가지도록 하고 있음에 유의하여야 한다. 또한, "일면", "타면", "제1", "제2" 등의 용어는 하나의 구성요소를 다른 구성요소로부터 구별하기 위해 사용되는 것으로, 구성요소가 상기 용어들에 의해 제한되는 것은 아니다. 이하, 본 발명의 일실시예를 설명함에 있어서, 본 발명의 일실시예의 요지를 불필요하게 흐릴 수 있는 관련된 공지 기술에 대한 상세한 설명은 생략한다. Objects, specific advantages and novel features of an embodiment of the present invention will become more apparent from the following detailed description and preferred embodiments associated with the accompanying drawings. In adding reference numerals to elements of each drawing in the present specification, it should be noted that, even though they are indicated on different drawings, only the same elements are to have the same number as possible. In addition, terms such as “one side”, “the other side”, “first” and “second” are used to distinguish one component from other components, and the component is limited by the terms no. Hereinafter, in describing an embodiment of the present invention, a detailed description of related known techniques that may unnecessarily obscure the subject matter of the embodiment of the present invention will be omitted.
이하, 첨부된 도면을 참조하여, 본 발명의 일실시예를 상세히 설명한다.Hereinafter, with reference to the accompanying drawings, an embodiment of the present invention will be described in detail.
도 1은 본 발명의 일실시예에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법을 제공하는 환경을 나타낸 것이다. 1 shows an environment for providing a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
본 발명의 일실시예에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법은 복합 IoT 디바이스(20), 관리자 단말(31), 사용자 단말(32), 블록체인 네트워크(50)를 이용하여 수행될 수 있다. A method of providing a shared service using a complex IoT device according to an embodiment of the present invention may be performed using a complex IoT device 20, a manager terminal 31, a user terminal 32, and a block chain network 50. .
블록체인 네트워크(50)는 복수의 노드(51)가 피어 투 피어(P2P, Peer to Peer) 방식으로 연결된 네트워크이다. 블록체인 네트워크(50)는 복수의 노드(51)들 사이의 정보처리와 각 노드(51)의 정보처리에 기초하여 복합 IoT 디바이스를 이용한 공유서비스 제공방법을 수행할 수 있다. 블록체인 네트워크(50)는 공유자원(10)의 공유에 필요한 정보, 공유자원(10)의 이용 기록, 공유자원(10)의 관리자 또는 사용자에 관한 정보를 저장할 수 있는 블록체인(60)을 저장하고, 공유자원(10)의 공유에 관련된 기능의 적어도 일부를 수행하는 복수의 노드(51)로 구성될 수 있다. The blockchain network 50 is a network in which a plurality of nodes 51 are connected in a peer-to-peer (P2P) method. The blockchain network 50 may perform a method of providing a shared service using a complex IoT device based on information processing between a plurality of nodes 51 and information processing of each node 51. The blockchain network 50 stores a block chain 60 that can store information necessary for sharing the shared resource 10, the use record of the shared resource 10, and information about the administrator or user of the shared resource 10. And, it may be composed of a plurality of nodes 51 that perform at least some of the functions related to the sharing of the shared resource (10).
노드(51)는 통신부(51a), 제어부(51b), 저장부(51c)를 포함할 수 있다. 노드(51)는 서버 컴퓨터, PC, 노트북 PC, 태블릿 PC, 스마트폰 등의 정보처리장치를 포함한다. 통신부(51a)는 다른 노드(51), 관리자 단말(31), 사용자 단말(32), 복합 IoT 디바이스(20)와 데이터를 송수신할 수 있다. 통신부(51a)는 노드(51)와 다른 노드(51)를 연결하여 블록체인 네트워크(50)를 구성할 수 있다. 저장부(51c)는 블록체인(60)의 전부 또는 일부를 저장할 수 있다. 저장부(51c)는 본 발명의 일실시예에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법을 수행하는 프로그램 코드를 저장할 수 있다. 제어부(51b)는 본 발명의 일실시예에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법을 수행하는 프로그램 코드를 실시할 수 있는 프로세서(processor)를 포함할 수 있다. The node 51 may include a communication unit 51a, a control unit 51b, and a storage unit 51c. The node 51 includes an information processing device such as a server computer, a PC, a notebook PC, a tablet PC, and a smart phone. The communication unit 51a may transmit and receive data to and from the other node 51, the manager terminal 31, the user terminal 32, and the complex IoT device 20. The communication unit 51a may configure the block chain network 50 by connecting the node 51 and another node 51. The storage unit 51c may store all or part of the block chain 60. The storage unit 51c may store a program code for performing a method of providing a shared service using a complex IoT device according to an embodiment of the present invention. The control unit 51b may include a processor capable of executing a program code for performing a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
블록체인(60)은 이전 블록(61)의 해시값을 자기 블록(61)의 구성으로 포함하는 블록(61)들의 연속적인 연결로 구성될 수 있다. 블록(61)은 이전 블록(61)의 해시값 및 저장공간을 포함한다. 블록체인(60)은 블록체인 네트워크(50)를 구성하는 복수의 노드(51)에 각각 저장되고, 복수의 노드(51)에 저장된 블록체인(60)들은 서로 동일한 데이터를 갖는다. 블록(61)의 저장공간에는 공유자원(10)에 관한 정보, 복합 IoT 디바이스(20)에 관한 정보, 관리자에 관한 정보, 사용자에 관한 정보, 공유자원(10)의 사용기록 등이 저장될 수 있다. The block chain 60 may be composed of a continuous connection of blocks 61 including the hash value of the previous block 61 as a configuration of the magnetic block 61. The block 61 includes the hash value and storage space of the previous block 61. The block chain 60 is stored in a plurality of nodes 51 constituting the block chain network 50, respectively, and the block chains 60 stored in the plurality of nodes 51 have the same data. In the storage space of the block 61, information about the shared resource 10, information about the complex IoT device 20, information about the administrator, information about the user, usage records of the shared resource 10, etc. may be stored. have.
관리자 단말(31) 및 사용자 단말(32)은 블록체인 네트워크(50)에 접속하여 데이터를 송수신할 수 있는 정보처리장치이다. 관리자 단말(31) 및 사용자 단말(32)은 스마트폰, 노트북 PC, 태블릿 PC, 웨어러블 컴퓨터 등의 휴대용 전자기기를 포함할 수 있다. 관리자 단말(31) 및 사용자 단말(32)은 dApp을 통하여 블록체인 네트워크(50)와 데이터를 송수신할 수 있다. The manager terminal 31 and the user terminal 32 are information processing devices that can connect to the blockchain network 50 to transmit and receive data. The manager terminal 31 and the user terminal 32 may include portable electronic devices such as a smart phone, a notebook PC, a tablet PC, and a wearable computer. The manager terminal 31 and the user terminal 32 may transmit and receive data to and from the blockchain network 50 through a dApp.
dApp(distributed Application)은 사용자 및 관리자가 복합 IoT 디바이스를 이용한 공유서비스 제공방법을 이용하기 위하여 관리자 단말(31) 및 사용자 단말(32)을 통해 접속하는 프론트엔드 인터페이스(Frontend Interface)이다. dApp은 관리자 단말(31) 및 사용자 단말(32)에 설치되어 실행될 수도 있고, 블록체인 네트워크(50)와 별도의 서버에서 운영되는 웹페이지 형태로 관리자 단말(31) 및 사용자 단말(32)에 제공될 수 있으며, 블록체인 네트워크(50)의 노드(51)에서 실행될 수도 있다. dApp은 관리자용 dApp(41) 및 사용자용 dApp(42)을 포함할 수 있다. 관리자용 dApp(41)은 공유자원(10)에 관한 정보, 및 복합 IoT 디바이스(20)에 관한 정보의 등록기능, 공유자원(10)의 모니터링 기능, 각종 관리 허가 기능들을 관리자 단말(31)에 제공할 수 있다. 사용자용 dApp(42)은 공유자원(10) 검색기능, 이용권한 신청, 복합 IoT 디바이스(20)의 잠금해제 요청 등의 기능들을 관리자 단말(31)에 제공할 수 있다. The dApp (distributed application) is a front-end interface that users and managers access through the manager terminal 31 and the user terminal 32 in order to use a method of providing a shared service using a complex IoT device. The dApp may be installed and executed on the administrator terminal 31 and the user terminal 32, or provided to the administrator terminal 31 and the user terminal 32 in the form of a web page operated on a server separate from the blockchain network 50 It can be, and it can also be executed on the node 51 of the blockchain network 50. The dApp may include a dApp 41 for an administrator and a dApp 42 for a user. The dApp 41 for the manager provides information on the shared resource 10, the registration function of the information on the complex IoT device 20, the monitoring function of the shared resource 10, and various management permission functions to the manager terminal 31. Can provide. The user dApp 42 may provide functions such as a search function for the shared resource 10, a request for use permission, and a request for unlocking the complex IoT device 20 to the manager terminal 31.
dApp은 관리자 단말(31) 및 사용자 단말(32)로부터 수신한 데이터나 명령을 블록체인 네트워크(50)에 존재하는 스마트 컨트랙트에 전달한다. 블록체인 네트워크(50)에서 구동되는 스마트 컨트랙트는 관리자용 스마트 컨트랙트(41a) 및 사용자용 스마트 컨트랙트(42a)를 포함한다. 관리자용 스마트 컨트랙트(41a)는 관리자용 dApp(41)으로부터 수신하는 데이터 및 명령에 기초하여 동작할 수 있다. 사용자용 스마트 컨트랙트(42a)는 사용자용 dApp(42)으로부터 수신하는 데이터 및 명령에 기초하여 동작할 수 있다. The dApp transfers data or commands received from the manager terminal 31 and the user terminal 32 to a smart contract existing in the blockchain network 50. Smart contracts running on the blockchain network 50 include a smart contract 41a for administrators and a smart contract 42a for users. The manager smart contract 41a may operate based on data and commands received from the manager dApp 41. The user's smart contract 42a may operate based on data and commands received from the user's dApp 42.
도 2는 본 발명의 일실시예에 따른 관리자용 스마트 컨트랙트(41a)의 기능을 나타내는 도면이고, 도 3은 본 발명의 일실시예에 따른 사용자용 스마트 컨트랙트(42a)의 기능을 나타내는 도면이다. FIG. 2 is a diagram showing the functions of the manager's smart contract 41a according to an embodiment of the present invention, and FIG. 3 is a diagram showing the functions of the user's smart contract 42a according to an embodiment of the present invention.
도 2에 도시된 바와 같이, 관리자용 스마트 컨트랙트(41a)는 공유자원 정보관리, 공유자원 접근관리, 사용자 현황정보 관리, 위치기반 접속관리 기능을 수행할 수 있다. 공유자원 정보관리 기능은 공유자원 추가, 공유자원 정보 수정, 공유자원 삭제 등의 기능을 포함할 수 있고, 해당 기능을 수행하기 위하여 필요한 공유자원 목록, 기기(복합 IoT 디바이스(20), 관리자 단말(31), 사용자 단말(32) 등)의 Mac Address, 게이트웨이모듈(27)의 센서타입, 게이트웨이모듈(27)의 센서측정간격 등의 정보를 테이블 형식으로 저장할 수 있다. 공유자원 접근관리 기능은 접근 허용기기 추가, 접근 허용기기 삭제, 접근 Log 추가 등의 기능을 포함할 수 있고, 해당 기능을 수행하기 위하여 필요한 접근 기기의 Mac Address, 연결된 사용자 ID, 추가시간 등의 기기현황이나 기기 ID, 접속 경로, 접속 시간 등의 접속 현황 등의 정보를 테이블 형식으로 저장할 수 있다. 사용자 현황정보 관리 기능은 회원 차단 등의 기능을 포함할 수 있고, 해당 기능을 수행하기 위해 필요한 ID, 나이, 성별, 지역 등의 신상정보, 회원 가입 시간 등의 사용자 현황 등의 정보를 테이블 형식으로 저장할 수 있다. 위치기반 접속관리 기능은 접속기록 삽입, 실내/실외 수정 등의 기능을 수행할 수 있으며, 해당 기능을 수행하기 위해 필요한 송신자 기기 ID, 수신자 기기 ID, 위도/경도, 접속시점, 실내/실외, 실내좌표 등의 위치데이터 정보를 테이블 형식으로 저장할 수 있다. 관리자용 스마트 컨트랙트(41a)는 공유자원(10)을 블록체인 네트워크(50)에 등록하는 기능, 공유자원(10)의 이용 상태를 모니터링하는 기능 등을 수행할 수 있다. As shown in FIG. 2, the manager's smart contract 41a may perform shared resource information management, shared resource access management, user status information management, and location-based access management functions. The shared resource information management function may include functions such as adding shared resources, modifying shared resource information, and deleting shared resources, and a list of shared resources required to perform the function, devices (compound IoT device 20, manager terminal ( 31), information such as the Mac Address of the user terminal 32, etc.), the sensor type of the gateway module 27, and the sensor measurement interval of the gateway module 27 can be stored in a table format. The shared resource access management function can include functions such as adding an access-allowing device, deleting an access-allowing device, and adding an access log, and devices such as the Mac Address of the access device, connected user ID, and additional time required to perform the function. Information such as connection status, such as status, device ID, connection route, and connection time, can be saved in a table format. The user status information management function can include functions such as member blocking, and information such as user status such as ID, age, gender, and region necessary to perform the function, and membership registration time, etc., in a table format. Can be saved. The location-based access management function can perform functions such as inserting access records and modifying indoor/outdoors. Sender device ID, receiver device ID, latitude/longitude, access point, indoor/outdoor, indoor Location data information such as coordinates can be stored in a table format. The manager's smart contract 41a may perform a function of registering the shared resource 10 in the blockchain network 50, a function of monitoring the state of use of the shared resource 10, and the like.
도 3에 도시된 바와 같이, 사용자용 스마트 컨트랙트(42a)는 사용자 기능, 기기 기능, 위치 기능을 포함할 수 있다. 사용자 기능은 회원가입, 회원정보 수정, 탈퇴 등의 기능을 포함할 수 있고, 해당 기능을 수행하기 위하여 필요한 ID, 나이, 성별, 지역 등의 신상정보 데이터, 회원 가입 시간 등의 사용자 데이터 정보를 테이블 형식으로 저장할 수 있다. 기기 기능은 접근 기기 등록, 기기 현황 체크 등의 기능을 포함할 수 있으며, 해당 기능을 수행하기 위한 접근 기기의 Mac Address, 연결 사용자 ID, 추가 시간 등의 기기 데이터, 및 기기 ID, 접속 경로, 접속 시간 등의 접속 현황 등의 정보를 테이블 형식으로 저장할 수 있다. 위치 기능은 접속 위치 데이터 삽입, 로그 조회 등의 기능을 포함할 수 있고, 해당 기능을 수행하기 위해 필요한 송신자 기기 ID, 수신자 기기 ID, 위도/경도, 접속시점, 실내/실외, 실내좌표 등의 정보를 테이블 형식으로 저장할 수 있다. 관리자용 스마트 컨트랙트(41a)와 사용자용 스마트 컨트랙트(42a)가 이용하는 정보는 블록(61)의 저장공간에 저장될 수 있고, 암호화되어 저장될 수 있다. As shown in FIG. 3, the smart contract 42a for a user may include a user function, a device function, and a location function. User functions may include functions such as membership registration, member information modification, and withdrawal, and user data information such as ID, age, gender, region, and user data information necessary to perform the function is tabled. Can be saved in a format. Device functions may include functions such as registering access devices and checking device status, and device data such as the Mac Address of the access device to perform the function, connection user ID, and additional time, and device ID, access route, and access Information such as access status, such as time, can be saved in a table format. The location function may include functions such as inserting access location data and querying logs, and information such as sender device ID, receiver device ID, latitude/longitude, access point, indoor/outdoor, indoor coordinates, etc. necessary to perform the function. Can be saved in a table format. Information used by the manager's smart contract 41a and the user's smart contract 42a may be stored in the storage space of the block 61, and may be encrypted and stored.
도 4는 본 발명의 일실시예에 따른 복합 IoT 디바이스(20)를 나타내는 도면이다. 4 is a diagram illustrating a composite IoT device 20 according to an embodiment of the present invention.
도 4에 도시된 바와 같이, 본 발명의 일실시예에 따른 복합 IoT 디바이스(20)는 다양한 종류의 공유자원(10)에 결합되어 물리적 또는 전기적으로 공유자원(10)을 개폐하는 잠금모듈(21), 사용자 단말(32) 또는 블록체인 네트워크(50)와 데이터를 송수신하는 통신모듈(22), 및 사용자 단말(32)이 공유자원(10)의 이용권한을 갖는지 여부를 상기 블록체인 네트워크(50)로부터 수신하는 키에 기초하여 판단하고, 잠금모듈(21)을 개폐하도록 제어하는 컨트롤러모듈(23)을 포함할 수 있다. 또한, 본 발명의 일실시예에 따른 복합 IoT 디바이스(20)는 사용자 또는 관리자에게 정보를 시각적 또는 청각적으로 제공할 수 있는 표시모듈(25), 사용자 또는 관리자의 명령이나 터치(touch) 등을 입력받을 수 있는 입력모듈(24), 복합 IoT 디바이스(20)의 구성들에게 전원을 공급하는 배터리 등의 전원모듈(26)을 포함할 수 있다. 복합 IoT 디바이스(20)가 포함하는 각 모듈들(21 내지 27)은 물리적으로 독립된 디바이스로 구성될 수도 있고, 일부 모듈들이 하나의 디바이스로 구성될 수도 있다. As shown in FIG. 4, the complex IoT device 20 according to an embodiment of the present invention is coupled to various types of shared resources 10 to physically or electrically open and close the shared resources 10. ), the user terminal 32 or the communication module 22 for transmitting and receiving data with the blockchain network 50, and whether the user terminal 32 has the right to use the shared resource 10 or not, the blockchain network 50 ), and may include a controller module 23 for controlling to open and close the locking module 21, based on a key received from). In addition, the composite IoT device 20 according to an embodiment of the present invention includes a display module 25 capable of visually or aurally providing information to a user or an administrator, a command or a touch of a user or an administrator, and the like. It may include an input module 24 that can receive input and a power module 26 such as a battery that supplies power to components of the composite IoT device 20. Each of the modules 21 to 27 included in the composite IoT device 20 may be configured as a physically independent device, or some modules may be configured as a single device.
잠금모듈(21)은 컨트롤러모듈(23)의 제어에 따라 개폐될 수 있다. 잠금모듈(21)은 공유자원(10)에 물리적으로 결합되어 공유자원(10)을 이용할 때 필요한 공유자원(10)의 일부 구성에 사용자가 접근하는 것을 차단할 수 있다. 예를 들어, 공유자원(10)이 회의실이나 숙박시설인 경우 잠금모듈(21)은 문의 도어락이나 자물쇠에 물리적으로 결합되어 사용자가 문을 임의로 개방할 수 없도록 차단할 수 있다. 또는, 공유자원(10)이 전자기기일 때 잠금모듈(21)은 전자기기의 입력장치나 출력장치에 결합되거나, 전자기기에 일체로 결합되어 사용자가 전자기기의 전부 또는 일부를 사용할 수 없도록 물리적 또는 전기적인 제한을 수행할 수 있다. 또는, 잠금모듈(21)은 도어락이나 자물쇠 등에 일체로 형성될 수 있다. 잠금모듈(21)은 다양한 공유자원(10)에 결합될 수 있다. The locking module 21 may be opened or closed under the control of the controller module 23. The locking module 21 may be physically coupled to the shared resource 10 to block a user from accessing a part of the shared resource 10 required when using the shared resource 10. For example, when the shared resource 10 is a conference room or a lodging facility, the lock module 21 may be physically coupled to a door lock or lock of a door to block the user from arbitrarily opening the door. Alternatively, when the shared resource 10 is an electronic device, the locking module 21 is coupled to an input device or an output device of the electronic device, or is integrally combined with the electronic device to prevent the user from using all or part of the electronic device. Alternatively, you can perform electrical restrictions. Alternatively, the locking module 21 may be integrally formed with a door lock or a lock. The locking module 21 may be coupled to various shared resources 10.
통신모듈(22)은 관리자 단말(31), 사용자 단말(32), 블록체인 네트워크(50)와 데이터를 송수신할 수 있다. 통신모듈(22)은 Wi-Fi, Bluetooth, NFC 등의 근거리 통신방식을 이용할 수 있다. 통신모듈(22)은 GPS 정보를 이용하여 자신의 위치를 인식할 수도 있다. The communication module 22 can transmit and receive data with the manager terminal 31, the user terminal 32, and the blockchain network 50. The communication module 22 may use a short-range communication method such as Wi-Fi, Bluetooth, and NFC. The communication module 22 may recognize its own location using GPS information.
컨트롤러모듈(23)은 잠금모듈(21)의 개폐를 제어할 수 있다. 컨트롤러모듈(23)은 공유자원(10)의 이용을 요청한 사용자 단말(32)의 이용권한을 확인할 수 있다. 컨트롤러모듈(23)은 일회용 인증 프로토콜에 따라 블록체인 네트워크(50)로부터 수신되는 키와 사용자 단말(32)이 통신모듈(22)을 통해 전송하는 키를 비교하여 사용자 단말(32)의 이용권한을 확인할 수 있다. 블록체인 네트워크(50)로부터 수신되는 키와 사용자 단말(32)이 통신모듈(22)을 통해 전송하는 키가 일치하는 경우 컨트롤러모듈(23)은 사용자 단말(32)에 이용권한이 존재하는 것으로 판단할 수 있다. 컨트롤러모듈(23)은 사용자 단말(32)의 이용권한의 존재가 확인되면 잠금모듈(21)을 개방하도록 제어한다. 컨트롤러모듈(23)은 정해진 사용기간이 경과하거나, 필요한 조건이 만족되는 경우 잠금모듈(21)을 잠그도록 제어할 수 있다. The controller module 23 may control opening and closing of the locking module 21. The controller module 23 may check the usage rights of the user terminal 32 that has requested the use of the shared resource 10. The controller module 23 compares the key received from the blockchain network 50 with the key transmitted through the communication module 22 by the user terminal 32 according to the one-time authentication protocol to determine the right to use the user terminal 32. I can confirm. If the key received from the blockchain network 50 and the key transmitted by the user terminal 32 through the communication module 22 match, the controller module 23 determines that the user terminal 32 has permission to use it. can do. The controller module 23 controls to open the locking module 21 when the existence of the right to use the user terminal 32 is confirmed. The controller module 23 may control to lock the locking module 21 when a predetermined period of use has elapsed or a necessary condition is satisfied.
컨트롤러모듈(23)은 통신모듈(22)과 사용자 단말(32) 사이의 근거리 통신 또는 GPS 정보를 이용하여 사용자 단말(32)이 정해진 거리만큼 접근하여야 이용권한을 갖는지 여부를 판단하는 절차를 시작할 수도 있다. 사용자 단말(32)과 통신모듈(22)이 정해진 거리만큼 접근한 상태에서 잠금이 개방되어야 이용권한이 없는 사람의 이용을 방지할 수 있는 점에서 근접여부 판단은 추가적인 안전장치가 된다. 통신모듈(22)은 Wi-Fi, Bluetooth, NFC 등의 전파 강도에 기초한 거리판단을 수행하거나, 자신의 GPS 좌표와 사용자 단말(32)로부터 수신하는 사용자 단말(32)의 GPS 정보를 비교하여 근접 여부를 판단할 수 있다. 컨트롤러모듈(23)은 사용자 단말(32)이 통신모듈(22)과 정해진 거리만큼 접근한 것으로 판단되면, 블록체인 네트워크(50)에 일회용 인증 프로토콜에 기초한 이용권한 확인을 요청할 수 있다.The controller module 23 may start a procedure to determine whether the user terminal 32 has the right to use only when the user terminal 32 approaches a predetermined distance using GPS information or short-range communication between the communication module 22 and the user terminal 32. have. The proximity determination is an additional safety device in that the user terminal 32 and the communication module 22 must be unlocked when the user terminal 32 and the communication module 22 are approached by a predetermined distance to prevent the use of a person without permission. The communication module 22 performs a distance determination based on the intensity of radio waves such as Wi-Fi, Bluetooth, and NFC, or compares its GPS coordinates with the GPS information of the user terminal 32 received from the user terminal 32 to provide proximity. You can judge whether or not. When it is determined that the user terminal 32 has approached the communication module 22 by a predetermined distance, the controller module 23 may request the block chain network 50 to check usage rights based on a one-time authentication protocol.
컨트롤러모듈(23)은 사용자 또는 관리자가 입력모듈(24)로 입력하는 정보에 기초하여 공유자원(10)의 이용에 필요한 절차를 더 수행할 수 있다. 컨트롤러모듈(23)은 공유자원(10)의 이용권한에 기초하여 잠금모듈(21)을 개방하는 경우, 잠금장치를 개방할 수 있는 키를 상기 사용자 단말(32)로 제공할 수 있다. 컨트롤러모듈(23)은 사용자 단말(32)에 이용권한이 존재하는 것으로 판단되면, 공유자원(10)을 이용하는데 필요한 비밀번호 등의 정보를 사용자 단말(32)로 제공하거나 표시모듈(25)을 통해 사용자에게 제공할 수 있다. 예를 들어, 잠금모듈(21)이 도어락에 물리적으로 연결되어 있는 경우, 사용자 단말(32)의 이용권한이 확인되면 컨트롤러모듈(23)은 잠금모듈(21)을 개방하도록 제어하면서, 도어락을 개방하는데 필요한 도어락 비밀번호를 사용자 단말(32)로 제공하거나 표시모듈(25)을 통해 사용자에게 제공할 수 있다. The controller module 23 may further perform a procedure required to use the shared resource 10 based on information input by a user or an administrator to the input module 24. The controller module 23 may provide a key for opening the locking device to the user terminal 32 when opening the locking module 21 based on the right to use the shared resource 10. When it is determined that the user terminal 32 has the right to use, the controller module 23 provides information such as a password required to use the shared resource 10 to the user terminal 32 or through the display module 25. It can be provided to the user. For example, when the lock module 21 is physically connected to the door lock, the controller module 23 controls to open the lock module 21 when the user terminal 32 is authorized to use the door lock and opens the door lock. The door lock password required for this may be provided to the user terminal 32 or may be provided to the user through the display module 25.
도 5a는 본 발명의 일실시예에 따른 애드온 방식으로 결합되는 복합 IoT 디바이스(20)를 나타내는 도면이다. 화살표 A는 잠금모듈(21)이 도어락 상에 점선으로 표시된 부분에 결합되는 것을 나타낸 것이다.5A is a diagram illustrating a composite IoT device 20 coupled in an add-on method according to an embodiment of the present invention. Arrow A shows that the locking module 21 is coupled to a portion indicated by a dotted line on the door lock.
도 5a에 도시된 바와 같이, 복합 IoT 디바이스(20)의 잠금모듈(21)은 사용자가 공유자원(10)의 이용권한에 기초하여 잠금모듈(21)을 개방하여야 공유자원(10)에 미리 설치되어 있는 다른 잠금장치(100)에 접근가능하도록, 잠금장치(100)에 애드온 방식으로 설치될 수 있다. 애드온(add on) 방식이란 공유자원(10)에 설치되어 있는 잠금장치(100)는 그대로 유지하고, 잠금장치(100)에 복합 IoT 디바이스(20)를 추가로 결합하는 것이다. 복합 IoT 디바이스(20)의 잠금모듈(21)은 잠금장치(100)를 개방하기 위해 필요한 키패드, 열쇠구멍, 다이얼 등을 커버하도록 결합되고, 잠금모듈(21)이 개방되면 사용자가 키패드, 열쇠구멍, 다이얼 등에 접근할 수 있는 공간을 오픈하는 방식으로 형성될 수 있다. 예를 들어, 공유자원(10)인 공간에 진입하는 문에 설치된 잠금장치(100)인 도어락에 복합 IoT 디바이스(20)가 결합되되, 잠금모듈(21)이 도어락의 키패드(110)를 덮도록 결합되고, 잠금모듈(21)의 오픈영역(21a)이 화살표 B를 따라 이동하는 슬라이드 방식 또는 힌지 방식으로 개방되면 사용자가 도어락의 키패드(110)에 접근할 수 있도록 형성될 수 있다. As shown in FIG. 5A, the lock module 21 of the composite IoT device 20 is preinstalled on the shared resource 10 only when the user opens the lock module 21 based on the permission to use the shared resource 10. In order to be able to access the other locking device 100 that has been set, it may be installed in the locking device 100 in an add-on method. In the add-on method, the locking device 100 installed on the shared resource 10 is maintained as it is, and the complex IoT device 20 is additionally coupled to the locking device 100. The locking module 21 of the complex IoT device 20 is coupled to cover a keypad, a keyhole, a dial, etc. necessary to open the locking device 100, and when the locking module 21 is opened, the user , It can be formed in a way that opens a space for access to the dial, etc. For example, the complex IoT device 20 is coupled to the door lock, which is the locking device 100 installed on the door entering the space as the shared resource 10, so that the locking module 21 covers the keypad 110 of the door lock. It is coupled, and when the open area 21a of the locking module 21 is opened in a slide manner or a hinge manner that moves along the arrow B, it may be formed so that the user can access the keypad 110 of the door lock.
도 5b는 본 발명의 일실시예에 따른 복합 IoT 디바이스(20)의 게이트웨이모듈(27)을 나타내는 도면이다. 5B is a diagram showing the gateway module 27 of the composite IoT device 20 according to an embodiment of the present invention.
도 5b에 도시된 바와 같이, 본 발명의 일실시예에 따른 복합 IoT 디바이스(20)는 게이트웨이모듈(27)을 더 포함할 수 있다. 게이트웨이모듈(27)은 모션센서, 인체감지센서, 적외선센서, 초음파센서, 터치센서 중에서 적어도 하나를 이용하여 공유자원(10)의 이용상태를 감시하여 이용상태정보를 생성하고 상기 컨트롤러모듈(23)에 제공할 수 있다. 게이트웨이모듈(27)은 공유자원(10)을 이용하는 사람(32a)이 존재하는지 여부를 감시한다. 게이트웨이모듈(27)은 물리적으로 별도의 디바이스로 형성되고, 공유자원(10)의 이용상태를 감시 가능한 위치의 공유자원(10)에 결합될 수 있다. 예를 들어, 공유자원(10)이 회의실이나 숙박시설 등의 공간인 경우, 게이트웨이모듈(27)은 공간에 사람(32a)이 존재하는지 여부를 확인할 수 있는 위치에 설치될 수 있다. 이때 게이트웨이모듈(27)은 잠금모듈(21)과 물리적으로 별도의 디바이스로 형성되어, 게이트웨이모듈(27)이 감지한 공유자원(10)의 이용상태는 통신모듈(22)을 통해 컨트롤러모듈(23)에 전달될 수 있다. 컨트롤러모듈(23)은 이용권한에 기초하여 공유자원(10)을 이용하는 사람(32a)이 침입자인지 정당한 사용자인지 판단할 수 있다. 컨트롤러모듈(23)은 침입자로 판단되는 경우 관리자 단말(31)에 경보를 제공할 수 있다. 컨트롤러모듈(23)은 이용권한에 기초한 사용시간이 만료되면 게이트웨이모듈(27)로부터 수신한 이용상태에 기초하여 공유자원(10)을 이용하는 사람(32a)이 없는지 확인하고, 공유자원(10)을 이용하는 사람(32a)이 없는 경우 잠금모듈(21)이 잠궈지도록 제어할 수 있다. As shown in FIG. 5B, the composite IoT device 20 according to an embodiment of the present invention may further include a gateway module 27. The gateway module 27 monitors the usage status of the shared resource 10 using at least one of a motion sensor, a human body detection sensor, an infrared sensor, an ultrasonic sensor, and a touch sensor to generate usage status information, and the controller module 23 Can be provided to. The gateway module 27 monitors whether or not a person 32a using the shared resource 10 exists. The gateway module 27 may be physically formed as a separate device, and may be coupled to the shared resource 10 at a location capable of monitoring the state of use of the shared resource 10. For example, when the shared resource 10 is a space such as a conference room or a lodging facility, the gateway module 27 may be installed at a location where it is possible to check whether a person 32a exists in the space. At this time, the gateway module 27 is formed as a physically separate device from the lock module 21, and the state of use of the shared resource 10 detected by the gateway module 27 is determined by the controller module 23 through the communication module 22. ) Can be passed on. The controller module 23 may determine whether the person 32a using the shared resource 10 is an intruder or a legitimate user based on the use right. The controller module 23 may provide an alarm to the administrator terminal 31 when it is determined as an intruder. When the usage time based on the usage authority expires, the controller module 23 checks whether there is no person 32a using the shared resource 10 based on the usage state received from the gateway module 27, and accesses the shared resource 10. If there is no person 32a to use, the locking module 21 can be controlled to be locked.
상술한 바와 같은 본 발명의 일실시예에 따른 복합 IoT 디바이스(20)는 다양한 공유자원(10)에 결합될 수 있고, 공유자원(10)의 이용권한이 존재하는 사용자에게만 잠금모듈(21)을 개방하여 공유자원(10)의 이용을 제공할 수 있다. The complex IoT device 20 according to an embodiment of the present invention as described above may be coupled to various shared resources 10, and the locking module 21 is provided only to a user who has the right to use the shared resource 10. It can be opened to provide the use of the shared resource (10).
도 6은 본 발명의 일실시예에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법을 나타낸 흐름도이다. 6 is a flowchart illustrating a method of providing a shared service using a complex IoT device according to an embodiment of the present invention.
도 6에 도시된 바와 같이, 본 발명의 일실시예에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법은, 관리자 단말(31)이 관리자용 dApp(41)을 통하여 공유자원(10)의 정보 및 공유자원(10)에 결합된 복합 IoT 디바이스(20)의 정보를 블록체인 네트워크(50)에 제공하여 공유자원(10)을 공유가능하도록 제공하는 공유자원 등록단계(S10), 사용자 단말(32)이 사용자용 dApp(42)을 통하여 블록체인 네트워크(50)에 등록된 공유자원(10)의 이용권한을 요청하고 관리자 단말(31)이 사전에 지정해놓은 스마트 컨트랙트에 기초하여 이용권한이 부여되는 이용권한 획득단계(S20), 및 복합 IoT 디바이스(20)가 사용자 단말(32)에 이용권한이 존재하는지 판단하여 공유자원(10)에 접근가능하도록 잠금을 개방하는 이용 시작단계(S30)를 포함할 수 있다. 본 발명의 일실시예에 따른 복합 IoT 디바이스를 이용한 공유서비스 제공방법은, 이용권한에 기초하여 정해진 사용시간이 만료되는 경우, 공유자원(10)의 이용상태를 점검하여 이용이 종료된 것으로 판단되면 잠금모듈(21)이 잠궈지도록 제어하는 이용 종료단계(S40)를 포함할 수 있다. 복합 IoT 디바이스를 이용한 공유서비스 제공방법은, 복합 IoT 디바이스(20), 관리자 단말(31), 사용자 단말(32), 블록체인 네트워크(50)를 포함하는 시스템에서 수행될 수 있다. 관리자와 사용자는 본 발명의 일실시예에 따른 복합 IoT 디바이스(20)를 이용한 공유서비스를 이용하기 위하여 회원가입을 하고 정해진 정보를 등록할 수 있다.As shown in Figure 6, the method of providing a shared service using a complex IoT device according to an embodiment of the present invention, the manager terminal 31 through the manager dApp (41) information and sharing of the shared resource (10) The shared resource registration step (S10) of providing information of the complex IoT device 20 coupled to the resource 10 to the blockchain network 50 so that the shared resource 10 can be shared, the user terminal 32 The usage right is granted based on the smart contract designated by the administrator terminal 31 by requesting the right to use the shared resource 10 registered in the blockchain network 50 through the user dApp 42 It may include an acquisition step (S20), and a use start step (S30) in which the composite IoT device 20 determines whether the user terminal 32 has permission to use it and opens the lock so that the shared resource 10 can be accessed. have. In the method of providing a shared service using a complex IoT device according to an embodiment of the present invention, when the usage time set based on the usage permission expires, when it is determined that the usage is terminated by checking the usage status of the shared resource 10 It may include a use end step (S40) of controlling the locking module 21 to be locked. A method of providing a shared service using a complex IoT device may be performed in a system including a complex IoT device 20, a manager terminal 31, a user terminal 32, and a block chain network 50. In order to use the shared service using the composite IoT device 20 according to an embodiment of the present invention, the administrator and the user may register as a member and register predetermined information.
공유자원 등록단계(S10)는 관리자 단말(31)이 관리자용 dApp(41)을 통하여 공유자원(10)의 정보 및 복합 IoT 디바이스(20)의 정보를 블록체인 네트워크(50)에 제공하는 단계, 및 블록체인 네트워크(50)의 관리자용 스마트 컨트랙트(41a)에 기초하여 공유자원(10)의 정보 및 복합 IoT 디바이스(20)의 정보가 블록체인 네트워크(50)가 생성하는 블록(61)에 기록되고 블록(61)이 공유되는 단계를 포함할 수 있다. The shared resource registration step (S10) is a step in which the manager terminal 31 provides the information of the shared resource 10 and the information of the complex IoT device 20 to the blockchain network 50 through the dApp 41 for the manager, And, based on the smart contract 41a for the manager of the blockchain network 50, the information of the shared resource 10 and the information of the complex IoT device 20 are recorded in the block 61 generated by the blockchain network 50. And block 61 is shared.
먼저 관리자는 복합 IoT 디바이스(20)를 공유자원(10)에 설치한다. 관리자는 관리자 단말(31)을 이용하여 관리자용 dApp(41)을 실행하거나 관리자용 dApp(41)에 접속하여 공유자원(10)에 관한 정보 및 복합 IoT 디바이스(20)에 관한 정보를 입력한다. 공유자원(10)에 관한 정보는 공유자원(10)의 종류, 특징, 대여비용, 대여가능 시간대, 최소대여 가능시간 등 사용자가 공유자원(10)을 이용하는데 필요한 정보를 포함한다. 복합 IoT 디바이스(20)에 관한 정보는 기기 ID, Mac Address, 게이트웨이모듈(27)의 센서 타입, 센서 추가 시간 등 사용자 단말(32)과 블록체인 네트워크(50)가 복합 IoT 디바이스(20)를 인식하고 데이터를 송수신할 수 있도록 하는 정보를 포함한다. 관리자 단말(31)에 입력된 공유자원(10)에 관한 정보 및 복합 IoT 디바이스(20)에 관한 정보는 dApp을 통해 블록체인 네트워크(50)의 관리자용 스마트 컨트랙트(41a)에 전달된다. First, the administrator installs the composite IoT device 20 on the shared resource 10. The manager executes the manager dApp 41 using the manager terminal 31 or accesses the manager dApp 41 to input information about the shared resource 10 and the complex IoT device 20. The information on the shared resource 10 includes information necessary for the user to use the shared resource 10, such as the type, characteristics, rental cost, available rental time, minimum available rental time of the shared resource 10. Information on the complex IoT device 20 includes the device ID, Mac Address, sensor type of the gateway module 27, sensor addition time, etc. The user terminal 32 and the blockchain network 50 recognize the complex IoT device 20. And includes information that enables data to be transmitted and received. The information on the shared resource 10 and the information on the complex IoT device 20 input to the manager terminal 31 is transmitted to the smart contract 41a for the manager of the blockchain network 50 through the dApp.
관리자용 dApp(41)은 블록체인 네트워크(50)의 관리자용 스마트 컨트랙트(41a)를 호출하여 입력받은 공유자원(10)에 관한 정보 및 복합 IoT 디바이스(20)에 관한 정보를 제공한다. 관리자용 dApp(41)은 Restful API를 이용하여 블록체인 네트워크(50)와 데이터를 송수신할 수 있다. The manager dApp 41 provides information on the shared resource 10 and the complex IoT device 20 received by calling the manager smart contract 41a of the blockchain network 50. The dApp 41 for administrators can transmit and receive data with the blockchain network 50 using Restful API.
관리자용 스마트 컨트랙트(41a)는 공유자원 정보관리 기능을 수행하여 공유자원(10)을 사용자가 이용가능하도록 블록체인 네트워크(50) 상에 등록한다. 관리자용 스마트 컨트랙트(41a)는 공유자원(10)에 관한 정보 및 복합 IoT 디바이스(20)에 관한 정보를 블록(61)의 저장공간에 테이블(table) 형식으로 저장하도록 블록체인 네트워크(50)를 구성하는 노드(51)들에 공유할 수 있다. 공유자원(10)에 관한 정보 및 복합 IoT 디바이스(20)에 관한 정보는 검증 및 합의과정을 통해 블록(61)에 저장된다. The manager's smart contract 41a registers the shared resource 10 on the blockchain network 50 so that the user can use the shared resource 10 by performing a shared resource information management function. The manager's smart contract 41a configures the blockchain network 50 to store information on the shared resource 10 and information on the complex IoT device 20 in the storage space of the block 61 in a table format. It can be shared with the constituent nodes 51. Information on the shared resource 10 and information on the complex IoT device 20 are stored in the block 61 through a verification and consensus process.
이용권한 획득단계(S20)는, 사용자 단말(32)이 사용자용 dApp(42)을 통해 블록체인 네트워크(50)에 분산 저장된 블록체인(60)에 기록된 공유자원(10)의 검색을 요청하면, 사용자용 dApp(42)이 블록체인(60)에 기록된 공유자원(10)을 검색하여 제공가능한 공유자원(10)의 목록을 사용자 단말(32)로 제공하는 단계, 사용자 단말(32)이 제공가능한 공유자원(10)의 목록 중에서 공유자원(10)을 선택하여 이용권한 획득을 요청하는 단계, 및 블록체인 네트워크(50)의 관리자용 스마트 컨트랙트(41a)는 요청된 공유자원(10)의 이용가능여부를 판단하고 이용가능한 경우 사용자 단말(32)에 이용권한을 부여하였음을 블록체인(60)에 기록하는 단계를 포함할 수 있다. When the user terminal 32 requests the search for the shared resource 10 recorded in the block chain 60 that is distributed and stored in the block chain network 50 through the user's dApp 42 in the use right acquisition step (S20), , The step of providing a list of available shared resources 10 to the user terminal 32 by searching for the shared resources 10 recorded in the block chain 60 by the user dApp 42, the user terminal 32 Selecting a shared resource 10 from the list of available shared resources 10 and requesting the acquisition of usage rights, and the smart contract 41a for the administrator of the blockchain network 50 It may include the step of determining whether or not the availability is available and, if available, recording in the block chain 60 that the user terminal 32 has been given permission to use it.
사용자는 공유자원(10)을 이용하기 위하여 먼저 이용권한을 획득하여야 한다. 사용자는 사용자 단말(32)에서 사용자용 dApp(42)을 실행하거나 사용자용 dApp(42)에 접속하여 블록체인 네트워크(50)에 등록된 공유자원(10)의 검색을 요청할 수 있다. dApp은 공유자원(10)의 종류, 위치, 사용기간, 대여비용 등의 조건을 선택하여 공유자원(10)을 검색할 수 있는 인터페이스를 제공할 수 있다. dApp은 사용자 단말(32)로부터 수신한 검색조건에 기초하여 블록체인 네트워크(50)를 구성하는 임의의 노드(51)에 검색을 요청할 수 있다. 복수의 노드(51)들 각각은 동일한 블록체인(60)을 저장하고 있으므로, 사용자용 dApp(42)에 의해 요청된 검색을 수행하고 결과를 회신할 수 있다. 사용자 단말(32)은 임의의 노드(51)에서 검색을 수행한 결과를 사용자용 dApp(42)을 통해 전달받을 수 있다. 사용자 단말(32)은 수신한 검색결과를 사용자에게 표시한다.In order to use the shared resource 10, the user must first obtain the right to use. The user may request a search of the shared resource 10 registered in the blockchain network 50 by executing the dApp 42 for the user on the user terminal 32 or by accessing the dApp 42 for the user. The dApp may provide an interface for searching the shared resource 10 by selecting conditions such as the type, location, usage period, and rental cost of the shared resource 10. The dApp may request a search from any node 51 constituting the blockchain network 50 based on the search condition received from the user terminal 32. Since each of the plurality of nodes 51 stores the same blockchain 60, it is possible to perform a search requested by the dApp 42 for a user and return a result. The user terminal 32 may receive a result of performing a search in a node 51 through the dApp 42 for a user. The user terminal 32 displays the received search result to the user.
사용자는 검색결과로 제공된 공유자원(10) 목록에서 공유자원(10)을 선택하고 공유자원(10)의 이용권한 획득을 요청할 수 있다. 사용자 단말(32)은 사용자용 dApp(42)을 통해 사용자가 선택한 공유자원(10)의 이용권한 획득을 블록체인 네트워크(50)의 관리자용 스마트 컨트랙트(41a)에 요청할 수 있다.The user may select the shared resource 10 from the list of shared resources 10 provided as a result of the search and request the acquisition of permission to use the shared resource 10. The user terminal 32 may request to obtain the permission to use the shared resource 10 selected by the user through the dApp 42 for the user to the smart contract 41a for the administrator of the blockchain network 50.
관리자용 스마트 컨트랙트(41a)는 사용자용 dApp(42)으로부터 수신한 공유자원(10)의 이용권한 획득요청을 수신하면, 공유자원(10)의 이용가능 여부를 판단한다. 공유자원(10)의 이용가능 여부는 공유자원(10)의 이용권한 획득요청에 포함된 조건들에 기초하여 판단될 수 있다. 사용자가 요청한 시간에 이미 예약되어 있는 다른 사용자가 존재하는지 여부를 판단하고, 사용자가 블랙리스트에 등록되어 있어서 이용권한을 획득할 자격이 없는 사람인지 판단할 수 있다. 관리자용 스마트 컨트랙트(41a)는 요청된 공유자원(10)이 이용가능한 경우 이용권한을 요청한 사용자 단말(32)에 이용권한을 부여함을 블록체인(60)에 기록한다. 즉, 관리자용 스마트 컨트랙트(41a)는 요청된 시간에 해당 사용자 단말(32)에 이용권한이 존재한다는 내용을 블록체인 네트워크(50)에 공유하고, 블록체인 네트워크(50)는 검증 및 합의를 통해 사용자에게 이용권한이 부여되었음을 블록(61)에 저장한다. 관리자용 스마트 컨트랙트(41a)는 이용권한이 부여되었음을 사용자용 dApp(42)을 통해 사용자 단말(32)에 제공할 수 있다. When the manager's smart contract 41a receives the request for acquiring the use rights of the shared resource 10 received from the user dApp 42, it determines whether the shared resource 10 is available. Whether or not the shared resource 10 is available may be determined based on conditions included in the request for obtaining use rights of the shared resource 10. It is possible to determine whether there is another user already reserved at the time requested by the user, and to determine whether the user is registered in the blacklist and is not entitled to obtain use rights. The manager's smart contract 41a records in the block chain 60 that, when the requested shared resource 10 is available, the permission is granted to the user terminal 32 requesting the permission. That is, the manager's smart contract 41a shares the content that the user terminal 32 has the right to use at the requested time to the blockchain network 50, and the blockchain network 50 through verification and consensus It is stored in block 61 that the user has been given permission to use it. The manager's smart contract 41a may provide the user terminal 32 that the use right has been granted through the dApp 42 for the user.
사용자 단말(32)이 이용권한을 획득하면, 사용자는 사용자 단말(32)을 통해 복합 IoT 디바이스(20)의 잠금을 개방하고 공유자원(10)의 이용을 시작할 수 있다. 이용 시작단계(S30)는 사용자 단말(32)이 사용자용 dApp(42)을 통하여 블록체인 네트워크(50)에 이용권한에 기초한 상기 복합 IoT 디바이스(20)의 잠금 개방을 요청하는 단계, 복합 IoT 디바이스(20)가 사용자 단말(32)이 정해진 거리 이내에 위치하는지 판단하는 단계, 복합 IoT 디바이스(20)와 사용자 단말(32)이 정해진 거리 이내에 위치하는 경우, 복합 IoT 디바이스(20)와 상기 사용자 단말(32)이 각각 상기 블록체인 네트워크(50)에 일회용 인증 프로토콜의 실행을 요청하는 단계, 블록체인 네트워크(50)는 일회용 인증 프로토콜에 따라, 일회용 키를 생성하여 상기 복합 IoT 디바이스(20)와 상기 사용자 단말(32)에 각각 전달하는 단계, 및 상기 복합 IoT 디바이스(20)가 수신한 상기 일회용 키와 상기 사용자 단말(32)로부터 수신한 상기 일회용 키가 일치하는 경우 상기 사용자 단말(32)에 이용권한이 있는 것으로 판단하여 잠금을 개방하는 단계를 포함할 수 있다. When the user terminal 32 obtains the use right, the user may open the lock of the complex IoT device 20 through the user terminal 32 and start using the shared resource 10. In the use start step (S30), the user terminal 32 requests the block chain network 50 to unlock the complex IoT device 20 based on the usage rights through the user dApp 42, the complex IoT device Determining whether the user terminal 32 is located within a predetermined distance, when the complex IoT device 20 and the user terminal 32 are located within a predetermined distance, the complex IoT device 20 and the user terminal ( 32) each requesting execution of a one-time authentication protocol to the blockchain network 50, the blockchain network 50 generates a one-time key according to the one-time authentication protocol, and the composite IoT device 20 and the user Delivering each to the terminal 32, and permission to use the user terminal 32 when the disposable key received by the composite IoT device 20 and the disposable key received from the user terminal 32 match. It may include the step of opening the lock by determining that there is.
사용자는 사용자 단말(32)을 통해 이용권한을 획득한 공유자원(10)에 결합된 복합 IoT 디바이스(20)에 잠금 개방을 요청할 수 있다. 사용자 단말(32)은 복합 IoT 디바이스(20)에 직접 또는 dApp이나 블록체인 네트워크(50)를 통해 잠금 개방을 요청할 수 있다.The user may request the unlocking of the complex IoT device 20 coupled to the shared resource 10 that has obtained the use right through the user terminal 32. The user terminal 32 may request the complex IoT device 20 to open the lock directly or through a dApp or a blockchain network 50.
복합 IoT 디바이스(20)는 잠금 개방 요청을 받으면 사용자 단말(32)이 정해진 거리 이내에 위치하는지 판단하는 근접 여부 판단을 수행할 수 있다. 사용자 단말(32)이 공유자원(10) 근처에 없는 상태에서 이용권한에 기초하여 잠금모듈(21)을 개방하게 되면, 이용권한이 없는 타인이 공유자원(10)을 이용할 위험이 존재하기 때문에, 사용자가 공유자원(10)에 정해진 거리 이내에 위치하는지 판단한다. 근접 여부 판단은 복합 IoT 디바이스(20)의 컨트롤러모듈(23)을 설명하는 과정에서 설명하였으므로 중복되는 내용은 생략한다. 사용자 단말(32)은 Wi-Fi, bluetooth, NFC 등의 근거리 통신을 이용하여 복합 IoT 디바이스(20)에 신호를 송수신할 수 있다. 사용자 단말(32)은 자신의 GPS 좌표를 복합 IoT 디바이스(20)에 전송하여 복합 IoT 디바이스(20)가 근접 여부 판단을 수행할 수 있게 한다.Upon receiving a lock release request, the composite IoT device 20 may perform proximity determination to determine whether the user terminal 32 is located within a predetermined distance. If the user terminal 32 is not near the shared resource 10 and the lock module 21 is opened based on the use right, there is a risk that another person without the use right will use the shared resource 10, It is determined whether the user is located within a predetermined distance to the shared resource 10. Determination of proximity has been described in the process of describing the controller module 23 of the composite IoT device 20, and therefore, overlapping content will be omitted. The user terminal 32 may transmit and receive signals to the complex IoT device 20 using short-range communication such as Wi-Fi, bluetooth, and NFC. The user terminal 32 transmits its GPS coordinates to the complex IoT device 20 so that the complex IoT device 20 can determine whether or not the complex IoT device 20 is in proximity.
사용자 단말(32)이 복합 IoT 디바이스(20)에 정해진 거리 이내에 위치하는 것으로 판단되는 경우, 복합 IoT 디바이스(20)는 사용자 단말(32)에 근접 여부 판단을 통과하였다는 신호를 제공할 수 있다. 근접 여부 판단을 통과한 경우, 복합 IoT 디바이스(20)와 사용자 단말(32)은 블록체인 네트워크(50)에 일회용 인증 프로토콜의 실행을 요청할 수 있다. 복합 IoT 디바이스(20)와 사용자 단말(32)로부터 수신되는 일회용 인증 프로토콜의 실행 요청이 일치하는 경우 블록체인 네트워크(50)는 일회용 인증 프로토콜을 실행한다. When it is determined that the user terminal 32 is located within a predetermined distance to the complex IoT device 20, the complex IoT device 20 may provide a signal indicating that the proximity determination has passed to the user terminal 32. When the proximity determination is passed, the complex IoT device 20 and the user terminal 32 may request the blockchain network 50 to execute a one-time authentication protocol. When the execution request of the one-time authentication protocol received from the composite IoT device 20 and the user terminal 32 match, the blockchain network 50 executes the one-time authentication protocol.
일회용 인증 프로토콜은 블록체인(60)에 저장된 이용권한 기록을 검색하여, 사용자 단말(32)이 정해진 시간에 해당 공유자원(10)의 이용권한을 갖는지 판단하고, 이용권한이 존재하는 경우 일회용 인증 프로토콜은 복합 IoT 디바이스(20)와 사용자 단말(32)에 일회용 키를 생성하여 제공한다. 일회용 키는 임의로 생성되는 값일 수 있고, 복합 IoT 디바이스(20)와 사용자 단말(32) 각각의 공개키로 암호화되어 전달될 수 있다. 복합 IoT 디바이스(20)가 수신한 일회용 키와 사용자 단말(32)이 수신한 일회용 키를 비교하여 일치하는 경우 복합 IoT 디바이스(20)는 사용자 단말(32)이 이용권한을 갖는 것으로 판단하여 잠금모듈(21)의 잠금을 개방할 수 있다. 사용자는 잠금모듈(21)이 개방되면 공유자원(10)을 이용할 수 있다. 잠금모듈(21)이 공유자원(10)의 기존 잠금장치에 애드온 방식으로 결합된 경우, 복합 IoT 디바이스(20)는 사용자 단말(32)에 기존 잠금장치의 비밀번호를 제공하고, 사용자는 사용자 단말(32)에 표시된 비밀번호를 기존 잠금장치에 입력하여 공유자원(10)을 이용할 수 있다. The one-time authentication protocol searches for the use permission record stored in the block chain 60, determines whether the user terminal 32 has permission to use the shared resource 10 at a predetermined time, and if the use permission exists, the one-time authentication protocol Generates and provides a one-time key to the composite IoT device 20 and the user terminal 32. The disposable key may be a randomly generated value, and may be encrypted with public keys of the composite IoT device 20 and the user terminal 32 and transmitted. When the one-time key received by the composite IoT device 20 is compared with the one-time key received by the user terminal 32 and match, the composite IoT device 20 determines that the user terminal 32 has the right to use the lock module. (21) The lock can be opened. The user can use the shared resource 10 when the lock module 21 is opened. When the locking module 21 is combined with the existing locking device of the shared resource 10 in an add-on method, the complex IoT device 20 provides the password of the existing locking device to the user terminal 32, and the user The shared resource 10 can be used by entering the password displayed in 32) into the existing locking device.
게이트웨이모듈(27)은 사용자가 공유자원(10)을 이용하는 과정에서 공유자원(10)의 상태를 모니터링할 수 있다. 공유자원(10)이 회의실이나 숙박시설 등의 공간인 경우, 잠금모듈(21)이 개방되면 게이트웨이모듈(27)은 공유자원(10)인 공간에 사람이 들어오고 나가는지 여부를 센싱할 수 있다. 게이트웨이모듈(27)은 정해진 주기마다 또는 잠금모듈(21)이 개방되면 지속적으로 공유자원(10)의 이용상태를 센싱할 수 있다. 게이트웨이모듈(27)은 공유자원(10)의 이용상태를 복합 IoT 디바이스(20)에 전송할 수 있다.The gateway module 27 may monitor the state of the shared resource 10 while the user uses the shared resource 10. When the shared resource 10 is a space such as a conference room or accommodation facility, when the lock module 21 is opened, the gateway module 27 can sense whether a person enters or exits the space that is the shared resource 10. . The gateway module 27 may continuously sense the state of use of the shared resource 10 at a predetermined period or when the lock module 21 is opened. The gateway module 27 may transmit the state of use of the shared resource 10 to the complex IoT device 20.
관리자 단말(31)은 관리자용 dApp(41)을 통해 공유자원(10) 접근관리기능을 수행할 수 있다. 관리자 단말(31)은 공유자원(10)에 이용을 신청한 사용자들에 관한 정보, 공유자원(10)의 이용상태에 관한 정보, 공유자원(10)의 이용기록 및 예약 기록 등을 모니터링할 수 있다. 관리자용 dApp(41)은 관리자용 스마트 컨트랙트(41a)에 공유자원(10)의 현재 상태 모니터링을 요청할 수 있으며 관리자용 스마트 컨트랙트(41a)는 복합 IoT 디바이스(20)로부터 게이트웨이모듈(27)이 제공한 공유자원(10)의 이용상태를 수신하여 관리자용 dApp(41)을 통해 관리자 단말(31)에 제공할 수 있다.The manager terminal 31 may perform an access management function of the shared resource 10 through the dApp 41 for the manager. The manager terminal 31 can monitor information about users who have applied for use of the shared resource 10, information about the use status of the shared resource 10, and the use record and reservation record of the shared resource 10. have. The manager dApp 41 can request the manager's smart contract 41a to monitor the current status of the shared resource 10, and the manager's smart contract 41a is provided by the gateway module 27 from the complex IoT device 20 The usage status of one shared resource 10 may be received and provided to the manager terminal 31 through the dApp 41 for managers.
사용자는 이용권한에 기초한 사용시간이 종료되는 경우 공유자원(10)의 이용을 중지한다. 복합 IoT 디바이스(20)는 이용권한에 기초한 사용시간이 종료되는 경우 게이트웨이모듈(27)로부터 공유자원(10)의 이용상태에 관한 정보를 수신하여 잠금모듈(21)을 동작시켜 사용자와 공유자원(10)을 차단해도 되는지 판단한다. 예를 들어, 공유자원(10)이 회의실이나 숙박시설과 같은 공간인 경우, 게이트웨이모듈(27)은 공유자원(10)인 공간 안에 사용자가 존재하는지 센싱할 수 있고, 공유자원(10)인 공간 안에 사용자가 존재하지 않게 되었을 때 복합 IoT 디바이스(20)는 잠금모듈(21)이 잠궈지도록 제어하는 이용 종료단계(S40)를 수행할 수 있다. The user stops the use of the shared resource 10 when the use time based on the use right ends. The complex IoT device 20 receives information on the state of use of the shared resource 10 from the gateway module 27 when the usage time based on the usage permission ends, and operates the lock module 21 to enable the user and the shared resource ( Determine if it is okay to block 10). For example, when the shared resource 10 is a space such as a conference room or a lodging facility, the gateway module 27 can sense whether a user exists in the space that is the shared resource 10, and the space that is the shared resource 10 When there is no user therein, the composite IoT device 20 may perform a use end step (S40) of controlling the locking module 21 to be locked.
복합 IoT 디바이스(20)가 잠금모듈(21)을 잠그도록 제어하여 사용자의 이용이 종료되면, 복합 IoT 디바이스(20)는 블록체인 네트워크(50)에 사용종료 사실을 전송한다. 사용자의 사용기록은 블록체인(60)에 저장될 수 있다. When the use of the user is terminated by controlling the composite IoT device 20 to lock the lock module 21, the composite IoT device 20 transmits the end of use fact to the blockchain network 50. The user's usage record may be stored in the blockchain 60.
도 7은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 오라클 블록체인 네트워크(1020)를 나타낸 도면이다. 7 is a diagram showing an Oracle blockchain network 1020 that performs a method of recognizing external information and providing information applied to a block chain according to an embodiment of the present invention.
본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은 오라클 블록체인 네트워크(1020)를 구성하는 복수의 오라클 노드(1030)에서 수행될 수 있다. 오라클 블록체인 네트워크(1020)는 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하여, 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 데이터를 획득하여 분산형 데이터 스토리지(1040)에 저장할 수 있고, 데이터 요청을 수신하면 분산형 데이터 스토리지(1040)에 저장된 데이터를 정보사용자(1050)에게 제공할 수 있다. Blockchain application external information recognition and information provision method according to an embodiment of the present invention may be performed in a plurality of oracle nodes 1030 constituting the Oracle blockchain network 1020. The Oracle blockchain network 1020 performs a method of recognizing and providing information outside of the blockchain application, acquiring data from an information source 1010 outside the Oracle blockchain network 1020 to obtain a distributed data storage 1040. ), and upon receiving a data request, data stored in the distributed data storage 1040 may be provided to the information user 1050.
오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)가 피어 투 피어(P2P, Peer to Peer) 방식으로 연결된 네트워크이다. 오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)들 사이의 정보처리와 각 오라클 노드(1030)의 정보처리에 기초하여 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행할 수 있다. The Oracle blockchain network 1020 is a network in which a plurality of Oracle nodes 1030 are connected in a peer-to-peer (P2P) method. The Oracle blockchain network 1020 recognizes external information and provides information applied to the blockchain according to an embodiment of the present invention based on information processing between a plurality of oracle nodes 1030 and information processing of each oracle node 1030. Method can be carried out.
오라클 노드(1030)는 통신부(1031), 제어부(1032), 저장부(1033)를 포함할 수 있다. 오라클 노드(1030)는 서버 컴퓨터, PC, 노트북 PC, 태블릿 PC, 스마트폰 등의 정보처리장치를 포함한다. 통신부(1031)는 오라클 노드(1030)와 다른 오라클 노드(1030) 사이에서 데이터를 송수신하여 오라클 블록체인 네트워크(1020)의 연결을 수행할 수 있다. 저장부(1033)는 오라클 블록체인(1060)의 전부 또는 일부를 저장할 수 있다. 저장부(1033)는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드를 저장할 수 있다. 제어부(1032)는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드를 실시할 수 있는 프로세서(processor)를 포함할 수 있다. The oracle node 1030 may include a communication unit 1031, a control unit 1032, and a storage unit 1033. The Oracle node 1030 includes information processing devices such as a server computer, a PC, a notebook PC, a tablet PC, and a smart phone. The communication unit 1031 may transmit and receive data between the Oracle node 1030 and another Oracle node 1030 to connect the Oracle blockchain network 1020. The storage unit 1033 may store all or part of the Oracle blockchain 1060. The storage unit 1033 may store a program code for performing a method of recognizing external information and providing information in a block chain application according to an embodiment of the present invention. The control unit 1032 may include a processor capable of executing a program code that performs a method of recognizing external information and providing information in a block chain application according to an embodiment of the present invention.
오라클 블록체인(1060)은 이전 오라클 블록(1060a)의 해시값을 자기 오라클 블록(1060a)의 구성으로 포함하는 오라클 블록(1060a)들의 연속적인 연결로 구성될 수 있다. 오라클 블록(1060a)은 이전 오라클 블록(1060a)의 해시값과 데이터를 저장하는 저장공간을 포함한다. 오라클 블록체인(1060)은 오라클 블록체인 네트워크(1020)를 구성하는 복수의 오라클 노드(1030)에 각각 저장되고, 복수의 오라클 노드(1030)에 저장된 오라클 블록체인(1060)들은 서로 동일한 데이터를 갖는다. 오라클 블록(1060a)의 저장공간에는 저장내역(1061) 및 제공내역(1062)이 저장될 수 있다. 저장내역(1061)은 오라클 블록체인 네트워크(1020)가 정보소스(1010)로부터 데이터를 획득하고 검증하여 저장하는 저장 프로세스(S1030)의 수행결과를 포함할 수 있다. 제공내역(1062)은 오라클 블록체인 네트워크(1020)가 정보사용자(1050)에게 데이터 요청을 수신하고 데이터를 제공하는 제공 프로세스(S1040)의 수행결과를 포함할 수 있다. The Oracle blockchain 1060 may be configured by successive connections of oracle blocks 1060a including the hash value of the previous oracle block 1060a as a configuration of the own oracle block 1060a. The oracle block 1060a includes a storage space for storing the hash value and data of the previous oracle block 1060a. The Oracle blockchain 1060 is stored in a plurality of Oracle nodes 1030 constituting the Oracle blockchain network 1020, and the Oracle blockchains 1060 stored in the plurality of Oracle nodes 1030 have the same data. . In the storage space of the oracle block 1060a, the storage details 1061 and the provision details 1062 may be stored. The storage details 1061 may include the execution result of the storage process S1030 in which the Oracle blockchain network 1020 obtains, verifies and stores data from the information source 1010. The provision details 1062 may include the execution result of the provision process S1040 in which the Oracle blockchain network 1020 receives a data request from the information user 1050 and provides the data.
정보소스(1010)(Information source)는 오라클 블록체인 네트워크(1020)의 외부(external)에 존재하며 데이터를 제공할 수 있는 장치를 말한다. 정보소스(1010)는 웹 서버, 클라우드 스토리지, 데이터베이스, 본 발명의 일실시예에 따른 오라클 블록체인 네트워크(1020) 이외의 외부 블록체인 네트워크(이더리움, 이오스 등), IoT 디바이스 등을 포함할 수 있다. IoT 디바이스는 공유자원에 연결되어 사용자의 접근을 허가하거나 차단할 수 있도록 잠금기능을 포함하고, 공유자원을 이용하는 사람의 존재 여부를 감지할 수 있는 게이트웨이모듈이 포함되는 복합 IoT 디바이스일 수 있다. 정보소스(1010)는 금융서비스를 중개하는 결제기관일 수도 있고, 다양한 종류의 데이터 제공자일 수도 있다. 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)는 정보소스(1010)에 접근하여 데이터를 수집할 수 있다. The information source 1010 refers to a device that exists outside of the Oracle blockchain network 1020 and can provide data. The information source 1010 may include a web server, a cloud storage, a database, an external blockchain network (Ethereum, EOS, etc.) other than the Oracle blockchain network 1020 according to an embodiment of the present invention, an IoT device, and the like. have. The IoT device may be a complex IoT device that includes a lock function to allow or block a user's access by being connected to a shared resource, and a gateway module capable of detecting the presence or absence of a person using the shared resource. The information source 1010 may be a payment institution that mediates financial services, or may be a data provider of various types. The Oracle node 1030 constituting the Oracle blockchain network 1020 may access the information source 1010 and collect data.
정보사용자(1050)는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)에 필요한 데이터를 요청하고 요청한 데이터를 수신하여 이용하는 주체를 말한다. 정보사용자(1050)는 오라클 블록체인 네트워크(1020)의 내부에서 동작하는 다양한 스마트 컨트랙트 계정들(Accounts), 오라클 블록체인 네트워크(1020)의 외부에 존재하는 다른 블록체인 네트워크(이더리움, 이오스 등), 오라클 블록체인 네트워크(1020)의 임의의 오라클 노드(1030)에 접속하여 데이터를 요청하는 개인 정보사용자(1050)들의 단말장치를 포함할 수 있다.The information user 1050 refers to a subject who requests data necessary for the Oracle node 1030 constituting the Oracle blockchain network 1020 and receives and uses the requested data. Information users 1050 are various smart contract accounts operating inside the Oracle blockchain network 1020, and other blockchain networks (Ethereum, EOS, etc.) that exist outside the Oracle blockchain network 1020. , Terminal devices of personal information users 1050 who request data by accessing an arbitrary Oracle node 1030 of the Oracle blockchain network 1020 may be included.
오라클 블록체인 네트워크(1020)는 정보소스(1010)로부터 데이터를 제공받을 수 있다. 그리고, 오라클 블록체인 네트워크(1020)는 정보사용자(1050)로부터 데이터 요청을 받으면 요청받은 데이터를 정보사용자(1050)에게 제공할 수 있다. 이때, 정보소스(1010)와 정보사용자(1050)는 오라클 블록체인 네트워크(1020) 외부의 동일한 대상일 수 있다. 즉, 정보소스(1010)는 오라클 블록체인 네트워크(1020)에 데이터를 제공할 수도 있고, 정보소스(1010)는 데이터가 필요한 경우 오라클 블록체인 네트워크(1020)에 데이터를 요청하는 정보사용자(1050)가 될 수도 있다. 예를 들어, 이더리움 블록체인 네트워크는 오라클 블록체인 네트워크(1020)에 데이터를 제공하는 정보소스(1010)일 수도 있고, 이더리움 블록체인 네트워크가 필요한 정보를 오라클 블록체인 네트워크(1020)에 요청하고 오라클 블록체인 네트워크(1020)로부터 필요한 정보를 제공받는 정보사용자(1050)일 수도 있다.The Oracle blockchain network 1020 may receive data from the information source 1010. In addition, the Oracle blockchain network 1020 may provide the requested data to the information user 1050 upon receiving a data request from the information user 1050. In this case, the information source 1010 and the information user 1050 may be the same target outside the Oracle blockchain network 1020. That is, the information source 1010 may provide data to the Oracle blockchain network 1020, and the information source 1010 is an information user 1050 who requests data from the Oracle blockchain network 1020 when data is needed. May be. For example, the Ethereum blockchain network may be an information source 1010 that provides data to the Oracle blockchain network 1020, or the Ethereum blockchain network requests necessary information from the Oracle blockchain network 1020 and It may be an information user 1050 who receives necessary information from the Oracle blockchain network 1020.
분산형 데이터 스토리지(1040)는 오라클 블록체인(1060) 기반의 데이터 분산 저장 시스템이다. 분산형 데이터 스토리지(1040)는 데이터를 복수의 조각으로 분할하여 분산형 데이터 스토리지(1040)를 구성하는 노드들의 저장공간에 분산 저장하고, 데이터의 저장내역(1061)과 이용을 오라클 블록체인(1060)에 기록하는 IPFS(Interplanetary File Storage), Corda 등의 분산 저장 방식이 사용될 수 있다. 분산형 데이터 스토리지(1040)는 오라클 블록체인 네트워크(1020)로부터 수신한 데이터를 저장하고, 오라클 블록체인 네트워크(1020)로부터 요청된 데이터를 전송한다. The distributed data storage 1040 is a data distributed storage system based on the Oracle blockchain 1060. The distributed data storage 1040 divides data into a plurality of pieces and stores them in a storage space of nodes constituting the distributed data storage 1040. ), a distributed storage method such as IPFS (Interplanetary File Storage), Corda, etc. can be used. The distributed data storage 1040 stores data received from the Oracle blockchain network 1020 and transmits the requested data from the Oracle blockchain network 1020.
도 8는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 각 단계를 나타내는 도면이고, 도 9은 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 프레임워크 구조(1100)를 나타내는 도면이다. 8 is a diagram showing each step of a method for recognizing external information and providing information applied to a block chain according to an embodiment of the present invention, and FIG. 9 is a method for recognizing external information and providing information applied to a block chain according to an embodiment of the present invention. It is a diagram showing a framework structure 1100 of a program code that performs an operation.
도 8에 도시된 바와 같이, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 데이터를 획득하는 데이터 획득단계(S1031), 정보소스(1010)의 신뢰 여부를 검증하여 데이터의 신뢰도를 판단하는 신뢰도 판단단계(S1032), 데이터를 파싱하는 파싱단계(S1033), 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계(S1034), 및 데이터를 분산형 데이터 스토리지(1040)에 저장하면서 데이터 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 저장단계(S1035)를 포함할 수 있다. As shown in FIG. 8, the method of recognizing external information and providing information applied to a block chain according to an embodiment of the present invention includes acquiring data from an information source 1010 external to the Oracle blockchain network 1020. The data acquisition step (S1031), the reliability determination step (S1032) of verifying the reliability of the information source (1010), the parsing step (S1033) of parsing the data, and providing protection according to the type of data It may include a data protection step (S1034), and a storage step (S1035) of storing the data storage details 1061 in the Oracle blockchain 1060 while storing the data in the distributed data storage 1040.
그리고, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법은, 오라클 블록체인 네트워크(1020)의 내부 또는 외부로부터 요청된 데이터를 상기 분산형 데이터 스토리지(1040)로부터 획득하는 로딩단계(S1041), 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계(S1042), 데이터 공급 요청에 기초하여, 요청된 데이터를 필요한 형식으로 정리하는 재구성단계(S1043), 및 요청된 데이터를 제공하고 데이터 제공내역(1062)을 상기 오라클 블록체인(1060)에 저장하는 제공단계(S1044)를 더 포함할 수 있다. In addition, a method for recognizing external information and providing information applied to a block chain according to an embodiment of the present invention is to obtain data requested from the inside or outside of the Oracle blockchain network 1020 from the decentralized data storage 1040. Step (S1041), a protection change step (S1042) of removing or changing the protection given to the requested data, a reconfiguration step (S1043) of organizing the requested data into a required format based on a data supply request, and the requested data A provision step (S1044) of providing and storing the data provision details 1062 in the Oracle blockchain 1060 may be further included.
도 9에 도시된 바와 같이, 액세스 모듈(1110)은 API(1111), 파서(Parser)(1112), 악의적 오라클 노드 방지 알고리즘(1113), BFT 합의 알고리즘(1114)을 포함한다. 정보소스 검증모듈(1120)은 SSL 인증서 기반 신뢰판단모델(1121), Whois 기반 신뢰판단모델(1122), 투표 기반 신뢰판단모델(1123)을 포함한다. 데이터 관리모듈(1130)은 스케줄러(1131), 비식별화 알고리즘(1132), 암호화부(1133)를 포함한다. 오라클 스마트 컨트랙트 모듈(1140)은 데이터 저장 사용 기록 스마트 컨트랙트(1141), 오라클 블록체인 네트워크 운영부(1142)를 포함한다. 9, the access module 1110 includes an API 1111, a parser 1112, a malicious oracle node prevention algorithm 1113, and a BFT consensus algorithm 1114. The information source verification module 1120 includes an SSL certificate-based trust judgment model 1121, a Whois-based trust judgment model 1122, and a voting-based trust judgment model 1123. The data management module 1130 includes a scheduler 1131, a de-identification algorithm 1132, and an encryption unit 1133. The Oracle smart contract module 1140 includes a data storage usage record smart contract 1141 and an Oracle blockchain network operation unit 1142.
도 8 및 도 9을 참조하여, 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 설명한다. 8 and 9, a method of recognizing external information and providing information applied to a block chain according to an embodiment of the present invention will be described.
먼저, 데이터 요청 수신 단계(S1010)는 오라클 블록체인 네트워크(1020)의 임의의 오라클 노드(1030)가 정보사용자(1050)로부터 데이터 요청을 수신하는 것이다. 데이터 요청은 정보사용자(1050)가 필요로 하는 데이터에 관한 정보를 포함하며, 정해진 정보사용자(1050)만 접근하여야 하는 데이터인지 여부를 포함할 수 있다. 데이터 요청은 액세스 모듈(1110)의 API(1111)를 통하여 수신될 수 있다. API(1111)는 Restful API 또는 SDK API를 활용할 수 있다. API(1111)는 정보소스(1010)와 연결되어 데이터를 수신하고, 정보사용자(1050)와 연결되어 데이터를 요청하고 수신할 수 있는 채널을 제공할 수 있다. First, in the data request receiving step (S1010), an arbitrary Oracle node 1030 of the Oracle blockchain network 1020 receives a data request from the information user 1050. The data request includes information on data required by the information user 1050 and may include whether or not the data is to be accessed only by the specified information user 1050. The data request may be received through the API 1111 of the access module 1110. API 1111 may utilize Restful API or SDK API. The API 1111 may be connected to the information source 1010 to receive data, and may be connected to the information user 1050 to provide a channel for requesting and receiving data.
데이터 요청을 수신한 오라클 노드(1030)는 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는지 판단하는 요청 판단단계(S1020)를 수행한다. 요청 판단단계(S1020)는 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는지 여부를 데이터 저장내역(1061)을 검색하여 판단하고, 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는 경우 제공 프로세스(S1040)를 시작하기 위해 로딩단계(S1041)를 수행하고, 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하지 않는 경우 저장 프로세스(S1030)를 수행하기 위해 데이터 획득단계(S1031)를 수행한다. 저장 프로세스(S1030)는 분산형 데이터 스토리지(1040)와 오라클 블록체인 네트워크(1020)에 존재하지 않는 데이터를 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 획득하는 과정이다. 제공 프로세스(S1040)는 분산형 데이터 스토리지(1040)에 존재하는 데이터를 정보사용자(1050)에게 제공하는 과정이다.Upon receiving the data request, the Oracle node 1030 performs a request determination step S1020 of determining whether the requested data exists in the distributed data storage 1040. In the request determination step S1020, whether the requested data exists in the distributed data storage 1040 is determined by searching the data storage details 1061, and when the requested data exists in the distributed data storage 1040 A loading step (S1041) is performed to start the provision process (S1040), and a data acquisition step (S1031) is performed to perform a storage process (S1030) when the requested data does not exist in the distributed data storage 1040. Carry out. The storage process S1030 is a process of acquiring data that does not exist in the distributed data storage 1040 and the Oracle blockchain network 1020 from the information source 1010 existing outside the Oracle blockchain network 1020. The providing process S1040 is a process of providing data existing in the distributed data storage 1040 to the information user 1050.
요청 판단단계(S1020)에서 오라클 노드(1030)는 오라클 블록체인(1060)에 저장된 저장내역(1061)을 검색하여 요청된 데이터와 이미 저장된 데이터의 일치 여부를 판단하여 요청된 데이터의 존재 여부를 판단할 수 있다. 저장내역(1061)은 데이터의 종류, 이름, 획득한 정보소스(1010)의 이름, 보호 부여 내용, 획득 시간, 정보소스(1010)의 신뢰도 판단 정보, 분산형 데이터 스토리지(1040)의 저장 위치 정보 등을 포함할 수 있다. 저장내역(1061)은 오라클 노드(1030)의 저장부(1033)에 저장된 오라클 블록체인(1060)에 저장되어 있으므로 요청 판단단계(S1020)는 오라클 블록체인 네트워크(1020)의 합의나 검증과정을 거치지 않고 동작할 수 있다. In the request determination step (S1020), the Oracle node 1030 searches the storage details 1061 stored in the Oracle blockchain 1060 to determine whether the requested data matches the previously stored data to determine the existence of the requested data. can do. The storage details 1061 include the type of data, the name, the name of the acquired information source 1010, the content of protection, acquisition time, reliability determination information of the information source 1010, and storage location information of the distributed data storage 1040. And the like. Since the storage details 1061 are stored in the Oracle blockchain 1060 stored in the storage unit 1033 of the Oracle node 1030, the request determination step (S1020) does not go through the consensus or verification process of the Oracle blockchain network 1020. Can be operated without.
요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하지 않는 경우 요청된 데이터를 오라클 블록체인 네트워크(1020) 내부로 가져오기 위하여 저장 프로세스(S1030)를 수행한다. 데이터 획득단계(S1031)는 오라클 블록체인 네트워크(1020)의 외부에 존재하는 정보소스(1010)로부터 데이터를 획득하는 것이다. 정보소스(1010)의 종류에 따라 적용되는 데이터 수집방법이 달라질 수 있다. 정보소스(1010)가 외부의 블록체인 네트워크인 경우와 블록체인 네트워크가 아닌 외부 장치인 경우의 데이터 수집방법은 다를 수 있다. 예를 들어, 정보소스(1010)가 EOS 블록체인 네트워크인 경우 EOS 블록체인 네트워크는 데이터를 테이블(table) 방식으로 저장하므로 테이블을 읽는 방식으로 데이터를 수집하고, 정보소스(1010)가 이더리움 블록체인 네트워크인 경우 이더리움 블록체인 네트워크에서 제공하는 View function 을 이용하여 데이터를 수집할 수 있다. 이때, 오라클 블록체인 네트워크(1020)가 정보소스(1010)에서 데이터를 획득할 때에는 정보사용자(1050)의 요청에 따른 데이터만을 선별적으로 수집할 수 있다. If the requested data does not exist in the distributed data storage 1040, a storage process (S1030) is performed to bring the requested data into the Oracle blockchain network 1020. The data acquisition step (S1031) is to acquire data from an information source 1010 existing outside the Oracle blockchain network 1020. The data collection method applied may vary depending on the type of the information source 1010. The data collection method may be different when the information source 1010 is an external blockchain network and an external device other than a blockchain network. For example, if the information source 1010 is the EOS blockchain network, the EOS blockchain network stores data in a table manner, so data is collected by reading a table, and the information source 1010 is an Ethereum block. In the case of a chain network, data can be collected using the View function provided by the Ethereum blockchain network. At this time, when the Oracle blockchain network 1020 acquires data from the information source 1010, only data according to the request of the information user 1050 may be selectively collected.
데이터 획득단계(S1031)는 데이터 요청을 수신한 오라클 노드(1030)가 API(1111)를 통해 정보소스(1010)의 데이터를 접근하는 방법으로 수행될 수 있다. 오라클 노드(1030)는 정보소스(1010)에 요청된 데이터가 존재하는지 여부를 검색하고, 해당 데이터가 존재하는 경우 데이터를 가져온다. 데이터 관리모듈(1130)의 스케줄러(1131)는 정기적으로 수집해야 하는 데이터를 수집하는 스케줄을 관리할 수 있다. 스케줄러(1131)는 정해진 시점이 되면 데이터를 수집하기 위하여 저장 프로세스(S1130)를 동작시킬 수 있다. The data acquisition step (S1031) may be performed in such a way that the Oracle node 1030 that has received the data request accesses the data of the information source 1010 through the API 1111. The Oracle node 1030 searches whether or not the requested data exists in the information source 1010, and if the data exists, fetches the data. The scheduler 1131 of the data management module 1130 may manage a schedule for collecting data that should be collected on a regular basis. The scheduler 1131 may operate the storage process S1130 to collect data when a predetermined time is reached.
정보소스(1010)로부터 데이터를 가져오면 데이터의 신뢰도를 판단하기 위하여 신뢰도 판단단계(S1032)를 수행한다. 신뢰도 판단단계(S1032)에서 오라클 블록체인 네트워크(1020)는 정보소스(1010) 자체의 신뢰도를 판단함으로써, 정보소스(1010)가 제공하는 데이터의 신뢰도를 판단한다. 정보소스(1010)는 오라클 블록체인 네트워크(1020) 외부에 존재하는 현실 세계에서 수행되거나 생성되거나 결정되는 결과물을 컴퓨터 장치가 인식할 수 있는 데이터 형식으로 생성하거나 입력받아 제공하고, 월드 와이드 웹(WWW) 등의 네트워크에서 수행되거나 생성되거나 결정된 결과 데이터를 제공한다. 정보소스(1010)는 물리적인 컴퓨터 장치에 기초하여 존재하므로 물리적인 컴퓨터 장치를 이용하여 정보를 제공하는 현실의 주체에 관한 정보를 검증하여 정보소스(1010)의 신뢰도를 판단할 수 있다. 신뢰도 판단단계(S1032)는 정보소스(1010)가 오라클 블록체인 네트워크(1020)에 제공하는 정보소스(1010) 자신에 관한 정보들을 검증하는 과정이다. 즉, 신뢰도 판단단계(S1032)는 정보소스(1010)를 운영하는 주체가 누구인지, 정보소스(1010)를 운영하는 주체가 실존하는지, 정보소스(1010)를 운영하는 주체가 현실세계에서 신뢰할 수 있는 검증을 거쳤는지 등을 판단한다. 신뢰도 판단단계(S1032)는 정보소스(1010)가 이미 신뢰가능한 것으로 판단된 경우 생략될 수 있다. 신뢰도 판단단계(S1032)는 정보소스(1010)가 신뢰가능한 것으로 판단된 이후 정해진 기간이 경과하면 정보소스(1010)의 신뢰도를 다시 판단하기 위하여 수행될 수 있다. When data is imported from the information source 1010, a reliability determination step (S1032) is performed to determine the reliability of the data. In the reliability determination step (S1032), the Oracle blockchain network 1020 determines the reliability of the data provided by the information source 1010 by determining the reliability of the information source 1010 itself. The information source 1010 generates or receives and provides a result performed, generated, or determined in the real world outside the Oracle blockchain network 1020 in a data format that can be recognized by a computer device, and provides the World Wide Web (WWW). ), etc., it provides the result data that is performed, generated, or determined in the network. Since the information source 1010 exists based on a physical computer device, the reliability of the information source 1010 may be determined by verifying information on a real subject providing information using a physical computer device. The reliability determination step S1032 is a process of verifying information about the information source 1010 itself provided by the information source 1010 to the Oracle blockchain network 1020. That is, in the reliability determination step (S1032), who is the subject operating the information source 1010, whether the subject operating the information source 1010 exists, and the subject operating the information source 1010 can be trusted in the real world. It is judged whether or not it has been verified. The reliability determination step S1032 may be omitted when it is determined that the information source 1010 is already reliable. The reliability determination step S1032 may be performed to determine the reliability of the information source 1010 again when a predetermined period has elapsed after the information source 1010 is determined to be reliable.
정보소스(1010)가 신뢰가능한 것으로 판단되면, 파싱단계(S1033)를 수행한다. 파싱단계(S1033)는 정보소스(1010)에서 획득한 데이터를 파싱하는 것이다. 파싱단계(S1033)는 액세스 모듈(1110)의 파서(1112)에서 수행될 수 있다. 파서(Parser)(1112)는 정보소스(1010)로부터 획득한 데이터를 분석하여 세부 유형별로 분류할 수 있다. 파서(1112)는 정보소스(1010)에서 획득한 데이터의 유형에 따라 다양한 구문 분석 알고리즘을 적용하여 세부 데이터를 분류할 수 있다. 예를 들어, 이오스 오라클 블록체인(1060) 정보소스(1010)로부터 "A to B 1000 EOS"라는 데이터를 획득한 경우 파서(1112)는 "일련번호 = XXX1", "송금자 = A", "수신자 = B", "금액 = 1000", "단위 = EOS" 라는 방식으로 세부 데이터를 구분하고 세부 데이터의 유형을 판단할 수 있다.If it is determined that the information source 1010 is reliable, a parsing step (S1033) is performed. The parsing step (S1033) is to parse the data acquired from the information source (1010). The parsing step S1033 may be performed by the parser 1112 of the access module 1110. The parser 1112 may analyze data acquired from the information source 1010 and classify it by detailed type. The parser 1112 may classify detailed data by applying various parsing algorithms according to the type of data acquired from the information source 1010. For example, if data "A to B 1000 EOS" is acquired from the EOS Oracle blockchain (1060) information source (1010), the parser (1112) is "Serial Number = XXX1", "Sender = A", " Recipient = B", "Amount = 1000", "Unit = EOS", you can classify detailed data and determine the type of detailed data.
데이터 파싱을 수행한 다음, 데이터 보호단계(S1034)를 수행한다. 데이터 보호단계(S1034)는 데이터의 유형에 따른 보호를 부여하는 것이다. 데이터는 개인정보가 포함되어 있어서 프라이버시를 보호해야 하거나, 데이터를 요청한 정보사용자(1050)만이 접근할 수 있도록 보호할 필요가 있다. 데이터에 부여될 수 있는 보호는 익명화, 범주화, 총계처리, 암호화 등을 포함한다. After data parsing is performed, a data protection step (S1034) is performed. The data protection step S1034 is to provide protection according to the type of data. Since the data contains personal information, it is necessary to protect the privacy, or it is necessary to protect the data so that only the information user 1050 requesting the data can access it. The protection that can be given to data includes anonymization, categorization, aggregation, encryption, etc.
익명화, 범주화, 총계처리는 데이터 관리모듈(1130)의 비식별화 알고리즘(1132)을 통해 수행될 수 있다. 익명화는 데이터에 포함된 사람의 성명을 인식할 수 없도록 일부나 전부를 변형하거나 제거하는 것이다. 예를 들어, "홍길동"이라는 이름을 "홍*동"으로 일부를 변형하거나, "고객 1"과 같이 전부를 변형할 수 있다. 총계처리는 특정 항목의 값이 복수개 존재하는 경우 총액을 계산하는 것이다. 예를 들어, "홍*동"의 거래 횟수가 "20회/40회/10회"인 경우 총 거래 횟수가 "70회"인 것으로 집계할 수 있다. 범주화는 특정 값이 포함되는 범위에 따라 집계하는 것이다. 예를 들어, "홍*동"의 거래 횟수가 "13회"인 경우 미리 정해진 범위인 "10~20회"로 집계할 수 있다. Anonymization, categorization, and aggregate processing may be performed through the de-identification algorithm 1132 of the data management module 1130. Anonymization is the modification or removal of some or all of the names of people in the data so that they cannot be recognized. For example, a part of the name "Hong Gil-dong" may be transformed into "Hong*Dong", or all may be transformed, such as "Customer 1". Total processing is to calculate the total amount when there are multiple values of a specific item. For example, if the number of transactions of "Hong*Dong" is "20/40/10", the total number of transactions can be counted as "70". Categorization is the aggregation according to the range in which a specific value is included. For example, if the number of transactions for "Hong*Dong" is "13", it can be counted as "10-20 times", which is a predetermined range.
암호화는 정해진 정보사용자(1050)만이 데이터를 열람할 수 있도록 암호화하는 것이다. 암호화는 데이터 관리모듈(1130)의 암호화부(1133)에서 수행될 수 있다. 암호화는 정보사용자(1050)의 공개키를 수신하는 단계, 정보사용자(1050)의 공개키를 이용하여 데이터를 암호화하는 단계로 수행될 수 있다. 암호화는 정보사용자(1050)의 공개키를 이용하여 대칭키를 암호화하고 대칭키를 이용하여 데이터를 암호화한 다음 암호화된 대칭키와 데이터를 함께 저장하거나 제공하는 방식으로 수행될 수도 있다. 개인정보 보호가 불필요하거나 공개되어도 무방한 데이터인 경우 데이터 보호단계(S1034)에서 보호를 부여하지 않을 수 있다. Encryption is encryption so that only the specified information user 1050 can view the data. Encryption may be performed in the encryption unit 1133 of the data management module 1130. Encryption may be performed by receiving a public key of the information user 1050 and encrypting data using the public key of the information user 1050. Encryption may be performed by encrypting a symmetric key using the public key of the information user 1050, encrypting data using the symmetric key, and then storing or providing the encrypted symmetric key and data together. If personal information protection is unnecessary or data that can be disclosed, protection may not be provided in the data protection step (S1034).
보호단계를 수행한 데이터는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들에 공유되어 합의를 거친다. The data that has undergone the protection phase is shared with the Oracle nodes 1030 constituting the Oracle blockchain network 1020 to reach consensus.
데이터 보호단계(S1034)를 수행한 다음 저장단계(S1035)를 수행할 수 있다. 저장단계(S1035)는 데이터를 분산형 데이터 스토리지(1040)에 저장하면서 데이터 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 것이다. 데이터 저장단계(S1035)에서, 데이터 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 동작은 오라클 스마트 컨트랙트 모듈(1140)의 데이터 저장 사용 기록 스마트 컨트랙트(1141)에 따라 수행될 수 있다. 데이터 저장 사용 기록 스마트 컨트랙트(1141)는 데이터를 분산형 데이터 스토리지(1040)에 저장하는 동작과 저장내역(1061)을 오라클 블록체인(1060)에 저장하는 동작을 수행할 수 있다. 오라클 스마트 컨트랙트 모듈(1140)이 데이터를 분산형 데이터 스토리지(1040)에 제공하는 동작을 수행하면, 분산형 데이터 스토리지(1040)는 수신한 데이터를 저장할 수 있다. After performing the data protection step S1034, the storage step S1035 may be performed. In the storage step (S1035), the data storage details 1061 are stored in the Oracle blockchain 1060 while storing the data in the distributed data storage 1040. In the data storage step S1035, the operation of storing the data storage details 1061 in the Oracle blockchain 1060 may be performed according to the data storage usage record smart contract 1141 of the Oracle smart contract module 1140. The data storage usage record smart contract 1141 may perform an operation of storing data in the distributed data storage 1040 and an operation of storing the storage details 1061 in the Oracle blockchain 1060. When the Oracle smart contract module 1140 performs an operation of providing data to the distributed data storage 1040, the distributed data storage 1040 may store the received data.
오라클 스마트 컨트랙트 모듈(1140)은 저장내역(1061) 및 제공내역(1062)을 기록하여 관리할 수 있다. 오라클 스마트 컨트랙트 모듈(1140)은 데이터 관리를 위하여 내부에 테이블을 정의하여 모든 저장내역(1061) 및 제공내역(1062)을 기록하여 관리하고, 데이터 저장 및 제공 내역을 업데이트할 수 있다. 저장내역(1061) 및 제공내역(1062)은 BFT 등의 합의 알고리즘에 따라 오라클 블록체인 네트워크(1020)에 참여한 적어도 일부의 오라클 노드(1030)들에 공유되고 검증되어 합의에 따라 오라클 블록(1060a)의 저장공간에 저장될 수 있다. The Oracle smart contract module 1140 may record and manage the storage details 1061 and the provision details 1062. The Oracle smart contract module 1140 may define a table inside for data management, record and manage all storage details 1061 and provision details 1062, and update data storage and provision details. The storage details 1061 and the provision details 1062 are shared and verified by at least some of the Oracle nodes 1030 participating in the Oracle blockchain network 1020 according to a consensus algorithm such as BFT, and the Oracle block 1060a according to the consensus. Can be stored in the storage space of.
데이터는 다양한 크기를 가질 수 있다. 오라클 블록(1060a)의 저장공간에 모든 데이터를 저장하기 어려우므로 데이터는 분산형 데이터 스토리지(1040)에 저장될 수 있다. 분산형 데이터 스토리지(1040)는 블록체인 기반으로 파일의 저장을 관리하여 파일의 무결성을 보장할 수 있다. 분산형 데이터 스토리지(1040)는 API(1111) 를 통하여 오라클 블록체인 네트워크(1020)로부터 데이터 저장 요청을 받고, 데이터에 알맞는 카테고리를 선택한 후 인덱싱을 거치고, 이 내용을 분산형 데이터 스토리지(1040) 자체의 블록체인 네트워크를 구성하는 노드들의 일부에 공유한 뒤 공유받은 노드의 저장매체에 기록한다.Data can be of various sizes. Since it is difficult to store all data in the storage space of the Oracle block 1060a, the data may be stored in the distributed data storage 1040. The distributed data storage 1040 can guarantee the integrity of files by managing the storage of files based on a block chain. The decentralized data storage 1040 receives a data storage request from the Oracle blockchain network 1020 through the API 1111, selects a category suitable for the data, indexes it, and stores this content in the decentralized data storage 1040 After sharing it to some of the nodes that make up its own blockchain network, it is recorded in the storage medium of the shared node.
요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는 경우 또는 저장단계(S1035)를 수행한 경우, 요청된 데이터에 해당하는 데이터를 정보사용자(1050)에게 제공하는 제공 프로세스(S1040)를 수행하기 위하여 로딩단계(S1041)를 수행한다. 로딩단계(S1041)는 오라클 블록체인 네트워크(1020)의 내부 또는 외부로부터 요청된 데이터를 분산형 데이터 스토리지(1040)로부터 획득하는 것이다. 저장내역(1061)은 분산형 데이터 스토리지(1040)에서 데이터가 저장된 위치에 관련된 정보를 포함하고 있으므로, 저장내역(1061)에 기초하여 요청된 데이터를 획득할 수 있다. When the requested data exists in the distributed data storage 1040 or when the storage step (S1035) is performed, performing a provision process (S1040) of providing data corresponding to the requested data to the information user 1050 In order to perform the loading step (S1041). The loading step (S1041) is to acquire data requested from the inside or outside of the Oracle blockchain network 1020 from the distributed data storage 1040. Since the storage details 1061 include information related to a location where data is stored in the distributed data storage 1040, requested data may be obtained based on the storage details 1061.
로딩단계(S1041)에서 요청된 데이터를 획득하면, 보호 변경단계(S1042)를 수행한다. 보호 변경단계(S1042)는 요청된 데이터에 부여된 보호를 제거 또는 변경하는 것이다. 보호 변경단계(S1042)는 데이터 관리모듈(1130)의 비식별화 알고리즘(1132)이나 암호화부(1133)를 이용하여 수행될 수 있다. 데이터에 비식별화 또는 암호화 보호가 부여되어 있는 경우 데이터 요청에 따라 보호를 제거하거나 변경하여 정보사용자(1050)가 데이터를 이용할 수 있도록 제공할 수 있다. 예를 들어, 정보사용자(1050)의 공개키를 이용하여 암호화된 경우 정보사용자(1050)의 개인키를 수신하여 데이터를 복호화할 수 있다. 보호 변경단계(S1042)는 데이터의 특성과 데이터 요청 내용에 따라 보호의 제거 또는 변경 여부를 결정할 수 있다. When the requested data is acquired in the loading step S1041, the protection change step S1042 is performed. The protection change step S1042 is to remove or change the protection given to the requested data. The protection change step S1042 may be performed using the de-identification algorithm 1132 or the encryption unit 1133 of the data management module 1130. When de-identification or encryption protection is given to the data, the protection may be removed or changed according to a data request so that the information user 1050 can use the data. For example, when encrypted using the public key of the information user 1050, the data may be decrypted by receiving the private key of the information user 1050. In the protection change step S1042, it may be determined whether to remove or change the protection according to the characteristics of the data and the data request content.
보호 변경단계(S1042)에서 보호를 제거하거나 변경하면, 재구성단계(S1043)를 수행한다. 재구성 단계는 분산형 데이터 스토리지(1040)에 파싱되어 저장된 데이터를 데이터 요청에 기초한 데이터 형식으로 재구성하는 과정이다. 재구성 단계는 액세스모듈의 파서(1112)에서 수행될 수 있다. 정보사용자(1050)가 다른 오라클 블록체인 네트워크(1020)인 경우, 분산형 데이터 스토리지(1040)에 저장된 거래내역을 다른 오라클 블록체인 네트워크(1020)에서 사용할 수 있는 데이터 형식으로 가공할 수 있다. 예를 들어, 분산형 데이터 스토리지(1040)에 저장된 거래내역이 "송금자 = A, 수신자 = B, 금액 = 1000, 단위 = EOS" 일 때, 데이터 요청에 따라 "A->B/1000/EOS" 와 같은 연속된 하나의 데이터로 재구성할 수 있다.If the protection is removed or changed in the protection change step S1042, the reconfiguration step S1043 is performed. The reconfiguration step is a process of reconstructing data parsed and stored in the distributed data storage 1040 into a data format based on a data request. The reconfiguration step may be performed in the parser 1112 of the access module. When the information user 1050 is another Oracle blockchain network 1020, the transaction details stored in the distributed data storage 1040 may be processed into a data format that can be used in another Oracle blockchain network 1020. For example, when the transaction details stored in the decentralized data storage 1040 are "Sender = A, Recipient = B, Amount = 1000, Unit = EOS", according to the data request, "A->B/1000/EOS It can be reconstructed into one continuous data such as ".
재구성 단계를 수행하면, 재구성된 데이터를 정보사용자(1050)에게 제공하는 제공단계(S1044)를 수행한다. 제공단계(S1044)는 요청된 데이터를 제공하고 데이터 제공내역(1062)을 오라클 블록체인(1060)에 저장하는 것이다. 제공단계(S1044)는 오라클 스마트 컨트랙트 모듈(1140)의 데이터 저장 사용 기록 스마트 컨트랙트(1141)에 따라 수행될 수 있다. 분산형 데이터 스토리지(1040)로부터 데이터를 찾아서 읽어들이고 데이터를 정보사용자(1050)에게 제공하는 제공 프로세스(S1040)를 수행한 결과 중요한 데이터는 오라클 블록(1060a)의 저장공간에 제공내역(1062)으로 저장된다. 제공내역(1062)은 데이터 요청의 내용, 요청된 데이터의 종류, 이름, 형식, 정보사용자(1050)의 정보, 보호 제거 또는 변경 내용 등을 포함할 수 있다. When performing the reconfiguration step, a providing step (S1044) of providing the reconstructed data to the information user 1050 is performed. In the providing step (S1044), the requested data is provided and the data provision details 1062 are stored in the Oracle blockchain 1060. The providing step S1044 may be performed according to the data storage usage record smart contract 1141 of the Oracle smart contract module 1140. As a result of performing the provision process (S1040) of finding and reading data from the distributed data storage 1040 and providing the data to the information user 1050, important data is stored as a provision history 1062 in the storage space of the Oracle block 1060a. Is saved. The provision details 1062 may include the contents of the data request, the type, name, and format of the requested data, the information of the information user 1050, the contents of protection removal or change, and the like.
상술한 바와 같이, 데이터 요청을 수신하고 요청된 데이터가 분산형 데이터 스토리지(1040)에 존재하는지 판단하고, 저장 프로세스(S1030)와 제공 프로세스(S1040)를 수행하여, 오라클 블록체인(1060) 외부에 존재하는 데이터를 인식하고 다른 오라클 블록체인 네트워크(1020)에 제공할 수 있다. 이러한 과정을 수행함에 따라, 본 발명의 일실시예는 블록체인과 블록체인을 서로 연결할 수 있는 각종 메인넷 커넥터 (Mainnet connector)와 dApp 을 서비스 할 수 있으며, 블록체인들 사이에서 교환되는 데이터에 신뢰도를 부여하는 서비스를 제공할 수 있다.As described above, by receiving a data request, determining whether the requested data exists in the distributed data storage 1040, and performing a storage process (S1030) and a provision process (S1040), It can recognize existing data and provide it to other Oracle blockchain networks 1020. By performing this process, an embodiment of the present invention can service various Mainnet connectors and dApps that can connect the blockchain and the blockchain to each other, and the reliability of the data exchanged between the blockchains It can provide a service that grants.
저장 프로세스(S1030) 및 제공 프로세스(S1040)를 수행함에 있어서, 데이터의 접근 권한에 따라 세부적인 수행단계의 차이가 존재한다. 일반에 공개되는 데이터인 경우, 저장 프로세스(S1030)의 데이터 보호단계(S1034)에서 데이터의 비식별화를 수행하고 암호화를 수행하지 않는다. 즉, 데이터를 사용할 수 있도록 암호화는 하지 않지만, 데이터에 존재하는 개인정보 등을 보호하기 위한 비식별화를 수행하는 것이다. 일반에 공개되지 않고 특정 정보사용자(1050)만이 접근하여야 하는 데이터인 경우, 저장 프로세스(S1030)의 데이터 보호단계(S1034)에서 비식별화 이후에 암호화를 수행한다. 암호화는 공개키/개인키 암호화 방식을 이용하여, 특정 정보사용자(1050)의 공개키로 데이터를 암호화할 수 있다. 또는 암호화는 특정 오라클 노드(1030)의 공개키로 암호화되어 분산형 데이터 스토리지(1040)에 저장될 수 있다. In performing the storage process (S1030) and the provision process (S1040), there is a difference in detailed execution steps according to data access rights. In the case of data that is open to the public, de-identification of the data is performed and encryption is not performed in the data protection step (S1034) of the storage process (S1030). In other words, the encryption is not performed so that the data can be used, but de-identification is performed to protect personal information, etc. existing in the data. In the case of data that is not disclosed to the public and only needs to be accessed by a specific information user 1050, encryption is performed after de-identification in the data protection step (S1034) of the storage process (S1030). Encryption may be performed using a public key/private key encryption method, and data may be encrypted with the public key of a specific information user 1050. Alternatively, encryption may be encrypted with the public key of a specific Oracle node 1030 and stored in the distributed data storage 1040.
일반에 공개되는 데이터인 경우, 암호화되어 있지 않으므로 제공 프로세스(S1040)의 보호 변경단계(S1042)를 생략할 수 있다. 일반에 공개되지 않고 특정 정보사용자(1050)만이 접근하여야 하는 데이터인 경우, 저장 프로세스(S1030)의 보호 변경단계(S1042)에서 특정 오라클 노드(1030)의 개인키로 복호화하여 데이터의 암호화를 해제할 수 있다. 또는, 저장 프로세스(S1030)의 데이터 보호단계(S1034)에서 데이터를 특정 정보사용자(1050)의 공개키로 암호화하는 경우, 정보사용자(1050)가 자신의 개인키로 복호화하여 데이터를 인식할 수 있으므로 보호 변경단계(S1042)에서 복호화가 수행되지 않을 수 있다. In the case of data that is open to the public, since it is not encrypted, the protection change step (S1042) of the provision process (S1040) may be omitted. If the data is not disclosed to the public and only needs to be accessed by a specific information user 1050, the data can be decrypted with the private key of a specific Oracle node 1030 in the protection change step (S1042) of the storage process (S1030) to decrypt the data. have. Alternatively, when data is encrypted with the public key of a specific information user 1050 in the data protection step (S1034) of the storage process (S1030), the information user 1050 can decrypt the data with his own private key to recognize the data, so the protection is changed. Decryption may not be performed in step S1042.
도 10는 본 발명의 일실시예에 따른 정보소스(1010)의 신뢰도 판단단계(S1032)를 나타내는 도면이다. 10 is a diagram showing a reliability determination step (S1032) of the information source 1010 according to an embodiment of the present invention.
도 10에 도시된 바와 같이, 신뢰도 판단단계(S1032)는 정보소스(1010)가 제공하는 SSL 인증서를 이용하여 정보소스(1010)의 신뢰여부를 판단하는 제1 판단단계, 정보소스(1010)의 도메인에 기초하여 Whois 서비스를 통해 획득한 정보소스(1010)의 도메인 등록 정보를 이용하여 정보소스(1010)의 신뢰여부를 판단하는 제2 판단단계, 및 정보소스(1010)의 신뢰여부에 관하여 위임된 지분 증명 방식의 오라클 노드(1030) 투표를 진행하고 오라클 노드(1030) 투표에 기초하여 정보소스(1010)의 신뢰여부를 판단하는 제3 판단단계 중에서 적어도 하나를 수행하는 과정이다. 신뢰도 판단단계(S1032)는 제1 내지 제3 판단단계를 모두 수행할 수도 있다. 10, the reliability determination step (S1032) is a first determination step of determining whether the information source 1010 is trusted using an SSL certificate provided by the information source 1010, the information source 1010 A second determination step of determining whether the information source 1010 is trusted by using the domain registration information of the information source 1010 obtained through the Whois service based on the domain, and the trust of the information source 1010 This is a process of performing at least one of the third determination steps of determining whether or not the information source 1010 is trusted based on the vote of the Oracle node 1030 in the proof-of-stake method and based on the vote of the Oracle node 1030. In the reliability determination step S1032, all of the first to third determination steps may be performed.
제1 판단단계는 HTTPS 환경에서 제공되는 SSL 인증서를 이용하여 정보소스(1010)가 신뢰할 수 있는 주체에 의해 운영되는지 판단할 수 있다. SSL 인증서에 기초하여 정보소스(1010)가 운영되는 주소, 도메인, 등의 정보를 인식할 수 있고, SSL 인증서는 인증기관(CA, Certificate Authority)로부터 인증받은 것이므로 정보소스(1010)의 운영주체의 실재를 인정할 수 있고, 인증기관을 신뢰함에 따라 정보소스(1010)를 신뢰할 수 있다.The first determination step may determine whether the information source 1010 is operated by a trusted subject using an SSL certificate provided in an HTTPS environment. Based on the SSL certificate, information such as the address, domain, etc. in which the information source 1010 is operated can be recognized, and the SSL certificate is certified by a certificate authority (CA). Reality can be recognized, and the information source 1010 can be trusted by trusting the certification authority.
제2 판단단계는 정보소스(1010)의 도메인 등록 정보를 이용하여 신뢰도를 판단한다. 도메인 등록 정보는 도메인 네임, 등록자 주소, 등록자 이메일, IP 주소 등의 정보를 포함하며, 도메인 등록 정보를 제공하는 Whois 검색 서비스를 이용하여 획득될 수 있다. 제2 판단단계에서 SSL 인증서와 도메인 등록 정보가 동일하거나 관련있는지, 접속 IP와 도메인 등록 정보의 IP가 동일하거나 유사한지, 도메인 국적과 IP 국적이 동일한지 등을 확인하여 정보소스(1010)의 신뢰여부를 판단할 수 있다. In the second determination step, reliability is determined using domain registration information of the information source 1010. The domain registration information includes information such as a domain name, a registrant address, a registrant email, and an IP address, and may be obtained using a Whois search service that provides domain registration information. In the second determination step, trust of the information source 1010 by checking whether the SSL certificate and domain registration information are the same or related, whether the access IP and the domain registration information are the same or similar, and whether the domain nationality and IP nationality are the same. You can judge whether or not.
제3 판단단계는 오라클 블록체인 네트워크(1020)에 참여한 오라클 노드(1030)들이 투표를 진행하여 정보소스(1010)의 신뢰도를 판단할 수 있다. 투표는 위임된 지분 증명(DPoS) 방식으로 진행될 수 있다. 제3 판단단계가 수행되는 경우 오라클 노드(1030)들은 정보소스(1010)의 신뢰도를 판단하는 투표를 진행할 의원 오라클 노드(1030)를 선출한다. 의원 오라클 노드(1030)는 11개, 21개, 99개 등의 홀수개로 선정될 수 있다. 선출된 의원 오라클 노드(1030)들에게 정보소스(1010)의 SSL 인증서 정보와 도메인 등록 정보와 요청된 데이터에 관련된 정보가 공유되면, 의원 오라클 노드(1030)들은 해당 정보소스(1010)가 신뢰할 수 있는지 여부에 관한 투표를 진행하여 기준값 이상의 찬성을 받는 경우 정보소스(1010)를 신뢰한다. In the third determination step, the Oracle nodes 1030 participating in the Oracle blockchain network 1020 may vote to determine the reliability of the information source 1010. Voting can be conducted in a delegated proof-of-stake (DPoS) method. When the third determination step is performed, the oracle nodes 1030 select a legislative oracle node 1030 to conduct a vote to determine the reliability of the information source 1010. Clinician Oracle nodes 1030 may be selected with an odd number of 11, 21, 99, and so on. When the SSL certificate information of the information source 1010, domain registration information, and information related to the requested data are shared with the elected legislator Oracle nodes 1030, the legislator Oracle nodes 1030 can trust the information source 1010. The information source 1010 is trusted when a vote is made on whether or not there is a vote in favor of more than the reference value.
본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법의 신뢰도 판단단계(S1032)는, 신뢰도 판단단계(S1032)를 수행한 결과 신뢰할 수 없는 정보소스(1010)로 판단되는 경우 소스-블랙리스트에 신뢰할 수 없는 정보소스(1010)를 추가하는 소스-블랙리스트 추가 단계를 더 포함할 수 있다. 제1 내지 제3 판단단계 중에서 어느 하나의 단계를 통과하지 못하는 경우 해당 정보소스(1010)는 신뢰할 수 없으며, 신뢰할 수 없는 정보소스(1010)는 소스-블랙리스트에 추가된다. 소스-블랙리스트에 추가된 정보소스(1010)로부터 획득하는 데이터는 신뢰할 수 없으므로 다른 정보소스(1010)에서 데이터를 수집하도록 한다. 소스-블랙리스트에 등록된 정보소스(1010)는 정해진 기간이 경과하면 삭제될 수 있다. 이미 신뢰도 판단단계(S1032)를 통과하여 신뢰할 수 있는 정보소스(1010)로 인정된 경우 정해진 기간동안 신뢰도 판단단계(S1032)를 수행하지 않고 해당 정보소스(1010)에서 획득한 데이터를 신뢰할 수 있다. The reliability determination step (S1032) of the method for recognizing external information and providing information applied to a block chain according to an embodiment of the present invention is determined as an unreliable information source 1010 as a result of performing the reliability determination step (S1032). -A source-blacklist adding step of adding the untrusted information source 1010 to the blacklist may be further included. If any one of the first to third determination steps is not passed, the information source 1010 cannot be trusted, and the unreliable information source 1010 is added to the source-blacklist. The data acquired from the source-blacklisted information source 1010 is unreliable, so the data is collected from another information source 1010. The information source 1010 registered in the source-blacklist may be deleted after a predetermined period of time elapses. If it has already passed the reliability determination step S1032 and is recognized as a reliable information source 1010, the data obtained from the information source 1010 may be trusted without performing the reliability determination step S1032 for a predetermined period of time.
도 11는 본 발명의 일실시예에 따른 신규 노드의 노드 신뢰도 검증단계를 나타내는 도면이다. 11 is a diagram illustrating a node reliability verification step of a new node according to an embodiment of the present invention.
오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)는 추가되거나 이탈될 수 있다. 새로운 노드가 오라클 블록체인 네트워크(1020)에 합류하려는 경우 노드를 신뢰할 수 있는지 판단할 필요가 있다. 오라클 노드 신뢰도 판단단계(S1101~S1106)는 신규 노드가 오라클 블록체인 네트워크(1020)에 합류를 요청하는 경우 수행될 수 있다. 오라클 노드 신뢰도 판단단계(S1101~S1106)는 합류를 요청하는 신규 노드의 신뢰도를 판단하여 합류를 허가하거나 차단하는 과정이다. Oracle nodes 1030 constituting the Oracle blockchain network 1020 may be added or removed. When a new node wants to join the Oracle blockchain network 1020, it is necessary to determine whether the node can be trusted. Oracle node reliability determination steps (S1101 to S1106) may be performed when a new node requests to join the Oracle blockchain network 1020. The Oracle node reliability determination step (S1101 to S1106) is a process of allowing or blocking the joining by determining the reliability of a new node requesting the joining.
오라클 노드 신뢰도 판단단계(S1101~S1106)는 오라클 블록체인 네트워크(1020)에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우(S1101의 Y) 정해진 기간동안 신규 노드의 합류를 중지하고(S1105), 신규 노드에 이미 생성된 오라클 블록(1060a)이 존재하는 경우(S1102의 Y) 신뢰할 수 없는 오라클 노드(1030)로 판단하여 합류를 차단하고(S1105) 노드-블랙리스트에 추가하며(S1106), 신규 노드가 노드-블랙리스트에 포함된 경우(S1103의 Y) 합류를 차단(S1105)할 수 있다. Oracle node reliability determination step (S1101 to S1106) is to determine the reliability of a new node that has requested to join the Oracle blockchain network 1020, when the increment per unit time of the new node exceeds the reference value (Y in S1101) for a predetermined period. During the period, the joining of the new node is stopped (S1105), and if there is an oracle block 1060a already created in the new node (Y of S1102), it is determined as an untrusted oracle node 1030 and the joining is blocked (S1105). The node-blacklist is added (S1106), and when a new node is included in the node-blacklist (Y of S1103), the joining may be blocked (S1105).
악의적인 오라클 노드(1030)가 전체 네트워크 서버 과반수 이상이나 66% 이상을 차지하게 하여 데이터를 왜곡하거나 위변조하는 일명 과반수 공격을 시도하는 경우 신규 노드 숫자가 급격히 증가하게 된다. 과반수 이상의 오라클 노드(1030) 개수를 차지하는 경우 공격자는 오라클 블록체인(1060)을 바꿔치기하여 이득을 얻을 수 있다. 이런 공격을 하려면, 신규 노드가 오라클 블록체인 네트워크(1020)에 합류하기 전에 현재 메인 오라클 블록체인(1060)보다 더 긴 체인을 미리 만들어놓아야 한다. 따라서, 신규 노드가 합류하려는 시점에 미리 만들어놓은 오라클 블록체인(1060)이 있다면, 해킹 시도로 간주하고 접속을 차단해야 한다(S1102). 이러한 과반수 공격을 막기 위하여 오라클 블록체인 네트워크(1020)는 신규 노드 증가 속도를 제어할 수 있고(S1101), 미리 생성된 오라클 블록체인(1060)이 존재하는 신규 노드를 악의적 오라클 노드(1030)로 판단(S1102)하여 합류를 차단할 수 있다. When malicious oracle nodes 1030 occupy more than half or more than 66% of all network servers and attempt a so-called majority attack that distorts or falsifies data, the number of new nodes rapidly increases. If more than half of the Oracle nodes 1030 are occupied, an attacker can gain an advantage by replacing the Oracle blockchain 1060. For such an attack, a longer chain must be created in advance than the current main Oracle blockchain (1060) before the new node joins the Oracle blockchain network (1020). Therefore, if there is an Oracle blockchain 1060 created in advance at the time a new node wants to join, it is regarded as a hacking attempt and the access should be blocked (S1102). In order to prevent such a majority attack, the Oracle blockchain network 1020 can control the growth rate of new nodes (S1101), and the new node in which the pre-created Oracle blockchain 1060 exists is determined as a malicious oracle node 1030. The joining can be blocked by (S1102).
오라클 노드(1030) 개수의 급격한 증가 또는 선-저장 오라클 블록체인(1060)이 존재하는 공격을 행했거나, Antminer와 같이 옛날에 공격했던 전력이 있는 기관은 노드-블랙리스트에 추가될 수 있다. 또한 노드-블랙리스트에 추가된 기관은 관련 IP나 Domain을 차단할 수 있다. A rapid increase in the number of oracle nodes 1030, or an organization that has performed an attack in which the pre-storing oracle blockchain 1060 exists, or has a history of attacking in the past, such as Antminer, can be added to the node-blacklist. In addition, organizations added to the node-blacklist can block related IPs or domains.
신규 노드의 수가 갑자기 증가하는 것은 일반적이지 않은 현상이며, 기존에 오라클 블록체인 네트워크(1020)를 구성하고 있는 오라클 노드(1030)들의 수에 비하여 신규 노드가 급격히 증가하는 것은 악의적 오라클 노드(1030)가 합류할 가능성이 높아지는 것이므로, 정해진 기간동안 신규 노드의 합류를 중지할 수 있다(S1105). 신규 노드의 저장부(1033)에 오라클 블록(1060a)이 존재하는지 점검하고(S1102), 이미 생성되어 저장부(1033)에 저장되어 있는 오라클 블록(1060a)이 존재하는 경우 오라클 블록체인(1060)의 건전성을 훼손할 가능성이 있으므로 악의적 오라클 노드(1030)로 판단하여 합류를 차단할 수 있다. 악의적 오라클 노드(1030)로 판단되는 경우 노드-블랙리스트에 추가(S1106)하여 동일한 오라클 노드(1030)가 계속하여 합류 요청을 수행하는 것을 차단할 수 있다. 이미 노드-블랙리스트에 포함되어 있는 오라클 노드(1030)가 합류 요청을 하는 경우 악의적 오라클 노드(1030)의 합류를 곧바로 차단할 수 있다. It is not common for the number of new nodes to increase suddenly, and the number of new nodes rapidly increases compared to the number of Oracle nodes 1030 constituting the existing Oracle blockchain network 1020. Since the possibility of joining increases, the joining of a new node can be stopped for a predetermined period (S1105). Checks whether the Oracle block 1060a exists in the storage unit 1033 of the new node (S1102), and if there is an Oracle block 1060a already created and stored in the storage unit 1033, the Oracle Blockchain 1060 Since there is a possibility of damaging the health of the node, it is judged as a malicious oracle node 1030 and the joining can be blocked. If it is determined as a malicious oracle node 1030, it may be added to the node-blacklist (S1106) to block the same oracle node 1030 from continuing to perform the join request. If the Oracle node 1030 already included in the node-blacklist makes a request to join, the joining of the malicious Oracle node 1030 can be immediately blocked.
오라클 블록체인 네트워크(1020)는 복수의 오라클 노드(1030)로 구성될 수 있다. 오라클 노드(1030)는 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브(1032a)를 포함하며, 인클레이브(1032a) 내에서 오라클 노드 신뢰도 판단단계(S1101~S1106) 및 오라클 블록생성 합의과정이 수행될 수 있다. 오라클 노드(1030)의 제어부(1032)는 인클레이브(1032a)를 포함할 수 있다. 인클레이브(1032a)는 제어부(1032)에서 물리적/소프트웨어적으로 분리되어 외부의 접근이 불가능한 정보처리공간이다. 인클레이브(1032a)에서는 본 발명의 일실시예에 따른 블록체인 응용 외부 정보 인식 및 정보 제공방법을 수행하는 프로그램 코드의 전부 또는 일부가 수행될 수 있다. 인클레이브(1032a)에서 동작한 프로그램 코드는 위조되거나 변조되지 않은 것으로 신뢰할 수 있고, 오라클 노드(1030)들 사이의 합의, 트랜잭션의 검증 등이 인클레이브(1032a)에서 수행될 수 있다. The Oracle blockchain network 1020 may be composed of a plurality of Oracle nodes 1030. The Oracle node 1030 includes an enclave 1032a that operates at least a part of the Oracle block chain program code, and the Oracle node reliability determination steps (S1101 to S1106) and the Oracle block creation consensus process are performed within the enclave 1032a. Can be done. The control unit 1032 of the oracle node 1030 may include an enclave 1032a. The enclave 1032a is an information processing space that is physically/software separated from the control unit 1032 so that external access is impossible. In the enclave 1032a, all or part of the program code for performing the method for recognizing external information and providing information in a block chain application according to an embodiment of the present invention may be executed. The program code operating in the enclave 1032a is reliable that it has not been forged or tampered with, and consensus between the oracle nodes 1030, verification of transactions, etc. may be performed in the enclave 1032a.
본 발명의 일실시예에 따른 단계들 중에서, 정보소스(1010)의 신뢰도를 판단하는 신뢰도 판단단계(S1032), 신규 노드의 합류여부를 결정하는 오라클 노드 신뢰도 판단단계(S1101~S1106), 데이터를 분산형 데이터 스토리지(1040)에 저장하는 저장단계(S1035) 및 데이터를 정보사용자(1050)에게 제공하는 제공단계(S1044)는 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들 사이의 검증과 합의를 거쳐 수행될 수 있다. 오라클 블록체인 네트워크(1020)를 구성하는 오라클 노드(1030)들 사이의 검증과 합의는 오라클 블록체인 네트워크(1020) 운영부(1142)가 포함하는 프로그램 코드에 기초하여 수행될 수 있다. Among the steps according to an embodiment of the present invention, a reliability determination step of determining the reliability of the information source 1010 (S1032), an Oracle node reliability determination step of determining whether or not a new node is joined (S1101 to S1106), and data The storage step (S1035) of storing the distributed data storage 1040 and the providing step (S1044) of providing the data to the information user 1050 are performed between the Oracle nodes 1030 constituting the Oracle blockchain network 1020. This can be done with verification and agreement. Verification and agreement between the Oracle nodes 1030 constituting the Oracle blockchain network 1020 may be performed based on the program code included in the operation unit 1142 of the Oracle blockchain network 1020.
오라클 블록체인 네트워크(1020)는 비잔틴 장애 허용(BFT, Byzantine Fault Tolerance) 알고리즘에 기반한 합의 또는 투표를 수행할 수 있다. 오라클 블록체인 네트워크(1020)는 분산된 지분 증명(DPoS) 방식의 합의 또는 투표를 수행할 수 있다. 신뢰도 판단단계(S1032)가 시작되면, 오라클 노드(1030)들은 투표를 진행할 의원 오라클 노드(1030)를 선출한다(S1201). 데이터를 획득한 정보소스(1010)에 접근할 수 있는 정보(IP주소 등)가 의원 오라클 노드(1030)들 사이에 공유되면(S1202), 의원 오라클 노드(1030)들은 정보소스(1010)에 개별적으로 접근하여 제1 또는 제2 판단단계를 수행하고, 그 결과를 공유한다. 정보소스(1010)에 접근할 수 있는 정보가 의원 오라클 노드(1030)에 모두 공유되지 않으면 공유될 때까지 대기할 수 있다(S1205). 제1 또는 제2 판단단계를 수행한 결과 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 많은 경우(S1203) 정보소스(1010)를 신뢰할 수 있는 것으로 판단할 수 있다(S1204). 또는, 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 적은 경우(S1203), 합의 또는 투표는 실패한 것이며 정보소스(1010)를 신뢰할 수 없다고 판단하고 소스-블랙리스트에 기록할 수 있다(S1206). 합의가 실패하는 경우 공유된 데이터는 버려질 수 있다(S1206).The Oracle blockchain network 1020 can perform consensus or voting based on the Byzantine Fault Tolerance (BFT) algorithm. The Oracle blockchain network 1020 can conduct consensus or voting in a distributed proof-of-stake (DPoS) method. When the reliability determination step (S1032) starts, the Oracle nodes 1030 elect a legislator Oracle node 1030 to proceed with the voting (S1201). When information (IP address, etc.) that can access the information source 1010 from which the data is acquired is shared between the legislator Oracle nodes 1030 (S1202), the legislator Oracle nodes 1030 are individually assigned to the information source 1010. Approach to and perform the first or second judgment step, and share the result. If all of the information that can access the information source 1010 is not shared with the legislator Oracle node 1030, it may wait until they are shared (S1205). When the number of oracle nodes 1030 determined to be reliable as a result of performing the first or second determination step is greater than the reference value (S1203), it may be determined that the information source 1010 is reliable (S1204). Alternatively, if the number of oracle nodes 1030 determined to be reliable is less than the reference value (S1203), consensus or voting has failed, and it is determined that the information source 1010 is not trusted and can be recorded in the source-blacklist (S1206). . If the agreement fails, the shared data may be discarded (S1206).
동일한 방법으로, 오라클 노드 신뢰도 판단단계(S1101~S1106)가 수행될 수 있다. 오라클 노드 신뢰도 판단단계(S1101~S1106)가 시작되면 오라클 노드(1030)들은 의원 오라클 노드(1030)를 선출하고(S1201), 의원 오라클 노드(1030)는 시간당 오라클 노드(1030) 합류 요청의 수, 신규 노드에 미리 생성된 오라클 블록(1060a)이 있는지, 노드-블랙리스트에 등록된 악의적 노드인지 판단하고 그 결과를 공유하여(S1202), 신규 노드가 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 많은 경우(S1203) 신규 노드를 합류처리할 수 있다(S1204). 신규 노드가 신뢰가능하다고 판단한 오라클 노드(1030)의 수가 기준값보다 적은 경우 합의 또는 투표가 실패한 것으로 판단하여(S1206) 신규 노드의 합류를 차단하고 신규 노드를 노드-블랙리스트에 등록할 수 있다. 소스-블랙리스트와 노드-블랙리스트는 공유될 수 있다. In the same way, the Oracle node reliability determination steps S1101 to S1106 may be performed. When the Oracle node reliability determination step (S1101 to S1106) begins, the Oracle nodes 1030 elect the legislator Oracle node 1030 (S1201), and the legislator Oracle node 1030 is the number of requests to join the Oracle node 1030 per hour, Determine whether there is an oracle block 1060a created in advance in the new node, or whether it is a malicious node registered in the node-blacklist, and share the result (S1202), and the number of oracle nodes 1030 that the new node determines to be reliable is a reference value. In more cases (S1203), a new node may be joined (S1204). If the number of oracle nodes 1030 determined to be reliable by the new node is less than the reference value, it is determined that consensus or voting has failed (S1206), and the joining of the new node is blocked, and the new node can be registered in the node-blacklist. Source-blacklist and node-blacklist can be shared.
저장 프로세스(S1030) 및 제공 프로세스(S1040)를 수행한 결과물은 저장내역(1061) 및 제공내역(1062)으로서 오라클 블록(1060a)에 저장되기 위하여 오라클 노드(1030)들에게 공유되고 검증된다. 오라클 노드(1030)들은 정해진 시간마다 저장내역(1061)이나 제공내역(1062)들을 포함하는 오라클 블록(1060a)을 생성하기 위한 검증 및 합의를 위임된 지분 증명(DPoS)방식으로 수행할 수 있다. The result of performing the storage process S1030 and the provision process S1040 is shared and verified with the Oracle nodes 1030 to be stored in the Oracle block 1060a as the storage details 1061 and the provision details 1062. The oracle nodes 1030 may perform verification and consensus for generating the oracle block 1060a including the storage details 1061 or the provision details 1062 at a predetermined time in a delegated proof-of-stake (DPoS) method.
상술한 바와 같이 본 발명의 일실시예에 따르면, 오라클 블록체인(1060)의 외부에 존재하는 데이터를 오라클 블록체인(1060)의 내부로 들여오고 오라클 블록체인(1060)의 내부에 저장된 데이터를 오라클 블록체인(1060)의 외부로 제공하는 양방향 데이터 교환을 제공할 수 있다. As described above, according to an embodiment of the present invention, data existing outside the Oracle blockchain 1060 is imported into the Oracle blockchain 1060, and data stored inside the Oracle blockchain 1060 is transferred to the Oracle block chain 1060. Two-way data exchange provided to the outside of the blockchain 1060 may be provided.
또한, 본 발명의 일실시예에 따르면, 데이터 교환시 데이터의 기밀성, 무결성, 정보사용자(1050)의 프라이버시를 보장할 수 있다. Further, according to an embodiment of the present invention, it is possible to guarantee the confidentiality and integrity of data, and the privacy of the information user 1050 during data exchange.
또한, 본 발명의 일실시예에 따르면, 다양한 외부 데이터의 접근을 위한 데이터 획득, 저장, 처리, 스케쥴링을 오라클 블록체인 네트워크(1020)에서 수행할 수 있는 스마트 컨트랙트 오라클을 제공할 수 있다. In addition, according to an embodiment of the present invention, it is possible to provide a smart contract oracle capable of performing data acquisition, storage, processing, and scheduling for accessing various external data in the Oracle blockchain network 1020.
이상 본 발명을 구체적인 실시예를 통하여 상세히 설명하였으나, 이는 본 발명을 구체적으로 설명하기 위한 것으로, 본 발명은 이에 한정되지 않으며, 본 발명의 기술적 사상 내에서 당해 분야의 통상의 지식을 가진 자에 의해 그 변형이나 개량이 가능함은 명백하다고 할 것이다. Although the present invention has been described in detail through specific examples, this is for explaining the present invention in detail, and the present invention is not limited thereto, and within the technical scope of the present invention, by those of ordinary skill in the art. It would be clear that the transformation or improvement is possible.
본 발명의 단순한 변형 내지 변경은 모두 본 발명의 영역에 속하는 것으로 본 발명의 구체적인 보호 범위는 첨부된 특허청구범위에 의하여 명확해질 것이다.All simple modifications to changes of the present invention belong to the scope of the present invention, and the specific scope of protection of the present invention will be made clear by the appended claims.
[부호의 설명][Explanation of code]
10: 공유자원10: shared resources
20: 복합 IoT 디바이스20: complex IoT device
21: 잠금모듈21: locking module
21a: 오픈영역21a: open area
22: 통신모듈22: communication module
23: 컨트롤러모듈23: controller module
24: 입력모듈24: input module
25: 표시모듈25: display module
26: 전원모듈26: power module
27: 게이트웨이모듈27: gateway module
31: 관리자 단말31: manager terminal
32: 사용자 단말32: user terminal
41: 관리자용 dApp41: dApp for administrators
42: 사용자용 dApp42: dApp for users
41a: 관리자용 스마트 컨트랙트41a: Smart contract for managers
42a: 사용자용 스마트 컨트랙트42a: Smart contract for users
50: 블록체인 네트워크50: Blockchain network
51: 노드51: node
51a: 통신부51a: communication department
51b: 제어부51b: control unit
51c: 저장부51c: storage
60: 블록체인60: Blockchain
61: 블록61: block
1010: 정보소스1010: Information source
1020: 오라클 블록체인 네트워크1020: Oracle Blockchain Network
1030: 오라클 노드1030: Oracle node
1031: 통신부1031: Ministry of Communications
1032: 제어부1032: control unit
1032a: 인클레이브1032a: Enclave
1033: 저장부1033: storage
1040: 분산형 데이터 스토리지1040: distributed data storage
1050: 정보사용자1050: information user
1060: 오라클 블록체인1060: Oracle Blockchain
1060a: 오라클 블록1060a: Oracle block
1061: 저장내역1061: storage history
1062: 제공내역1062: offer details
1100: 프레임워크 구조1100: Framework structure
1110: 액세스 모듈1110: access module
1111: API1111: API
1112: 파서1112: parser
1113: 악의적 오라클 노드 방지 알고리즘1113: Malicious Oracle Node Prevention Algorithm
1114: BFT 합의 알고리즘1114: BFT consensus algorithm
1120: 정보소스 검증모듈1120: information source verification module
1121: SSL 인증서 기반 신뢰판단모델1121: SSL certificate-based trust judgment model
1122: Whois 기반 신뢰판단모델1122: Whois-based trust judgment model
1123: 투표 기반 신뢰판단모델1123: Voting-based trust judgment model
1130: 데이터 관리모듈1130: data management module
1131: 스케줄러1131: scheduler
1132: 비식별화 알고리즘1132: de-identification algorithm
1133: 암호화부1133: encryption unit
1140: 오라클 스마트 컨트랙트 모듈1140: Oracle Smart Contract Module
1141: 데이터 저장 사용 기록 스마트 컨트랙트1141: Data storage usage record smart contract
1142: 오라클 블록체인 네트워크 운영부1142: Oracle Blockchain Network Operations Department
Claims (18)
- 다양한 종류의 공유자원에 결합되어 물리적 또는 전기적으로 상기 공유자원을 개폐하는 잠금모듈;A locking module that is coupled to various types of shared resources to physically or electrically open and close the shared resources;사용자 단말 또는 블록체인 네트워크와 데이터를 송수신하는 통신모듈; 및 A communication module for transmitting and receiving data to and from a user terminal or a blockchain network; And상기 사용자 단말이 상기 공유자원의 이용권한을 갖는지 여부를 상기 블록체인 네트워크로부터 수신하는 키에 기초하여 판단하고, 상기 잠금모듈을 개폐하도록 제어하는 컨트롤러모듈을 포함하는, 복합 IoT 디바이스.A complex IoT device comprising a controller module that determines whether the user terminal has permission to use the shared resource based on a key received from the blockchain network, and controls to open and close the lock module.
- 청구항 1에 있어서, The method according to claim 1,상기 컨트롤러모듈은 The controller module상기 통신모듈과 상기 사용자 단말 사이의 근거리 통신 또는 GPS 정보를 이용하여 상기 사용자 단말이 정해진 거리만큼 접근하여야 상기 이용권한을 갖는지 여부를 판단하는 절차를 시작하는, 복합 IoT 디바이스.Initiating a procedure for determining whether or not the user terminal has the use right only when the user terminal approaches a predetermined distance by using short-range communication or GPS information between the communication module and the user terminal.
- 청구항 1에 있어서, The method according to claim 1,모션센서, 인체감지센서, 적외선센서, 초음파센서, 터치센서 중에서 적어도 하나를 이용하여 상기 공유자원의 이용상태를 감시하여 이용상태정보를 생성하고 상기 컨트롤러모듈에 제공하는 게이트웨이모듈을 더 포함하며,Further comprising a gateway module for generating usage status information by monitoring the usage status of the shared resource using at least one of a motion sensor, a human body detection sensor, an infrared sensor, an ultrasonic sensor, and a touch sensor, and providing the usage status information to the controller module,상기 게이트웨이모듈은 The gateway module is물리적으로 별도의 디바이스로 형성되고, 상기 공유자원의 이용상태를 감시 가능한 위치의 상기 공유자원에 결합되는, 복합 IoT 디바이스.A complex IoT device that is physically formed as a separate device, and is coupled to the shared resource at a location capable of monitoring the state of use of the shared resource.
- 청구항 1에 있어서, The method according to claim 1,상기 잠금모듈은 The locking module is상기 사용자가 상기 공유자원의 이용권한에 기초하여 상기 잠금모듈을 개방하여야 상기 공유자원에 미리 설치되어 있는 다른 잠금장치에 접근가능하도록, 상기 잠금장치에 애드온 방식으로 설치되고,It is installed in an add-on method in the locking device so that the user must open the locking module based on the permission to use the shared resource to access another locking device previously installed in the shared resource,상기 컨트롤러모듈은 The controller module상기 공유자원의 이용권한에 기초하여 상기 잠금모듈을 개방하는 경우, 상기 잠금장치를 개방할 수 있는 키를 상기 사용자 단말로 제공하는, 복합 IoT 디바이스.When the lock module is opened based on the permission to use the shared resource, a key capable of opening the lock device is provided to the user terminal.
- 관리자 단말이 관리자 dApp을 통하여 공유자원의 정보 및 상기 공유자원에 결합된 복합 IoT 디바이스의 정보를 블록체인 네트워크에 제공하여 상기 공유자원을 공유가능하도록 제공하는 공유자원 등록단계;A shared resource registration step in which a manager terminal provides information on a shared resource and information on a complex IoT device coupled to the shared resource to a blockchain network through a manager dApp so that the shared resource can be shared;사용자 단말이 사용자 dApp을 통하여 상기 블록체인 네트워크에 등록된 상기 공유자원의 이용권한을 요청하고 상기 관리자 단말이 사전에 지정해놓은 스마트 컨트랙트에 기초하여 이용권한이 부여되는 이용권한 획득단계; 및 A use permission acquisition step in which a user terminal requests permission to use the shared resource registered in the blockchain network through a user dApp, and a permission is granted based on a smart contract previously designated by the manager terminal; And상기 복합 IoT 디바이스가 상기 사용자 단말에 이용권한이 존재하는지 판단하여 상기 공유자원에 접근가능하도록 잠금을 개방하는 이용시작단계를 포함하는, 복합 IoT 디바이스를 이용한 공유서비스 제공방법.A method for providing a shared service using a complex IoT device comprising a use start step of opening a lock so that the complex IoT device can access the shared resource by determining whether the user terminal has permission to use it.
- 청구항 5에 있어서, The method of claim 5,상기 공유자원 등록단계는 The shared resource registration step관리자 단말이 관리자용 dApp을 통하여 상기 공유자원의 정보 및 상기 복합 IoT 디바이스의 정보를 상기 블록체인 네트워크에 제공하는 단계; 및 Providing, by a manager terminal, information on the shared resource and information on the complex IoT device to the blockchain network through a manager dApp; And상기 블록체인 네트워크의 관리자용 스마트 컨트랙트에 기초하여 상기 공유자원의 정보 및 상기 복합 IoT 디바이스의 정보가 상기 블록체인 네트워크가 생성하는 블록에 기록되고 상기 블록이 공유되는 단계를 포함하는, 복합 IoT 디바이스 및 이를 이용한 공유서비스 제공방법.Comprising the step of recording the information of the shared resource and the information of the complex IoT device in a block generated by the blockchain network and sharing the block based on a smart contract for an administrator of the blockchain network, a complex IoT device and A method of providing shared services using this.
- 청구항 5에 있어서, The method of claim 5,상기 이용권한 획득단계는 The step of obtaining the above permission is상기 사용자 단말이 상기 사용자용 dApp을 통해 상기 블록체인 네트워크에 분산 저장된 블록체인에 기록된 공유자원의 검색을 요청하면, 상기 사용자용 dApp이 상기 블록체인에 기록된 공유자원을 검색하여 제공가능한 공유자원의 목록을 상기 사용자 단말로 제공하는 단계;When the user terminal requests a search for shared resources recorded in the blockchain distributedly stored in the blockchain network through the user dApp, the dApp for the user searches for shared resources recorded in the blockchain and provides a shared resource. Providing a list of to the user terminal;상기 사용자 단말이 제공가능한 공유자원의 목록 중에서 공유자원을 선택하여 이용권한 획득을 요청하는 단계; 및 Selecting a shared resource from a list of shared resources that can be provided by the user terminal and requesting acquisition of usage rights; And상기 블록체인 네트워크의 관리자용 스마트 컨트랙트는 요청된 공유자원의 이용가능여부를 판단하고 이용가능한 경우 상기 사용자 단말에 이용권한을 부여하였음을 블록체인에 기록하는 단계를 포함하는, 복합 IoT 디바이스 및 이를 이용한 공유서비스 제공방법.The smart contract for the administrator of the blockchain network includes determining whether the requested shared resource is available and, if available, recording in the block chain that the user terminal has been granted permission to use it. How to provide shared services.
- 청구항 5에 있어서, The method of claim 5,상기 이용시작단계는 The above steps to start using사용자 단말이 사용자용 dApp을 통하여 상기 블록체인 네트워크에 이용권한에 기초한 상기 복합 IoT 디바이스의 잠금 개방을 요청하는 단계;Requesting, by a user terminal, to unlock the complex IoT device based on permission to the blockchain network through the dApp for the user;상기 복합 IoT 디바이스가 상기 사용자 단말이 정해진 거리 이내에 위치하는지 판단하는 단계;Determining whether the composite IoT device is located within a predetermined distance of the user terminal;상기 복합 IoT 디바이스와 상기 사용자 단말이 정해진 거리 이내에 위치하는 경우, 상기 복합 IoT 디바이스와 상기 사용자 단말이 각각 상기 블록체인 네트워크에 일회용 인증 프로토콜의 실행을 요청하는 단계;When the complex IoT device and the user terminal are located within a predetermined distance, each of the complex IoT device and the user terminal requesting execution of a one-time authentication protocol from the blockchain network;상기 블록체인 네트워크는 상기 일회용 인증 프로토콜에 따라, 일회용 키를 생성하여 상기 복합 IoT 디바이스와 상기 사용자 단말에 각각 전달하는 단계;The blockchain network generating a one-time key according to the one-time authentication protocol and transmitting the generated one-time key to the complex IoT device and the user terminal, respectively;상기 복합 IoT 디바이스가 수신한 상기 일회용 키와 상기 사용자 단말로부터 수신한 상기 일회용 키가 일치하는 경우 상기 사용자 단말에 이용권한이 있는 것으로 판단하여 잠금을 개방하는 단계를 포함하는, 복합 IoT 디바이스 및 이를 이용한 공유서비스 제공방법.Comprising the step of opening a lock by determining that the user terminal has permission to use when the one-time key received by the composite IoT device and the one-time key received from the user terminal match. How to provide shared services.
- 청구항 5에 있어서, The method of claim 5,상기 블록체인 네트워크는 The blockchain network is상기 공유자원의 공유에 필요한 정보, 상기 공유자원의 이용 기록, 상기 공유자원의 관리자 또는 사용자에 관한 정보를 포함한 블록체인을 저장하고, 상기 공유자원의 공유에 관련된 기능의 적어도 일부를 수행하는 복수의 노드를 포함하는, 복합 IoT 디바이스 및 이를 이용한 공유서비스 제공방법.A plurality of blocks that store the information necessary for sharing the shared resource, the use record of the shared resource, and information on the administrator or user of the shared resource, and perform at least part of the functions related to the sharing of the shared resource. A complex IoT device including a node and a method of providing a shared service using the same.
- 청구항 5에 있어서, The method of claim 5,상기 복합 IoT 디바이스는 The composite IoT device is다양한 종류의 공유자원에 결합되어 물리적 또는 전기적으로 상기 공유자원을 개폐하는 잠금모듈;A locking module that is coupled to various types of shared resources to physically or electrically open and close the shared resources;사용자 단말 또는 블록체인 네트워크와 데이터를 송수신하는 통신모듈; 및 A communication module for transmitting and receiving data to and from a user terminal or a blockchain network; And상기 사용자 단말이 상기 공유자원의 이용권한을 갖는지 여부를 상기 블록체인 네트워크로부터 수신하는 키에 기초하여 판단하고, 상기 잠금모듈을 개폐하도록 제어하는 컨트롤러모듈을 포함하는, 복합 IoT 디바이스 및 이를 이용한 공유서비스 제공방법.A complex IoT device including a controller module that determines whether the user terminal has permission to use the shared resource based on a key received from the blockchain network, and controls to open and close the lock module, and a shared service using the same How to provide.
- 오라클 블록체인 네트워크의 외부에 존재하는 정보소스로부터 데이터를 획득하는 데이터 획득단계;A data acquisition step of acquiring data from an information source existing outside of the Oracle blockchain network;상기 정보소스의 신뢰 여부를 검증하여 상기 데이터의 신뢰도를 판단하는 신뢰도 판단단계;A reliability determination step of determining the reliability of the data by verifying whether the information source is trusted;상기 데이터를 파싱하는 파싱단계;A parsing step of parsing the data;상기 데이터의 유형에 따른 보호를 부여하는 데이터 보호단계; 및 A data protection step of providing protection according to the type of data; And상기 데이터를 분산형 데이터 스토리지에 저장하면서 데이터 저장내역을 오라클 블록체인에 저장하는 저장단계를 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.A method for recognizing and providing information outside of a blockchain application, including a storage step of storing the data in a distributed data storage and storing the data storage details in the Oracle blockchain.
- 청구항 11에 있어서, The method of claim 11,상기 오라클 블록체인 네트워크의 내부 또는 외부로부터 요청된 데이터를 상기 분산형 데이터 스토리지로부터 획득하는 로딩단계;A loading step of acquiring data requested from the inside or outside of the Oracle blockchain network from the distributed data storage;상기 요청된 데이터에 부여된 보호를 제거 또는 변경하는 보호 변경단계; A protection change step of removing or changing the protection given to the requested data;상기 데이터 공급 요청에 기초하여, 상기 요청된 데이터를 필요한 형식으로 정리하는 재구성단계; 및 A reconfiguration step of organizing the requested data in a required format based on the data supply request; And상기 요청된 데이터를 제공하고 데이터 제공내역을 상기 오라클 블록체인에 저장하는 제공단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.A method for recognizing and providing information outside of a blockchain application, further comprising a providing step of providing the requested data and storing the data provision details in the Oracle blockchain.
- 청구항 12에 있어서, The method of claim 12,상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는지 여부를 상기 데이터 저장내역을 검색하여 판단하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하는 경우 상기 로딩단계를 수행하고, 상기 요청된 데이터가 상기 분산형 데이터 스토리지에 존재하지 않는 경우 상기 데이터 획득단계를 수행하는 요청판단 단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.It is determined by searching the data storage details whether the requested data exists in the distributed data storage, and if the requested data exists in the distributed data storage, the loading step is performed, and the requested data A method for recognizing external information and providing information on a blockchain application, further comprising a request determination step of performing the data acquisition step if the is not present in the distributed data storage.
- 청구항 11에 있어서, The method of claim 11,상기 신뢰도 판단단계는 The reliability determination step is상기 정보소스가 제공하는 SSL 인증서를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제1 판단단계, A first determination step of determining whether the information source is trusted using the SSL certificate provided by the information source,상기 정보소스의 도메인에 기초하여 Whois 서비스를 통해 획득한 상기 정보소스의 도메인 등록 정보를 이용하여 상기 정보소스의 신뢰여부를 판단하는 제2 판단단계, 및 A second determination step of determining whether or not the information source is trusted using domain registration information of the information source obtained through the Whois service based on the domain of the information source, and상기 정보소스의 신뢰여부에 관하여 위임된 지분 증명 방식의 오라클 노드 투표를 진행하고 오라클 노드 투표에 기초하여 상기 정보소스의 신뢰여부를 판단하는 제3 판단단계 중에서 적어도 하나를 수행하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.Outside the blockchain application, performing at least one of the third judgment steps of determining whether or not the information source is trusted based on the Oracle node voting in the delegated proof-of-stake method for the trust of the information source. How to recognize and provide information.
- 청구항 11에 있어서, The method of claim 11,상기 신뢰도 판단단계를 수행한 결과 신뢰할 수 없는 정보소스로 판단되는 경우 소스-블랙리스트에 상기 신뢰할 수 없는 정보소스를 추가하는 소스-블랙리스트 추가 단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.Blockchain application external information recognition and information, further comprising a source-blacklist adding step of adding the untrusted information source to a source-blacklist when it is determined as an untrusted information source as a result of performing the reliability determination step How to provide.
- 청구항 11에 있어서, The method of claim 11,상기 오라클 블록체인 네트워크에 합류를 요청한 신규 노드의 신뢰도를 판단하기 위하여, 상기 신규 노드의 단위시간당 증가량이 기준값을 초과하는 경우 정해진 기간동안 신규 노드의 합류를 중지하고, 상기 신규 노드에 생성된 오라클 블록이 존재하는 경우 신뢰할 수 없는 오라클 노드로 판단하여 합류를 차단하고 노드-블랙리스트에 추가하며, 상기 신규 노드가 상기 노드-블랙리스트에 포함된 경우 합류를 차단하는, 오라클 노드 신뢰도 판단단계를 더 포함하는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.In order to determine the reliability of a new node that has requested to join the Oracle blockchain network, if the increase per unit time of the new node exceeds the reference value, the joining of the new node is stopped for a predetermined period, and the Oracle block created in the new node. In the presence of an untrusted Oracle node, the joining is blocked and added to the node-blacklist, and if the new node is included in the node-blacklist, the Oracle node reliability determination step is further included. How to recognize and provide information outside the blockchain application.
- 청구항 11에 있어서, The method of claim 11,상기 오라클 블록체인 네트워크는 복수의 오라클 노드로 구성되며, The Oracle blockchain network consists of a plurality of Oracle nodes,상기 오라클 노드는 The Oracle node is상기 오라클 블록체인 프로그램 코드의 적어도 일부를 동작시키는 인클레이브를 포함하며, 상기 인클레이브 내에서 상기 오라클 노드 신뢰도 판단단계 및 오라클 블록생성 합의과정이 수행되는, 블록체인 응용 외부 정보 인식 및 정보 제공방법.Including an enclave for operating at least a part of the Oracle block chain program code, wherein the Oracle node reliability determination step and the Oracle block generation consensus process are performed within the enclave.
- 청구항 11에 있어서, The method of claim 11,상기 데이터 보호단계는 The data protection step상기 데이터에서 개인정보에 해당하는 정보를 익명화하거나 삭제하거나 필요한 데이터만을 범주화 또는 총계처리하는 비식별화를 수행하고, 필요한 경우 비식별화가 수행된 데이터를 암호화하는 것인, 블록체인 응용 외부 정보 인식 및 정보 제공방법.Blockchain application external information recognition and de-identification by anonymizing or deleting information corresponding to personal information from the above data, categorizing or totalizing only necessary data, and encrypting the de-identified data if necessary. How to provide information.
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0143555 | 2019-11-11 | ||
KR10-2019-0143558 | 2019-11-11 | ||
KR1020190143555A KR102337836B1 (en) | 2019-11-11 | 2019-11-11 | External information recognizing and information providing method using blockchain |
KR1020190143558A KR102365675B1 (en) | 2019-11-11 | 2019-11-11 | Complex IoT device and share service providing method using the same |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2021095926A1 true WO2021095926A1 (en) | 2021-05-20 |
Family
ID=75912452
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2019/015544 WO2021095926A1 (en) | 2019-11-11 | 2019-11-14 | Complex iot device and sharing service providing method using same, and method for recognizing external information through blockchain application and providing information |
Country Status (1)
Country | Link |
---|---|
WO (1) | WO2021095926A1 (en) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860855A (en) * | 2022-05-10 | 2022-08-05 | 江苏阳光智慧城市科技有限公司 | Internet mobile terminal inputting system based on data management |
CN116723202A (en) * | 2023-08-10 | 2023-09-08 | 深圳海岸线数据技术有限公司 | Block chain-based Internet of things equipment management system and control method thereof |
US12126546B1 (en) * | 2024-02-06 | 2024-10-22 | Citibank, N.A. | Systems and methods for determining resource availability across global or cloud networks |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101962290B1 (en) * | 2018-12-31 | 2019-03-26 | 주식회사 미탭스플러스 | Distributed Ledger Device for Supporting Sharing Economy |
KR20190071065A (en) * | 2017-12-14 | 2019-06-24 | 박광호 | Car insurance fare calculation method based on driver using block chain and p2p car sharing mediation service providing method using the block chain |
KR20190081299A (en) * | 2017-12-29 | 2019-07-09 | 부경대학교 산학협력단 | Block chain based data access control system and method thereof |
KR20190111261A (en) * | 2018-03-22 | 2019-10-02 | 주식회사 이글루시큐리티 | Security Management System using Block Chain Technology and Method thereof |
WO2019190007A1 (en) * | 2018-03-30 | 2019-10-03 | 옥타코 주식회사 | Access security management system for access control equipment on basis of blockchain sharing of biometric authentication log data |
-
2019
- 2019-11-14 WO PCT/KR2019/015544 patent/WO2021095926A1/en active Application Filing
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20190071065A (en) * | 2017-12-14 | 2019-06-24 | 박광호 | Car insurance fare calculation method based on driver using block chain and p2p car sharing mediation service providing method using the block chain |
KR20190081299A (en) * | 2017-12-29 | 2019-07-09 | 부경대학교 산학협력단 | Block chain based data access control system and method thereof |
KR20190111261A (en) * | 2018-03-22 | 2019-10-02 | 주식회사 이글루시큐리티 | Security Management System using Block Chain Technology and Method thereof |
WO2019190007A1 (en) * | 2018-03-30 | 2019-10-03 | 옥타코 주식회사 | Access security management system for access control equipment on basis of blockchain sharing of biometric authentication log data |
KR101962290B1 (en) * | 2018-12-31 | 2019-03-26 | 주식회사 미탭스플러스 | Distributed Ledger Device for Supporting Sharing Economy |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114860855A (en) * | 2022-05-10 | 2022-08-05 | 江苏阳光智慧城市科技有限公司 | Internet mobile terminal inputting system based on data management |
CN116723202A (en) * | 2023-08-10 | 2023-09-08 | 深圳海岸线数据技术有限公司 | Block chain-based Internet of things equipment management system and control method thereof |
CN116723202B (en) * | 2023-08-10 | 2023-11-10 | 深圳海岸线数据技术有限公司 | Block chain-based Internet of things equipment management system and control method thereof |
US12126546B1 (en) * | 2024-02-06 | 2024-10-22 | Citibank, N.A. | Systems and methods for determining resource availability across global or cloud networks |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2020091278A1 (en) | System and method for providing personal information using one time private key based on blockchain of proof of use | |
WO2014069777A1 (en) | Transit control for data | |
WO2013085281A1 (en) | Method and device for security in clouding computing service | |
US9948652B2 (en) | System for resource-centric threat modeling and identifying controls for securing technology resources | |
US8266676B2 (en) | Method to verify the integrity of components on a trusted platform using integrity database services | |
Tedeschi et al. | Secure IoT devices for the maintenance of machine tools | |
WO2018008800A1 (en) | Accredited certificate authentication system based on blockchain, and accredited certificate authentication method based on blockchain, using same | |
WO2013048111A2 (en) | Method and apparatus for detecting an intrusion on a cloud computing service | |
WO2021095926A1 (en) | Complex iot device and sharing service providing method using same, and method for recognizing external information through blockchain application and providing information | |
WO2017022917A1 (en) | Certificate issuing system based on block chain | |
US20090077640A1 (en) | System and method for validating user identification | |
WO2014069787A1 (en) | Security through metadata orchestrators | |
WO2020040525A1 (en) | Method and apparatus for authenticating biometric information | |
WO2020189926A1 (en) | Method and server for managing user identity by using blockchain network, and method and terminal for user authentication using blockchain network-based user identity | |
WO2020050424A1 (en) | BLOCK CHAIN-BASED SYSTEM AND METHOD FOR MULTIPLE SECURITY AUTHENTICATION BETWEEN MOBILE TERMINAL AND IoT DEVICE | |
WO2020189927A1 (en) | Method and server for managing identity of user by using blockchain network, and method and terminal for authenticating user by using user identity on basis of blockchain network | |
WO2021071116A1 (en) | Simple authentication method and system using web storage of browser | |
WO2020130331A1 (en) | Method for sharing and verifying blocks and electronic documents between nodes in blockchain | |
WO2020189800A1 (en) | Method and system for authenticating data generated in blockchain | |
CN107103216B (en) | Service information protection device | |
WO2023211122A1 (en) | System for controlling file transmission and reception of application on basis of proxy and method relating to same | |
WO2019125081A1 (en) | System for granting one-time access rights using blockchain | |
KR20210056744A (en) | External information recognizing and information providing method using blockchain | |
TWI556129B (en) | Management server and method and user client device and monitoring method thereof | |
WO2021020918A1 (en) | Method for providing logical internal network, and mobile terminal and application for implementing same |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 19952162 Country of ref document: EP Kind code of ref document: A1 |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
122 | Ep: pct application non-entry in european phase |
Ref document number: 19952162 Country of ref document: EP Kind code of ref document: A1 |