KR20200065470A - Method for upgradeable smart contract - Google Patents

Method for upgradeable smart contract Download PDF

Info

Publication number
KR20200065470A
KR20200065470A KR1020180151987A KR20180151987A KR20200065470A KR 20200065470 A KR20200065470 A KR 20200065470A KR 1020180151987 A KR1020180151987 A KR 1020180151987A KR 20180151987 A KR20180151987 A KR 20180151987A KR 20200065470 A KR20200065470 A KR 20200065470A
Authority
KR
South Korea
Prior art keywords
contract
logic
upgrade
voting
new
Prior art date
Application number
KR1020180151987A
Other languages
Korean (ko)
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 고려대학교 산학협력단
Priority to KR1020180151987A priority Critical patent/KR20200065470A/en
Publication of KR20200065470A publication Critical patent/KR20200065470A/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q30/00Commerce
    • G06Q30/06Buying, selling or leasing transactions
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators

Abstract

The present invention relates to a method for an upgradeable smart contract. The method for an upgradeable smart contract which performs an upgrade of a logic contract based on Ethereum, comprises: a step a) of dividing the smart contract into a data contract, logic contract, voting contract, and proxy contract; a step b) of arranging and disclosing, when it is requested to upgrade the logic contract, at least one logic contract candidate on the network through a user terminal; a step c) of conducting a voting for a new logic contract candidate through at least one user terminal, and when it reaches the preset time for ending the voting, determining a new logic contract for upgrade based on the winning vote information; and a step d) of changing the previous logic contract into a new logic contract after an electing point of time of the new logic contract or after a preset grace period, and finishing the logic upgrade.

Description

업그레이드 가능한 스마트 컨트랙트 방법{METHOD FOR UPGRADEABLE SMART CONTRACT}Upgradeable smart contract method {METHOD FOR UPGRADEABLE SMART CONTRACT}

본 발명은 사용자들간의 의사가 반영된 투표 결과에 의해 스마트 컨트랙트의 로직 업그레이드를 수행할 수 있는 업그레이드 가능한 스마트 컨트랙트 방법에 관한 것이다.The present invention relates to an upgradeable smart contract method capable of performing a logic upgrade of a smart contract by a vote result reflecting the intention of users.

스마트 컨트랙트(smart contract)는 블록체인 기반으로 금융거래, 부동산 계약, 공증 등 다양한 형태의 계약을 체결하고 이행하는 것으로서, 블록체인 2.0이라고도 한다. 또한, 이더리움(Ethereum)은 블록체인 기술을 기반으로 스마트 계약 기능을 구현하기 위한 분산 컴퓨팅 플랫폼이다. 이더리움이 제공하는 이더(Ether)는 비트코인과 마찬가지로 암호화폐의 일종으로 거래되고 있다. A smart contract is a blockchain-based contract that executes and executes various types of contracts such as financial transactions, real estate contracts, and notarization, and is also called blockchain 2.0. In addition, Ethereum is a distributed computing platform for implementing smart contract functions based on blockchain technology. Ether provided by Ethereum is traded as a kind of cryptocurrency like Bitcoin.

이더리움의 큰 특징중의 하나가 새로운 스마트 컨트랙트가 블록체인에 배포되면 해당 컨트렉트는 영구적으로 블록체인에 포함되어 변경되거나 지워지지 않는다는 점이다. 이러한 점이 이더리움의 탈중앙화된 데이터의 신뢰성을 나타내는 큰 이점이 될 수 있다. 하지만 이더리움에 서비스를 실행시키려는 개발자에게 있어서는 기능을 추가하거나 버그를 패치할 수 없는 제약이 된다.One of the great features of Ethereum is that when a new smart contract is distributed on the blockchain, the contract is permanently included in the blockchain and is not changed or erased. This can be a great advantage of the reliability of Ethereum's decentralized data. However, for developers who want to run services on Ethereum, it is a limitation that they cannot add features or patch bugs.

