WO2022131441A1 - 블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템 - Google Patents

블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템 Download PDF

Info

Publication number
WO2022131441A1
WO2022131441A1 PCT/KR2021/001179 KR2021001179W WO2022131441A1 WO 2022131441 A1 WO2022131441 A1 WO 2022131441A1 KR 2021001179 W KR2021001179 W KR 2021001179W WO 2022131441 A1 WO2022131441 A1 WO 2022131441A1
Authority
WO
WIPO (PCT)
Prior art keywords
hash value
file
image file
web page
user
Prior art date
Application number
PCT/KR2021/001179
Other languages
English (en)
French (fr)
Inventor
배석민
Original Assignee
주식회사 에이아이디비
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 주식회사 에이아이디비 filed Critical 주식회사 에이아이디비
Publication of WO2022131441A1 publication Critical patent/WO2022131441A1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/128Restricting unauthorised execution of programs involving web programs, i.e. using technology especially used in internet, generally interacting with a web browser, e.g. hypertext markup language [HTML], applets, java
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/955Retrieval from the web using information identifiers, e.g. uniform resource locators [URL]
    • G06F16/9566URL specific, e.g. using aliases, detecting broken or misspelled links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2119Authenticating web pages, e.g. with suspicious links
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2151Time stamp

Definitions

  • the present disclosure relates to a method and system for storing and verifying a web page using a blockchain network. Specifically, the present invention relates to a method and system for detecting whether a web page has been changed by comparing and verifying a stored web page and a current web page through a block chain network.
  • the changed service or product may be different from the service or product expected by the user at the time of the transaction contract, and thus the user may suffer damage.
  • 1 shows a case in which the web page confirmed by the service user at the time of contract and the web page when the contract is executed are changed.
  • the user can capture and save the webpage at the time of contracting the transaction, but because it is possible to edit and capture the web content with the developer tool of the Internet browser or edit it easily using a graphic tool after capture, When a real transaction problem occurs, it is difficult to resolve the problem between the transaction parties with the captured image.
  • the service provider when transacting on the Internet, the service provider can update the web page at any time, but the user cannot view the content before the update.
  • An object of the present disclosure is to provide a method and system for storing the contents of a web page so as not to be forged or falsified and confirming the stored contents later.
  • a method of storing a web page using a block chain network includes: receiving a URL of a web page that the first user wants to store from a first user at a first time receiving; downloading a first HTML file of a web page corresponding to the URL received from the first user, and rendering the web page through a headless browser to generate a first image file; temporarily storing the first HTML file and the first image file together with a first timestamp; hashing each of the first HTML file and the first image file, and generating a full hash value; storing the first HTML file and the first image file in an external file storage using the entire hash value; and first transaction data including a hash value of the first HTML file, a hash value of the first image file, a file storage path, the first timestamp, the URL, and the entire hash value in the blockchain network. including the steps of
  • the first HTML file and the first image file may not be stored in the blockchain network.
  • the full hash value is a tree (tree) together with the hash value of the first HTML file, the hash value of the first image file, the file storage path, the first timestamp and the URL can be created using
  • the storage method includes: at a second time after the first time, receiving the full hash value from a second user; after receiving the full hash value from the second user, inquiring first transaction data corresponding to the full hash value in the block chain network, and receiving the first transaction data from the block chain network; and fetching the first HTML file and the first image file from the external file storage using the file storage path and the full hash value included in the received first transaction data, and the imported first HTML file and the first image
  • the method may further include displaying the file to the second user.
  • the method includes: receiving, at a second time after the first time, the full hash value from a second user; after receiving the full hash value from the second user, inquiring first transaction data corresponding to the full hash value in the block chain network, and receiving the first transaction data from the block chain network;
  • a second HTML file of a web page corresponding to the URL of the received first transaction data is downloaded, and the web page is rendered through a headless browser to render the second creating an image file; temporarily storing the second HTML file and the second image file together with a second timestamp; hashing each of the second HTML file and the second image file; comparing the hash value of the second HTML file and the hash value of the second image file with the hash value of the first HTML file and the hash value of the first image file of the received first transaction data, respectively; and displaying a comparison result of the hash values to the second user.
  • the method includes: fetching the first HTML file and the first image file from the external file storage using a file storage path and a full hash value included in the received first transaction data. coming step; comparing a first HTML file and a first image file obtained from the external file storage with the second HTML file and the second image file; and displaying a comparison result between the HTML files and the image files to the second user, wherein the comparison between the first image file and the second image file may be performed through a deep learning model.
  • the full hash value may be combined with a hash value of the first HTML file, a hash value of the first image file, the file storage path, the first timestamp, the URL, and a verification status value.
  • the first transaction data that may be generated using a tree and stored in the block chain may further include the verification state value, and before receiving the first transaction data from the block chain network, The verification status value in the first transaction data is first received from the blockchain network. If the verification status value is TRUE, the step of receiving the first transaction data from the blockchain network is performed, and the verification status value is If FALSE, the step of receiving the first transaction data from the blockchain network may not be performed.
  • the method includes: after generating the entire hash value, salting a random number to the entire hash value and hashing to generate a state change hash value; and transmitting the full hash value and the state change hash value to the first user, wherein the state change hash value can be used to change the verification state value.
  • the first user and the second user may be the same or different users, and may be a person providing a service through the web page or a person using a service in the web page.
  • the method displays, before hashing the first HTML file and the first image file, the first HTML file and the first image file to the first user, the HTML file and requesting confirmation for the image file.
  • the method includes: downloading a third HTML file of a webpage corresponding to the URL, and rendering the webpage through a headless browser to generate a third image file generating; temporarily storing the third HTML file and the third image file together with a third timestamp; hashing each of the third HTML file and the third image file; inquiring first transaction data corresponding to the entire hash value in the blockchain network, and receiving the first transaction data from the blockchain network; and comparing the hash value of the third HTML file and the hash value of the third image file with the hash value of the first HTML file and the hash value of the first image file in the first transaction data, respectively.
  • the first user may include periodically repeating the step of notifying the hash value mismatch to .
  • a system for storing a web page using a block chain includes: a management server for performing the above-described method; the blockchain network; and the external file storage.
  • a web page can be stored so that it cannot be forged or tampered with using a block chain network, it is possible to store a reliable record between the contracting parties.
  • users and verifiers can use the data and content forgery prevention platform according to the embodiments of the present disclosure without membership registration, login, or other authentication procedures, thereby eliminating the risk of personal information leakage.
  • FIG. 2 schematically shows a platform for preventing forgery and falsification of data and content in a webpage using a system according to embodiments of the present disclosure.
  • FIG. 3 is a block diagram illustrating a configuration of a system for storing and verifying a web page according to embodiments of the present disclosure.
  • FIG. 4 is a flowchart of a method of storing a web page according to embodiments of the present disclosure
  • FIG. 5 schematically illustrates a process in which the method of storing the web page of FIG. 4 is performed in the system of FIG. 3 .
  • FIG. 6 schematically shows an example of a configuration diagram of a transaction stored in a blockchain.
  • FIG. 7 is a flowchart of a method of checking a stored webpage according to embodiments of the present disclosure.
  • FIG. 8 is a flowchart of a method of comparing and verifying a stored webpage and a current webpage according to embodiments of the present disclosure
  • FIG. 9 schematically illustrates a process in which the web page comparison and verification method of FIG. 8 is performed in the system of FIG. 3 .
  • FIGS. 8 and 9 shows an example of a webpage comparison and verification result displayed to a second user using the method of FIGS. 8 and 9 .
  • FIG. 11 is a flowchart of a method of comparing and verifying a web page according to other embodiments of the present disclosure.
  • FIG. 12 is a flowchart of a method of changing a verification state value using a state change hash value according to embodiments of the present disclosure
  • FIG. 13 schematically illustrates a process in which the verification state change method of FIG. 12 is performed in the system of FIG. 3 .
  • An object of the present disclosure is to provide a method and system for storing the contents of a web page so as not to be forged or falsified and confirming the stored contents later.
  • the present disclosure proposes a platform that enables to store web pages in a non-forgery and tamper-proof manner using a blockchain network, an external file storage and a hash function, and then verifies whether the web page has been changed. Specifically, the present disclosure calculates a webpage-related hash value and stores it in the blockchain network, and compares the previously stored webpage-related hash value with the current webpage-related hash value when verification is required to determine whether the content in the webpage is changed A method and system for checking are provided.
  • the disclosed webpage storage systems and methods may be based on various types of blockchains depending on who can participate in the network, execute consensus protocols, and maintain a shared blockchain ledger.
  • Various types of blockchains may include, for example, public blockchains, consortium blockchains, private blockchains, and the like. The following description refers to the private blockchain. Nevertheless, the disclosed webpage storage system and method may also be applied to other types of blockchains.
  • the invention according to the present disclosure can be used for various platforms, such as fake news, malicious comments, and transactions on the Internet, because web pages can be stored so that they cannot be forged or altered using a block chain network.
  • platforms such as fake news, malicious comments, and transactions on the Internet
  • web pages can be stored so that they cannot be forged or altered using a block chain network.
  • the description will be limited to transactions on the Internet.
  • FIG. 2 schematically shows a platform for preventing forgery and tampering of data and content in a web page using a system according to embodiments of the present disclosure.
  • the system 1 of the present disclosure is configured to store the web page at the time of contract between the service user and the service provider, or at the request of the service user. That is, according to the present invention, the service user or service provider does not directly store the web page, but a third party (ie, the system 1) stores it, thereby collecting evidence of a reliable transaction.
  • the web page may be stored in an unforgeable manner. Later, the system 1 may compare the stored web page with the current web page to confirm whether data and content in the web page are changed. Since the system 1 stores the web page in an unforgeable way, the comparison result between the web page confirmed by the service user at the time of the contract and the web page when the contract is executed is reliable.
  • FIG. 3 is a block diagram illustrating the configuration of a system for storing and verifying a web page using a block chain according to an embodiment of the present disclosure.
  • the system 1 includes a management server 10 , an external file storage 30 and a blockchain network 40 .
  • a blockchain is generally divided into a public blockchain in which access is granted to all users and transactions can be created, and a private blockchain in which only authorized or authorized users can access and transaction creation is restricted. can be distinguished.
  • Public blockchain allows anyone to participate, and because it uses a method of recording in blocks through a distributed consensus on transaction creation, data can be distributed and managed with high reliability and transparency.
  • the public blockchain has a problem that it takes a lot of money and time to create and share blocks.
  • the system 1 builds a fast and efficient private blockchain-based network 40 by recording only transactions by a limited number of nodes in blocks.
  • the blockchain network 40 may be based on other types of blockchains.
  • the blockchain network 40 may be based on Hyperledger Fabric.
  • Hyperledger Fabric can optimize network performance by decoupling chaincode execution and transaction ordering.
  • Hyperledger Fabric is highly confidential as it can operate a trusted blockchain network based on participants and regulatory oversight known as permissioned membership.
  • chaincode is hosted by peers. When an application creates a transaction, only specified peers execute and sign the transaction. After receiving the application's transaction proposal, each authorizing peer invokes and independently executes the chaincode referenced by the transaction.
  • the blockchain network 40 may include two or more peers (P). In this embodiment, the blockchain network 40 includes four peers P, but the present invention is not limited thereto.
  • the peer P may constitute a Hyperledger Fabric network.
  • the peer P may store the block chain and maintain the ledger.
  • All peers (P) participating in the blockchain network 40 store and manage the same ledger, respectively, and verify the validity or authenticity of newly created transactions based on the ledger. According to the verification result above, each transaction under certain conditions agreed to be verified between peers (P) is bundled and stored as one block, and the block is propagated to all peers (P) and connected in a form that is appended to the previous block, By repeating this process, the blockchain stored in all peers (P) is updated.
  • the management server 10 may be configured to build and manage the blockchain network 40 .
  • the management server 10 may be configured to transmit the transaction to the blockchain network 40 in order to store the transaction related to the webpage in the blockchain network 40 .
  • the management server 10 may be configured to control the external file storage 30 .
  • the management server 10 may store one or more files in the external file storage 30 , and may retrieve one or more files from the external file storage 30 .
  • the management server 10 may provide an application to the system user 20 using a Hyperledger Fabric software development kit (SDK).
  • SDK Hyperledger Fabric software development kit
  • the user 20 may request to store and verify the webpage through such an application, and may check the webpage verification result.
  • the management server 10 may receive a request from the user 20 through the application, and may transmit a verification result to the user 20 .
  • the system user 20 may be a user who wants to store a web page using the system 1 or a verifier who wants to verify a web page.
  • the external file storage 30 may be configured to store HTML files and/or image files. Specifically, the external file storage 30 may store an HTML file of a web page and/or an image file obtained by rendering the web page. A detailed description of the entire hash value of the web page will be described later.
  • FIG. 4 is a flowchart of a method of storing a web page according to embodiments of the present disclosure.
  • the web page storage method of FIG. 4 may be performed by the management server 10 using the block chain network 40 of FIG. 3 .
  • the step of receiving the URL of the web page that the first user wants to store from the first user at a first time may be performed.
  • the first user may input a URL of a web page through an application provided by the management server 10 , and the management server 10 may receive the URL through the application.
  • the first user may input, in addition to the URL of the web page, an email address or a phone number to receive the storage result and/or verification result of the web page.
  • a web page consists of HTML, CSS, and javascript, and HTML has the content and structure of a web page, but it is possible to modify/delete/add content with CSS or javascript, so it is better to create a rendered image of a web page together. It is preferable in terms of reliability. As such, since the management server 10 directly extracts the HTML source and renders the image directly, it is possible to collect more reliable evidence than when a user and/or verifier simply screen-captures a web page.
  • the step of temporarily storing the first HTML file and the first image file together with a first timestamp may be performed.
  • the first timestamp may represent a time when HTML of a web page is downloaded and/or a time when a first image file is generated by rendering a web page and/or a time when the first HTML file and the first image file are temporarily stored.
  • the management server 10 may also temporarily store the URL of the web page in addition to the first HTML file, the first image file, and the first timestamp.
  • a step (S404) of requesting confirmation (confirmation) of the first HTML file and the first image file from the first user may be performed.
  • the management server 10 outputs (eg, displays) the first HTML file and the first image file to the first user, and the first HTML file and the first image file are It is possible to request confirmation of whether the web page requested by the first user is correct.
  • This output and/or confirmation request may be performed, for example, through an application provided by the management server 10 .
  • step S404 the first user can check the first HTML file and the image file. However, for simplicity of the procedure, this step S404 may be omitted.
  • TRUE a response that the first HTML file and the first image file are for a desired web page, or an answer (FALSE) that the first HTML file and the first image file are not for the desired web page
  • FALSE an answer that the first HTML file and the first image file are not for the desired web page
  • a step (S405) of hashing the first HTML file and the first image file, respectively, and generating a full hash value for the corresponding web page may be performed.
  • a hash value of the first HTML file and a hash value of the first image file may be generated.
  • the entire hash value is generated using a tree together with the hash value of the first HTML file, the hash value of the first image file, the file storage path, the first timestamp, and the URL of the web page can be
  • the tree may include a binary tree, a ternary tree, a merkle tree, and the like.
  • the following description refers to the Merkle Tree. Nevertheless, the disclosed webpage storage systems and methods may utilize other types of trees (eg, binary trees, ternary trees, etc.).
  • the full hash value is the hash value of the first HTML file, the hash value of the first image file, the file storage path, the first timestamp, the URL of the web page , may be generated using a Merkel tree together with a count and a verification state value.
  • the count may indicate the number of verifications, and an initial value is 0.
  • the count may be increased by 1 for each subsequent verification.
  • the verification status value may indicate whether verification is possible. For example, when the verification state value is 1, it may indicate that verification is possible, and when the verification state value is 0, it may indicate that verification is not possible.
  • the initial value of the verification state value may be 1.
  • the file storage path may be a storage path of the first HTML file and the first image file to be stored in the external file storage.
  • the total hash value generated in this way can be used as a representative value representing data about a web page as described later, and can function as an ID of a transaction stored in a block chain and/or files stored in an external file storage.
  • the step of generating a state change hash value by adding a random number to the entire hash value and performing salting may be further performed.
  • the state change hash value can be used to change the validation state value when the validation of the web page is no longer needed. For example, when the validation of the web page is no longer required, the validation status value of 1 may be changed to 0. Conversely, in order to enable the verification of the web page, the verification state value 0 may be changed to 1. A detailed description of the verification state value change method will be described later with reference to FIGS. 12 and 13 .
  • step S405 the step of storing the first HTML file and the first image file in an external file storage using the entire hash value (S406) may be performed.
  • the first HTML file and the first image file may be stored using the entire hash value as a file name.
  • the first HTML file and the first image file are not stored in the blockchain network. Because, when storing HTML files and image files in a blockchain transaction, n times the storage space should be used as many as n (in this embodiment, 4) peers, and accordingly, invoking/querying the transaction ( query) is slow. Therefore, it is preferable to store the first HTML and the first image file in an external file storage other than the blockchain network, and store the file storage path in the blockchain network.
  • the first transaction data including the hash value of the first HTML file, the hash value of the first image file, the file storage path, the first timestamp, the URL, and the entire hash value is transferred to the blockchain network
  • a step (S407) of storing it may be performed.
  • the first transaction data may further include at least one of a count, a verification state value, and a state change hash value. Table 1 below describes data that can be included in a transaction.
  • HashOfStatus State change hash value generated by salting and hashing a random number to the entire hash value
  • HashOfHtml Hash value of saved HTML file FilePath Path to save HTML files and image files of web pages Count Number of verifications (initial value: 0) Status Verification possible, 1: Verification possible, 0: Verification not possible (Initial value: 1) Timestamp HTML download time and/or first image file creation time and/or temporary storage time URL Address of the saved webpage
  • FIG. 6 an example of a configuration diagram of a transaction stored in a block chain is shown.
  • 6 shows a transaction including the data described in Table 1.
  • 6 shows the hash value of the HTML file, the hash value of the image file, the file storage path, timestamp, URL, the total hash value, the count (the number of verifications), and the hash value of the state change through the Merkle tree.
  • An example is shown.
  • the step of transmitting the generated entire hash value to the first user may be performed.
  • the management server 10 may display the entire hash value to the first user through the application.
  • the management server 10 uses the input email address and/or phone number to send the full hash value by email or text can be transmitted.
  • the URL of the web page, the first timestamp and/or the state change hash value may be transmitted to the first user.
  • the first user may check a stored web page or perform web page comparison (described later with reference to FIGS. 7 to 9 ). Also, when the verification of the web page is no longer required, the first user may change the verification status value by using the received status change hash value (to be described later with reference to FIGS. 12 and 13 ). In a further embodiment, the email address and/or phone number entered by the first user may be deleted immediately after sending the full hash value to the first user. In this way, the system may store and verify web pages without storing personal information.
  • the management server 10 may receive the specific keyword from the first user and store one or more Internet articles including the specific keyword. have. In a further embodiment, the management server 10 may transmit information about the stored webpage to the first user after storing the webpage including the specific keyword.
  • FIG. 5 schematically illustrates a process in which the method of storing the web page of FIG. 4 is performed in the system of FIG. 3 .
  • overlapping descriptions between the embodiments will be omitted.
  • the first user 20 may transmit the URL of the corresponding web page to the management server 10 (step S401).
  • the first user may additionally transmit an e-mail address and/or phone number to receive the storage result and/or verification result of the webpage.
  • the first user 20 may input the URL of the web page through the application provided by the management server (10).
  • the management server 10 downloads a first HTML file of a web page corresponding to the URL, and renders the web page through a headless browser to first
  • the first HTML file and the first image file may be temporarily stored together with a first timestamp and optionally a corresponding URL (steps S402 and S403).
  • the management server 10 outputs the first HTML file and the first image file of the URL transmitted by the first user 20, and transmits the contents to the first user to the blockchain network 40 and/or external Confirmation may be requested whether to store in the file storage 30 (step S404).
  • the management server 10 hashes the first HTML file and the first image file, respectively, and uses the Merkle tree to the entire hash value for the web page can be created (step 405).
  • the management server 10 uses a Merkel tree with the hash value of the first HTML file, the hash value of the first image file, the file storage path, the first timestamp, and the URL of the web page. to generate a full hash value.
  • the management server 10 may generate a state change hash value by adding a random number to the generated hash value and then hashing it.
  • the management server 10 may store the first HTML file and the first image file in the external file storage 30 using the entire hash value.
  • the management server 10 may store the files in an external file storage suitable for a file storage path by using the entire hash value as a file name.
  • the management server 10 stores the hash value of the first HTML file, the hash value of the first image file, the file storage path, the first timestamp, the URL, the entire hash value, etc. It can be stored in (40) (step S407).
  • the management server 10 may transmit the entire hash value, and optionally a state change hash value, URL, timestamp, etc. to the first user 20 to notify that the storage of the web page has been completed (step S408).
  • the management server 10 may notify the storage completion fact through the email address and/or phone number input by the first user 20 , or the storage completion through the application provided by the management server 10 . You can also tell the truth.
  • FIG. 7 is a flowchart of a method of checking a stored webpage according to embodiments of the present disclosure.
  • FIG. 7 describes a method for a second user to check a stored webpage according to the embodiments described with reference to FIG. 4 .
  • the first user of FIG. 4 and the second user of FIG. 7 may be the same or different users.
  • the first user of FIG. 4 and the second user of FIG. 7 may be a person who provides a service through the web page or a person who uses a service in the web page, or may be a third party.
  • the stored webpage checking method of FIG. 7 may be performed by the management server 10 of FIG. 3 .
  • the step of receiving the entire hash value from the second user may be performed.
  • the second user may transmit the URL of the webpage and/or the storage time of the webpage in addition to the overall hash value.
  • the entire hash value was generated using the URL and timestamp of the web page, that is, because the entire hash value also includes information about the URL and timestamp, only receiving the entire hash value from the second user is enough
  • the second user may further send an email address and/or phone number to receive the stored files.
  • the management server 10 may transmit the entire hash value to the blockchain network to inquire the first transaction data corresponding to the entire hash value, and bring the first transaction data.
  • the first HTML file and the first image file may be fetched from the external file storage using the file storage path and the full hash value included in the received first transaction data, and then hashed (S703).
  • the first HTML file hash and the first image file hash of S703 and each first HTML file hash inside the transaction of S702 and The hash of the first image file may be compared and verified (S704).
  • the first HTML file and the first image file may be output (eg, displayed) to the second user (S705).
  • the management server 10 finds and brings files having the entire hash value as a file name in the external file storage corresponding to the file storage path in the first transaction data received from the blockchain network, and performs the above-described verification procedure After being processed, it can be output to a second user.
  • the management server 10 may transmit the stored first HTML file and the first image file using the email address and/or phone number transmitted by the second user.
  • the management server 10 may display the first HTML file and the first image file to the second user through the application.
  • the second user can check the contents of the stored web page at any time (for example, when he wants to check the transaction details after a transaction on the web) as long as he knows only the entire hash value. .
  • the second user only knows the full hash value, he or she can check the contents of the stored web page without membership registration, login, or other authentication procedures, thereby fundamentally eliminating the risk of personal information leakage.
  • FIG. 8 is a flowchart of a method of comparing and verifying a stored webpage and a current webpage according to embodiments of the present disclosure; Specifically, FIG. 8 describes a method of comparing a stored webpage with a current webpage according to the embodiments described with reference to FIG. 4 .
  • the second user wants to check whether the content of the webpage is changed after the webpage is stored at the first time by the request of the first user, that is, the comparison between the previously stored webpage and the current webpage is performed.
  • the method of FIG. 8 may be performed.
  • the first user of FIG. 4 and the second user of FIG. 8 may be the same or different users.
  • the first user of FIG. 4 and the second user of FIG. 8 may be a person who provides a service through the web page or a person who uses a service in the web page, or may be a third party.
  • the web page comparison and verification method of FIG. 8 may be performed by the management server 10 of FIG. 3 .
  • overlapping descriptions between the embodiments will be omitted.
  • the step of receiving the entire hash value from the second user may be performed.
  • the second user may transmit the URL of the webpage and/or the storage time of the webpage in addition to the overall hash value.
  • the full hash value also includes information on the URL and timestamp, it is sufficient just to receive the full hash value from the second user.
  • the second user may additionally transmit an e-mail address and/or a phone number or the like to receive the comparison result.
  • the step (S802) of inquiring the first transaction data corresponding to the full hash value in the block chain network may be performed.
  • the management server 10 may transmit the entire hash value to the blockchain network to inquire the first transaction data corresponding to the entire hash value.
  • receiving the verification state value in the first transaction data from the blockchain network (S803) may be performed.
  • the verification state value may indicate whether verification is possible. For example, when the verification state value is 1 (ie, TRUE), it may indicate that verification is possible, and when the verification state value is 0 (ie, FALSE), it may indicate that verification is not possible.
  • the initial value of the verification state value may be 1. Therefore, the step S804 of checking the verification status value is performed, and if the verification status value is TRUE, web page comparison and verification methods can be continuously performed. If the verification status value is FALSE, the verification is not possible because The method may be terminated. However, for simplicity of the procedure, the steps S803 and S804 for receiving and confirming the verification state value may be omitted.
  • step S805 of receiving the first transaction data from the blockchain network may be performed. That is, it is possible to receive the hash value of the first HTML file, the hash value of the first image file, the first timestamp, the file storage path, the URL, and the like from the blockchain network. If the verification status value is FALSE, it will not be possible to receive the first transaction data from the blockchain network.
  • the step of temporarily storing the second HTML file and the second image file together with a second timestamp (S807) may be performed.
  • the second timestamp is a time at which the second HTML file of the web page is downloaded and/or a time at which a second image file is generated by rendering the web page and/or a time at which the second HTML file and the second image file are temporarily stored.
  • the management server 10 may also temporarily store the URL of the web page in addition to the second HTML file, the second image file, and the second timestamp.
  • a step ( S808 ) of hashing the second HTML file and the second image file, respectively, may be performed.
  • a hash value of the second HTML file and a hash value of the second image file may be generated.
  • the hash value of the second HTML file, the hash value of the second image file, the file storage path, the second timestamp and the second full hash value using a Merkel tree together with the URL of the webpage may be created.
  • the second full hash value includes a hash value of a second HTML file, a hash value of a second image file, a file storage path, a second timestamp; It may be generated using a Merkel tree along with the URL of the web page, count, and verification status value.
  • the second full hash value, the hash value of the second HTML file, the second image file Storing the second transaction data including the hash value, the file storage path, the second timestamp, and the URL of the web page in the blockchain network may be performed. If there is no need to store the web page when the second user requests comparison and verification of the web page, this step may be omitted.
  • the step of storing the second HTML file and the second image file in an external file storage using the second full hash value may be performed.
  • the second HTML file and the second image file may be stored using the second full hash value as a file name.
  • the step ( S809 ) of updating the transaction by increasing the count indicating the number of verifications by 1 may be performed.
  • the step of incrementing the count ( S809 ) is shown to be performed before the step of comparing the hash values ( S810 ), but in other embodiments, the step of incrementing the count ( S809 ) of comparing the hash values It may be performed after step S810, or may be performed immediately after receiving the first transaction data from the block chain network. In other embodiments, for simplicity of the procedure, the step of incrementing the count ( S809 ) may be omitted.
  • Step S810 comparing the hash value of the second HTML file and the hash value of the second image file with the hash value of the first HTML file and the hash value of the first image file in the received first transaction data, respectively Step S810 may be performed. If the first HTML file at the first time and the second HTML file at the second time are the same, that is, if the HTML of the web page has not changed between the first time and the second time, the hash value of the first HTML file and The hash value of the second HTML file will be the same.
  • the hash value of the first HTML file and hash values of the second HTML file will be different.
  • the first image file at the first time and the second image file at the second time are the same, that is, if the image of the webpage has not changed between the first time and the second time, the hash of the first image file
  • the value and the hash value of the second image file may be the same.
  • the hash value of the first image file and the hash value of the second image file will be different.
  • generating a comparison result may be performed. For example, if the hash values of the HTML files and the hash values of the image files are the same, a result set of ⁇ TRUE, TRUE> may be generated, and the hash values of the HTML files are the same but the hash values of the image files are different. In this case, a result set of ⁇ TRUE, FALSE> can be created.
  • the step of comparing the full hash value of the web page at the first time and the second full hash value of the web page at the second time may be further performed.
  • the timestamp is used to generate the full hash value, the total hash value at the first time and the second full hash value at the second time will always be different regardless of whether the web page content is changed or not. .
  • the first HTML file and the first image file are retrieved from the external file storage using the file storage path and the full hash value included in the first transaction data received from the blockchain network.
  • Step S811a may be performed.
  • the management server 10 may find and retrieve files having the entire hash value as a file name in an external file storage corresponding to a file storage path in the first transaction data received from the block chain network.
  • a step (S811b) of comparing the first HTML file and the first image file retrieved from the external file storage with the temporarily stored second HTML file and the second image file may be performed.
  • the comparison between the first image file and the second image file may be performed through a deep learning model such as CNN, which is a field of artificial intelligence.
  • generating a comparison result may be performed.
  • step S810 It is possible to determine whether the web page has been changed only by comparing the hash values in step S810, but it is not easy to determine exactly which part of the HTML and the image file has been changed. However, by directly comparing the HTML files and the image files through step S811, it is easy to determine which part of the web page has been changed.
  • the HTML file and the image file are stored in an external file storage rather than the blockchain network, the comparison result through step 811 can be used as a data that has undergone a verification procedure rather than a simple reference data.
  • a step (S812) of outputting (eg, displaying) a comparison result between the hash values, the HTML files, and the image files to a second user may be performed.
  • the management server 10 may display the comparison results to the second user through the application.
  • the management server 10 uses the input email address and/or phone number to send the comparison results by email or text. can be transmitted
  • FIG. 9 schematically illustrates a process in which the web page comparison and verification method of FIG. 8 is performed in the system of FIG. 3 .
  • overlapping descriptions between the embodiments will be omitted.
  • the second user 20 ′ may transmit the entire hash value to the management server 10 (step S801 ).
  • the second user 20' may additionally transmit the URL of the webpage, the storage time of the webpage, an email address and/or phone number to receive the comparison result, etc. in addition to the entire hash value. have.
  • the second user 20 ′ may input the entire hash value through an application provided by the management server 10 .
  • the management server 10 may inquire the first transaction data corresponding to the full hash value in the blockchain network (step S802). Specifically, the management server 10 may transmit the entire hash value to the block chain network 40 to inquire the first transaction data corresponding to the entire hash value.
  • the blockchain network 40 may return a verification state value in the first transaction data to the management server 10 (step S803).
  • the management server 10 may check the verification state value received from the block chain network 40 (step S804). If the verification status value is TRUE, web page comparison and verification processes are continuously performed. If the verification status value is FALSE, it is determined that verification is impossible and the process may be terminated.
  • the management server 10 may request and receive the first transaction data from the block chain network 40 (step S805). That is, the management server 10 may receive a hash value of the first HTML file included in the first transaction data, a hash value of the first image file, a first timestamp, a file storage path, a URL, and the like. If the verification state value is FALSE, the first transaction data will not be requested from the blockchain network 40 .
  • the management server 10 downloads the second HTML file of the web page corresponding to the URL in the first transaction data received from the block chain network 40, and renders the web page through the headless browser 2 image files may be created, and these files may be temporarily stored together with the second timestamp (steps S806 and 807).
  • the management server 10 may also temporarily store the URL of the web page in addition to the second HTML file, the second image file, and the second timestamp.
  • the management server 10 may hash the second HTML file and the second image file, respectively (step S808).
  • the management server 10 hashing the second HTML file and the second image file, the hash value of the second HTML file and the hash value of the second image file may be generated.
  • the management server 10 uses a Merkel tree with the hash value of the second HTML file, the hash value of the second image file, the file storage path, the second timestamp, and the URL of the web page. to generate a second full hash value.
  • the management server 10 includes the second full hash value, the hash value of the second HTML file, the hash value of the second image file, the file storage path, the second timestamp, and the URL of the web page to store the second transaction data in the block chain network 40 .
  • the management server 10 may store the second HTML file and the second image file in the external file storage 30 using the second full hash value and/or the file storage path.
  • the management server 10 may update the corresponding transaction in the blockchain network 40 by incrementing a count indicating the number of verifications by one (step S809).
  • the management server 10 sets the hash value of the second HTML file and the hash value of the second image file respectively as the hash value of the first HTML file in the first transaction data received from the blockchain network 40 . and a hash value of the first image file (step S810).
  • the management server 10 may generate a comparison result after comparison of hash values. For example, the management server may generate a result set ⁇ TRUE, TRUE>, ⁇ TRUE, FALSE>, ⁇ FALSE, TRUE> or ⁇ FALSE, FALSE> according to the comparison result of the hash values.
  • the management server 10 uses the file storage path and the full hash value included in the first transaction data received from the blockchain network 40 to store the first transaction data from the external file storage 30 1 HTML file and the first image file may be imported (step S811a). Then, the management server 10 may compare the first HTML file and the first image file brought from the external file storage 30 with the temporarily stored second HTML file and the second image file (step S811b). In a further embodiment, the management server 10 may generate a comparison result after comparing the HTML files and the image files.
  • the management server 10 may output (eg, display) a comparison result between the hash values, the HTML files, and the image files to the second user 20' (step S812). .
  • FIGS. 8 and 9 shows an example of a webpage comparison and verification result displayed to a second user using the method of FIGS. 8 and 9 .
  • the left side of FIG. 10 shows data for the webpage stored at the first time
  • the right side shows the comparison result between the data for the webpage stored at the second time and the data stored at the first time.
  • the management server 10 to the second user 20' the hash value of the first image file, the hash value of the first HTML file, the hash value of the second image file, the second HTML file While displaying the hash value of , a comparison result (TRUE or FALSE) of the hash values may be displayed together.
  • the management server 10 may further display the full hash value and timestamp of the web page at the first time, and the second full hash value and timestamp of the web page at the second time.
  • image files and HTML files may be displayed, and the modified part of the files may be highlighted and a comparison result may be output.
  • the management server 10 derives the difference (eg, text or image) between the first image and the second image by analyzing the first image and the second image using deep learning, and the corresponding Portions can be marked with a red border to allow validators and/or users to quickly and clearly verify.
  • the difference eg, text or image
  • the management server 10 may display a count (Validation count) indicating the number of times of verification and/or URL of the webpage, together with the comparison result.
  • FIG. 11 is a flowchart of a method of comparing and verifying a web page according to other embodiments of the present disclosure. Specifically, FIG. 11 shows a method of periodically comparing web pages and notifying a user of the change when a web page change is detected.
  • the web page comparison and verification method of FIG. 11 may be performed by the management server 10 of FIG. 3 .
  • overlapping descriptions between the embodiments will be omitted.
  • the third HTML file of the web page corresponding to the URL is downloaded, and the web page is accessed through the headless browser.
  • a step ( S1001 ) of generating a third image file by rendering the page may be performed.
  • the third HTML file and the third image file may be temporarily stored together with a third timestamp (S1002).
  • each of the third HTML file and the third image file hashing step (S1003) may be performed.
  • a hash value of the third HTML file and a hash value of the third image file may be generated.
  • the third full hash value using a Merkel tree with the hash value of the third HTML file, the hash value of the third image file, the file storage path, the third timestamp and the URL of the webpage may be created.
  • the third transaction data including the third full hash value, the hash value of the third HTML file, the hash value of the third image file, the file storage path, the third timestamp, and the URL of the web page, etc. may be stored in the blockchain network. Generation and storage of the third global hash value is for tracking web page changes as needed, and may be omitted.
  • the step of storing the third HTML file and the third image file in an external file storage may be performed.
  • the third HTML file and the third image file are for tracking web page changes as needed, and may be omitted.
  • the hash value of the third HTML file and the hash value of the third image file are respectively calculated as the hash value of the first HTML file and the hash value of the first image file in the first transaction data received from the blockchain network.
  • a step of comparing with the value (S1005) may be performed. If the HTML of the web page is not changed after the first time, the hash value of the first HTML file and the hash value of the third HTML file will be the same. However, if the HTML of the web page is changed after the first time, the hash value of the first HTML file and the hash value of the third HTML file will be different.
  • the hash value of the first image file and the hash value of the third image file will be the same. However, if the image of the web page is changed after the first time, the hash value of the first image file and the hash value of the third image file will be different.
  • the step of notifying the first user of the hash value mismatch may be performed.
  • the step of fetching the first HTML file and the first image file from the external file storage, comparing the first HTML file and the first image file with the temporarily stored third HTML file and the third image file, and displaying the comparison result to the first user may be further performed.
  • the process may return to step S1001 without notifying the first user.
  • the first user may be notified that the hash values match.
  • Steps S1001 to S1005 may be performed periodically (eg, one day, one week, one month, etc.).
  • the hash value of the first HTML file and the hash value of the third HTML file are not the same, or the hash value of the first image file and the hash value of the third image file This can be done periodically until the values are not equal.
  • the repetition period of steps S1001 to S1005 may be predetermined by the first user or the management server. If the web page verification method is periodically performed, when the web page confirmed by the service user at the time of the contract is changed, the user can know the fact of the change.
  • FIG. 12 is a flowchart of a method of changing a verification state value using a state change hash value according to embodiments of the present disclosure. Hereinafter, overlapping descriptions between the embodiments will be omitted.
  • a step of generating a state change hash value by adding a random number to the entire hash value and performing salting may be further performed.
  • the verification state value included in the first transaction may indicate whether verification is possible. For example, when the verification state value is 1, it may indicate that verification is possible, and when the verification state value is 0, it may indicate that verification is not possible.
  • the initial value of the verification state value may be 1.
  • the state change hash value can be used to change this verification state value. For example, when the validation of the web page is no longer required, the validation status value of 1 may be changed to 0. Conversely, in order to enable the verification of the web page, the verification state value 0 may be changed to 1.
  • the management server 10 provides a state change hash value along with the entire hash value so that the first user can change the verification state value when the verification of the web page is no longer required. 1 can be sent to the user.
  • the description of the verification state value change method of FIG. 12 assumes that the first user receives the entire hash value and the state change hash value from the management server.
  • the step of receiving the full hash value and the state change hash value from the first user (S1201) may be performed.
  • the step of notifying the first user of the state change hash value discrepancy together with the current verification state value can be performed.
  • the step of changing the verification state value may be performed. For example, when the verification state value is 1, the verification state value may be changed to 0. Conversely, when the verification state value is 0, it can be changed to 1.
  • step S1204 of notifying the first user of the fact that the verification state has been changed together with the changed verification state value may be performed.
  • FIG. 13 schematically illustrates a process in which the verification state change method of FIG. 12 is performed in the system of FIG. 3 .
  • overlapping descriptions between the embodiments will be omitted.
  • the first user 20 may transmit the entire hash value and the state change hash value to the management server 10 (step S1201). For example, the first user 20 may transmit the full hash value and the state change hash value when verification of the web page is no longer required or when verification of the web page is desired.
  • the management server 10 may transmit the full hash value and the state change hash value to the blockchain network 40 (step S1202a) ).
  • the blockchain network 40 inquires the first transaction data corresponding to the total hash value received from the management server 10, and the state change hash value in the first transaction data and the state received from the management server 10 The changed hash values can be compared (step S1202b).
  • the blockchain network 40 tells the management server 10 the state along with the current verification state value.
  • the changed hash value mismatch may be notified (step S1204a), and the management server 10 may notify the first user 20 of the verification state value change result and/or the hash value mismatch fact (step S1204b).
  • the blockchain network 40 may change the verification state value (step S1203).
  • the blockchain network 40 may notify the management server 10 of the fact that the verification state has been changed together with the changed verification state value (step S1204a), and the management server 10 may change the result of this verification state value change. may be notified to the first user 20 (step S1204b).
  • the image and the original HTML file rendered in the web page are stored in an external file storage, and the hash value and file path of each file are stored in the transaction and stored on the blockchain.
  • the verification state value and count ie, the number of verifications
  • Hash values, timestamps, storage paths, etc. in stored transaction data cannot be changed and/or updated, thereby fundamentally blocking forgery of transaction data.
  • the access authority of the node of the blockchain network is required and the certificate of the blockchain system must be obtained, so it is impossible to arbitrarily change and/or update the transaction data.
  • a system that transaction parties can trust when transacting on the web can be built. After storing the webpage in the system, such a system may transmit a URL, a full hash value, an image file, an HTML file, etc. to the service user, the service user, and a third party, whereby not only the contracting parties but also the third party You can check the web page at the time, and if a dispute arises later, you can compare the web page only with the full hash value. In all of these processes, the system can be used without membership registration or authentication, so there is an advantage in protecting personal information.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Health & Medical Sciences (AREA)
  • Data Mining & Analysis (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

본 개시는 웹페이지의 내용을 위변조가 안되도록 저장하고 저장된 내용을 추후 확인할 수 있는 방법 및 시스템을 제공하는 것을 목적으로 한다. 이를 위해 본 개시는 블록체인 네트워크, 외부 파일 저장소 및 해시 함수를 이용하여 웹페이지를 위변조가 불가능하게 저장하고, 이후 웹페이지의 변경 여부를 검증할 수 있게 하는 플랫폼을 제안한다. 구체적으로, 본 개시는 웹페이지 관련 해시값을 계산하여 블록체인 네트워크에 저장하며, 검증이 필요한 때에 이전에 저장된 웹페이지 관련 해시값과 현재 웹페이지 관련 해시값을 비교하여 웹페이지 내의 콘텐츠 변경 여부를 확인할 수 있는 방법 및 시스템을 제공한다.

Description

블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템
본 개시는 블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템에 관한 것이다. 구체적으로는, 본 발명은 블록체인 네트워크를 통해 저장된 웹페이지와 현재 웹페이지를 비교 검증하여 웹페이지의 변경 여부를 검출하는 방법 및 시스템에 관한 것이다.
인터넷에서의 거래는 디바이스의 발전과 각종 보안 도구의 발전에 힘입어 현재는 단순한 재화의 판매나 예약서비스를 넘어 개개인간의 공유경제 플랫폼까지 이르렀다. 그러나, 보안이 강화된 결제서비스와 안전거래 등 서비스 사용자의 피해를 막기 위한 시스템들이 도입되었음에도 불구하고, 현재의 인터넷 거래는 다음과 같은 문제점들을 갖는다.
첫째, 거래의 계약 후에 웹페이지가 변경될 경우, 변경된 서비스 또는 제품이 거래 계약 시점에 사용자가 기대했던 서비스 또는 제품과 달라지게 될 수 있으며, 이에 따라 사용자는 피해를 입을 수 있다. 도 1은 서비스 사용자가 계약시 확인한 웹페이지와 계약이 시행될 때의 웹페이지가 변경된 경우를 나타낸다.
이러한 문제점을 방지하기 위해 사용자는 거래를 계약하는 시점에 웹페이지를 캡처하여 저장할 수 있지만, 인터넷 브라우저의 개발자도구로 웹 콘텐츠를 편집하여 캡처하거나 캡처 이후 그래픽 툴을 이용하여 쉽게 편집이 가능하기 때문에, 실제 거래의 문제가 발생하였을 시 캡처된 이미지로 거래 당사자 간의 문제를 해결하기는 어렵다.
두 번째로, 인터넷에서의 거래 중 공유경제 플랫폼이 급격히 증가되고 있음에도 불구하고, 사용자들은 동일한 서비스 제공자와 반복해서 거래를 하는 형태가 아니기 때문에, 서비스 제공자의 검증이 어려울 수 있다. 일반적으로 공유경제 플랫폼 거래의 경우, 하나의 플랫폼에서 여러 번 거래를 하여도 서비스 제공자가 계속 바뀌기 때문이다. 이는 사용자로 하여금 서비스의 콘텐츠를 신뢰하기 어렵게 만든다.
세 번째로는, 인터넷에서의 거래시, 서비스 제공자는 언제든지 웹페이지를 업데이트할 수 있지만, 사용자는 업데이트 이전의 콘텐츠를 조회할 수 없다.
본 개시는 웹페이지의 내용을 위변조가 안되도록 저장하고 저장된 내용을 추후 확인할 수 있는 방법 및 시스템을 제공하는 것을 목적으로 한다.
본 발명의 기술적 사상에 따른 실시예들의 일 측면에 따르면, 블록체인 네트워크를 이용하여 웹페이지를 저장하는 방법은 : 제1 시각에 제1 사용자로부터 상기 제1 사용자가 저장하고자 하는 웹페이지의 URL을 수신하는 단계; 상기 제1 사용자로부터 수신한 URL에 대응하는 웹페이지의 제1 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제1 이미지 파일을 생성하는 단계; 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 제1 타임스탬프와 함께 임시 저장하는 단계; 상기 제1 HTML 파일 및 상기 제1 이미지 파일 각각을 해싱하고, 전체 해시값을 생성하는 단계; 상기 전체 해시값을 이용하여 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 외부 파일 저장소에 저장하는 단계; 및 상기 제1 HTML 파일의 해시값, 상기 제1 이미지 파일의 해시값, 파일 저장 경로, 상기 제1 타임스탬프, 상기 URL 및 상기 전체 해시값을 포함하는 제1 트랜잭션 데이터를 상기 블록체인 네트워크에 저장하는 단계를 포함한다.
상기 방법의 추가적인 예에 따르면, 상기 제1 HTML 파일 및 상기 제1 이미지 파일은 상기 블록체인 네트워크에 저장되지 않을 수 있다.
상기 방법의 추가적인 예에 따르면, 상기 전체 해시값은 상기 제1 HTML 파일의 해시값, 상기 제1 이미지 파일의 해시값, 상기 파일 저장 경로, 상기 제1 타임스탬프 및 상기 URL과 함께 트리(tree)를 이용하여 생성될 수 있다.
상기 방법의 추가적인 예에 따르면, 상기 저장 방법은 : 상기 제1 시각 이후의 제2 시각에, 제2 사용자로부터 상기 전체 해시값을 수신하는 단계; 상기 제2 사용자로부터 전체 해시값을 수신한 후, 상기 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계; 및 상기 수신된 제1 트랜잭션 데이터에 포함된 파일 저장 경로 및 전체 해시값을 이용하여 상기 외부 파일 저장소로부터 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 가져오고, 가져온 제1 HTML 파일 및 제1 이미지 파일을 상기 제2 사용자에게 디스플레이하는 단계를 더 포함할 수 있다.
상기 방법의 추가적인 예에 따르면, 상기 방법은 : 상기 제1 시각 이후의 제2 시각에, 제2 사용자로부터 상기 전체 해시값을 수신하는 단계; 상기 제2 사용자로부터 전체 해시값을 수신한 후, 상기 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계; 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하면, 상기 수신된 제1 트랜잭션 데이터의 URL에 대응하는 웹페이지의 제2 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제2 이미지 파일을 생성하는 단계; 상기 제2 HTML 파일 및 상기 제2 이미지 파일을 제2 타임스탬프와 함께 임시 저장하는 단계; 상기 제2 HTML 파일 및 상기 제2 이미지 파일 각각을 해싱하는 단계; 상기 제2 HTML 파일의 해시값 및 상기 제2 이미지 파일의 해시값을 각각 상기 수신된 제1 트랜잭션 데이터의 상기 제1 HTML 파일의 해시값 및 상기 제1 이미지 파일의 해시값과 비교하는 단계; 및 상기 해시값들의 비교 결과를 상기 제2 사용자에게 디스플레이하는 단계를 더 포함할 수 있다.
상기 방법의 추가적인 예에 따르면, 상기 방법은 : 상기 수신된 제1 트랜잭션 데이터에 포함된 파일 저장 경로 및 전체 해시값을 이용하여 상기 외부 파일 저장소로부터 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 가져오는 단계; 상기 외부 파일 저장소로부터 가져온 제1 HTML 파일 및 제1 이미지 파일을 상기 제2 HTML 파일 및 상기 제2 이미지 파일과 비교하는 단계; 및 상기 HTML 파일들 및 상기 이미지 파일들 간의 비교 결과를 상기 제2 사용자에게 디스플레이하는 단계를 더 포함할 수 있으며, 상기 제1 이미지 파일과 상기 제2 이미지 파일 간의 비교는 딥러딩 모델을 통해 수행될 수 있다.
상기 방법의 추가적인 예에 따르면, 상기 전체 해시값은 상기 제1 HTML 파일의 해시값, 상기 제1 이미지 파일의 해시값, 상기 파일 저장 경로, 상기 제1 타임스탬프, 상기 URL 및 검증 상태값과 함께 트리(tree)를 이용하여 생성될 수 있으며, 상기 블록체인에 저장되는 제1 트랜잭션 데이터는 상기 검증 상태값을 더 포함할 수 있고, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계 전에, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터 내 검증 상태값이 먼저 수신되는데, 상기 검증 상태값이 TRUE라면, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계가 수행되며, 상기 검증 상태값이 FALSE라면, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계가 수행되지 않을 수 있다.
상기 방법의 추가적인 예에 따르면, 상기 방법은: 상기 전체 해시값을 생성한 후, 상기 전체 해시값에 랜덤한 숫자를 솔팅(salting)한 후 해싱하여 상태 변경 해시값을 생성하는 단계; 및 상기 제1 사용자에게 상기 전체 해시값 및 상태 변경 해시값을 전송하는 단계를 더 포함할 수 있으며, 상기 상태 변경 해시값은 상기 검증 상태값을 변경하는데 사용될 수 있다.
상기 방법의 추가적인 예에 따르면, 상기 제1 사용자 및 상기 제2 사용자는 동일하거나 서로 다른 사용자일 수 있으며, 상기 웹페이지를 통해 서비스를 제공하는 사람 또는 상기 웹페이지 내의 서비스를 이용하는 사람일 수 있다.
상기 방법의 추가적인 예에 따르면, 상기 방법은 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 해싱하기 전에, 상기 제1 사용자에게 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 디스플레이하고, 상기 HTML 파일 및 상기 이미지 파일에 대한 확인(confirmation)을 요청하는 단계를 더 포함할 수 있다.
상기 방법의 추가적인 예에 따르면, 상기 방법은 상기 제1 시각 이후에 : 상기 URL에 대응하는 웹페이지의 제3 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제3 이미지 파일을 생성하는 단계; 상기 제3 HTML 파일 및 상기 제3 이미지 파일을 제3 타임스탬프와 함께 임시 저장하는 단계; 상기 제3 HTML 파일 및 상기 제3 이미지 파일 각각을 해싱하는 단계; 상기 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계; 및 상기 제3 HTML 파일의 해시값 및 상기 제3 이미지 파일의 해시값을 각각 상기 제1 트랜잭션 데이터 내의 상기 제1 HTML 파일의 해시값 및 상기 제1 이미지 파일의 해시값과 비교하는 단계; 및 상기 제1 HTML 파일의 해시값과 상기 제3 HTML 파일의 해시값이 동일하지 않거나, 상기 제1 이미지 파일의 해시값과 상기 제3 이미지 파일의 해시값이 동일하지 않은 경우, 상기 제1 사용자에게 해시값 불일치를 알리는 단계를 주기적으로 반복하는 단계를 포함할 수 있다.
본 발명의 기술적 사상에 따른 실시예들의 다른 측면에 따르면, 블록체인을 이용하여 웹페이지를 저장하는 시스템은: 전술한 방법을 수행하는 관리 서버; 상기 블록체인 네트워크; 및 상기 외부 파일 저장소를 포함할 수 있다.
본 개시의 실시예들에 따르면, 블록체인 네트워크를 이용하여 웹페이지를 위변조가 안되도록 저장할 수 있기 때문에, 계약 당사자간 신뢰할 수 있는 기록물을 저장할 수 있다.
또한, 본 개시의 실시예들에 따르면, 블록체인 네트워크가 아닌 외부 파일 저장소에 웹페이지의 HTML 파일과 이미지 파일을 저장하여, 트랜잭션의 호출(invoke)/질의(query) 속도 감소를 방지할 수 있다.
본 개시의 실시예들에 따르면, 사용자와 검증자는 회원가입이나 로그인, 기타 인증 절차 없이 본 개시의 실시예들에 따른 데이터 및 콘텐츠 위변조 방지 플랫폼을 이용할 수 있으며, 이로써 개인정보유출의 위험성을 제거할 수 있다.
도 1은 서비스 사용자가 계약시 확인한 웹페이지와 계약이 시행될 때의 웹페이지가 변경된 경우를 나타낸다.
도 2는 본 개시의 실시예들에 따른 시스템을 이용하는 웹페이지 내 데이터 및 콘텐츠 위변조 방지 플랫폼을 개략적으로 나타낸다.
도 3은 본 개시의 실시예들에 따라 웹페이지를 저장하고 검증하는 시스템의 구성을 도시하는 블록도이다.
도 4는 본 개시의 실시예들에 따라 웹페이지를 저장하는 방법의 흐름도이다.
도 5는 도 3의 시스템에서 도 4의 웹페이지 저장 방법이 수행되는 과정을 개략적으로 도시한다.
도 6은 블록체인에 저장되는 트랜잭션의 구성도의 일례를 개략적으로 도시한다.
도 7은 본 개시의 실시예들에 따라 저장된 웹페이지를 확인하는 방법의 흐름도이다.
도 8은 본 개시의 실시예들에 따라 저장된 웹페이지와 현재 웹페이지를 비교 및 검증하는 방법의 흐름도이다.
도 9는 도 3의 시스템에서 도 8의 웹페이지 비교 및 검증 방법이 수행되는 과정을 개략적으로 도시한다.
도 10은 도 8 및 도 9의 방법을 사용하여 제2 사용자에게 디스플레이되는 웹페이지 비교 및 검증 결과의 일례를 도시한다.
도 11은 본 개시의 다른 실시예들에 따라 웹페이지를 비교 및 검증하는 방법의 흐름도이다.
도 12는 본 개시의 실시예들에 따라 상태 변경 해시값을 이용하여 검증 상태값을 변경하는 방법의 흐름도이다.
도 13은 도 3의 시스템에서 도 12의 검증 상태 변경 방법이 수행되는 과정을 개략적으로 도시한다.
본 개시는 웹페이지의 내용을 위변조가 안되도록 저장하고 저장된 내용을 추후 확인할 수 있는 방법 및 시스템을 제공하는 것을 목적으로 한다.
이를 위해 본 개시는 블록체인 네트워크, 외부 파일 저장소 및 해시 함수를 이용하여 웹페이지를 위변조가 불가능하게 저장하고, 이후 웹페이지의 변경 여부를 검증할 수 있게 하는 플랫폼을 제안한다. 구체적으로, 본 개시는 웹페이지 관련 해시값을 계산하여 블록체인 네트워크에 저장하며, 검증이 필요한 때에 이전에 저장된 웹페이지 관련 해시값과 현재 웹페이지 관련 해시값을 비교하여 웹페이지 내의 콘텐츠 변경 여부를 확인할 수 있는 방법 및 시스템을 제공한다.
이하, 개시의 실시를 위한 구체적인 내용을 첨부된 도면을 참조하여 상세히 설명한다. 다만, 이하의 설명에서는 본 개시의 요지를 불필요하게 흐릴 우려가 있는 경우, 널리 알려진 기능이나 구성에 관한 구체적 설명은 생략하기로 한다.
첨부된 도면에서, 동일하거나 대응하는 구성요소에는 동일한 참조부호가 부여되어 있다. 또한, 이하의 실시예들의 설명에 있어서, 동일하거나 대응하는 구성요소를 중복하여 기술하는 것이 생략될 수 있다. 그러나 구성요소에 관한 기술이 생략되어도, 그러한 구성요소가 어떤 실시예에 포함되지 않는 것으로 의도되지는 않는다.
실시예들의 양태들은 실시예들에 따른 방법들 및 시스템들의 개략적인 흐름도들 및/또는 개략적인 블록도들을 참조하여 아래에 설명된다. 개략적인 흐름도들 및/또는 개략적인 블록도들의 각각의 블록, 및 개략적인 흐름도들 및/또는 개략적인 블록도들에서의 블록들의 조합들은 코드에 의해 구현될 수 있음이 이해될 것이다. 이러한 코드는 범용 컴퓨터, 특수 목적 컴퓨터, 또는 다른 프로그래밍가능 데이터 처리 장치의 프로세서에 제공되어, 컴퓨터 또는 다른 프로그래밍가능 데이터 처리 장치의 프로세서를 통해 실행되는 명령어들이 개략적인 흐름도들 및/또는 개략적인 블록도들에서 지정된 기능들/동작들을 구현하기 위한 수단을 생성하도록 머신을 만들어낼 수 있다.
또한, 일부 대안적인 구현들에서, 블록에 나타낸 기능들은 도면들에 나타낸 순서와는 다른 순서로 발생할 수 있음에 유의해야 한다. 예를 들어, 연속적으로 도시된 2개의 블록은, 사실상, 수반된 기능에 따라, 실질적으로 동시에 실행되거나, 블록들이 때로는 역순으로 실행될 수 있다. 도시된 도면들의 하나 이상의 블록, 또는 그 부분들에 대한 기능, 논리, 또는 효과에 있어서 동등한 다른 단계들 및 방법들이 착안될 수 있다.
다양한 실시형태에서, 개시된 웹페이지 저장 시스템 및 방법은 누가 네트워크에 참여하고 합의 프로토콜을 실행하고 공유되는 블록체인 원장을 유지할 수 있는지에 따라 다양한 유형의 블록체인에 기초할 수 있다. 다양한 유형의 블록체인은 예를 들어, 공개 블록체인, 컨소시엄 블록체인, 프라이빗 블록체인 등을 포함할 수 있다. 이하의 설명은 프라이빗 블록체인을 참조한다. 그럼에도 불구하고, 개시된 웹페이지 저장 시스템 및 방법은 다른 유형의 블록체인에 대해서도 적용될 수도 있다.
본 개시에 따른 발명은, 블록체인 네트워크를 이용하여 웹페이지를 위변조가 안되도록 저장할 수 있기 때문에, 가짜 뉴스, 악성 댓글, 인터넷 상의 거래 등 다양한 플랫폼에 사용될 수 있다. 다만, 이하에서는 설명의 편의를 위해 인터넷 상의 거래에 한정하여 설명하기로 한다.
도 2는 본 개시의 실시예들에 따른 시스템을 이용하는 웹페이지 내 데이터 및 콘텐츠 위변조 방지 플랫폼을 개략적으로 나타내는 것이다.
본 개시의 시스템(1)은 서비스 사용자와 서비스 제공자의 계약 시점에, 또는 서비스 사용자의 요청시, 웹페이지를 저장하도록 구성된다. 즉, 본 발명에 따르면, 서비스 사용자 또는 서비스 제공자가 직접 웹페이지를 저장하지 않고 제3자(즉, 시스템(1))가 저장함으로써 신뢰할 수 있는 거래의 증거를 수집할 수 있다. 상기 웹페이지는 위변조 불가능하게 저장될 수 있다. 추후에, 상기 시스템(1)은 저장된 웹페이지와 현재 웹페이지를 비교하여 웹페이지 내 데이터 및 콘텐츠의 변경 여부를 확인할 수 있다. 상기 시스템(1)은 웹페이지를 위변조 불가능하게 저장하기 때문에, 서비스 사용자가 계약시 확인한 웹페이지와 계약이 시행될 때의 웹페이지의 비교 결과는 신뢰할만하다.
도 3은 본 개시의 일 실시예에 따라 블록체인을 이용하여 웹페이지를 저장하고 검증하는 시스템의 구성을 도시하는 블록도이다.
도 3은 도 2의 웹페이지 내 데이터 및 콘텐츠 위변조 방지 플랫폼에서 사용되는 시스템(1)의 구성을 도시한다. 시스템(1)은 관리 서버(10), 외부 파일 저장소(30) 및 블록체인 네트워크(40)를 포함한다.
블록체인은, 일반적으로 모든 사용자들에게 액세스 권한이 허가되고 거래 생성이 가능한 퍼블릭 블록체인(public blockchain)과, 허가 또는 승인된 사용자들만 액세스 가능하며 거래 생성도 제한되는 프라이빗 블록체인(private blockchain)으로 구분될 수 있다. 퍼블릭 블록체인은 누구나 참여가 가능하고, 거래 생성에 대한 분산 합의를 통해 블록으로 기록하는 방식을 사용하기 때문에, 신뢰성이 높고 투명하게 데이터를 분산 관리할 수 있다. 반면, 퍼블릭 블록체인은 블록의 생성과 공유에 많은 비용과 시간이 소요되는 문제점이 있다. 이러한 문제점을 해소하기 위해, 본 실시예에 따른 시스템(1)은 제한된 수의 노드에 의한 거래만 블록으로 기록함으로써 속도가 빠르고 효율적인 프라이빗 블록체인 기반의 네트워크(40)를 구축한다. 그러나, 전술한 바와 같이, 블록체인 네트워크(40)는 다른 유형의 블록체인을 기반으로 할 수도 있다.
일 실시예에서, 상기 블록체인 네트워크(40)는 하이퍼레저 패브릭을 기반으로 할 수도 있다. 하이퍼레저 패브릭은 체인코드 실행과 트랜잭션 오더링을 분리함으로써 네트워크 성능을 최적화할 수 있다. 또한, 하이퍼레저 패브릭은 허가형 멤버쉽으로 알려진 참여자 및 규제감독을 기반으로 신뢰된 블록체인 네트워크를 운영할 수 있어 기밀성이 높다. 실제로, 하이퍼레저 패브릭에서 체인 코드는 피어에 의해 호스팅된다. 애플리케이션에서 트랜잭션을 만들면 지정된 피어만 트랜잭션을 실행하고 서명한다. 애플리케이션의 거래 제안을 받은 후, 각 승인 피어는 거래가 참조하는 체인 코드를 호출하여 독립적으로 실행한다.
상기 블록체인 네트워크(40)는 둘 이상의 피어(P)를 포함할 수 있다. 본 실시예에서, 블록체인 네트워크(40)는 4개의 피어(P)를 포함하지만, 본 발명은 이에 제한되지 않는다.
상기 피어(P)는 하이퍼레저 패브릭 네트워크를 구성할 수 있다. 상기 피어(P)는 블록체인을 저장하고, 원장을 유지 관리할 수 있다. 블록체인 네트워크(40)에 참여한 모든 피어(P)는 동일한 원장을 각각 저장 및 관리하고, 해당 원장을 기반으로 새롭게 생성되는 거래에 대한 타당성 혹은 진위를 각각 검증한다. 위 검증 결과에 따라 피어(P) 간에 검증되었다고 합의된 일정 조건 하의 각 트랜잭션은 하나의 블록으로 묶여져 저장되고, 해당 블록은 모든 피어(P)로 전파되어 앞의 블록 뒤에 덧붙여지는 형태로 연결되며, 이러한 과정이 반복됨으로써 모든 피어(P)에 저장된 블록체인이 갱신된다. 블록체인은 해시 값으로 앞뒤 블록이 연결되어 있을 뿐만 아니라, 피어(P) 간에 합의된 트랜잭션만 블록에 저장되므로, 악의적인 목적을 가지고 블록에 저장된 정보를 위변조하거나 트랜잭션을 조작하는 것은 기술적으로 불가능하다. 따라서, 이러한 특성을 이용하여, 시스템(1)은 피어(P)의 블록체인에 웹페이지에 대한 트랜잭션을 저장하여 트랜잭션의 위변조를 방지할 것이다.
상기 관리 서버(10)는 블록체인 네트워크(40)를 구축 및 관리하도록 구성될 수 있다. 상기 관리 서버(10)는 웹페이지에 관한 트랜잭션을 블록체인 네트워크(40)에 저장하기 위해 상기 트랜잭션을 블록체인 네트워크(40)에 전송하도록 구성될 수 있다.
상기 관리 서버(10)는 외부 파일 저장소(30)를 제어하도록 구성될 수 있다. 상기 관리 서버(10)는 외부 파일 저장소(30)에 하나 이상의 파일들을 저장할 수 있으며, 상기 외부 파일 저장소(30)로부터 하나 이상의 파일들을 가져올 수 있다.
일 실시예에서, 상기 관리 서버(10)는 하이퍼레저 패브릭 소프트웨어 개발 키트(SDK)를 이용하여, 시스템 사용자(20)에게 애플리케이션을 제공할 수 있다. 사용자(20)는 이러한 애플리케이션을 통해 웹페이지 저장 및 검증을 요청할 수 있으며, 웹페이지 검증 결과를 확인할 수 있다. 관리 서버(10)는 상기 애플리케이션을 통해 사용자(20)로부터 요청을 수신할 수 있으며, 사용자(20)에게 검증 결과를 전송할 수 있다.
상기 시스템 사용자(20)는 상기 시스템(1)을 이용하여 웹페이지를 저장하고자 하는 사용자 또는 웹페이지를 검증하고자 하는 검증자일 수 있다.
상기 외부 파일 저장소(30)는 HTML 파일 및/또는 이미지 파일을 저장하도록 구성될 수 있다. 구체적으로, 상기 외부 파일 저장소(30)는 웹페이지의 HTML 파일 및/또는 웹페이지를 렌더링한 이미지 파일을 저장할 수 있다. 웹페이지의 전체 해시값에 대한 자세한 설명은 후술될 것이다.
도 4는 본 개시의 실시예들에 따라 웹페이지를 저장하는 방법의 흐름도이다. 도 4의 웹페이지 저장 방법은 도 3의 블록체인 네트워크(40)를 이용하여 관리 서버(10)에 의해 수행될 수 있다.
먼저, 제1 시각에 제1 사용자로부터 상기 제1 사용자가 저장하고자 하는 웹페이지의 URL을 수신하는 단계(S401)가 수행될 수 있다. 일 실시예에서, 상기 제1 사용자는 관리 서버(10)가 제공하는 애플리케이션을 통해 웹페이지의 URL을 입력할 수 있으며, 관리 서버(10)는 상기 애플리케이션을 통해 URL을 수신할 수 있다. 일 실시예에서, 상기 제1 사용자는, 웹페이지의 URL에 추가하여, 웹페이지의 저장 결과 및/또는 검증 결과를 수신할 이메일 주소 또는 전화번호 등을 입력할 수 있다.
그 다음, 상기 제1 사용자로부터 수신한 URL에 대응하는 웹페이지의 제1 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제1 이미지 파일을 생성하는 단계(S402)가 수행될 수 있다. 웹페이지는 HTML, CSS, javascript로 이루어져 있으며, HTML은 웹페이지의 콘텐츠 및 구조를 가지고 있지만, CSS나 javascript로 콘텐츠를 수정/삭제/추가할 수 있으므로, 웹페이지의 렌더링된 이미지도 함께 생성하는 것이 신뢰성 측면에서 바람직하다. 이와 같이, 관리 서버(10)가 직접 HTML 소스를 추출하고 직접 이미지를 렌더링하기 때문에, 단순히 사용자 및/또는 검증자가 웹페이지를 스크린캡처하는 경우보다 신뢰할만한 증거 수집이 가능하다.
그 다음, 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 제1 타임스탬프와 함께 임시 저장하는 단계(S403)가 수행될 수 있다. 상기 제1 타임스탬프는 웹페이지의 HTML을 다운로드한 시각 및/또는 웹페이지를 렌더링하여 제1 이미지 파일을 생성한 시각 및/또는 제1 HTML 파일 및 제1 이미지 파일을 임시 저장한 시각을 나타낼 수 있다. 일 실시예에서, 관리 서버(10)는 상기 제1 HTML 파일, 상기 제1 이미지 파일 및 상기 제1 타임스탬프에 추가하여, 웹페이지의 URL 또한 임시 저장할 수 있다.
단계 S403 이후에, 상기 제1 사용자에게 상기 제1 HTML 파일 및 상기 제1 이미지 파일에 대한 확인(confirmation)을 요청하는 단계(S404)가 수행될 수 있다. 일 실시예에서, 관리 서버(10)는 상기 제1 사용자에게 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 출력(예를 들어, 디스플레이)하고, 상기 제1 HTML 파일 및 상기 제1 이미지 파일이 상기 제1 사용자가 요청한 웹페이지에 대한 것이 맞는지 확인을 요청할 수 있다. 이러한 출력 및/또는 확인 요청은 예를 들어 관리 서버(10)가 제공하는 애플리케이션을 통해 수행될 수 있다. 단계 S404에 의해, 제1 사용자는 제1 HTML 파일 및 이미지 파일을 확인할 수 있다. 그러나, 절차의 간략성을 위해, 본 단계(S404)는 생략될 수도 있다.
상기 확인 요청에 응답하여, 제1 사용자로부터, 제1 HTML 파일과 제1 이미지 파일이 원하는 웹페이지에 대한 것이 맞다는 답변(TRUE), 또는 원하는 웹페이지에 대한 것이 아니라는 답변(FALSE)을 수신할 수 있다. TRUE를 수신하면, 다음 단계(S405)를 진행하며, FALSE를 수신하면, 저장 프로세스를 종료한다.
제1 사용자의 확인을 받은 후, 제1 HTML 파일 및 제1 이미지 파일을 각각 해싱하고, 해당 웹페이지에 대한 전체 해시값을 생성하는 단계(S405)가 수행될 수 있다.
제1 HTML 파일 및 제1 이미지 파일을 해싱함으로써, 제1 HTML 파일의 해시값 및 제1 이미지 파일의 해시값이 생성될 수 있다.
일 실시예에서, 상기 전체 해시값은, 제1 HTML 파일의 해시값, 제1 이미지 파일의 해시값, 파일 저장 경로, 제1 타임스탬프 및 웹페이지의 URL과 함께 트리(tree)를 이용하여 생성될 수 있다. 예를 들어, 상기 트리는 이진트리, 삼진트리, 머클트리 등을 포함할 수 있다. 이하의 설명은 머클트리를 참조한다. 그럼에도 불구하고, 개시된 웹페이지 저장 시스템 및 방법은 다른 유형의 트리(예를 들어, 이진트리, 삼진트리 등)를 이용할 수도 있다.
추가 실시예에서, 전체 해시값에 대한 신뢰도를 증가시키기 위해, 상기 전체 해시값은 제1 HTML 파일의 해시값, 제1 이미지 파일의 해시값, 파일 저장 경로, 제1 타임스탬프, 웹페이지의 URL, 카운트(Count) 및 검증 상태값과 함께 머클트리(Merkel tree)를 이용하여 생성될 수 있다. 카운트(Count)는 검증 횟수를 나타낼 수 있으며, 초기값은 0이다. 카운트(Count)는 추후 검증시마다 1씩 증가할 수 있다. 검증 상태값은 검증이 가능한지 여부를 나타낼 수 있다. 예를 들어, 검증 상태값이 1인 경우, 검증이 가능함을 나타내고, 검증 상태값이 0인 경우, 검증이 불가능함을 나타낼 수 있다. 검증 상태값의 초기값은 1일 수 있다. 파일 저장 경로는 외부 파일 저장소에 저장될 제1 HTML 파일 및 제1 이미지 파일의 저장 경로일 수 있다.
이렇게 생성된 전체 해시값은 후술하는 바와 같이 웹페이지에 대한 데이터를 나타내는 대표값으로 사용될 수 있으며, 블록체인에 저장되는 트랜잭션 및/또는 외부 파일 저장소에 저장되는 파일들의 ID로서 기능할 수 있다.
추가 실시예에서, 상기 전체 해시값에 랜덤의 숫자를 더해 솔팅(salting)한 후 해싱하여 상태 변경 해시값을 생성하는 단계가 더 수행될 수 있다. 상태 변경 해시값은 웹페이지의 검증이 더 이상 필요하지 않을 때 검증 상태값을 변경하는데 사용될 수 있다. 예를 들어, 웹페이지의 검증이 더 이상 필요하지 않을 때, 검증 상태값 1을 0으로 변경할 수 있다. 반대로, 웹페이지의 검증이 가능하게 하기 위해, 검증 상태값 0을 1로 변경할 수 있다. 검증 상태값 변경 방법에 대한 자세한 설명은 도 12 및 도 13을 참조하여 후술할 것이다.
단계 S405 이후, 상기 전체 해시값을 이용하여 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 외부 파일 저장소에 저장하는 단계(S406)가 수행될 수 있다. 예를 들어, 상기 전체 해시값을 파일 이름으로 하여 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 저장할 수 있다.
상기 제1 HTML 파일 및 제1 이미지 파일은 상기 블록체인 네트워크에 저장되지 않는 것이 바람직하다. 왜냐하면, 블록체인 트랜잭션에 HTML 파일과 이미지 파일을 저장할 경우, n개(본 실시예에서, 4개)의 피어 개수만큼 n배의 저장 공간을 사용해야 하며, 그에 따라 트랜잭션의 호출(invoke)/질의(query) 속도가 느려지기 때문이다. 따라서, 블록체인 네트워크가 아닌 외부 파일 저장소에 상기 제1 HTML 및 제1 이미지 파일을 저장하며, 파일 저장 경로를 블록체인 네트워크에 저장하는 것이 바람직하다.
그 다음, 상기 제1 HTML 파일의 해시값, 상기 제1 이미지 파일의 해시값, 파일 저장 경로, 상기 제1 타임스탬프, 상기 URL 및 상기 전체 해시값을 포함하는 제1 트랜잭션 데이터를 상기 블록체인 네트워크에 저장하는 단계(S407)가 수행될 수 있다. 추가 실시예에서, 상기 제1 트랜잭션 데이터는 카운트, 검증 상태값, 상태 변경 해시값 중 적어도 하나를 더 포함할 수 있다. 다음의 표 1은 트랜잭션에 포함될 수 있는 데이터를 설명한다.
데이터 데이터 설명
HashOfTotal HashOfImage, HashOfHtml, Timestamp 등을 이용하여 생성된 전체 해시값
HashOfStatus 전체 해시값에 랜덤한 숫자를 솔팅한 후 해싱하여 생성된 상태 변경 해시값
HashOfImage 웹페이지를 렌더링한 이미지 파일의 해시값
HashOfHtml 저장한 HTML 파일의 해시값
FilePath 웹페이지의 HTML 파일과 이미지 파일의 저장 경로
Count 검증 횟수 (초기값 : 0)
Status 검증 가능 여부, 1 : 검증 가능, 0 : 검증 불가 (초기값 : 1)
Timestamp HTML 다운로드 시각 및/또는 제1 이미지 파일 생성 시각 및/또는 파일들을 임시 저장한 시각
URL 저장한 웹페이지의 주소
도 6을 참조하면, 블록체인에 저장되는 트랜잭션의 구성도의 일례가 도시되어 있다. 도 6은 표 1에 설명된 데이터들을 포함하는 트랜잭션을 나타낸다. 또한, 도 6은 HTML 파일의 해시값, 이미지 파일의 해시값, 파일 저장 경로, 타임스탬프, URL, 전체 해시값, 카운트(검증 횟수), 상태 변경 해시값이 머클트리를 거쳐 전체 해시값이 반환되는 일례를 도시한다.
이와 같은 트랜잭션 데이터를 블록체인에 저장함으로써, 제1 HTML 파일의 해시값, 제1 이미지 파일의 해시값 등의 위변조를 방지할 수 있으며, 트랜잭션 데이터의 불변성을 보장할 수 있다.
다시 도 4를 참조하면, 마지막으로, 상기 생성된 전체 해시값을 제1 사용자에게 전송하는 단계(S408)가 수행될 수 있다. 예를 들어, 관리 서버(10)는 애플리케이션을 통해 제1 사용자에게 전체 해시값을 디스플레이할 수 있다. 다른 예에서, 제1 사용자가 단계 401에서 이메일 주소 및/또는 전화번호를 입력한 경우, 관리 서버(10)는 입력된 이메일 주소 및/또는 전화번호를 이용하여 메일로 또는 문자로 상기 전체 해시값을 전송할 수 있다. 추가 실시예에서, 상기 전체 해시값에 추가하여, 제1 사용자에게 웹페이지의 URL, 제1 타임스탬프 및/또는 상태 변경 해시값이 전송될 수 있다. 제1 사용자는 추후에 웹페이지의 비교를 원할 때, 수신된 전체 해시값을 이용하여, 저장된 웹페이지를 확인하거나 웹페이지 비교를 수행할 수 있다(도 7 내지 도 9를 참조하여 후술됨). 또한, 제1 사용자는 웹페이지의 검증이 더 이상 필요하지 않을 때, 수신된 상태 변경 해시값을 이용하여, 검증 상태값을 변경할 수 있다(도 12 및 도 13을 참조하여 후술됨). 추가 실시예에서, 제1 사용자가 입력한 이메일 주소 및/또는 전화번호는 제1 사용자에게 전체 해시값을 전송한 후에 즉시 삭제될 수 있다. 이와 같이, 본 시스템은 개인 정보를 저장하지 않으면서 웹페이지를 저장 및 검증할 수도 있다.
도 4는 제1 사용자로부터 URL을 수신하고, 상기 URL에 대응하는 웹페이지를 저장하는 방법에 대하여 설명하였다. 그러나, 변형 예에서는, 제1 사용자로부터 특정 키워드를 수신하고, 상기 특정 키워드를 포함하는 하나 이상의 웹페이지들이 저장될 수 있다. 예를 들어, 제1 사용자가 특정 키워드를 포함하는 인터넷 기사를 저장하고 싶은 경우, 관리 서버(10)는 제1 사용자로부터 특정 키워드를 수신하고, 상기 특정 키워드를 포함하는 하나 이상의 인터넷 기사들을 저장할 수 있다. 추가 실시예에서, 관리 서버(10)는 특정 키워드를 포함하는 웹페이지를 저장한 후, 저장된 웹페이지에 관한 정보를 제1 사용자에게 전송할 수 있다.
도 5는 도 3의 시스템에서 도 4의 웹페이지 저장 방법이 수행되는 과정을 개략적으로 도시한다. 이하 실시예들간 중복되는 설명은 생략하기로 한다.
먼저, 제1 사용자(20)는 특정 웹페이지의 저장을 원할 때, 해당 웹페이지의 URL을 관리 서버(10)에 전송할 수 있다(단계 S401). 일 실시예에서, 제1 사용자는 웹페이지의 저장 결과 및/또는 검증 결과를 수신할 이메일 주소 및/또는 전화번호 등을 추가로 전송할 수 있다. 일 실시예에서, 제1 사용자(20)는 관리 서버(10)가 제공하는 애플리케이션을 통해 웹페이지의 URL을 입력할 수 있다.
상기 제1 사용자(20)로부터의 URL 수신에 응답하여, 관리 서버(10)는 상기 URL에 대응하는 웹페이지의 제1 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제1 이미지 파일을 생성하여, 상기 제1 HTML 파일과 상기 제1 이미지 파일을 제1 타임스탬프와 함께, 그리고 옵션으로는 해당 URL과 함께 임시 저장할 수 있다(단계 S402 및 단계 S403).
그 다음, 관리 서버(10)는 제1 사용자(20)가 전송한 URL의 제1 HTML 파일 및 제1 이미지 파일을 출력하며, 제1 사용자에게 본 내용을 블록체인 네트워크(40) 및/또는 외부 파일 저장소(30)에 저장할 것인지 확인 요청할 수 있다(단계 S404).
제1 사용자(20)가 확인 응답을 한다면(단계 S404*), 관리 서버(10)는 제1 HTML 파일 및 제1 이미지 파일을 각각 해싱하고, 머클트리를 이용하여 해당 웹페이지에 대한 전체 해시값을 생성할 수 있다(단계 405). 전술한 바와 같이, 관리 서버(10)는 제1 HTML 파일의 해시값, 제1 이미지 파일의 해시값, 파일 저장 경로, 제1 타임스탬프 및 웹페이지의 URL 등과 함께 머클트리(Merkel tree)를 이용하여 전체 해시값을 생성할 수 있다. 추가 실시예에서, 상기 관리 서버(10)는 생성된 전체 해시값에 랜덤의 숫자를 더해 솔팅한 후 해싱하여 상태 변경 해시값을 생성할 수 있다.
그 다음, 상기 관리 서버(10)는 상기 전체 해시값을 이용하여 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 외부 파일 저장소(30)에 저장할 수 있다. 예를 들어, 상기 관리 서버(10)는 상기 전체 해시값을 파일 이름으로 하여, 파일 저장 경로에 맞는 외부 파일 저장소에 상기 파일들을 저장할 수 있다.
상기 관리 서버(10)는 상기 제1 HTML 파일의 해시값, 상기 제1 이미지 파일의 해시값, 파일 저장 경로, 상기 제1 타임스탬프, 상기 URL, 상기 전체 해시값 등을 트랜잭션에 담아 블록체인 네트워크(40)에 저장할 수 있다(단계 S407).
마지막으로, 상기 관리 서버(10)는 제1 사용자(20)에게 전체 해시값, 그리고 옵션으로는 상태 변경 해시값, URL, 타임스탬프 등을 전송하여, 웹페이지의 저장이 완료되었음을 알릴 수 있다(단계 S408). 예를 들어, 관리 서버(10)는 제1 사용자(20)가 입력한 이메일 주소 및/또는 전화번호를 통해 저장 완료 사실을 알릴 수도 있으며, 또는 관리 서버(10)가 제공하는 애플리케이션을 통해 저장 완료 사실을 알릴 수도 있다.
도 7은 본 개시의 실시예들에 따라 저장된 웹페이지를 확인하는 방법의 흐름도이다.
구체적으로, 도 7은 도 4를 참조하여 설명된 실시예들에 따라 저장된 웹페이지를 제2 사용자가 확인하는 방법을 설명한다. 도 4의 제1 사용자 및 도 7의 제2 사용자는 동일하거나 서로 다른 사용자일 수 있다. 또한, 도 4의 제1 사용자 및 도 7의 제2 사용자는 상기 웹페이지를 통해 서비스를 제공하는 사람 또는 상기 웹페이지 내의 서비스를 이용하는 사람일 수 있으며, 또는 제3자일 수도 있다.
도 7의 저장된 웹페이지 확인 방법은 도 3의 관리 서버(10)에 의해 수행될 수 있다.
먼저, 제1 시각 이후의 제2 시각에, 즉, 웹페이지를 저장한 이후에, 제2 사용자로부터 상기 전체 해시값을 수신하는 단계(S701)가 수행될 수 있다. 일 실시예에서, 제2 사용자는 전체 해시값에 추가하여, 웹페이지의 URL 및/또는 웹페이지의 저장 시각을 전송할 수도 있다. 그러나, 상기 전체 해시값은 웹페이지의 URL과 타임스탬프를 이용하여 생성되었기 때문에, 즉 전체 해시값이 URL과 타임스탬프에 대한 정보도 포함하기 때문에, 제2 사용자로부터 전체 해시값을 수신하는 것만으로도 충분하다. 추가 실시예에서, 제2 사용자는 저장된 파일들을 받을 수 있는 이메일 주소 및/또는 전화번호를 추가로 전송할 수 있다.
상기 제2 사용자로부터 전체 해시값을 수신한 후, 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계(S702)가 수행될 수 있다. 구체적으로, 관리 서버(10)는 블록체인 네트워크에 전체 해시값을 전달하여 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 해당 제1 트랜잭션 데이터를 가져올 수 있다.
그 다음, 상기 수신된 제1 트랜잭션 데이터에 포함된 파일 저장 경로 및 전체 해시값을 이용하여 외부 파일 저장소로부터 제1 HTML 파일 및 제1 이미지 파일을 가져온 후 해싱할 수 있다(S703). 외부파일 저장소의 제1 HTML 파일 및 제1 이미지 파일이 위변조되지 않았음을 확인하기 위해, S703의 제1 HTML 파일 해시 및 제1 이미지 파일 해시와, S702의 트랜잭션 내부의 각 제1 HTML 파일 해시 및 제1 이미지 파일 해시를 비교 검증할 수 있다(S704). 검증이 완료되면 제1 HTML 파일 및 제1 이미지 파일을 제2 사용자에게 출력(예를 들어, 디스플레이)할 수 있다(S705). 예를 들어, 관리 서버(10)는 블록체인 네트워크로부터 수신된 제1 트랜잭션 데이터 내의 파일 저장 경로에 해당하는 외부 파일 저장소에서, 상기 전체 해시값을 파일명으로 하는 파일들을 찾아 가져와서 상술한 검증 절차를 거친 후 제2 사용자에게 출력할 수 있다. 추가 실시예에서, 관리 서버(10)는 제2 사용자가 전송한 이메일 주소 및/또는 전화번호를 사용하여 상기 저장된 제1 HTML 파일 및 제1 이미지 파일을 전송할 수 있다. 다른 실시예에서, 관리 서버(10)는 애플리케이션을 통해 상기 제2 사용자에게 상기 제1 HTML 파일 및 제1 이미지 파일을 디스플레이할 수 있다.
이와 같이, 본 개시의 실시예들에 따르면, 제2 사용자는 전체 해시값만 알고 있다면 언제든지(예를 들어 웹에서의 거래 이후에 거래 내용을 확인하고 싶을 때) 저장된 웹페이지의 내용을 확인할 수 있다.
제2 사용자는 전체 해시값만 알고 있다면 회원가입이나 로그인, 기타 인증 절차 없이, 저장된 웹페이지의 내용을 확인할 수 있으며, 이로써 개인정보유출의 위험이 원천적으로 제거된다.
도 8은 본 개시의 실시예들에 따라 저장된 웹페이지와 현재 웹페이지를 비교 및 검증하는 방법의 흐름도이다. 구체적으로, 도 8은 도 4를 참조하여 설명된 실시예들에 따라 저장된 웹페이지를 현재 웹페이지와 비교하는 방법을 설명한다.
예를 들어, 제1 사용자의 요청에 의해 제1 시각에 웹페이지가 저장된 이후에 제2 사용자가 웹페이지 내용의 변경 여부를 확인하고자 하는 경우, 즉 이전에 저장된 웹페이지와 현재 웹페이지의 비교를 원하는 경우, 도 8의 방법이 수행될 수 있다. 도 4의 제1 사용자 및 도 8의 제2 사용자는 동일하거나 서로 다른 사용자일 수 있다. 또한, 도 4의 제1 사용자 및 도 8의 제2 사용자는 상기 웹페이지를 통해 서비스를 제공하는 사람 또는 상기 웹페이지 내의 서비스를 이용하는 사람일 수 있으며, 또는 제3자일 수도 있다.
도 8의 웹페이지 비교 및 검증 방법은 도 3의 관리 서버(10)에 의해 수행될 수 있다. 이하 실시예들간 중복되는 설명은 생략하기로 한다.
먼저, 제1 시각 이후의 제2 시각에, 즉, 웹페이지를 저장한 이후에, 제2 사용자로부터 상기 전체 해시값을 수신하는 단계(S801)가 수행될 수 있다. 일 실시예에서, 제2 사용자는 전체 해시값에 추가하여, 웹페이지의 URL 및/또는 웹페이지의 저장 시각을 전송할 수도 있다. 그러나, 상기 전체 해시값이 URL과 타임스탬프에 대한 정보도 포함하기 때문에, 제2 사용자로부터 전체 해시값을 수신하는 것만으로도 충분하다. 추가 실시예에서, 제2 사용자는 비교 결과를 받을 수 있는 이메일 주소 및/또는 전화번호 등을 추가로 전송할 수 있다.
상기 제2 사용자로부터 전체 해시값을 수신한 후, 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하는 단계(S802)가 수행될 수 있다. 구체적으로, 관리 서버(10)는 블록체인 네트워크에 전체 해시값을 전달하여 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회할 수 있다.
그 다음, 일 실시예에서, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터 내 검증 상태값을 수신하는 단계(S803)가 수행될 수 있다.
전술한 바와 같이, 검증 상태값은 검증이 가능한지 여부를 나타낼 수 있다. 예를 들어, 검증 상태값이 1(즉, TRUE)인 경우, 검증이 가능함을 나타내고, 검증 상태값이 0(즉, FALSE)인 경우, 검증이 불가능함을 나타낼 수 있다. 검증 상태값의 초기값은 1일 수 있다. 따라서, 검증 상태값을 확인하는 단계(S804)가 수행되어, 검증 상태값이 TRUE라면, 계속해서 웹페이지 비교 및 검증 방법들이 수행될 수 있으며, 검증 상태값이 FALSE라면, 검증이 불가능하기 때문에 본 방법이 종료될 수 있다. 그러나, 절차의 간략성을 위해, 검증 상태값을 수신하여 확인하는 단계(S803 및 S804)는 생략될 수도 있다.
상기 단계 S804의 결과, 검증 상태값이 TRUE라면, 블록체인 네트워크로부터 제1 트랜잭션 데이터를 수신하는 단계(S805)가 수행될 수 있다. 즉, 블록체인 네트워크로부터, 제1 HTML 파일의 해시값, 제1 이미지 파일의 해시값, 제1 타임스탬프, 파일 저장 경로, URL 등을 수신할 수 있다. 검증 상태값이 FALSE라면, 블록체인 네트워크로부터 제1 트랜잭션 데이터를 수신할 수 없을 것이다.
그 다음, 상기 수신된 제1 트랜잭션 데이터 내의 URL에 대응하는 웹페이지의 제2 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제2 이미지 파일을 생성하는 단계(S806)가 수행될 수 있다.
그 다음, 상기 제2 HTML 파일 및 상기 제2 이미지 파일을 제2 타임스탬프와 함께 임시 저장하는 단계(S807)가 수행될 수 있다. 상기 제2 타임스탬프는 웹페이지의 제2 HTML 파일을 다운로드한 시각 및/또는 웹페이지를 렌더링하여 제2 이미지 파일을 생성한 시각 및/또는 제2 HTML 파일 및 제2 이미지 파일을 임시 저장한 시각을 나타낼 수 있다. 일 실시예에서, 관리 서버(10)는 상기 제2 HTML 파일, 상기 제2 이미지 파일 및 상기 제2 타임스탬프에 추가하여, 웹페이지의 URL 또한 임시 저장할 수 있다.
그 다음, 제2 HTML 파일 및 제2 이미지 파일을 각각 해싱하는 단계(S808)가 수행될 수 있다. 제2 HTML 파일 및 제2 이미지 파일을 해싱함으로써, 제2 HTML 파일의 해시값 및 제2 이미지 파일의 해시값이 생성될 수 있다.
추가 실시예에서, 제2 HTML 파일의 해시값, 제2 이미지 파일의 해시값, 파일 저장 경로, 제2 타임스탬프 및 웹페이지의 URL과 함께 머클트리(Merkel tree)를 이용하여 제2 전체 해시값이 생성될 수도 있다. 추가 실시예에서, 제2 전체 해시값에 대한 신뢰도를 증가시키기 위해, 상기 제2 전체 해시값은 제2 HTML 파일의 해시값, 제2 이미지 파일의 해시값, 파일 저장 경로, 제2 타임스탬프, 웹페이지의 URL, 카운트(Count) 및 검증 상태값과 함께 머클트리(Merkel tree)를 이용하여 생성될 수 있다. 추가 실시예에서, 상기 제2 사용자가 웹페이지의 비교 및 검증을 요청한 때의 웹페이지를 추가로 저장하기 위해, 상기 제2 전체 해시값, 상기 제2 HTML 파일의 해시값, 제2 이미지 파일의 해시값, 파일 저장 경로, 제2 타임스탬프 및 웹페이지의 URL을 포함하는 제2 트랜잭션 데이터를 블록체인 네트워크에 저장하는 단계가 수행될 수 있다. 상기 제2 사용자가 웹페이지의 비교 및 검증을 요청한 때의 웹페이지를 저장할 필요가 없다면, 본 단계는 생략될 수 있다.
추가 실시예에서, 상기 제2 전체 해시값을 이용하여 상기 제2 HTML 파일 및 상기 제2 이미지 파일을 외부 파일 저장소에 저장하는 단계가 수행될 수 있다. 예를 들어, 상기 제2 전체 해시값을 파일 이름으로 하여 상기 제2 HTML 파일 및 상기 제2 이미지 파일을 저장할 수 있다.
그 다음, 검증 횟수를 나타내는 카운트를 1 증가시켜 해당 트랜잭션을 업데이트하는 단계(S809)가 수행될 수 있다. 도 8에서, 카운트를 증가시키는 단계(S809)는 해시값들을 비교하는 단계(S810) 이전에 수행되는 것으로 도시되었지만, 다른 실시예들에서, 카운트를 증가시키는 단계(S809)는 해시값들을 비교하는 단계(S810) 이후에 수행될 수도 있으며, 또는 블록체인 네트워크로부터 제1 트랜잭션 데이터를 수신한 직후에 수행될 수도 있다. 다른 실시예들에서, 절차의 간략성을 위해, 카운트를 증가시키는 단계(S809)는 생략될 수도 있다.
그 다음, 상기 제2 HTML 파일의 해시값 및 상기 제2 이미지 파일의 해시값을 각각 상기 수신된 제1 트랜잭션 데이터 내의 상기 제1 HTML 파일의 해시값 및 상기 제1 이미지 파일의 해시값과 비교하는 단계(S810)가 수행될 수 있다. 제1 시각에서의 제1 HTML 파일과 제2 시각에서의 제2 HTML 파일이 동일하다면, 즉 제1 시각과 제2 시각 사이에 웹페이지의 HTML이 변경되지 않았다면, 제1 HTML 파일의 해시값과 제2 HTML 파일의 해시값은 동일할 것이다. 그러나, 제1 시각에서의 제1 HTML 파일과 제2 시각에서의 제2 HTML 파일이 상이하다면, 즉 제1 시각과 제2 시각 사이에 웹페이지의 HTML이 변경되었다면, 제1 HTML 파일의 해시값과 제2 HTML 파일의 해시값은 상이할 것이다. 마찬가지로, 제1 시각에서의 제1 이미지 파일과 제2 시각에서의 제2 이미지 파일이 동일하다면, 즉 제1 시각과 제2 시각 사이에 웹페이지의 이미지가 변경되지 않았다면, 제1 이미지 파일의 해시값과 제2 이미지 파일의 해시값은 동일할 것이다. 그러나, 제1 시각에서의 제1 이미지 파일과 제2 시각에서의 제2 이미지 파일이 상이하다면, 즉 제1 시각과 제2 시각 사이에 웹페이지의 이미지가 변경되었다면, 제1 이미지 파일의 해시값과 제2 이미지 파일의 해시값은 상이할 것이다. 일 실시예에서, 해시값들의 비교 후, 비교 결과를 생성하는 단계가 수행될 수 있다. 예를 들어, HTML 파일들의 해시값과 이미지 파일들의 해시값이 모두 동일한 경우, 결과값 세트인 <TRUE, TRUE>를 생성할 수 있으며, HTML 파일들의 해시값은 동일하지만 이미지 파일들의 해시값이 상이한 경우, 결과값 세트인 <TRUE, FALSE>를 생성할 수 있다.
이와 같이, 해시값들의 비교만으로도 웹페이지의 변경 여부를 파악할 수 있다. 또한, 이러한 해시값들은 외부 파일 저장소가 아닌 블록체인 네트워크에 저장되었기 때문에 무결성이 입증될 수 있으며, 이에 따라 해시값들의 비교 결과 또한 신뢰할만하다.
추가 실시예에서, 제1 시각에서의 웹페이지의 전체 해시값과 제2 시각에서의 웹페이지의 제2 전체 해시값을 비교하는 단계가 추가로 수행될 수 있다. 다만, 전체 해시값을 생성할 때 타임스탬프를 이용하기 때문에, 제1 시각에서의 전체 해시값과 제2 시각에서의 제2 전체 해시값은, 웹페이지 내용 변경 여부와 관계없이, 항상 상이할 것이다.
그 다음, 추가 실시예에서, 블록체인 네트워크로부터 수신된 제1 트랜잭션 데이터에 포함된 파일 저장 경로 및 전체 해시값을 이용하여 상기 외부 파일 저장소로부터 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 가져오는 단계(S811a)가 수행될 수 있다. 예를 들어, 관리 서버(10)는 블록체인 네트워크로부터 수신된 제1 트랜잭션 데이터 내의 파일 저장 경로에 해당하는 외부 파일 저장소에서, 상기 전체 해시값을 파일명으로 하는 파일들을 찾아 가져올 수 있다. 그 다음, 상기 외부 파일 저장소로부터 가져온 제1 HTML 파일 및 제1 이미지 파일을 임시 저장된 제2 HTML 파일 및 제2 이미지 파일과 비교하는 단계(S811b)가 수행될 수 있다. 일 실시예에서, 상기 제1 이미지 파일과 상기 제2 이미지 파일 간의 비교는 인공지능의 한 분야인 CNN 등과 같은 딥러닝 모델을 통해 수행될 수 있다. 추가 실시예에서, HTML 파일들과 이미지 파일들의 비교 후, 비교 결과를 생성하는 단계가 수행될 수 있다.
단계 S810에서의 해시값들의 비교만으로도 웹페이지의 변경 여부를 파악할 수 있지만, HTML과 이미지 파일 중 정확히 어느 부분이 변경되었는지 파악하기는 쉽지 않다. 그러나, 단계 S811를 통해 HTML 파일들과 이미지 파일들을 직접 비교함으로써, 웹페이지의 어느 부분이 변경되었는지 쉽게 파악할 수 있다. 다만, HTML 파일과 이미지 파일은 블록체인 네트워크가 아닌 외부 파일 저장소에 저장되었지만, 단계 811을 통한 비교 결과는 단순 참고 자료가 아닌 검증 절차를 거친 자료로서 이용될 수 있다.
마지막으로, 상기 해시값들, 상기 HTML 파일들 및 상기 이미지 파일들 간의 비교 결과를 제2 사용자에게 출력(예를 들어, 디스플레이)하는 단계(S812)가 수행될 수 있다. 예를 들어, 관리 서버(10)는 애플리케이션을 통해 제2 사용자에게 비교 결과들을 디스플레이할 수 있다. 다른 예에서, 제2 사용자가 단계 S801에서 이메일 주소 및/또는 전화번호를 입력한 경우, 관리 서버(10)는 입력된 이메일 주소 및/또는 전화번호를 이용하여 메일로 또는 문자로 상기 비교 결과들을 전송할 수 있다.
도 9는 도 3의 시스템에서 도 8의 웹페이지 비교 및 검증 방법이 수행되는 과정을 개략적으로 도시한다. 이하 실시예들간 중복되는 설명은 생략하기로 한다.
먼저, 제1 시각 이후의 제2 시각에, 웹페이지의 비교 및 검증이 필요할 때, 제2 사용자(20')는 관리 서버(10)에 전체 해시값을 전송할 수 있다(단계 S801). 일 실시예에서, 제2 사용자(20')는 전체 해시값에 추가하여, 웹페이지의 URL, 웹페이지의 저장 시각, 비교 결과를 받을 수 있는 이메일 주소 및/또는 전화번호 등을 추가로 전송할 수 있다. 일 실시예에서, 제2 사용자(20')는 관리 서버(10)가 제공하는 애플리케이션을 통해 전체 해시값을 입력할 수도 있다.
관리 서버(10)는 제2 사용자(20')로부터 전체 해시값을 수신한 후, 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회할 수 있다(단계 S802). 구체적으로, 관리 서버(10)는 블록체인 네트워크(40)에 전체 해시값을 전달하여 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회할 수 있다.
그 다음, 일 실시예에서, 상기 블록체인 네트워크(40)는 관리 서버(10)에게 상기 제1 트랜잭션 데이터 내 검증 상태값을 반환할 수 있다(단계 S803).
관리 서버(10)는 블록체인 네트워크(40)로부터 수신한 검증 상태값을 확인할 수 있다(단계 S804). 검증 상태값이 TRUE라면, 계속해서 웹페이지 비교 및 검증 프로세스들을 수행하며, 검증 상태값이 FALSE라면, 검증이 불가능하다고 판단하고 프로세스를 종료할 수 있다.
상기 단계 S804의 결과, 검증 상태값이 TRUE라면, 관리 서버(10)는 블록체인 네트워크(40)에게 제1 트랜잭션 데이터를 요청하여 이를 수신할 수 있다(단계 S805). 즉, 관리 서버(10)는 제1 트랜잭션 데이터에 포함된 제1 HTML 파일의 해시값, 제1 이미지 파일의 해시값, 제1 타임스탬프, 파일 저장 경로, URL 등을 수신할 수 있다. 검증 상태값이 FALSE라면, 블록체인 네트워크(40)에게 제1 트랜잭션 데이터를 요청하지 않을 것이다.
그 다음, 관리 서버(10)는 블록체인 네트워크(40)로부터 수신한 제1 트랜잭션 데이터 내의 URL에 대응하는 웹페이지의 제2 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제2 이미지 파일을 생성하며, 이러한 파일들을 제2 타임스탬프와 함께 임시 저장할 수 있다(단계 S806 및 단계 807). 일 실시예에서, 관리 서버(10)는 상기 제2 HTML 파일, 상기 제2 이미지 파일 및 상기 제2 타임스탬프에 추가하여, 웹페이지의 URL 또한 임시 저장할 수 있다.
그 다음, 관리 서버(10)는 제2 HTML 파일 및 제2 이미지 파일을 각각 해싱할 수 있다(단계 S808). 관리 서버(10)가 제2 HTML 파일 및 제2 이미지 파일을 해싱함으로써, 제2 HTML 파일의 해시값 및 제2 이미지 파일의 해시값이 생성될 수 있다. 추가 실시예에서, 관리 서버(10)는 제2 HTML 파일의 해시값, 제2 이미지 파일의 해시값, 파일 저장 경로, 제2 타임스탬프 및 웹페이지의 URL과 함께 머클트리(Merkel tree)를 이용하여 제2 전체 해시값을 생성할 수도 있다. 추가 실시예에서, 관리 서버(10)는 상기 제2 전체 해시값, 상기 제2 HTML 파일의 해시값, 제2 이미지 파일의 해시값, 파일 저장 경로, 제2 타임스탬프 및 웹페이지의 URL을 포함하는 제2 트랜잭션 데이터를 블록체인 네트워크(40)에 저장할 수 있다. 추가 실시예에서, 관리 서버(10)는 상기 제2 전체 해시값 및/또는 파일 저장 경로를 이용하여 상기 제2 HTML 파일 및 상기 제2 이미지 파일을 상기 외부 파일 저장소(30)에 저장할 수 있다.
그 다음, 관리 서버(10)는 검증 횟수를 나타내는 카운트를 1 증가시켜 블록체인 네트워크(40) 내의 해당 트랜잭션을 업데이트할 수 있다(단계 S809).
그 다음, 관리 서버(10)는 상기 제2 HTML 파일의 해시값 및 상기 제2 이미지 파일의 해시값을 각각 블록체인 네트워크(40)로부터 수신된 제1 트랜잭션 데이터 내의 상기 제1 HTML 파일의 해시값 및 상기 제1 이미지 파일의 해시값과 비교할 수 있다(단계 S810). 일 실시예에서, 관리 서버(10)는 해시값들의 비교 후 비교 결과를 생성할 수 있다. 예를 들어, 관리 서버는 해시값들의 비교 결과에 따라 결과값 세트 <TRUE, TRUE>, <TRUE, FALSE>, <FALSE, TRUE> 또는 < FALSE, FALSE>를 생성할 수 있다.
그 다음, 추가 실시예에서, 관리 서버(10)는 블록체인 네트워크(40)로부터 수신된 제1 트랜잭션 데이터에 포함된 파일 저장 경로 및 전체 해시값을 이용하여 상기 외부 파일 저장소(30)로부터 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 가져올 수 있다(단계 S811a). 그 다음, 관리 서버(10)는 상기 외부 파일 저장소(30)로부터 가져온 제1 HTML 파일 및 제1 이미지 파일을 임시 저장된 제2 HTML 파일 및 제2 이미지 파일과 비교할 수 있다(단계 S811b). 추가 실시예에서, 관리 서버(10)는 HTML 파일들과 이미지 파일들의 비교 후, 비교 결과를 생성할 수 있다.
마지막으로, 관리 서버(10)는 상기 해시값들, 상기 HTML 파일들 및 상기 이미지 파일들 간의 비교 결과를 제2 사용자(20')에게 출력(예를 들어, 디스플레이)할 수 있다(단계 S812).
도 10은 도 8 및 도 9의 방법을 사용하여 제2 사용자에게 디스플레이되는 웹페이지 비교 및 검증 결과의 일례를 도시한다.
도 10의 좌측은 제1 시각에 저장된 웹페이지에 대한 데이터를 도시하며, 우측은 제2 시각에 저장된 웹페이지에 대한 데이터 및 제1 시각에 저장된 데이터와의 비교 결과를 도시한다.
도 10에 도시된 바와 같이, 관리 서버(10)는 제2 사용자(20')에게 제1 이미지 파일의 해시값, 제1 HTML 파일의 해시값, 제2 이미지 파일의 해시값, 제2 HTML 파일의 해시값을 디스플레이하면서, 해시값들의 비교 결과(TRUE 또는 FALSE)를 함께 디스플레이할 수 있다. 또한, 관리 서버(10)는 제1 시각에서의 웹페이지의 전체 해시값 및 타임스탬프, 제2 시각에서의 웹페이지의 제2 전체 해시값 및 타임스탬프를 추가로 디스플레이할 수 있다.
또한, 제2 사용자(20')가 웹페이지의 어느 부분이 변경되었는지 쉽게 파악할 수 있도록, 이미지 파일들과 HTML 파일들을 디스플레이하면서, 파일들의 수정된 부분을 강조 표시하여 비교 결과를 출력할 수 있다.
도 10을 참조하면, 관리 서버(10)는 딥러닝을 이용하여 제1 이미지와 제2 이미지를 분석함으로써 제1 이미지와 제2 이미지의 차이(예를 들어, 텍스트 또는 이미지)를 도출하고, 해당 부분을 빨간 테두리로 표시하여 검증자 및/또는 사용자가 빠르고 명확하게 확인하게 할 수 있다.
추가 실시예에서, 관리 서버(10)는 비교 결과와 함께, 웹페이지의 URL 및/또는 검증 횟수를 나타내는 카운트(Validation count)를 디스플레이할 수 있다.
도 11은 본 개시의 다른 실시예들에 따라 웹페이지를 비교 및 검증하는 방법의 흐름도이다. 구체적으로, 도 11은 주기적으로 웹페이지를 비교하여, 웹페이지 변경이 검출된 경우 사용자에게 변경 사실을 알릴 수 있는 방법을 도시한다.
도 11의 웹페이지 비교 및 검증 방법은 도 3의 관리 서버(10)에 의해 수행될 수 있다. 이하 실시예들간 중복되는 설명은 생략하기로 한다.
먼저, 상기 제1 시각 이후에, 즉, 제1 사용자로부터 URL을 수신하여 웹페이지를 저장한 이후에, 상기 URL에 대응하는 웹페이지의 제3 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제3 이미지 파일을 생성하는 단계(S1001)가 수행될 수 있다.
그 다음, 상기 제3 HTML 파일 및 상기 제3 이미지 파일을 제3 타임스탬프와 함께 임시 저장할 수 있다(S1002).
그 다음, 제3 HTML 파일 및 제3 이미지 파일을 각각 해싱하는 단계(S1003)가 수행될 수 있다. 제3 HTML 파일 및 제3 이미지 파일을 해싱함으로써, 제3 HTML 파일의 해시값 및 제3 이미지 파일의 해시값이 생성될 수 있다.
추가 실시예에서, 제3 HTML 파일의 해시값, 제3 이미지 파일의 해시값, 파일 저장 경로, 제3 타임스탬프 및 웹페이지의 URL과 함께 머클트리(Merkel tree)를 이용하여 제3 전체 해시값이 생성될 수도 있다. 추가 실시예에서, 상기 제3 전체 해시값, 상기 제3 HTML 파일의 해시값, 제3 이미지 파일의 해시값, 파일 저장 경로, 제3 타임스탬프 및 웹페이지의 URL 등을 포함하는 제3 트랜잭션 데이터를 블록체인 네트워크에 저장하는 단계가 수행될 수 있다. 제3 전체 해시값의 생성 및 저장은 필요에 따라 웹페이지 변경을 추적하기 위한 것이며, 생략될 수 있다.
추가 실시예에서, 상기 제3 전체 해시값을 이용하여 상기 제3 HTML 파일 및 상기 제3 이미지 파일을 외부 파일 저장소에 저장하는 단계가 수행될 수 있다. 제3 HTML 파일 및 제3 이미지 파일은 필요에 따라 웹페이지 변경을 추적하기 위한 것이며, 생략될 수 있다. 다만, HTML 파일 및 이미지 파일을 주기적으로 생성하여 저장할 경우, 용량이 많이 필요하기 때문에, S1005에서 해시값이 일치한 경우 저장하지 않는 것이 바람직하다.
그 다음, 상기 블록체인 네트워크에서 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 상기 블록체인 네트워크로부터 제1 트랜잭션 데이터를 수신하는 단계(S1004)가 수행될 수 있다.
그 다음, 상기 제3 HTML 파일의 해시값 및 상기 제3 이미지 파일의 해시값을 각각 상기 블록체인 네트워크로부터 수신된 제1 트랜잭션 데이터 내의 상기 제1 HTML 파일의 해시값 및 상기 제1 이미지 파일의 해시값과 비교하는 단계(S1005)가 수행될 수 있다. 제1 시각 이후 웹페이지의 HTML이 변경되지 않았다면, 제1 HTML 파일의 해시값과 제3 HTML 파일의 해시값은 동일할 것이다. 그러나, 제1 시각 이후 웹페이지의 HTML이 변경되었다면, 제1 HTML 파일의 해시값과 제3 HTML 파일의 해시값은 상이할 것이다. 마찬가지로, 제1 시각 이후 웹페이지의 이미지가 변경되지 않았다면, 제1 이미지 파일의 해시값과 제3 이미지 파일의 해시값은 동일할 것이다. 그러나, 제1 시각 이후 웹페이지의 이미지가 변경되었다면, 제1 이미지 파일의 해시값과 제3 이미지 파일의 해시값은 상이할 것이다.
상기 제1 HTML 파일의 해시값과 상기 제3 HTML 파일의 해시값이 동일하지 않거나, 상기 제1 이미지 파일의 해시값과 상기 제3 이미지 파일의 해시값이 동일하지 않은 경우, 즉 제1 시각 이후 웹페이지의 내용이 변경되었다면, 제1 사용자에게 해시값 불일치를 알리는 단계(S1006)가 수행될 수 있다.
추가 실시예에서, 상기 제1 HTML 파일의 해시값과 상기 제3 HTML 파일의 해시값이 동일하지 않거나, 상기 제1 이미지 파일의 해시값과 상기 제3 이미지 파일의 해시값이 동일하지 않은 경우, 외부 파일 저장소에서 제1 HTML 파일과 제1 이미지 파일을 가져와서 임시 저장된 제3 HTML 파일과 제3 이미지 파일과 비교하고, 이러한 비교 결과를 제1 사용자에게 디스플레이하는 단계가 추가로 수행될 수 있다.
그러나, 이미지 파일들의 해시값이 일치하고 HTML 파일들의 해시값이 일치한다면, 즉 제1 시각 이후 웹페이지의 내용이 변경되지 않았다면, 제1 사용자에게 알리지 않고 단계 S1001로 되돌아갈 수 있다. 다른 실시예에서, 이미지 파일들의 해시값이 일치하고 HTML 파일들의 해시값이 일치하는 경우, 제1 사용자에게 해시값들이 일치한다는 사실을 알릴 수 있다.
상기 단계 S1001 내지 단계 S1005는 주기적으로(예를 들어, 1일, 1주일, 한달 등) 수행될 수 있다. 일 실시예에서, 상기 단계 S1001 내지 단계 S1005는 상기 제1 HTML 파일의 해시값과 상기 제3 HTML 파일의 해시값이 동일하지 않거나, 상기 제1 이미지 파일의 해시값과 상기 제3 이미지 파일의 해시값이 동일하지 않을 때까지 주기적으로 수행될 수 있다. 상기 단계 S1001 내지 단계 S1005의 반복 주기는 제1 사용자 또는 관리 서버에 의해 미리 결정될 수 있다. 주기적으로 웹페이지 검증 방법이 수행된다면, 서비스 사용자가 계약시 확인한 웹페이지가 변경될 경우, 사용자가 변경 사실을 알 수 있게 된다.
도 12는 본 개시의 실시예들에 따라 상태 변경 해시값을 이용하여 검증 상태값을 변경하는 방법의 흐름도이다. 이하 실시예들간 중복되는 설명은 생략하기로 한다.
도 4의 단계 S405와 관련하여 전술한 바와 같이, 전체 해시값에 랜덤의 숫자를 더해 솔팅(salting)한 후 해싱하여 상태 변경 해시값을 생성하는 단계가 더 수행될 수 있다. 제1 트랜잭션 내에 포함된 검증 상태값은 검증이 가능한지 여부를 나타낼 수 있다. 예를 들어, 검증 상태값이 1인 경우, 검증이 가능함을 나타내고, 검증 상태값이 0인 경우, 검증이 불가능함을 나타낼 수 있다. 검증 상태값의 초기값은 1일 수 있다. 상태 변경 해시값은 이러한 검증 상태값을 변경하는데 사용될 수 있다. 예를 들어, 웹페이지의 검증이 더 이상 필요하지 않을 때, 검증 상태값 1을 0으로 변경할 수 있다. 반대로, 웹페이지의 검증이 가능하게 하기 위해, 검증 상태값 0을 1로 변경할 수 있다. 웹페이지의 검증이 더 이상 필요하지 않을 때 제1 사용자가 검증 상태값을 변경할 수 있도록, 도 4 및 도 5의 단계 S408에서, 관리 서버(10)는 전체 해시값과 함께 상태 변경 해시값을 제1 사용자에게 전송할 수 있다.
이하, 도 12의 검증 상태값 변경 방법에 대한 설명은 제1 사용자가 관리 서버로부터 전체 해시값과 상태 변경 해시값을 수신함을 전제로 한다.
먼저, 제1 사용자로부터 전체 해시값 및 상태 변경 해시값을 수신하는 단계(S1201)가 수행될 수 있다.
그 다음, 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 상기 제1 트랜잭션 데이터 내 상태 변경 해시값과 상기 제1 사용자로부터 수신된 상태 변경 해시값을 비교하는 단계(S1202)가 수행될 수 있다.
상기 제1 트랜잭션 데이터 내 상태 변경 해시값과 상기 제1 사용자로부터 수신된 상태 변경 해시값이 일치하지 않다면, 제1 사용자에게 현재 검증 상태값과 함께 상태 변경 해시값 불일치 사실을 알리는 단계(S1204)가 수행될 수 있다.
상기 제1 트랜잭션 데이터 내 상태 변경 해시값과 상기 제1 사용자로부터 수신된 상태 변경 해시값이 일치한다면, 검증 상태값을 변경하는 단계(S1203)가 수행될 수 있다. 예를 들어, 검증 상태값이 1인 경우, 검증 상태값을 0으로 변경할 수 있다. 반대로, 검증 상태값이 0인 경우, 1로 변경할 수 있다.
그 다음, 제1 사용자에게 변경된 검증 상태값과 함께 검증 상태를 변경한 사실을 알리는 단계(S1204)가 수행될 수 있다.
도 13은 도 3의 시스템에서 도 12의 검증 상태 변경 방법이 수행되는 과정을 개략적으로 도시한다. 이하 실시예들간 중복되는 설명은 생략하기로 한다.
먼저, 제1 사용자(20)는 관리 서버(10)에게 전체 해시값 및 상태 변경 해시값을 전송할 수 있다(단계 S1201). 예를 들어, 제1 사용자(20)는 웹페이지의 검증이 더 이상 필요하지 않을 때, 또는 웹페이지의 검증이 가능하게 하고 싶을 때, 전체 해시값 및 상태 변경 해시값을 전송할 수 있다.
제1 사용자(20)로부터 전체 해시값 및 상태 변경 해시값을 수신하는 것에 응답하여, 관리 서버(10)는 블록체인 네트워크(40)에 전체 해시값과 상태 변경 해시값을 전달할 수 있다(단계 S1202a).
블록체인 네트워크(40)는 관리 서버(10)로부터 수신된 전체 해시값에 대응하는 상기 제1 트랜잭션 데이터를 조회하며, 제1 트랜잭션 데이터 내 상태 변경 해시값과 상기 관리 서버(10)로부터 수신된 상태 변경 해시값을 비교할 수 있다(단계 S1202b).
상기 제1 트랜잭션 데이터 내 상태 변경 해시값과 상기 관리 서버(10)로부터 수신된 상태 변경 해시값이 일치하지 않다면, 상기 블록체인 네트워크(40)는 관리 서버(10)에게 현재 검증 상태값과 함께 상태 변경 해시값 불일치 사실을 알릴 수 있으며(단계 S1204a), 관리 서버(10)는 이러한 검증 상태값 변경 결과 및/또는 해시값 불일치 사실을 제1 사용자(20)에게 알릴 수 있다(단계 S1204b).
상기 제1 트랜잭션 데이터 내 상태 변경 해시값과 상기 관리 서버(10)로부터 수신된 상태 변경 해시값이 일치한다면, 상기 블록체인 네트워크(40)는 검증 상태값을 변경할 수 있다(단계 S1203).
그 다음, 상기 블록체인 네트워크(40)는 관리 서버(10)에게 변경된 검증 상태값과 함께 검증 상태를 변경한 사실을 알릴 수 있으며(단계 S1204a), 관리 서버(10)는 이러한 검증 상태값 변경 결과를 제1 사용자(20)에게 알릴 수 있다(단계 S1204b).
본 개시서의 실시예들에 따른 웹페이지 저장, 비교 및 검증 방법에 따르면, 웹페이지를 렌더링한 이미지와 원본 HTML 파일은 외부 파일 저장소에 저장되고, 각 파일의 해시값과 파일 경로는 트랜잭션에 저장되어 블록체인에 보관된다. 전술한 바와 같이, 블록체인에 보관된 트랜잭션 데이터 중에서, 검증 상태값과 카운트(즉, 검증 횟수)만 업데이트 가능하다. 저장된 트랜잭션 데이터 내 해시값들, 타임스탬프, 저장 경로 등은 변경 및/또는 업데이트될 수 없어, 트랜잭션 데이터의 위변조를 원천적으로 차단하였다. 검증 상태값과 카운트 외의 트랜잭션 데이터를 수정하기 위해서는 블록체인 네트워크의 노드의 접근 권한이 필요하며, 블록체인 시스템의 인증서를 획득해야 하므로, 트랜잭션 데이터를 임의로 변경 및/또는 업데이트하는 것은 불가능하다.
본 개시서의 실시예들에 따르면, 웹에서의 거래시 거래 당사자들이 신뢰할 수 있는 시스템이 구축될 수 있다. 이러한 시스템은 웹페이지를 시스템에 저장한 후, 서비스 사용자, 서비스 사용자, 제3자에게 URL, 전체 해시값, 이미지 파일, HTML 파일 등을 전송할 수 있으며, 이로써, 계약 당사자들뿐만 아니라 제3자는 계약 시점의 웹페이지를 확인할 수 있고, 추후 분쟁이 생길 시 전체 해시값만으로 웹페이지를 비교할 수 있다. 이 모든 과정에서 시스템은 회원가입이나 인증 절차없이 사용 가능하므로 개인정보보호에 이점이 있다.

Claims (12)

  1. 블록체인 네트워크를 이용하여 웹페이지를 저장하는 방법으로서,
    제1 시각에 제1 사용자로부터 상기 제1 사용자가 저장하고자 하는 웹페이지의 URL을 수신하는 단계;
    상기 제1 사용자로부터 수신한 URL에 대응하는 웹페이지의 제1 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제1 이미지 파일을 생성하는 단계;
    상기 제1 HTML 파일 및 상기 제1 이미지 파일을 제1 타임스탬프와 함께 임시 저장하는 단계;
    상기 제1 HTML 파일 및 상기 제1 이미지 파일 각각을 해싱하고, 전체 해시값을 생성하는 단계;
    상기 전체 해시값을 이용하여 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 외부 파일 저장소에 저장하는 단계; 및
    상기 제1 HTML 파일의 해시값, 상기 제1 이미지 파일의 해시값, 파일 저장 경로, 상기 제1 타임스탬프, 상기 URL 및 상기 전체 해시값을 포함하는 제1 트랜잭션 데이터를 상기 블록체인 네트워크에 저장하는 단계를 포함하는, 방법.
  2. 청구항 1에 있어서,
    상기 제1 HTML 파일 및 상기 제1 이미지 파일은 상기 블록체인 네트워크에 저장되지 않는, 방법.
  3. 청구항 1에 있어서,
    상기 전체 해시값은 상기 제1 HTML 파일의 해시값, 상기 제1 이미지 파일의 해시값, 상기 파일 저장 경로, 상기 제1 타임스탬프 및 상기 URL과 함께 트리(tree)를 이용하여 생성되는, 방법.
  4. 청구항 1에 있어서,
    상기 제1 시각 이후의 제2 시각에, 제2 사용자로부터 상기 전체 해시값을 수신하는 단계;
    상기 제2 사용자로부터 전체 해시값을 수신한 후, 상기 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계; 및
    상기 수신된 제1 트랜잭션 데이터에 포함된 파일 저장 경로 및 전체 해시값을 이용하여 상기 외부 파일 저장소로부터 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 가져오고, 가져온 제1 HTML 파일 및 제1 이미지 파일을 상기 제2 사용자에게 디스플레이하는 단계를 더 포함하는, 방법.
  5. 청구항 1에 있어서,
    상기 제1 시각 이후의 제2 시각에, 제2 사용자로부터 상기 전체 해시값을 수신하는 단계;
    상기 제2 사용자로부터 전체 해시값을 수신한 후, 상기 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계;
    상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하면, 상기 수신된 제1 트랜잭션 데이터의 URL에 대응하는 웹페이지의 제2 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제2 이미지 파일을 생성하는 단계;
    상기 제2 HTML 파일 및 상기 제2 이미지 파일을 제2 타임스탬프와 함께 임시 저장하는 단계;
    상기 제2 HTML 파일 및 상기 제2 이미지 파일 각각을 해싱하는 단계;
    상기 제2 HTML 파일의 해시값 및 상기 제2 이미지 파일의 해시값을 각각 상기 수신된 제1 트랜잭션 데이터의 상기 제1 HTML 파일의 해시값 및 상기 제1 이미지 파일의 해시값과 비교하는 단계; 및
    상기 해시값들의 비교 결과를 상기 제2 사용자에게 디스플레이하는 단계를 더 포함하는, 방법.
  6. 청구항 5에 있어서,
    상기 수신된 제1 트랜잭션 데이터에 포함된 파일 저장 경로 및 전체 해시값을 이용하여 상기 외부 파일 저장소로부터 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 가져오는 단계;
    상기 외부 파일 저장소로부터 가져온 제1 HTML 파일 및 제1 이미지 파일을 상기 제2 HTML 파일 및 상기 제2 이미지 파일과 비교하는 단계; 및
    상기 HTML 파일들 및 상기 이미지 파일들 간의 비교 결과를 상기 제2 사용자에게 디스플레이하는 단계를 더 포함하며,
    상기 제1 이미지 파일과 상기 제2 이미지 파일 간의 비교는 딥러딩 모델을 통해 수행되는, 방법.
  7. 청구항 5에 있어서,
    상기 전체 해시값은 상기 제1 HTML 파일의 해시값, 상기 제1 이미지 파일의 해시값, 상기 파일 저장 경로, 상기 제1 타임스탬프, 상기 URL 및 검증 상태값과 함께 트리(tree)를 이용하여 생성되며,
    상기 블록체인에 저장되는 제1 트랜잭션 데이터는 상기 검증 상태값을 더 포함하고,
    상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계 전에, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터 내 검증 상태값이 먼저 수신되는데,
    상기 검증 상태값이 TRUE라면, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계가 수행되며,
    상기 검증 상태값이 FALSE라면, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계가 수행되지 않는, 방법.
  8. 청구항 7에 있어서,
    상기 전체 해시값을 생성한 후, 상기 전체 해시값에 랜덤한 숫자를 솔팅(salting)한 후 해싱하여 상태 변경 해시값을 생성하는 단계; 및
    상기 제1 사용자에게 상기 전체 해시값 및 상태 변경 해시값을 전송하는 단계를 더 포함하며,
    상기 상태 변경 해시값은 상기 검증 상태값을 변경하는데 사용되는, 방법.
  9. 청구항 4에 있어서,
    상기 제1 사용자 및 상기 제2 사용자는 동일하거나 서로 다른 사용자이며, 상기 웹페이지를 통해 서비스를 제공하는 사람 또는 상기 웹페이지 내의 서비스를 이용하는 사람 또는 외부 검증자인, 방법.
  10. 청구항 1에 있어서,
    상기 제1 HTML 파일 및 상기 제1 이미지 파일을 해싱하기 전에, 상기 제1 사용자에게 상기 제1 HTML 파일 및 상기 제1 이미지 파일을 디스플레이하고, 상기 HTML 파일 및 상기 이미지 파일에 대한 확인(confirmation)을 요청하는 단계를 더 포함하는, 방법.
  11. 청구항 1에 있어서,
    상기 제1 시각 이후에 :
    상기 URL에 대응하는 웹페이지의 제3 HTML 파일을 다운로드하고, 헤드리스 브라우저를 통해 상기 웹페이지를 렌더링하여 제3 이미지 파일을 생성하는 단계;
    상기 제3 HTML 파일 및 상기 제3 이미지 파일을 제3 타임스탬프와 함께 임시 저장하는 단계;
    상기 제3 HTML 파일 및 상기 제3 이미지 파일 각각을 해싱하는 단계;
    상기 블록체인 네트워크에서 상기 전체 해시값에 대응하는 제1 트랜잭션 데이터를 조회하고, 상기 블록체인 네트워크로부터 상기 제1 트랜잭션 데이터를 수신하는 단계; 및
    상기 제3 HTML 파일의 해시값 및 상기 제3 이미지 파일의 해시값을 각각 상기 제1 트랜잭션 데이터 내의 상기 제1 HTML 파일의 해시값 및 상기 제1 이미지 파일의 해시값과 비교하는 단계; 및
    상기 제1 HTML 파일의 해시값과 상기 제3 HTML 파일의 해시값이 동일하지 않거나, 상기 제1 이미지 파일의 해시값과 상기 제3 이미지 파일의 해시값이 동일하지 않은 경우, 상기 제1 사용자에게 해시값 불일치를 알리는 단계
    를 주기적으로 반복하는 단계를 포함하는, 방법.
  12. 블록체인을 이용하여 웹페이지를 저장하는 시스템으로서,
    청구항 1에 따른 방법을 수행하는 관리 서버;
    상기 블록체인 네트워크; 및
    상기 외부 파일 저장소를 포함하는, 시스템.
PCT/KR2021/001179 2020-12-18 2021-01-29 블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템 WO2022131441A1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
KR10-2020-0179076 2020-12-18
KR1020200179076A KR102238784B1 (ko) 2020-12-18 2020-12-18 블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템

Publications (1)

Publication Number Publication Date
WO2022131441A1 true WO2022131441A1 (ko) 2022-06-23

Family

ID=75743465

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/KR2021/001179 WO2022131441A1 (ko) 2020-12-18 2021-01-29 블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템

Country Status (2)

Country Link
KR (2) KR102238784B1 (ko)
WO (1) WO2022131441A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116781427A (zh) * 2023-08-23 2023-09-19 国网江西省电力有限公司信息通信分公司 一种云存储数据完整性验证方法

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102539735B1 (ko) * 2021-09-28 2023-06-02 충남대학교산학협력단 디지털 증거 수집 장치 및 방법
KR102391187B1 (ko) * 2021-11-24 2022-04-28 엘에스웨어(주) 피드백 정보 블록체인 기록 방법 및 시스템
KR102462101B1 (ko) * 2022-09-27 2022-11-02 곽태영 인공지능을 기반으로 한 웹 사이트 분석 시스템 및 그 방법

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101761513B1 (ko) * 2016-06-13 2017-07-26 한남대학교 산학협력단 이미지를 이용한 위변조 웹사이트 탐지 시스템 및 탐지방법
KR101892537B1 (ko) * 2017-03-10 2018-08-29 현대카드 주식회사 블록체인 기반의 홈페이지 위변조 탐지 방법 및 시스템
KR20190099816A (ko) * 2018-02-20 2019-08-28 주식회사 디로그 웹 페이지 위변조 탐지 방법 및 시스템
KR102032780B1 (ko) * 2018-05-15 2019-10-17 주식회사유니타스(Unitas Co.,Ltd) 출처 증명을 위한 블록체인 기반의 국가위험 지표 및 항목 관리 시스템
KR20200101512A (ko) * 2019-01-30 2020-08-28 펜타시큐리티시스템 주식회사 블록체인을 이용한 빅데이터 공유 방법 및 장치

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101761513B1 (ko) * 2016-06-13 2017-07-26 한남대학교 산학협력단 이미지를 이용한 위변조 웹사이트 탐지 시스템 및 탐지방법
KR101892537B1 (ko) * 2017-03-10 2018-08-29 현대카드 주식회사 블록체인 기반의 홈페이지 위변조 탐지 방법 및 시스템
KR20190099816A (ko) * 2018-02-20 2019-08-28 주식회사 디로그 웹 페이지 위변조 탐지 방법 및 시스템
KR102032780B1 (ko) * 2018-05-15 2019-10-17 주식회사유니타스(Unitas Co.,Ltd) 출처 증명을 위한 블록체인 기반의 국가위험 지표 및 항목 관리 시스템
KR20200101512A (ko) * 2019-01-30 2020-08-28 펜타시큐리티시스템 주식회사 블록체인을 이용한 빅데이터 공유 방법 및 장치

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116781427A (zh) * 2023-08-23 2023-09-19 国网江西省电力有限公司信息通信分公司 一种云存储数据完整性验证方法
CN116781427B (zh) * 2023-08-23 2023-11-03 国网江西省电力有限公司信息通信分公司 一种云存储数据完整性验证方法

Also Published As

Publication number Publication date
KR102238784B1 (ko) 2021-04-16
KR20220088267A (ko) 2022-06-27

Similar Documents

Publication Publication Date Title
WO2022131441A1 (ko) 블록체인 네트워크를 이용하여 웹페이지를 저장 및 검증하는 방법 및 시스템
EP3685334B1 (en) Improving integrity of communications between blockchain networks and external data sources
CA3058013C (en) Managing sensitive data elements in a blockchain network
US11265322B2 (en) Data isolation in blockchain networks
WO2017022917A1 (ko) 블록체인을 기반으로 하는 공인인증서 발급시스템
WO2017104899A1 (ko) 블록체인을 기반으로 하는 공인인증서 인증시스템 및 이를 이용한 인증방법
WO2021002692A1 (en) Method for providing virtual asset service based on decentralized identifier and virtual asset service providing server using them
CN103051600B (zh) 文档访问控制方法和系统
WO2020022599A1 (ko) 블록체인 네트워크 상에서 그룹키 기반의 이중 서명 트랜잭션 구조를 구성하는 노드 그룹 관리 장치 및 컴퓨팅 장치
WO2017171165A1 (ko) 블록체인을 기반으로 하는 공인인증서 발급시스템과 이를 이용한 블록체인을 기반으로 하는 공인인증서 발급방법
WO2018030707A1 (ko) 인증 시스템 및 방법과 이를 수행하기 위한 사용자 단말, 인증 서버 및 서비스 서버
WO2017146333A1 (ko) 블록체인을 기반으로 하는 금융기관 제증명서류 위변조 검증시스템 및 방법
WO2020022760A1 (ko) 시스템에 포함되는 노드들에 대하여 그룹을 운영하는 분산 네트워크 시스템
WO2016126090A1 (ko) 스마트폰을 사용한 디지털 파일 위변조 입증 시스템 및 방법과 스마트폰 화면 캡쳐 이미지 인증 기능을 가지는 스마트폰 및 스마트폰 화면 캡쳐 이미지 인증 방법
WO2019132272A1 (ko) 블록체인 기반의 서비스로서의 아이디
WO2018207975A1 (ko) 블록체인 시스템 및 블록체인 생성 방법
WO2022107971A1 (ko) 프라이버시 블록체인 플랫폼 기반 물류 방법 및 물류 시스템
WO2021006506A1 (ko) 블록 체인을 이용한 식품 유통 시스템, 방법 및 프로그램
WO2020189800A1 (ko) 블록체인에서 생성된 데이터를 인증하는 방법 및 시스템
WO2020027408A1 (ko) 암호화폐 교환을 위한 트랜잭션을 매칭하는 전자 장치 및 방법
WO2020130331A1 (ko) 블록체인에서 노드들간 블록 및 전자 문서를 공유 및 검증하는 방법
WO2020222475A1 (ko) 조회 이력 정보와 문서 인증 정보에 의하여 인증 기능이 강화된 문서 인증 방법 및 문서 인증 시스템
EP4055775A1 (en) Data block modification
WO2020209664A2 (ko) 디지털 컨텐츠의 이용 권리 증서를 유통시키는 방법, 및 상기 방법을 실행하기 위하여 매체에 저장된 컴퓨터 프로그램
WO2020032351A1 (ko) 익명 디지털 아이덴티티 수립 방법

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: 21906746

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 18561462

Country of ref document: US

122 Ep: pct application non-entry in european phase

Ref document number: 21906746

Country of ref document: EP

Kind code of ref document: A1