스마트 컨트랙트가 블록체인에 배치된 이후에 함수(logic)를 이용하여 컨트랙트의 데이터 접근 및 변경은 가능하지만, 컨트랙트의 함수 내용은 변경이 완전히 불가능하다. 이 특성 덕분에 스마트 컨트랙트에서는 신뢰할 수 없는 사용자들이 참여하여도 중재자 없이 동일한 데이터로 동일 로직을 실행할 수 있다. 즉, 탈중앙화 어플리케이션(decentralized application) 구현에 적합하지만, 함수 변경이 필요한 경우, 기존 컨트랙트를 폐기하고, 새로운 컨트랙트를 배치한 후 기존 데이터를 수동으로 다시 입력하는 방법 밖에 없다.After the smart contract is placed on the blockchain, it is possible to access and change the data of the contract using a function, but the function content of the contract cannot be completely changed. This allows smart contracts to execute the same logic with the same data without an intermediary, even if untrusted users participate. That is, it is suitable for implementing a decentralized application, but if a function change is required, there is only a method of discarding the existing contract, placing a new contract, and manually re-entering the existing data.

업그레이드 가능한 스마트 컨트랙트는 다양한 방법으로 구현이 가능하지만, 데이터(data)와 로직(logic)을 각각 다른 컨트랙트로 분리하여 관리하는 것이다. 예를 들어, ERC20 토큰들은 컨트랙트 안에 토큰 이름, 발행량, 보유 토큰 수 등의 데이터(data)들과, 트랜스퍼(transfer), 어푸르브(approve) 등과 같이 토큰 전송에 관여하는 함수(logic)들이 모두 같은 컨트랙트 안에 들어있다. Upgradeable smart contracts can be implemented in various ways, but data and logic are managed separately by separate contracts. For example, ERC20 tokens are all data such as token name, issue volume, and number of tokens in the contract, and functions related to token transfer, such as transfer and approve. It is in the same contract.

그러나, 컨트랙트 내에서 함수(logic)만을 분리시킨다면, 이후 어떤 문제를 발견했을 때 문제가 발생한 함수(logic)만을 수정하여 새로 배포하는 방식으로 간단히 문제를 해결할 수 있게 된다.However, if only the logic is separated within the contract, the problem can be solved simply by modifying only the logic that caused the problem and then deploying it newly.

업그레이드 가능한 스마트 컨트랙트는 함수 변경을 위해 새로운 함수를 배치할 때, 기존 데이터를 새로운 로직에 자동으로 연결(승계)하게 해주는 방법이 필요하다. 이 방법에서는 데이터의 입출력 처리 함수와 같은 업그레이드가 필요 없는 함수와, 업그레이드가 자주 일어날 만한 일반 함수를 복수개의 컨트랙트들로 분리한다. 일반 로직 컨트랙트들의 주소(일종의 포인터)는 프록시 패턴이나 ENS(Ethereum Name Service)와 같은 주소 해석기(resolver)를 이용하여 관리한다. 함수를 업그레이드하기 위해 새로운 함수가 담긴 컨트랙트를 배치하면, 나머지 컨트랙트들은 자동으로 새로운 컨트랙트의 주소로 변경하게 된다.Upgradeable smart contracts need a way to automatically link (success) existing data to new logic when deploying new functions to change functions. In this method, a function that does not require an upgrade, such as an input/output processing function of data, and a general function that frequently upgrades are separated into a plurality of contracts. Addresses of common logic contracts (a type of pointer) are managed using an address resolver such as a proxy pattern or Ethereum Name Service (ENS). When you deploy a contract containing a new function to upgrade the function, the remaining contracts are automatically changed to the address of the new contract.

종래의 업그레이드가 가능한 스마트 컨트랙트 방법은 로직 업그레이드를 스마트 컨트랙트의 운영자(혹은 소유자)에 의해 수행되는데, 이는 탈중앙화 어플리케이션 구현에 부적합할 뿐만 아니라, 함수 업그레이드의 방향이 중앙에 의존적이고, 스마트 컨트랙트가 사유화될 여지가 있다는 문제점이 있다. The conventional upgradeable smart contract method is performed by the operator (or owner) of the smart contract to perform logic upgrade, which is not suitable for implementing a decentralized application, but also the direction of function upgrade is centrally dependent, and the smart contract is privatized There is a problem that there is room for it.

또한, 스마트 컨트랙트는 암호화폐와 같은 디지털 자산이나 중요한 데이터를 보관하는데 많이 쓰이는데, 기존의 업그레이드 가능한 스마트 컨트랙트 방법에서는 운영자가 이를 노리는 악의적인 함수 업그레이드를 할 여지가 있다는 문제점이 있다. In addition, smart contracts are often used to store digital assets such as cryptocurrencies or important data. In the existing upgradeable smart contract method, there is a problem that the operator has room to perform malicious function upgrades aimed at this.

이를 해결하기 위해서, 업그레이드가 가능한 스마트 컨트랙트 방법은 운영자의 단독 결정에 의해서가 아닌 사용자들의 의견과 의사가 반영되는 함수 업그레이드 방법이 필요하다. To solve this, a smart contract method that can be upgraded requires a function upgrade method that reflects the opinions and intentions of users, not by the operator's sole decision.

본 발명은 전술한 문제점을 해결하기 위하여, 본 발명의 일 실시예에 따라 스마트 컨트랙트의 로직 업그레이드 수행시 중앙 제어, 즉 운영자의 단독 결정에 의해서 수행되는 것이 아니라 이해 관계자들의 합의를 통해 결정 및 변경할 수 있도록 하는 업그레이드 가능한 스마트 컨트랙트 방법을 제공하는 것에 목적이 있다.In order to solve the above-described problems, the present invention is not performed by central control, that is, by an operator's sole decision when performing a logic upgrade of a smart contract according to an embodiment of the present invention, but can be determined and changed through agreement of stakeholders. The aim is to provide an upgradable smart contract method to enable.

다만, 본 실시예가 이루고자 하는 기술적 과제는 상기된 바와 같은 기술적 과제로 한정되지 않으며, 또 다른 기술적 과제들이 존재할 수 있다.However, the technical problem to be achieved by the present embodiment is not limited to the technical problem as described above, and other technical problems may exist.

상기한 기술적 과제를 달성하기 위한 기술적 수단으로서 본 발명의 일 실시예에 따른 업그레이드 가능한 스마트 컨트랙트 방법은, 이더리움에 기반하여 로직 컨트랙트의 업그레이드를 수행하는 업그레이드 가능한 스마트 컨트랙트 방법에 있어서, a) 상기 스마트 컨트랙트를 데이터 컨트랙트, 로직 컨트랙트, 투표 컨트랙트 및 프록시 컨트랙트로 분리하는 단계; b) 상기 로직 컨트랙트의 업그레이드 요청시, 네트워크 상에 사용자 단말을 통해 적어도 하나 이상의 로직 컨트랙트 후보를 배치하여 공개하는 단계; c) 적어도 하나 이상의 사용자 단말을 통해 새로운 로직 컨트랙트 후보에 대한 투표가 진행되고, 기설정된 투표 마감시간에 도달하면 득표 정보에 기초하여 업그레이드를 위한 새로운 로직 컨트랙트를 결정하는 단계; 및 d) 상기 새로운 로직 컨트랙트의 선출 시점 또는 기설정된 유예기간 이후에 이전의 로직 턴트랙트에서 새로운 로직 컨트랙트로 변경되어 로직 업그레이드를 온료하는 단계를 포함하는 것이다.The upgradeable smart contract method according to an embodiment of the present invention as a technical means for achieving the above technical problem is in the upgradeable smart contract method for performing an upgrade of a logic contract based on Ethereum, a) the smart Separating the contract into a data contract, a logic contract, a voting contract and a proxy contract; b) when requesting an upgrade of the logic contract, placing and publishing at least one logic contract candidate through a user terminal on the network; c) voting for a new logic contract candidate through at least one user terminal and determining a new logic contract for upgrade based on the vote information when the predetermined voting deadline is reached; And d) changing from a previous logic turn contract to a new logic contract after the election time of the new logic contract or a predetermined grace period, and completing the logic upgrade.

전술한 본 발명의 과제 해결 수단에 의하면, 스마트 컨트랙트의 로직 업그레이드가 중앙 제어(운영자)에 의해 결정되는 것이 아니라 스마트 컨트랙트 이해관계자, 즉 사용자와 운영자들의 의사가 반영된 투표의 결과에 의해 이루어도록 함으로써 로직 업그레이드가 가능할 뿐만 아니라 스마트 컨트랙트의 탈중앙성 특징을 유지할 수 있다. According to the above-described problem solving means of the present invention, the logic of the smart contract is not determined by the central control (operator), but is made by the result of the voting reflecting the intention of the smart contract stakeholders, that is, users and operators. Not only can it be upgraded, it can also maintain the decentralized nature of smart contracts.

또한, 본 발명은 처음부터 스마트 컨트랙트의 업그레이드를 설정할 필요 없이 필요시 이해관계자들의 합의를 통해 결정 및 변경할 수 있고, 운영자에 의한 스마트 컨트랙트의 사유화나 악의적인 로직 업그레이드를 방지할 수 있다.In addition, the present invention can be determined and changed through consensus among stakeholders if necessary without setting up an upgrade of the smart contract from the beginning, and it is possible to prevent privatization of the smart contract or malicious logic upgrade by the operator.

도 1은 일반적인 스마트 컨트랙트 방법을 설명하는 도면이다.
도 2는 본 발명의 일 실시예에 따른 업그레이드 가능한 스마트 컨트랙트 방법을 구현하는 시스템 구조를 나타낸 도면이다.
도 3은 도 2의 스마트 콘트랙트의 세부 구성을 설명하는 도면이다.
1 is a view for explaining a general smart contract method.
2 is a view showing a system structure for implementing an upgradeable smart contract method according to an embodiment of the present invention.
FIG. 3 is a diagram illustrating a detailed configuration of the smart contract of FIG. 2.

아래에서는 첨부한 도면을 참조하여 본 발명이 속하는 기술 분야에서 통상의 지식을 가진 자가 용이하게 실시할 수 있도록 본 발명의 실시예를 상세히 설명한다. 그러나 본 발명은 여러 가지 상이한 형태로 구현될 수 있으며 여기에서 설명하는 실시예에 한정되지 않는다. 그리고 도면에서 본 발명을 명확하게 설명하기 위해서 설명과 관계없는 부분은 생략하였으며, 명세서 전체를 통하여 유사한 부분에 대해서는 유사한 도면 부호를 붙였다.Hereinafter, embodiments of the present invention will be described in detail with reference to the accompanying drawings so that those skilled in the art to which the present invention pertains may easily practice. However, the present invention can be implemented in many different forms and is not limited to the embodiments described herein. In addition, in order to clearly describe the present invention in the drawings, parts irrelevant to the description are omitted, and like reference numerals are assigned to similar parts throughout the specification.

명세서 전체에서, 어떤 부분이 다른 부분과 "연결"되어 있다고 할 때, 이는 "직접적으로 연결"되어 있는 경우뿐 아니라, 그 중간에 다른 소자를 사이에 두고 "전기적으로 연결"되어 있는 경우도 포함한다. 또한 어떤 부분이 어떤 구성요소를 "포함"한다고 할 때, 이는 특별히 반대되는 기재가 없는 한 다른 구성요소를 제외하는 것이 아니라 다른 구성요소를 더 포함할 수 있는 것을 의미하며, 하나 또는 그 이상의 다른 특징이나 숫자, 단계, 동작, 구성요소, 부분품 또는 이들을 조합한 것들의 존재 또는 부가 가능성을 미리 배제하지 않는 것으로 이해되어야 한다.Throughout the specification, when a part is "connected" to another part, this includes not only "directly connected" but also "electrically connected" with another element in between. . Also, when a part is said to "include" a certain component, it means that the component may further include other components, not exclude other components, unless specifically stated otherwise. However, it should be understood that the existence or addition possibilities of numbers, steps, actions, components, parts or combinations thereof are not excluded in advance.

이하의 실시예는 본 발명의 이해를 돕기 위한 상세한 설명이며, 본 발명의 권리 범위를 제한하는 것이 아니다. 따라서 본 발명과 동일한 기능을 수행하는 동일 범위의 발명 역시 본 발명의 권리 범위에 속할 것이다.The following examples are detailed descriptions to aid the understanding of the present invention, and do not limit the scope of the present invention. Therefore, the same scope of the invention performing the same function as the present invention will also belong to the scope of the present invention.

이하 첨부된 도면을 참고하여 본 발명의 일 실시예를 상세히 설명하기로 한다.Hereinafter, an embodiment of the present invention will be described in detail with reference to the accompanying drawings.

도 1은 일반적인 스마트 컨트랙트 방법을 설명하는 도면이고, 도 2는 본 발명의 일 실시예에 따른 업그레이드 가능한 스마트 컨트랙트 방법을 구현하는 시스템 구조를 나타낸 도면이며, 도 3은 도 2의 스마트 콘트랙트의 세부 구성을 설명하는 도면이다. 1 is a view illustrating a general smart contract method, FIG. 2 is a diagram showing a system structure for implementing an upgradeable smart contract method according to an embodiment of the present invention, and FIG. 3 is a detailed configuration of the smart contract of FIG. 2 It is a figure explaining.

도 1 내지 도 3을 참조하면, 본 발명의 일 실시예에 따른 업그레이드 가능한 스마트 컨트랙트 방법은, 기존의 업그레이드 가능한 스마트 컨트랙트 방법에서 도 1에 도시된 바와 같이 컨트랙트를 로직 컨트랙트와 데이터 컨트랙트로 분리하였지만, 여기에 추가적으로 투표 컨트랙트와 프록시 컨트랙트를 추가한 것이다. 1 to 3, in the upgradeable smart contract method according to an embodiment of the present invention, in the existing upgradeable smart contract method, the contract is divided into a logic contract and a data contract, as shown in FIG. In addition to this, a voting contract and a proxy contract are added.

도 3에 도시된 바와 같이, 투표 기반의 업그레이드 가능한 스마트 컨트랙트(Vote-based upgradeable smart contract, VUSC) 는 데이터 컨트랙트, 로직 컨트랙트, 투표 컨트랙트, 프록시 컨트랙트로 구분될 수 있고, 투표 컨트랙트는 로직 업그레이드에 대한 투표를 관리하고, 로직 컨트랙트는 old Logic, new Logic으로 나뉘어진다. As shown in FIG. 3, a voting-based upgradeable smart contract (VUSC) may be divided into a data contract, a logic contract, a voting contract, and a proxy contract, and the voting contract is for a logic upgrade. It manages voting, and the logic contract is divided into old logic and new logic.

또한, 업그레이드 가능한 컨트랙트 구조는 새로운 로직 컨트랙트가 배포되면 사용자 프로그램에서 실행하는 로직 컨트랙트의 주소도 변경된 주소로 실행해야 한다. 하지만 모든 사용자 프로그램내 설정된 컨트랙트의 주소를 변경하는 것은 쉬운 일이 아니다. 모든 사용자가 변경되기까지 배포 시간도 오래 걸릴 것이며, 그 전까지 기존 컨트랙트를 통한 사용자의 접근도 생기게 되기 때문에 두 가지의 로직 컨트랙트의 동작이 유지되게 해야만 한다.In addition, the upgradeable contract structure must execute the address of the logic contract executed by the user program with the changed address when a new logic contract is distributed. However, it is not easy to change the address of a contract set in all user programs. The deployment will take a long time before all users are changed, and before that, the user's access through the existing contract will also occur, so the operation of the two logic contracts must be maintained.

이를 해결하기 위해, 프록시 컨트랙트는 로직 컨트랙트를 프록시(Proxy) 형태로 변경한다. 따라서, 프록시 컨트랙트는 사용자가 실행시킨 함수 call을 그대로 로직 컨트랙트에 전달하는 역할을 수행한다.To solve this, the proxy contract changes the logic contract into a proxy form. Therefore, the proxy contract serves to pass the function call executed by the user to the logic contract as it is.

다시 도 2를 참조하면, 로직 업그레이드가 필요한 경우, 이해관계자가 하나 이상의 새로 대체할 로직 컨트랙트 후보를 네트워크에 배치하여 공개하고 (1. Create and deploy), 투표 컨트랙트를 통해 이에 대한 업그레이드를 제안한 후 투표를 시작한다(2. New logic contract).Referring again to FIG. 2, when a logic upgrade is required, a stakeholder places one or more newly substituted logic contract candidates on the network and discloses them (1.Create and deploy), and proposes an upgrade for this through a voting contract before voting. (2. New logic contract).

투표는 일정 마감시간까지 진행되며, 이해관계자들은 제안된 새로운 로직들 중에서 업그레이드 되기를 원하는 로직 컨트랙트 후보에 투표할 수 있고, 원하는 로직 컨트랙트 후보가 없다면 투표에 참여하지 않는다(3. Vote for candidate).Voting runs until a certain deadline. Stakeholders can vote for a candidate for a logic contract that wants to be upgraded among the proposed new logics, and if there is no candidate for the desired logic contract, they do not participate in the vote (3. Vote for candidate).

투표는 이해관계자들의 합의에 따라 자율적으로 만들어진 투표 규칙을 따르는데, 투표 규칙은 유권자를 결정하는 기준, 투표 기간, 최소 득표 요구량 등이 포함될 수 있다. Voting follows autonomous voting rules based on consensus among stakeholders. Voting rules can include criteria for determining voters, voting periods, and minimum vote requirements.

투표가 마감된 후, 특정한 로직 컨트랙트 후보가 선출된다(4.A winner is determined). 이때, 이해 관계자들이 합의에 따라 사전에 결정된 투표 규칙에 따라 로직 컨트랙트 후보가 선출되지 않을 수도 있다. 이 경우에는 로직 업그레이드가 취소된다.After the voting closes, a specific logic contract candidate is selected (4.A winner is determined). At this time, a candidate for a logic contract may not be elected according to a voting rule determined in advance by interested parties. In this case, the logic upgrade is canceled.

로직 컨트랙트는 후보 선출 시점 또는 후보 선출 시점부터 일정 유예기간 후에 선출된 로직 컨트랙트로 대체된다 (5. Update). 즉, 로직 컨트랙트의 주소 값이 원래의 로직 컨트랙트 주소(L0)에서 새 로직 컨트랙트의 주소(C1)로 바뀌면서 로직 업그레이드가 완료된다. The logic contract is replaced with a logic contract selected after a certain grace period from the time of candidate selection or the time of candidate selection (5. Update). That is, the logic upgrade is completed by changing the address value of the logic contract from the original logic contract address L0 to the address C1 of the new logic contract.

이상에서 설명한 본 발명의 실시예에 따른 업그레이드 가능한 스마트 컨트랙트 방법은, 컴퓨터에 의해 실행되는 프로그램 모듈과 같은 컴퓨터에 의해 실행 가능한 명령어를 포함하는 기록 매체의 형태로도 구현될 수 있다. 이러한 기록 매체는 컴퓨터 판독 가능 매체를 포함하며, 컴퓨터 판독 가능 매체는 컴퓨터에 의해 액세스될 수 있는 임의의 가용 매체일 수 있고, 휘발성 및 비휘발성 매체, 분리형 및 비분리형 매체를 모두 포함한다. 또한, 컴퓨터 판독가능 매체는 컴퓨터 저장 매체를 포함하며, 컴퓨터 저장 매체는 컴퓨터 판독가능 명령어, 데이터 구조, 프로그램 모듈 또는 기타 데이터와 같은 정보의 저장을 위한 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 분리형 및 비분리형 매체를 모두 포함한다.The upgradeable smart contract method according to the embodiment of the present invention described above may also be implemented in the form of a recording medium including instructions executable by a computer, such as program modules executed by a computer. Such recording media include computer readable media, which can be any available media that can be accessed by a computer and includes both volatile and nonvolatile media, removable and non-removable media. In addition, computer readable media includes computer storage media, which are volatile and nonvolatile implemented in any method or technology for storage of information such as computer readable instructions, data structures, program modules or other data. , Removable and non-removable media.

전술한 본 발명의 설명은 예시를 위한 것이며, 본 발명이 속하는 기술분야의 통상의 지식을 가진 자는 본 발명의 기술적 사상이나 필수적인 특징을 변경하지 않고서 다른 구체적인 형태로 쉽게 변형이 가능하다는 것을 이해할 수 있을 것이다. 그러므로 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적이 아닌 것으로 이해해야만 한다. 예를 들어, 단일형으로 설명되어 있는 각 구성 요소는 분산되어 실시될 수도 있으며, 마찬가지로 분산된 것으로 설명되어 있는 구성 요소들도 결합된 형태로 실시될 수 있다.The above description of the present invention is for illustration only, and a person having ordinary knowledge in the technical field to which the present invention pertains can understand that it can be easily modified to other specific forms without changing the technical spirit or essential features of the present invention. will be. Therefore, it should be understood that the embodiments described above are illustrative in all respects and not restrictive. For example, each component described as a single type may be implemented in a distributed manner, and similarly, components described as distributed may be implemented in a combined form.

본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 균등 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.The scope of the present invention is indicated by the following claims rather than the above detailed description, and it should be interpreted that all changes or modifications derived from the meaning and scope of the claims and equivalent concepts thereof are included in the scope of the present invention. do.

Claims (2)

이더리움에 기반하여 로직 컨트랙트의 업그레이드를 수행하는 업그레이드 가능한 스마트 컨트랙트 방법에 있어서,
a) 상기 스마트 컨트랙트를 데이터 컨트랙트, 로직 컨트랙트, 투표 컨트랙트 및 프록시 컨트랙트로 분리하는 단계;
b) 상기 로직 컨트랙트의 업그레이드 요청시, 네트워크 상에 사용자 단말을 통해 적어도 하나 이상의 로직 컨트랙트 후보를 배치하여 공개하는 단계;
c) 적어도 하나 이상의 사용자 단말을 통해 새로운 로직 컨트랙트 후보에 대한 투표가 진행되고, 기설정된 투표 마감시간에 도달하면 득표 정보에 기초하여 업그레이드를 위한 새로운 로직 컨트랙트를 결정하는 단계; 및
d) 상기 새로운 로직 컨트랙트의 선출 시점 또는 기설정된 유예기간 이후에 이전의 로직 턴트랙트에서 새로운 로직 컨트랙트로 변경되어 로직 업그레이드를 온료하는 단계를 포함하는 것인, 업그레이드 가능한 스마트 컨트랙트 방법.
In the upgradeable smart contract method for performing an upgrade of a logic contract based on Ethereum,
a) separating the smart contract into a data contract, a logic contract, a voting contract and a proxy contract;
b) when requesting an upgrade of the logic contract, placing and publishing at least one logic contract candidate through a user terminal on the network;
c) voting for a new logic contract candidate through at least one user terminal and determining a new logic contract for upgrade based on the vote information when the predetermined voting deadline is reached; And
d) The upgradeable smart contract method comprising the step of completing a logic upgrade by changing from a previous logic turn contract to a new logic contract after the election time of the new logic contract or a predetermined grace period.
제 1 항에 있어서,
상기 c) 단계는,
사용자와 운영자간에 유권자 결정 기준, 투표 기간, 최소 득표 요구량을 포함한 투표 규칙을 결정하는 단계를 더 포함하는 것인, 업그레이드 가능한 스마트 컨트랙트 방법.
According to claim 1,
Step c),
And determining a voting rule including a voter determination criterion, a voting period, and a minimum vote requirement between the user and the operator.
KR1020180151987A 2018-11-30 2018-11-30 Method for upgradeable smart contract KR20200065470A (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020180151987A KR20200065470A (en) 2018-11-30 2018-11-30 Method for upgradeable smart contract

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020180151987A KR20200065470A (en) 2018-11-30 2018-11-30 Method for upgradeable smart contract

Publications (1)

Publication Number Publication Date
KR20200065470A true KR20200065470A (en) 2020-06-09

Family

ID=71082026

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020180151987A KR20200065470A (en) 2018-11-30 2018-11-30 Method for upgradeable smart contract

Country Status (1)

Country Link
KR (1) KR20200065470A (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112085604A (en) * 2020-09-10 2020-12-15 北京金山云网络技术有限公司 Method and device for upgrading intelligent contract

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112085604A (en) * 2020-09-10 2020-12-15 北京金山云网络技术有限公司 Method and device for upgrading intelligent contract

Similar Documents

Publication Publication Date Title
US11755718B2 (en) Blockchain implemented counting system and method for use in secure voting and distribution
US10831924B2 (en) Unified control of privacy-impacting devices
US11055703B2 (en) Smart contract lifecycle management
US11095648B2 (en) Dashboard as remote computing services
US11100501B1 (en) Modular, configurable smart contracts for blockchain transactions
US20220276878A1 (en) Method and apparatus for generating image file and computer-readable storage medium
US9946555B2 (en) Enhanced configuration and property management system
Worley et al. Opportunities, challenges, and future extensions for smart-contract design patterns
KR20200065470A (en) Method for upgradeable smart contract
CN115577389A (en) Treatment method and system based on block chain system
CN111158771B (en) Processing method and device and computer equipment
CN112783954B (en) Data access method, device and server
CN114037520A (en) Transaction processing method, device, equipment and system
CN113472543A (en) Employment data processing method and device based on block chain, electronic equipment and medium
US20220334953A1 (en) Method and apparatus creating test environments for blockchain systems
CN110874305A (en) User operation recording method and device and server
WO2020170656A1 (en) Configuration change management method, configuration change management system, and node
KR102636966B1 (en) Method, device and system for managing and sharing integrated interface information
CN110083438A (en) Transaction distribution method, apparatus, equipment and storage medium
US11150942B2 (en) Communication device and communication method used in distributed computing environment
US20230409400A1 (en) System for resource allocation and monitoring
Sriman et al. Decentralized Application Using Ethereum Blockchain on Performance Analysis Considering E-Voting System
De Mol et al. Programming Systems: in Search of Historical and Philosophical Foundations
CN116957553A (en) Digital asset processing method and device
CN111264050A (en) Limited access interface for dynamic deployment of computing resources