KR102666835B1 - 업그레이드 가능한 증권형 토큰 - Google Patents

업그레이드 가능한 증권형 토큰 Download PDF

Info

Publication number
KR102666835B1
KR102666835B1 KR1020217007223A KR20217007223A KR102666835B1 KR 102666835 B1 KR102666835 B1 KR 102666835B1 KR 1020217007223 A KR1020217007223 A KR 1020217007223A KR 20217007223 A KR20217007223 A KR 20217007223A KR 102666835 B1 KR102666835 B1 KR 102666835B1
Authority
KR
South Korea
Prior art keywords
smart contract
address
parent
tokens
token
Prior art date
Application number
KR1020217007223A
Other languages
English (en)
Other versions
KR20210050526A (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 KR1020247014044A priority Critical patent/KR20240068068A/ko
Publication of KR20210050526A publication Critical patent/KR20210050526A/ko
Application granted granted Critical
Publication of KR102666835B1 publication Critical patent/KR102666835B1/ko

Links

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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/04Payment circuits
    • G06Q20/06Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme
    • G06Q20/065Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash
    • G06Q20/0658Private payment circuits, e.g. involving electronic currency used among participants of a common payment scheme using e-cash e-cash managed locally
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/22Payment schemes or models
    • G06Q20/223Payment schemes or models based on the use of peer-to-peer networks
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3672Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes initialising or reloading thereof
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/36Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes
    • G06Q20/367Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes
    • G06Q20/3678Payment architectures, schemes or protocols characterised by the use of specific devices or networks using electronic wallets or electronic money safes involving electronic purses or money safes e-cash details, e.g. blinded, divisible or detecting double spending
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/382Payment protocols; Details thereof insuring higher security of transaction
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/389Keeping log of transactions for guaranteeing non-repudiation of a transaction
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/401Transaction verification
    • 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
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/38Payment protocols; Details thereof
    • G06Q20/40Authorisation, e.g. identification of payer or payee, verification of customer or shop credentials; Review and approval of payers, e.g. check credit lines or negative lists
    • G06Q20/405Establishing or using transaction specific rules
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • 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
    • G06Q2220/00Business processing using cryptography
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/56Financial cryptography, e.g. electronic payment or e-cash
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2463/00Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00
    • H04L2463/102Additional details relating to network architectures or network communication protocols for network security covered by H04L63/00 applying security measure for e-commerce

Landscapes

  • Business, Economics & Management (AREA)
  • Engineering & Computer Science (AREA)
  • Accounting & Taxation (AREA)
  • Finance (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Economics (AREA)
  • Development Economics (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Operations Research (AREA)
  • Quality & Reliability (AREA)
  • Tourism & Hospitality (AREA)
  • Power Engineering (AREA)

Abstract

네트워크 노드는 적어도 하나의 프로세서, 적어도 하나의 메모리 및 적어도 하나의 네트워크 인터페이스를 포함한다. 상기 네트워크 노드는 분산 원장(distributed ledger)을 구현하는 네트워크 노드들의 피어-투-피어 네트워크(Peer-to-Peer Network)에서 통신 가능하게 결합된 복수의 네트워크 노드 내에 있도록 구성된다. 상기 네트워크 노드는 상기 적어도 하나의 네트워크 인터페이스를 통해 적어도 하나의 원격 위치 컴퓨팅 장치에 통신 가능하게 결합된다. 상기 적어도 하나의 프로세서는, 상기 분산 원장에 부모 스마트 계약의 후속 버전인 자식 스마트 계약을 배포하도록 구성된다. 또한, 상기 적어도 하나의 프로세서는, 상기 부모 스마트 계약의 업그레이드 주소 필드가 상기 자식 스마트 계약의 주소를 가리키도록 설정하도록 구성된다. 상기 부모 스마트 계약은 상기 자식 스마트 계약이 배포된 이후 배포된 상태로 유지된다.

Description

업그레이드 가능한 증권형 토큰
본 출원은 2018년 8월 10일에 제출된 미합중국 가특허 출원 제 62/717,575호(대리인 문서 관리 번호 270.023USPR) "투자자의 스마트 계약 기반 글로벌 레지스트리를 컨설팅하는 스마트 계약 기반 준수 규칙을 구현하는 자체 규제 증권형 토큰(Self-enforcing security token implementing smart-contract-based compliance rules consulting smart-contract-based global registry of investors)", 2019년 7월 8일에 제출된 미합중국 가특허 출원 제62/871,543호(대리인 문서 관리 번호 270.032USPR) "분할 가능한 증권형 토큰(Splittable security token)", 및 2019년 7월 31일에 제출된 미합중국 가특허 출원 제62/881,121호(대리인 문서 관리 번호 270.033USPR) "업그레이드 가능한 증권형 토큰(Upgradeable security token)"의 이익을 주장하며, 이들은 전체가 본원에 참조로 포함된다.
본 출원은 다음의 공동 계류중인 미합중국 특허출원과 관련되며, 이들은 본원에 참조로 포함된다:
본 출원과 동일한 일자에 제출되고 본원에 참조로 포함되는 미합중국 특허출원 제16/536,940호(대리인 문서 관리 번호 270.023US01) "투자자의 스마트 계약 기반 글로벌 레지스트리를 컨설팅하는 스마트 계약 기반 준수 규칙을 구현하는 자체 규제 증권형 토큰"; 및
본 출원과 동일한 일자에 제출되고 본원에 참조로 포함되는 미합중국 특허출원 제16/536,866호(대리인 문서 관리 번호 270.032US01) "분할 가능한 증권형 토큰".
암호화 토큰이 블록체인의 다양한 양태와 관련하여 사용되고 있다. 예시들에서, 이더리움 블록체인(Ethereum blockchain)에서 구현되는 스마트 계약은 복잡한 거동이 포함된 토큰의 생성 및 발행을 가능하게 한다. 이더리움 의견 제시 요구 20(Ethereum Request for Comments 20; ERC20)은 토큰을 구현하기 위한 (이더리움 블록체인 상의) 스마트 계약에 사용되는 기술 표준이다. ERC20 표준은 전체가 참조로 포함된다. 또한, 일반 회사법(General Corporation Law)과 관련된 델라웨어 주법의 제8편(Title 8 of the Delaware Code)을 충족하기 위해 다른 메소드(method)가 구현될 수 있다.
네트워크 노드는 적어도 하나의 프로세서, 적어도 하나의 메모리 및 적어도 하나의 네트워크 인터페이스를 포함한다. 상기 네트워크 노드는 분산 원장(distributed ledger)을 구현하는 네트워크 노드들의 피어-투-피어 네트워크(Peer-to-Peer Network)에서 통신 가능하게 결합된 복수의 네트워크 노드들 내에 있도록 구성된다. 상기 네트워크 노드는 상기 적어도 하나의 네트워크 인터페이스를 통해 적어도 하나의 원격 위치 컴퓨팅 장치에 통신 가능하게 결합된다. 상기 적어도 하나의 프로세서는, 상기 분산 원장에 부모 스마트 계약의 후속 버전인 자식 스마트 계약을 배포하도록 구성된다. 또한, 상기 적어도 하나의 프로세서는, 상기 자식 스마트 계약의 주소를 가리키도록 상기 부모 스마트 계약의 업그레이드된 주소 필드를 설정하도록 구성된다. 상기 부모 스마트 계약은 상기 자식 스마트 계약이 배포된 이후 배포된 상태로 유지된다.
도면은 단지 예시적인 실시예들을 도시한 것이고, 이에 따라 범위를 제한하려는 것이 아니라는 것을 이해해야 하며, 예시적인 실시예들을 첨부 도면을 사용하여 더 구체적이고 상세하게 설명할 것이다.
도 1은 업그레이드 가능한 스마트 계약 기반 증권형 토큰을 사용하는 예시적인 시스템의 블록도이다.
도 2a는도 1에 도시된 시스템에서 사용되는 데이터 구조를 나타내는 블록도이다.
도 2b는도 1에 도시된 시스템에서 엔티티의 계층 구조를 나타내는 블록도이다.
도 3은 업그레이드 가능한 스마트 계약의 3 개의 상이한 버전을 나타내는 블록도이다.
도 4a 내지 4d는 토큰들을 스마트 계약의 후속 버전으로 마이그레이션하는 상이한 단계를 나타내는 블록도이다.
도 5는 자식 스마트 계약을 배포하는 방법을 나타내는 흐름도이다.
도 6은 부모 스마트 계약의 총 발행 토큰을 자식 스마트 계약으로 마이그레이션하는 방법을 나타내는 흐름도이다.
도 7은 본 개시의 실시예들과 활용될 수 있는 예시적인 컴퓨터 시스템을 나타내는 블록도이다.
도 8은 본 개시의 실시예들과 활용될 수 있는 또 다른 예시적인 컴퓨팅 장치를 나타내는 블록도이다.
일반적인 관행에 따르면, 상술한 다양한 특징은 일정한 축척으로 도시되지는 않지만, 예시적인 실시예들과 관련된 특정한 특징들이 강조되도록 도시된다.
이하의 상세한 설명에서, 본원의 일부를 형성하고 특정 예시적인 실시예를 도시한 첨부 도면을 참조한다. 그러나, 다른 실시예가 사용될 수 있으며 논리적, 기계적 및 전기적 변경이 이루어질 수 있음을 이해할 수 있을 것이다. 또한, 도면 및 명세서에 제시된 방법은 개별 단계가 수행될 수 있는 순서를 제한하는 것으로 해석되어서는 안 된다. 따라서, 이하의 상세한 설명은 제한하기 위한 것이 아니다.
"스마트 계약(smart contract)" (또는 단지 "계약")이라는 용어는 소프트웨어에서 구현될 수 있는 일련의 조건부 논리, 예컨대 충족되는 하나 이상의 관련 조건에 응답하여 실행되는 하나 이상의 순차적 단계를 지칭한다. 스마트 계약은 분산 원장(distributed ledger)의 주소에 저장될 수 있다. 스마트 계약은 스마트 계약의 주소를 사용하여 호출될 수 있다. 예시들에서, 스마트 계약은 솔리디티(Solidity) 프로그래밍 언어로 프로그래밍될 수 있다. 스마트 계약은, 분산 원장을 구현하는 네트워크 노드, 예컨대 이더리움 가상 머신(Ethereum Virtual Machine (EVM))과 같은 가상 머신을 실행하는 네트워크 노드 상의 프로세서에 의해 실행될 수 있다.
스마트 계약의 일 특정 예시는 증권형 토큰이다. 다시 말해서, 증권형 토큰은 스마트 계약의 유형일 수 있으며, 예컨대 증권을 나타내는 암호화 토큰일 수 있다. 증권형 토큰은 분산 원장(distributed ledger)(예컨대, 블록체인)에 (예컨대, 저장되는) 스마트 계약으로 구현될 수 있다. 주어진 증권형 토큰의 다양한 양태(예컨대, 발행, 전송 등)는 증권거래위원회(Securities and Exchange Commission; SEC) 또는 기타 규제 기관에 의해 규제될 수 있다.
증권형 토큰은 기존 토큰 보유자, 주소(들)에 대한 토큰 잔고(들), 토큰의 총 공급량 등을 나타내는 상태를 유지할 수 있다. 따라서, 스마트 계약을 지칭하는 것 외에도, "증권형 토큰(security token)" 또는 "토큰"이라는 용어는, 증권을 나타내는 증권형 토큰의 상태, 예컨대 주식을 지칭할 수 있다. 일반적으로, "증권형 토큰"이라는 용어는 스마트 계약을 지칭하기 위해 사용되는 반면, "토큰"이라는 용어는, 예컨대 주식을 나타내는 증권형 토큰의 상태를 지칭하기 위해 사용되지만, 이에 제한되지 않는다.
증권은 임의의 유형의 금전적 가치를 보유하는 대체 가능하고 유통 가능한 금융 상품일 수 있다. 증권은 소유권 지위, 채권자 관계, 또는 옵션으로 나타나는 소유권에 대한 권리를 나타낼 수 있다. 증권의 예시는 부동산, 적어도 하나의 원자재, 동산, 적어도 하나의 채권, 적어도 하나의 파생 상품, 적어도 하나의 선물, 적어도 하나의 펀드, 적어도 하나의 통화 펀드, 적어도 하나의 상장 지수 펀드, 적어도 하나의 뮤추얼 펀드, 적어도 하나의 인덱스 펀드, 적어도 하나의 채권 펀드, 적어도 하나의 원자재 펀드 및/또는 적어도 하나의 부동산 펀드를 포함하지만, 이에 제한되지 않는다.
발행, 전송 및 관련 규정을 포함한 증권형 토큰에 대한 자세한 설명은 2018년 8월 10일에 제출된 미국 가출원 제 62/717,575호(대리인 문서 관리 번호 270.023USPR) "투자자의 스마트 계약 기반 글로벌 레지스트리를 컨설팅하는 스마트 계약 기반 준수 규칙을 구현하는 자체 규제 증권형 토큰(Self-enforcing security token implementing smart-contract-based compliance rules consulting smart-contract-based global registry of investors)"에 기재되어 있으며, 이는 전체가 본원에 참조로 포함된다.
(예컨대, 이더리움/솔리디티(Ethereum/Solidity)에서) 스마트 계약을 개발하는 데 있어서 공통적인 어려움은, 어떻게 스마트 계약을 업그레이드하고, 버그(들)를 수정하고, 또는 스마트 계약 내에서 코드 변경을 보증하는 그 밖의 다른 작업을 수행하는가에 있다. 스마트 계약을 업그레이드하려는 종래의 시도는 상기 계약의 원래 주소를 보존하는 것을 강조한다. 코드가 변경되는 동안 계약 주소를 보존하는 대신, 본 시스템 및 방법은, 계약에 대해 완전하고 논리적인 감사(監査)를 유지하면서 기존 코드를 신규 코드와 링크하는 기능을 사용하여 원래 코드를 보존하는 것에 중점을 둔다. 이 접근 방식은 모든 유형의 스마트 계약에 적용될 수 있지만, 특히 유용한 일 구성은, 예컨대 상태를 포함하여, 증권형 토큰의 업그레이드 경로를 관여시킨다.
분산 원장 기술(Distributed Ledger Technology; DLT)과 블록체인 기술의 가장 중요한 2 가지 특징은 신뢰성과 감사 가능성(auditability)이다. 이러한 2 가지 특징은 모두 너무 자주 간과되는 (및/또는 결여된) 또 다른 특징인 유지 보수성(maintainability)에 의해 영향을 받을 수 있다. 계약을 유지 보수할 수 없는 경우, 문제가 발생하거나, 특징들이 결여되거나, 또는 그보다 나쁘게, 사기 및/또는 남용이 발생하면, 상기 계약은 신속하게 신용을 잃게 된다. 가장 악명 높은 문제 중 하나는 잘 알려진 탈중앙화 자율 조직(Decentralized Autonomous Organization; DAO) 공격으로, 이는 DLT 커뮤니티 전반에 우려를 제기하고 외부 관찰자를 혼란시켰다.
아무리 양호하게 설계되거나 테스트되었더라도, 스마트 계약은 파괴, 남용 및/또는 악용(exploit)에 대한 면역이 없다. 불변성(immutability)은 재배포, 핫픽스/패치 적용, 및/또는 버전 관리 코드에 익숙한 많은 개발자에게 새로운 개념이므로, 이러한 유지 관리성의 결여는 종종 확인되지 않는다. 스마트 계약(특히 증권형 토큰을 구현하는 스마트 계약)에 업그레이드 경로를 설계함으로써, 본 시스템 및 방법은 발행자가 시스템 사용자에게 미치는 영향을 줄이면서 스마트 계약의 기본 코드를 변경할 수 있도록 한다.
스마트 계약을 업데이트해야 할 필요가 있다는 점을 인정함으로써, 업그레이드 가능성이 사전 설계될 수 있다. 상술한 바와 같이, 감사 가능성은 스마트 계약에서 바람직하다. 이에 따라, 본원에 기술된 업그레이드 가능한 증권형 토큰은 상이한 버전의 증권형 토큰이 (링크드 리스트(linked list)와 유사하게) 시간 순으로 추적될 수 있도록 한다. 이는 감사를 수행하는 명확한 기능을 가능하게 하는 동시에, 대체된 계약에 대한 지식만 있는 경우에 가장 최근의 구현체를 탐색할 수 있는 쉬운 방법을 제공하기도 한다.
또한, 부모 계약의 기존 토큰(들)의 보유자가 자신들의 보유 자산을 후손 계약의 신규 토큰(들)으로 전송할 수 있도록 하여 기존 계약에서 신규 계약으로 상태를 전환하는 것도 바람직하다. 이는 업그레이드 경로에 몇 가지 특징을 제공한다. 우선, 기존 계약의 토큰 보유 자산은 그 후손의 주소로 전송되며, 이는 본질적으로 이러한 토큰들의 유통을 잠금/소각/제거하고 보유자가 자신들의 보유 자산을 언제 이동시킨 시기에 대한 감사 추적을 제공하는 동시에, 기존 계약의 상태 정보를 유지한다. 또한, 이는 주어진 계약이 가장 최근의 것인지 여부, 또는 상기 계약이 상주하는 업그레이드 경로의 위치를 노출할 수 있다. 이후, 자신의 보유 자산을 전환하기로 결정한 사람 및 결정하지 않은 사람을 확인할 수 있으며, 사용자에게 업데이트된 변경 사항을 선택하거나 수락할지 여부에 대한 제어권을 부여한다. "부모(parent)" 및 "자식(child)" 스마트 계약 대신, "제1" 및 "제2" 또는 "선행자(predecessor)" 및 "후속자(successor)"라는 용어가 대안적으로 사용될 수 있다.
본원의 업그레이드 가능한 증권형 토큰의 한 가지 중요한 변경 사항은 종래의 해결 방안과 비교시 자산/증권형 토큰이 잠재적으로 다수의 주소를 가질 수 있다는 것이다. 증권형 토큰의 히스토리를 추적하고 활동 자산/증권형 토큰을 찾는 용이한 기능이 존재하는 한, 다수의 주소는 사용 및 구현에 있어서 장애물이 되지 않을 것이다.
불변성은 블록체인 공간의 핵심 개념일 뿐만 아니라 유지 보수성에 대한 장애물이므로, 이더리움 생태계 내에서 업그레이드 가능한 스마트 계약에 대한 많은 시도가 이루어져왔다. 많은 해결 방안들에서 공유되는 하나의 개념은, (본 시스템 및 방법과는 대조적으로) 고정되고 변경되지 않는 계약 주소이다.
구체적으로, "프록시 패턴(proxy pattern)"이 불변성이 제공하는 고유한 장애물에 대한 대중적인 해결 방안으로 부상하고 있는데, 이는 구현체들이 저장된 데이터를 보존하기 위해 영구 저장소, 허브 및 스포크(spoke)의 한 형태, 또는 다른 수단을 사용하는 경향이 있음에도 불구하고 일어나고 있다. 프록시 패턴은 계약의 현재 구현체의 주소를 보유하는 것이 유일한 목적인 단일 프록시 계약이다. 프록시 계약은 낮은 수준의 솔리디티 옵코드(Solidity opcode)(delegatecall)를 사용하여 호출될 수 있으며, 여기서 프록시 계약은 개시자(initiator)의 주소를 계약의 실제 구현체로 전달한다. 이러한 방식으로, 프록시 계약의 주소는 업그레이드에 따라 변경되지 않는다. 대신, 계약을 업그레이드하기 위해, 신규 코드가 배포되고, 프록시 계약 내에 보유된 주소 필드가 변경 사항을 포함하는 새로 배포된 버전을 가리키도록 업데이트된다. 이는 프록시 계약의 구현체 내에서 버그 또는 기타 문제가 발견될 때까지 유지 관리에 편리하다. 프록시 계약에서 취약점이 발견되면 채택을 막을 수 있다.
두 번째 잠재적인 문제는 프록시된 계약의 신뢰성과 관련하여 발생한다. 프록시 계약 내의 포인터는 임의의 주어진 순간에 변경될 수 있으며, 본질적으로 투명성을 모호하게 하는 동시에 블록체인의 불변적 특성을 우회한다. 본 시스템 및 방법은 전체 업그레이드 히스토리를 보존하면서 주어진 주소의 기능이 초기 상태에서 변경되는 것을 방지함으로써 이러한 단점을 해결한다.
본원에 기술된 예시들은 관리인이 투자자 및/또는 브로커 딜러(broker dealer)를 대신하여 토큰을 보유하는 관리 모델과 호환될 수 있다. 그러나, 본원의 시스템은, 예컨대 투자자 및/또는 브로커 딜러가 적은 수의 중개인을 두거나 또는 중개인 없이 토큰을 직접 보유하는 비관리 모델과도 호환된다.
다양한 메소드(method) 명칭들이 예로서 본원에서 사용될 수 있다. 임의의 메소드 명칭은 예시적으로 사용되며, 제한하려는 것이 아님을 이해해야 한다. 또한, 선택적인 장치 및 메소드 단계는 도면에서 점선으로 표시된다.
도 1은 업그레이드 가능한 스마트 계약 기반 증권형 토큰(102)을 사용하는 예시적인 시스템(100)의 블록도이다. 시스템(100)은 하나 이상의 증권형 토큰(102), 시스템 소유자(112), 발행자(114), 및 분산 원장(122)을 구현하는 적어도 하나의 네트워크 노드(140)를 포함할 수 있다. 또한, 시스템(100)은 후술하는 바와 같이 다양한 선택적인 엔티티 및/또는 장치를 포함할 수 있다.
예시들에서, 증권형 토큰(102)/스마트 계약의 각 토큰은 기업의 단일 주식을 나타낼 수 있다. 증권형 토큰(102)은 분산 원장(122)(예컨대, 블록체인)에서 구현(예컨대, 저장)될 수 있다. 증권형 토큰(102)은 하나 이상의 스마트 계약을 사용하여 구현될 수 있다. 증권형 토큰(102)은 자신의 상태, 예컨대 얼만큼의 토큰이 발행되었는지, 어느 주소가 얼만큼의 토큰을 보유하는지 등에 대한 표시(indication)를 저장할 수 있다.
투자자(120)는 이전에 토큰을 수신 또는 전송했거나 이를 고려중인 개인 또는 엔티티일 수 있다. 예시들에서, 투자자(120)는 브로커 딜러(118)의 고객일(또는 관리인(116)과 직접 관련될) 수 있으며, 여기서 투자자(120)는 하나 이상의 토큰의 구매 및/또는 판매와 관련된 주문을 브로커 딜러(118)에게(또는 관리인(116)에게 직접) 보낼 수 있다. 또는, 투자자(120)는 브로커 딜러(118) 또는 관리인(116)을 통할 필요가 없는 "외부 투자자(external investor)"일 수 있다. 대신, 외부 투자자는 토큰 거래를 개시(initiate)하기 위해 본원에 기술된 관련 메소드, 예컨대 토큰(102)/스마트 계약 자체 및/또는 후술할 글로벌 레지스트리(108)에 존재하는 메소드를 호출할 수 있다.
"토큰 거래(token transaction)" 또는 이와 유사한 용어는 증권형 토큰(102)의 모든 형태의 전송을 지칭하며, 토큰의 전송과 함께 수행되는 발행, 공개, 선물, 구매, 판매 및/또는 고용인 보상을 설명하기 위해 사용될 수 있다. 토큰(102) 거래는 다량의 토큰을 (하나 이상의 투자자(120), 브로커 딜러(118) 및/또는 관리인(116)에 속하는) 하나 이상의 입력 주소로부터 (하나 이상의 투자자(120), 브로커 딜러(118) 및/또는 관리인(116)에 속하는) 적어도 하나의 출력 주소로 전송할 수 있다. 본원에서 사용되는 바와 같이, "구매자(buyer)" 및 "판매자(seller)"라는 용어는 각각 토큰을 전송 및 수신하는 투자자(120)를 지칭한다. 토큰 거래는 장내 거래 또는 장외 거래로 수행될 수 있다.
시스템(100)의 브로커 딜러(118)은 자신의 계좌에서 및/또는 고객을 대신하여 토큰을 구매 또는 판매하는 개인 또는 엔티티일 수 있다. 온보딩(onboarding) 동안, 브로커 딜러(118)은 정보 수집을 포함하여 신규 고객을 위한 계좌를 생성할 수 있으며, 예컨대 브로커 딜러(118)은 투자자(120)를 신규 고객으로 온보딩할 수 있다. 이는, 예컨대 신원 서비스 공급자(126)에 의해 제공되는, 자신의 고객에 대한 자금 세탁 방지(Anti-Money Laundering) 및/또는 고객 확인(Know-Your-Customer)(AML/KYC)을 수행하는 것을 포함할 수 있다.
발행자(114)는 소유자(112)에게 토큰을 발행하도록 지시하는 사람 또는 엔티티일 수 있다. 즉, 소유자(112)는 증권형 토큰(102)을 배포/발행하는 하나 이상의 원천(originating) 스마트 계약(113)을 소유할 수 있다. 시스템(100)은 다수의 발행자(114)를 선택적으로 포함할 수 있다. 예시들에서, 발행자(114)는 증권형 토큰(102)의 각 토큰이 기업의 주식을 나타내는 기업일 수 있다.
브로커 딜러(118)은 관리인(116), 즉, 하나 이상의 브로커 딜러(118)에 대한 토큰의 관리권, 보유권 및/또는 소유권을 보유하는 개인 또는 엔티티와 거래하는 계좌를 가질 수 있다. 관리인(116)은 다수의 브로커 딜러(118)을 대신하여 토큰의 관리권, 보유권 및/또는 소유권을 보유하는 개인 또는 엔티티일 수 있다(여기서, 브로커 딜러(118)은 다수의 투자자(120)를 고객으로 둘 수 있다). 시스템(100)은 다수의 관리인(116) 및/또는 다수의 브로커 딜러(118)을 포함할 수 있다.
소유자(112)는 시스템(100)에서 스마트 계약을 소유, 배포, 재배포 및/또는 전송하는 사람 또는 엔티티일 수 있다. 예시들에서, 소유자(112)는 증권형 토큰(102)을 배포/발행하기 위해 원천 스마트 계약(113)에 대한 (예컨대, 가상 머신에 의해 실행되는) 메소드 호출을 사용할 수 있다. 또한, 소유자(112)는 시스템(100)의 관리자로 지칭될 수 있다. 시스템(100)은 하나 이상의 소유자(112)만을 가질 수 있다. 선택적으로, 소유자(112)는 시스템(100)에서 실행되는 토큰 거래에 기초하여 토큰에 대한 "장(market)"을 설명하는 데이터 서비스, 예컨대 토큰 거래량, 가장 최근의 토큰 거래에 대한 거래 가격 등을 나타내는 피드(feed)를 제공할 수 있다.
상술한 바와 같이, 소유자(112), 발행자(114), 관리인(116), 브로커 딜러(118) 및 투자자(120)라는 용어들은 시스템(100)에서 다양한 역할을 수행하는 개인 또는 엔티티를 지칭할 수 있다. 또는, 이들 용어는 소유자(112), 발행자(114), 관리인(116), 브로커 딜러(118) 및 투자자(120) 각각에 의해 사용되는 컴퓨팅 장치를 지칭할 수 있다. 컴퓨팅 장치와 관련하여, 소유자(112), 발행자(114), 관리인(116), 브로커 딜러(118) 및 투자자(120) 각각은 각 컴퓨팅 장치의 메모리에 존재하는 명령어를 실행하는 하나 이상의 프로세서로 구현될 수 있다. 각 컴퓨팅 장치는, 예컨대 인터넷과 같은 네트워크(138)를 통해 다른 컴퓨팅 장치에 명령어 및/또는 다른 데이터를 송수신하도록 구성되는 휴대 전화 또는 태블릿과 같은 모바일 장치, 개인용 컴퓨터, 또는 서버일 수 있다.
증권형 토큰 거래소(124)는 증권형 토큰(102), 원자재, 파생 상품 및/또는 기타 금융 상품이 거래되는 시장 또는 상기 시장을 운영하는 비즈니스 엔티티(또는 증권형 토큰 거래소(124)에 의해 운영되는 하나 이상의 컴퓨팅 장치)일 수 있다. 예시들에서, 증권형 토큰 거래소(124)는 분산 원장(122)에 성공적으로 실행된 거래를 기록할 수 있다. 증권형 토큰 거래소(124)는 관리를 수행할 수 있으며, 즉, 관리인(116)이 브로커 딜러(118) 및/또는 투자자(120)를 대신하여 토큰을 보유하고 거래하는 곳일 수 있다.
네트워크 노드(140)는 본원에 기술된 기능을 구현하기 위해 메모리에 저장된 명령어를 실행하는 하나 이상의 프로세서를 사용하여 구현된 컴퓨팅 장치일 수 있다. 예시들에서, 네트워크 노드(140)는 본원에 기술된 스마트 계약 중 어느 하나를 실행하는 가상 머신(예컨대, 이더리움 가상 머신(Ethereum Virtual Machine; EVM))을 실행할 수 있다.
"분산 원장(distributed ledger)"라는 용어는 다수의 상호 연결된 네트워크 노드(140)(즉, 메모리에 저장된 명령어를 실행하는 컴퓨팅 장치)에 걸쳐 분산된 전자 원장을 지칭하며, 여기서 상기 네트워크 노드들(140) 중 하나를 초과하는 네트워크 노드들(140)은 분산 원장(122)의 사본을 저장한다. 예시들에서, 피어-투-피어 네트워크의 하나 이상의 네트워크 노드(140)는 분산 원장(122)을 구현할 수 있다.
분산 원장(122)은 분산 원장(122) 내에 저장된 데이터를 검증하기 위해 하나 이상의 블록체인을 구현할 수 있다. 블록체인은 해당 블록을 검증하는 각 블록에 작업 증명 실(proof-of-work seal)(예컨대, 해시)을 부착하여 한 번에 한 블록씩 구성되는 검증 가능한 영구 원장이다. 블록체인에서, 이전 블록의 해시는 현재 블록에 포함되므로, 현재 해시는 재귀(recursion)를 통해 본래의 제네시스 블록(genesis block)으로 거슬러 올라가며 모든 이전 블록을 검증하기도 한다. 블록체인에 해시를 삽입하면, 해당 해시를 영구적으로 기록하며, 해당 해시는 해당 블록이 체인에 추가되는 순간에 해시된 데이터의 타임 스탬프가 찍힌 존재 증명(proof-of-existence)을 검증하는 공증인으로서 작용한다. 추후의 블록은 체인에 저장된 데이터의 조작 또는 체인 재구성에 대한 보호층을 부가하므로, 체인의 앞부분에 존재하는 블록들을 변경할 수 없다는 추가적인 확실성을 제공한다. 블록체인은 분산 원장(122)의 구현예이며, 공개(public)(예컨대, 누구나 확인 가능) 또는 비공개(private)(예컨대, 승인된 사용자 또는 엔티티만 확인 가능)으로 구성될 수 있다. 예시적인 블록체인은 비트코인(Bitcoin) 블록체인, 이더리움(Ethereum) 블록체인, 빅체인DB(BigchainDB), 빌론(Billon), 체인(Chain), 코다(Corda), 크레딧츠(Credits), 엘리먼츠(Elements), 모낙스(Monax), 패브릭(Fabric), 히드라체인(HydraChain), 하이퍼레저(Hyperledger), 멀티체인(Multichain), 오픈체인(Openchain), 쿼럼(Quorum), 레이븐코인(Ravencoin), 소투스(Sawtooth) 및 스텔라(Stellar)를 포함하지만, 이에 제한되지 않는다. 바람직하게는, 분산 원장(122)은 공개 이더리움 블록체인이지만, 다른 구현예들도 가능하다. 비공개 블록체인(private blockchain)이 사용되는 경우, 상기 비공개 블록체인의 해시는 주기적으로 공개 블록체인(public blockchain), 예컨대 이더리움 블록체인 또는 비트코인 블록체인에 기입(commit)(즉, 기록)될 수 있다.
추가적으로 또는 대안적으로, 분산 원장(122)은 시스템(100)의 네트워크 노드(140) 간에 정보를 공유하기 위해 가십 프로토콜을 사용하는 IOTA 또는 Hashgraph와 같은 방향성 비사이클 그래프(Directed Acyclic Graph; DAG)를 구현할 수 있다. 또한, 작업 증명 없이 분산 원장(122)에서 합의에 도달할 수 있으며, 대신에 지분 증명(proof-of-stake)을 사용할 수 있다. 또한, 암호화 해시를 사용하여 상이한 데이터 세트를 연결하는 임의의 머클 트리(Merkle tree)(또는 해시 트리)는 분산 원장(122)에 의해 구현될 수 있다.
"지갑(wallet)"이라는 용어는 토큰과 같은 디지털 자산을 저장 및/또는 관리하기 위해 사용되는 소프트웨어 프로그램, 디지털 파일 및/또는 메모리를 지칭한다. 본 시스템 및 방법이 본원에서 토큰을 사용하여 기술되었지만, 이들은 임의의 유형의 디지털 자산과도 호환 가능하다. 예시들에서, 지갑은 하나 이상의 개인 키, 하나 이상의 개인 키로부터 도출된 하나 이상의 공개 키, 및/또는 하나 이상의 개인 키 및/또는 하나 이상의 공개 키로부터 도출된 하나 이상의 주소에 의해 정의될 수 있다. 예시들에서, 지갑은 하나 이상의 개인 계좌 키(및 선택적으로 상응하는 공용 계좌 키(들))에 의해 정의될 수 있으며, 이들 각각은 하나 이상의 자식 및/또는 손자 거래 키(transaction key)를 가질 수 있다. "계좌(account)"라는 용어는 분산 원장(122)상의 주소, 예컨대 계층 결정적(Hierarchical Deterministic; HD) 지갑의 이더리움 주소를 지칭하기 위해 사용될 수 있다.
이더리움 의견 제시 요구 20(Ethereum Request for Comments 20; ERC20)은 일련의 메소드를 정의하는 표준이다. ERC20을 준수하려면, 증권형 토큰(102)의 소유자가 자체적인 방식으로 이러한 메소드를 구현할 수 있더라도 암호화 토큰(예컨대, 유틸리티, 암호 화폐, 또는 증권)이 상기 메소드를 구현해야 한다. ERC20의 장점 중 하나는 각 애플리케이션, 지갑, 거래소, 또는 인터페이스를 각 특정 증권형 토큰(102)에 맞출 필요가 없다는 것이다. 오히려, 프로젝트가 ERC20 표준을 지원하는 경우, 다양한 ERC20 증권형 토큰(102)을 지원할 수 있다.
ERC20을 준수하기 위해, 증권형 토큰(102)은 totalSupply(), balanceOf(), transfer(), transferFrom(), approve(), 및 allowance()를 포함하는 6 개의 요구 메소드를 구현하는 토큰 로직 및/또는 파라미터(104)를 포함할 수 있다. 이러한 요구 메소드들은 토큰을 전송하는 방법과 토큰 관련 데이터에 액세스하는 방법을 설명한다. 또한, 토큰 로직/파라미터(104)는 ERC20을 준수하기 위해 다양한 이벤트, 예컨대 Transfer() 및 Approval()을 구현할 수 있다. 이러한 이벤트는 전송 및 승인에 대한 포맷 설정 지침을 설명한다.
transfer() 메소드/함수(109)는 토큰 거래가 요청될 때 호출될 수 있으며, transfer() 메소드(109)는, 예컨대 토큰 로직/파라미터(104) 및/또는 글로벌 레지스트리(108)의 하나 이상의 다른 스마트 계약에서 메소드(들)를 선택적으로 호출할 수 있다. transfer() 메소드(109)는 토큰(들)을 입력 주소로부터 적어도 하나의 출력 주소로 전송하는 임의의 적절한 방식으로 구현될 수 있다.
또한, 토큰 로직/파라미터(104)는 ERC20을 준수하기 위해 name(), symbol() 및/또는 decimals()와 같은 하나 이상의 선택적인 메소드를 구현할 수 있다. 이러한 선택적인 메소드는 증권형 토큰(102)에 명칭 및 심볼을 할당하기 위해 사용될 수 있을 뿐만 아니라 증권형 토큰(102)이 각각 사용하는 소수의 개수를 정의하는 데에도 사용될 수 있다. 이러한 메소드 및 이벤트는 네트워크 노드(140) 상의 가상 머신(예컨대, 이더리움 가상 머신)에 의해 실행될 수 있으며, ERC20 표준에서 추가적으로 설명하도록 한다.
또한, 토큰 로직 및/또는 파라미터(104)는 증권형 토큰(102)의 명칭, 동일한 유형의 토큰이 배포 또는 발행된 개수, 및/또는 증권형 토큰(102)의 심볼을 나타내는 데이터를 포함할 수 있다. 예시들에서, 증권형 토큰(102)의 심볼은 주식 티커 심볼(stock ticker symbol)과 유사한 증권형 토큰(102)의 다중(예컨대, 4 개 또는 5 개) 문자 식별자일 수 있다. 증권형 토큰(102)의 심볼은 금융산업규제기구(Financial Industry Regulatory Authority; FINRA)에 등록될 수 있다. 기업에 의해 발행된 증권형 토큰(102) 심볼은, 예컨대 특정 문자(예컨대, Q, X 또는 Z)를 기업의 티커 심볼의 말단부에 연결함으로써, 바람직하게는 기업의 티커 심볼의 확장된 버전으로 형성될 수 있다.
또한, 증권형 토큰(102)은, 예컨대 분산 원장(122)에 저장된 잔고 테이블(105)을 포함할 수 있다. 잔고 테이블(105)은 토큰의 모든 보유자의 잔고를 나타낼 수 있다. 예를 들어, 잔고 테이블(105)은 어느 주소(예컨대, 이더리움 주소)가 얼만큼의 토큰을 보유하는지를 나타낼 수 있다. 또는, 투자자(120)(또는 관리인(116) 또는 브로커 딜러(118)) 주소에 의한 인덱싱 대신, 잔고 테이블(105)은 다른 방식, 예컨대 투자자 성명의 해시 등으로 인덱싱될 수 있다. 증권형 토큰(102)의 잔고 테이블(105)은 공개(public), 반공개(semi-public) 또는 비공개(private)일 수 있으며, 특정 투자자(120), 관리인(116) 또는 브로커 딜러(118)이 보유한 토큰의 잔고가 공개적으로 이용 가능한 정보만으로 도출될 수 없도록 익명으로 형성될 수 있다.
잔고 테이블(105)은 배포되거나 발행된 모든 토큰을 고려할 수 있다. 토큰이 전송되면(즉, 잔고가 변경되면), 잔고 테이블(105)이 업데이트되어 상이한 네트워크 노드(140)에 저장된 증권형 토큰(102)의 각 사본에 배포될 수 있다. 예시들에서, 증권형 토큰(102)의 토큰(들)의 전송은 증권형 토큰(102)의 잔고 테이블(105)을 업데이트하는 것을 포함할 수 있다. 표 1은 각 투자자 주소에 대한 키/값 쌍을 포함하는 잔고 테이블(105)을 나타낸 예시적인 표이다.
투자자, 관리인, 또는 브로커 딜러 주소 토큰 잔고
0x7d2a3d9f938e13cd947eb85a924bb34df8dd866 525
0x1d2a3d9f991e13c5da7ec05a1c7fe734df8dd84a 50
0x1d2a3da66b8f13c5da7e9d5afc7fe734df8dd826 15000
0x1d2a3d9f938e13c4fa7ec0577c7fe734df8dd55e 1100
일부 예에서, 잔고 테이블(105)은, 주소(표 1의 좌측 열에 기재됨)에 의해 인덱싱되며 각 인덱스의 값이 상기 주소와 관련된 토큰 잔고(표 1의 우측 열에 기재됨)인 다중 객체 데이터 구조(예컨대, 어레이)로서 저장될 수 있다.
일부 구성에서, 증권형 토큰(102)은, 예컨대 분산 원장(122)에 저장된 토큰 공급량 파라미터(token supply parameter; 115)를 포함할 수 있다. 토큰 공급량 파라미터(115)는 총 발행(outstanding) 토큰의 총 개수를 나타낼 수 있다. 예를 들어, 토큰 공급량 파라미터(115)는 증권형 토큰(102)에 대한 잔고 테이블(105)에서 모든 주소에 대한 토큰 잔고의 합계일 수 있다.
그러나, (다른 유형의 토큰과 달리) 증권형 토큰(102)은 미국의 증권거래위원회(SEC)에 의해 규제될 수 있다. 따라서, 일반 회사법(General Corporation Law)과 관련된 델라웨어 주법의 제8편(Title 8 of the Delaware Code)을 충족하는 것이 바람직할 수 있는데, 이는 다수의 상장 기업이 델라웨어에 설립되어 있기 때문에 중요하다. 제8편을 충족하는 추가적인 메소드는 본원에서 제8편 메소드라고 지칭하며, 예컨대 이더리움 의견 제시 요구 884(Ethereum Request for Comments 884; ERC884)의 유무에 관계없이 다양한 방식으로 구현될 수 있다. 특히, 제8편 메소드는 각 토큰이 델라웨어 기업에 의해 발행된 단일 주식을 나타내는 토큰 생성을 수행할 수 있다. 즉, 이러한 토큰은 비공개 또는 공개 여부에 관계없이 임의의 델라웨어 기업이 발행한 보통주(equity)를 나타내도록 설계될 수 있다.
이에 따라, 토큰 로직 및/또는 파라미터(104)는 (ERC20에 의해 요구되는 6 개의 메소드 이상의) 하나 이상의 제8편 메소드를 구현할 수 있으며, 상기 하나 이상의 제8편 메소드는 addVerified(), removeVerified(), updateVerified(), cancelAndReissue(), isVerified(), isHolder(), holderCount(), holderAt(), hasHash(), isSuperseded(), 및/또는 getCurrentFor()를 포함한다. 또한, 토큰 로직/파라미터(104)는 (ERC20 호환성에 요구되는 6 개의 이벤트 이상의) 하나 이상의 이벤트, 예컨대 verifiedAddressAdded(), VerifiedAddressRemoved(), VerifiedAddressUpdate(), 및/또는 VerifiedAddressSuperseded()를 구현할 수 있다. 이러한 제8편 메소드 및 이벤트는 네트워크 노드(140) 상의 가상 머신에 의해 실행될 수 있다.
그러나, SEC 규정은 ERC20 및/또는 제8편 메소드에 의해 요구되거나 규제되지 않는 증권형 토큰(102)의 추가적인 요건들을 도입한다. SEC 규정에 대한 준수를 자체 규제적으로 수행하기 위해, 시스템(100)은 제8편 메소드 이상의 기능을 구현할 수 있다. 구체적으로, 하나 이상의 준수 규칙(106A, 106B)은 증권형 토큰(102)과 관련된 임의의 거래가 관련 SEC 규정을 준수한다는 것을 확인할 수 있다. 예시들에서, 준수 규칙(106)은, (1) 토큰(들)의 구매자 및/또는 판매자가 SEC 규정 A, D 및 S 중 적어도 하나에 따라 자격을 갖추고 있는지 검증하고; (2) AML 및/또는 KYC 서비스가 구매자 및/또는 판매자에 대해 수행되었는지 검증하며; (3) 토큰이 전송되는 것을 막는 동결 처리(하기에서 논의됨)가 수행되지 않았는지 검증하고; 및/또는 (4) 특정 증권형 토큰(102)이 매매 제한 기간(blackout period), 즉, 판매자가 토큰을 획득한 후 일정 기간(예컨대, 1 년) 동안 상기 토큰을 판매하는 것을 막는 제한에 걸려있지 않은지 검증할 수 있다.
일부 구성에서, 준수 규칙(들)(106A)은 (예컨대, 분산 원장(122)의) 증권형 토큰에 저장될 수 있다. 또는, 증권형 토큰(102)은 적어도 하나의 준수 규칙 포인터(107)를 포함할 수 있으며, 여기서 각각의 준수 규칙 포인터(107)는 (하나 이상의 스마트 계약을 사용하여 구현된) 적어도 하나의 외부 준수 규칙(106B)의 주소를 나타낸다. 이러한 유형의 구성에서, 상기 적어도 하나의 준수 규칙 포인터(107)는 필요한 경우 업데이트된 외부 준수 규칙(들)(106B)을 가리키도록 업데이트될 수 있다.
준수 규칙들(106) 중 적어도 하나는 (증권형 토큰(102) 외부에 존재하는) 글로벌 레지스트리(108)를 참조할 수 있다. 즉, 준수 규칙들(106) 중 적어도 하나는 데이터 저장 스마트 계약(128)에 저장된 정보에 액세스한다. 증권형 토큰(102)의 외부에 준수 규칙(106)을 저장함으로써, 예컨대 SEC 규정이 변경되고 적어도 하나의 준수 규칙(106)이 업데이트되어야 하는 경우, 증권형 토큰(102) 자체를 수정하지 않고 적어도 하나의 준수 규칙(106)을 업데이트할 수 있다. 또는, 적어도 하나의 준수 규칙(106)은 증권형 토큰(102) 자체에 포함될 수 있으며, 이 경우에 적어도 하나의 준수 규칙(106)을 수정(예컨대, 파기 및 재배포)하려면 증권형 토큰(102)을 수정해야 할 것이다. 선택적으로, 어떠한 준수 규칙(106)도 사용하지 않는 토큰 거래도 가능하다. 예를 들어, 기본 거동이 임의의 준수 규칙(106)에 관계없이 모든 거래를 승인하는 것일 수 있다.
글로벌 레지스트리(108)는 스마트 계약(128 내지 134)의 모음일 수 있다. 스마트 계약(128 내지 134)은 데이터를 저장하는 데이터 저장 스마트 계약(128)을 포함한다. 데이터 저장 스마트 계약(128)에 저장된 데이터는, (투자자(120)가 SEC 규정에 대한 면제 자격을 갖추고 있는지 여부에 대한 표시(indication)와 같은) SEC 규정에 대한 준수; 투자자(120)의 개인 식별 정보(Personally Identifiable Information; PII); 투자자(120)에 대해 AML/KYC가 수행되었는지 여부에 대한 표시; 및/또는 증권형 토큰(102), 관리인(116), 브로커 딜러(118) 및/또는 투자자(120)가 동결 처리되었는지 여부에 대한 표시와 관련될 수 있다.
데이터 저장 스마트 계약(128)의 데이터 구조(110)는, 각각 특정 투자자(120)에 대한 정보를 갖는 적어도 하나의 투자자 요소를 저장할 수 있다. 또한, 각 투자자 요소는, 투자자의 브로커 딜러(118)의 주소(예컨대, 이더리움 주소) 및/또는 (AML/KYC가 투자자(120)에 대해 수행되었는지 여부, 투자자(120) 출신 국가, 특정 토큰이 투자자(120)에 의해 소유된 기간 등과 같은) 다양한 규제 인증 정보를 포함할 수 있다. 투자자 요소의 속성은, 예컨대 온보딩 동안 브로커 딜러(118)에 의해 수집된 투자자(120)에 관한 다른 정보를 포함할 수 있다. 이러한 정보는, 고객 성명; 납세자 식별 번호(예컨대, 사회 보장 번호); 주소; 전화 번호; 이메일 주소; 생년월일; 운전 면허증, 여권 정보, 또는 기타 정부 발행 신분증의 정보; 고용 상태 및 직업; 고객이 증권 회사에 고용되어 있는지 여부; 연간 소득; 순자산; 계좌 투자 목표; 및/또는 개인 신원을 구별하기 위해 사용될 수 있는 모든 기타 데이터를 포함할 수 있다.
투자자 요소의 속성(예컨대, 투자자 요소의 슬롯에 존재하는 값)은, 예컨대 도 2a에 도시된 바와 같이, 쉼표로 구분된 값, 해시 테이블, 매핑, 사전, 및/또는 키/값 쌍 등으로 저장될 수 있다. 각 투자자 요소는 소유자(112), 발행자(114), 브로커 딜러(118), 관리인(116) 및/또는 투자자(120)(예컨대, 투자자(120)가 외부 투자자인 경우)에 의해 생성될 수 있다. 데이터 저장 스마트 계약(128)의 투자자 요소는 적절하게 업데이트될 수 있다. 예를 들어, 투자자(120)가 브로커 딜러(118)과 거래하는 계좌를 해지하는 경우, 해당 투자자 요소는 데이터 저장 스마트 계약(128)으로부터 제거될 수 있다. 추가적으로 또는 대안적으로, 투자자(120)는, 예컨대 투자자(120)가 외부 투자자인 경우, 자신과 관련된 투자자 요소(223)의 속성을 생성, 업데이트 및/또는 제거할 책임이 있을 수 있다.
데이터 저장 스마트 계약(128)은 투자자(120)가 계좌를 가지고 있는 브로커 딜러(118) 당 투자자(120)의 각 인스턴스에 대한 투자자 요소를 포함할 수 있다. 즉, 데이터 저장 스마트 계약(128)은 다수의 브로커 딜러(118)과 거래하는 계좌를 가진 투자자(120)에 대한 다수의 투자자 요소를 저장할 수 있다. 예시들에서, 투자자(120)에 대한 투자자 요소(들)는 투자자(120)가 관련된 브로커 딜러(118)에 의해서만 생성, 업데이트 및/또는 제거될 수 있으나, 다른 구성도 가능하다. 이에 따라, 각각의 브로커 딜러(118)은, 바람직하게는 각 브로커 딜러(118)의 고객인 투자자(120)와 관련된 투자자 요소를 생성, 수정 또는 제거할 수 있다.
선택적으로, 하나 이상의 다른 유형의 요소가 시스템(100)의 다양한 행위자에 대한 속성들을 포함하는 데이터 저장 스마트 계약(128)에 저장될 수 있다. 예시들에서, 다른 요소들(즉, 투자자 요소들 이외의 요소들)은 적어도 하나의 관리인 요소, 적어도 하나의 브로커 딜러 요소 및/또는 적어도 하나의 증권형 토큰 요소를 포함할 수 있다. 예시들에서, 브로커 딜러(118)에 대한 브로커 딜러 요소는 브로커 딜러(118)이 관련된 관리인(116)에 의해서만 생성, 업데이트 및/또는 제거될 수 있으나, 다른 구성도 가능하다. 선택적으로, 발행자 요소 및/또는 증권형 토큰 거래소 요소가 시스템의 모든 발행자(114) 및/또는 증권형 토큰 거래소(124)에 대해 저장될 수 있다. 다른 요소들 중 하나의 속성들(예컨대, 요소의 슬롯에 존재하는 값)은 쉼표로 구분된 값, 해시 테이블, 매핑, 사전, 및/또는 키/값 쌍 등으로 저장될 수 있다.
상술한 바와 같이, 각 스마트 계약(예컨대, 증권형 토큰(102))은 스마트 계약에 의해 구현된 메소드를 호출하기 위해 사용될 수 있는 주소에 저장될 수 있다. 스마트 계약을 업그레이드하는 종래의 해결 방안은 업그레이드 전후에 스마트 계약에 대해 동일한 주소를 유지한다. 예를 들어, 프록시 패턴을 통한 스마트 계약의 업그레이드는, (1) 절대 변경되지 않는 주소의 프록시 계약; 및 (2) 상기 프록시 계약이 가리키는 비 프록시 계약을 배포하는 단계를 포함한다. 비 프록시 계약은 계약의 실질적인 기능을 구현하는 반면, 프록시 계약은 비 프록시 계약의 주소를 가리킬 뿐이다(다른 기능이 거의 또는 전혀 없음). 업그레이드시, 프록시 계약이 가리키는 주소는 새로 배포된 비 프록시 계약으로 변경되는 반면, 프록시 계약의 주소(프록시 계약이 호출되는 주소)는 변경되지 않는다.
이와 대조적으로, 본 시스템 및 방법에 따르면, 제1 스마트 계약의 업그레이드는, (1) 제2 스마트 계약을 배포하고, (제1 스마트 계약의 업그레이드 주소(111) 필드의) 주소가 제2 스마트 계약을 가리키도록 변경하는 단계; (2) 제2 스마트 계약의 신규 토큰(102)을 중간 주소(예컨대, 발행자의 주소)로 발행하는 단계; (3) (토큰 보유자 주소의 세트에 보유된) 제1 스마트 계약의 기존 토큰(102)을 제2 스마트 계약의 주소로 마이그레이션(migration)하는 단계; 및 (4) 제2 스마트 계약의 신규 토큰을 중간 주소로부터 (이전에 제1 스마트 계약의 기존 토큰(102)를 보유했던) 토큰 보유자 주소의 세트로 전송하는 단계를 포함할 수 있다. 따라서, 제1 스마트 계약은 배포된 상태로 유지되며, 원하는 경우 업그레이드 이후에도 감사(監査)가 수행될 수 있는데, 이는 제1 및 제2 스마트 계약이 모두 보기 가능(viewable)/찾기 가능(findable) 상태로 유지되기 때문이다.
선택적으로, 부모 주소(117)는 배포된 경우 제2 스마트 계약에 설정될 수 있다. 부모 주소(117)는 제1 스마트 계약의 주소를 가리킬 수 있다. 부모 주소(117)는 원하는 경우 토큰 히스토리가 역 시간 순으로 추적되도록 할 수 있다.
스마트 계약(예컨대, 증권형 토큰(102))의 주소가 스마트 계약의 업그레이드 주소(111) 필드와 상이하다는 점에 유의해야 한다. 스마트 계약"의" 주소는 스마트 계약이 분산 원장에 저장된 주소이다. 업그레이드 주소(111)는, 스마트 계약의 후속 버전(의 주소)을 가리키는 값을 갖는 스마트 계약의 필드이다.
도 2a는도 1에 도시된 시스템(100)에서 사용되는 데이터 구조(110)를 나타내는 블록도이다. 하나 이상의 데이터 구조(110)가 데이터 저장 스마트 계약(128)에 저장될 수 있다. 각 데이터 구조(110)는 하나 이상의 요소(223A 내지 223M)를 포함할 수 있으며, 여기서 각 요소(223)는 특정 관리인(116), 브로커 딜러(118) 또는 투자자(120)에 대응한다(즉, 이에 대한 정보를 포함한다). 선택적으로, 증권형 토큰 요소(223)는 하나 이상의 데이터 구조(110)에 저장될 수도 있다.
일부 구성에서, 특정 데이터 구조(110)의 모든 요소(223)는 동일한 유형의 엔티티에 대응하고, 예컨대 모든 요소(223)는 시스템(100)의 투자자(120)에 대응할 수 있다. 이러한 구성에서, 데이터 저장 스마트 계약(128)은, 모든 투자자(120)를 위한 제1 데이터 구조(110), 모든 관리인(116)를 위한 제2 데이터 구조(110), 모든 브로커 딜러(118)을 위한 제3 데이터 구조(110), 및/또는 시스템(100)의 모든 증권형 토큰(102)을 위한 제4 데이터 구조(110)를 포함할 수 있다. 또는, 특정 데이터 구조(110)는 상이한 유형의 엔티티에 대응하는 요소(223)를 포함할 수 있다. 즉, 투자자 요소(들)(223), 관리인 요소(들)(223) 및 브로커 딜러 요소(들)(223)는 단일 데이터 구조(110)에 포함될 수 있다.
일부 구성에서, 각 요소(223)는 2 개의 저장 슬롯(215A 내지 215N)을 포함할 수 있으며, 여기서 각 저장 슬롯은 고정된 개수의 바이트이다. 예를 들어, 저장 슬롯은 32 바이트 길이(또는 임의의 적절한 길이)를 가질 수 있으며, 예컨대 각 저장 슬롯(215)은 솔리디티 프로그래밍 언어의 슬롯일 수 있다. 도 2a에는 각 요소(223)가 2 개의 저장 슬롯(215)을 포함하는 것으로 도시되어 있으나(즉, N = 2M), 요소(223)는 단일 저장 슬롯(215)만을 포함하거나(즉, N = M), 또는 2 개 초과의 저장 슬롯(215)을 포함할 수도 있다(즉, N > 2M).
각 저장 슬롯(215)은 키(219A 내지 219N) 및 값(221A 내지 221N), 즉, 키/값 쌍을 포함할 수 있다. 각 키(219)는 요소(223)가 대응하는 엔티티의 유형을 나타내는 제1 레벨(예컨대, 관리인(116), 브로커 딜러(118), 투자자(120) 등) 및 특정 엔터티가 소유한 주소(예컨대, 이더리움 주소)를 나타내는 제2 레벨을 구비하는 중첩 구조일 수 있다. 이러한 방식으로, 키(215)는 (엔티티의 유형으로) 인코딩될 수 있다. 주소에 의한 인덱싱 대신에, 키(219)의 제2 레벨은, 예컨대 엔티티/투자자/증권형 토큰 명칭 등의 해시와 같은 다른 방식으로 인덱싱될 수 있다. 선택적으로, 키(219)는 2 개 초과의 레벨을 포함할 수 있다. 요소(223)가 2 개의 슬롯(215)을 포함하는 경우, 요소(223)의 제1 저장 슬롯(215)에 존재하는 키(219)는 요소(223)의 제2 슬롯(215)에 존재하는 키(219)와 동일하거나 상이할 수 있다.
값(221)에 포함된 정보는 요소(223)가 대응하는 엔티티의 유형에 따라 달라질 수 있다. 데이터 구조(110)의 각 값(221)은, 요소(223)가 대응하는 엔티티의 유형을 나타내는 제1 레벨(예컨대, 관리인(116), 브로커 딜러(118), 투자자(120) 등) 및 추가 정보를 나타내는 하나 이상의 추가적인 레벨을 구비하는 중첩 구조일 수 있다. 이러한 방식으로, 값(221)은 컴퓨팅 장치(예컨대, 네트워크 노드(140))가 값(221)의 데이터를 해석하는 방법을 알 수 있도록 (엔티티의 유형으로) 인코딩될 수 있다. 다시 말해서, 컴퓨팅 장치(예컨대, 네트워크 노드(140))는 인코딩, 즉, 값(221)에 표시된 유형에 기초하여 값(221)의 데이터를 다르게 해석할 것이다. 다수의 파라미터가 동일한 값(221)에 들어가기에 알맞도록 비트 이동(bit-shifted)(및/또는 연결(concatenated))될 수 있다.
예를 들어, 특정 투자자 요소(223)의 제1 저장 슬롯(215)의 값(221)은 제1 레벨에 "투자자"를 나타내는 하나 이상의 비트 및 제2 레벨에 투자자(120)에 대한 PII 해시를 포함할 수 있다. 또한, 투자자 요소(223)의 제2 저장 슬롯(215)의 값(221)은 투자자(120)의 다른 속성을 나타내는 하나 이상의 비트를 포함할 수 있다.
다른 데이터 구조(110)의 예시는 관리인 요소(223), 브로커 딜러 요소(223), 및/또는 선택적인 증권형 토큰 요소(223)를 포함한다. 각 관리인 요소(223)는 특정 관리인(116)에 대한 속성(들)을 포함할 수 있다. 선택적으로, 관리인 요소(223)는 관리인 요소(223)와 관련된 하나 이상의 투자자 요소(223), 브로커 딜러 요소(223), 및/또는 증권형 토큰 요소(223)의 주소(예컨대, 이더리움 주소)를 참조할 수 있다. 예를 들어, 관리인 요소(223)는 관리인(116)과 관련된 하나 이상의 브로커 딜러(118)의 주소(예컨대, 이더리움 주소)를 포함할 수 있다.
각 브로커 딜러 요소(223)는 특정 브로커 딜러(118)에 대한 속성(들)을 포함할 수 있다. 특정 브로커 딜러 요소(223)의 값(들)(221)은 제1 레벨에 "브로커 딜러(broker dealer)"을 나타내는 하나 이상의 비트 및 제2 레벨에 브로커 딜러(118)에 대한 속성(들)을 나타내는 하나 이상의 비트를 포함할 수 있다. 선택적으로, 브로커 딜러 요소(223)는 브로커 딜러 요소(223)와 관련된 하나 이상의 투자자 요소(223), 관리인 요소(223) 및/또는 증권형 토큰 요소(223)의 주소(예컨대, 이더리움 주소)를 참조할 수 있다. 예를 들어, 브로커 딜러 요소(223)는 브로커 딜러(118)과 관련된 하나 이상의 관리인(116)의 주소(예컨대, 이더리움 주소)를 포함할 수 있다.
각 증권형 토큰 요소(223)는 특정 증권형 토큰(102)에 대한 속성(들)을 포함할 수 있다. 선택적인 증권형 토큰 요소(223)의 값(들)(221)은 제1 레벨에 "증권형 토큰"을 나타내는 하나 이상의 비트 및 제2 레벨에 증권형 토큰(102)에 대한 속성(들)을 나타내는 하나 이상의 비트를 포함할 수 있다. 증권형 토큰(102)에 관한 다양한 종류의 정보가 증권형 토큰 요소(223)의 값(들)에 포함될 수 있다.
각 선택적인 발행자 요소(223)는 특정 발행자(114)에 대한 속성(들)을 포함할 수 있다. 특정 선택적인 발행자 요소(223)의 값(들)(221)은 제1 레벨에 "발행자(issuer)"를 나타내는 하나 이상의 비트 및 제2 레벨에 발행자(114)에 대한 속성(들)을 나타내는 하나 이상의 비트를 포함할 수 있다. 선택적으로, 발행자 요소(223)는 발행자(114)와 관련된 하나 이상의 투자자(120), 관리인(116), 브로커 딜러(118) 및/또는 증권형 토큰(102)의 주소(예컨대, 이더리움 주소)를 참조할 수 있다.
도 2b는도 1에 도시된 시스템(100)에서 엔티티의 계층 구조를 나타내는 블록도이다. 구체적으로, 도 2b는 시스템(100)의 하나 이상의 투자자(120), 선택적인 하나 이상의 브로커 딜러(118), 선택적인 하나 이상의 관리인(116) 및/또는 하나 이상의 소유자(112) 사이의 관계를 도시한다.
예시들에서, 도 2b의 계층 구조는 시스템(100)의 데이터 권한을 정의할 수 있다. 상기 계층 구조(hierarchy)는 임의의 적절한 형태로 저장될 수 있고, 및/또는 다양한 요소(223)에 저장된 데이터에 포함될 수 있다.
데이터 구조(110)는 다수의 브로커 딜러(118)과 거래하는 계좌를 가진 투자자(120)에 대한 다수의 투자자 요소(223)를 저장할 수 있다. 예시들에서, 제1 투자자 요소(223A)는, 예컨대 제1 브로커 딜러(118A)에 의해 수행되는 온보딩 동안, 제1 브로커 딜러(118A)에 의해 수집된 데이터에 따라 특정 투자자(120)를 설명할 수 있다. 이와 유사하게, 다른 투자자 요소(223B)는, 예컨대 다른 브로커 딜러(118B)에 의해 수행되는 온보딩 동안, 다른 브로커 딜러(118B)에 의해 수집된 데이터에 따라 동일한 특정 투자자(120)를 설명할 수 있다. 추가적으로 또는 대안적으로, 투자자 요소(120I)는 브로커 딜러(118) 또는 관리인(116)의 고객이 아닌 외부 투자자를 위해 저장될 수 있다.
글로벌 레지스트리(108)를 구현하는 임의의 스마트 계약은 네트워크 노드(140) 상에서 실행되는 가상 머신(예컨대, 이더리움 가상 머신)에 의해 실행될 수 있다. 시스템(100)의 각 엔티티는 데이터 저장 스마트 계약(128)에 대해 상이한 데이터 권한을 가질 수 있다. 예시들에서, 소유자(112)는 자신의 계층 구조(hierarchy)에 관리인(116), 브로커 딜러(118) 및/또는 투자자(120)에 대한 요소를 추가, 제거 및/또는 변경할 수 있다. 관리인(116)은 자신의 계층 구조에 브로커 딜러(118) 및/또는 투자자(120)에 대한 요소를 추가, 제거 및/또는 변경할 수 있다. 브로커 딜러(118)는 자신의 계층 구조에 투자자(120)에 대한 요소를 추가, 제거 및/또는 변경할 수 있다. 소유자(112)는 자신의 계층 구조에 관리인(116), 브로커 딜러(118) 및/또는 투자자(120)에 대한 요소를 추가, 제거 및/또는 변경할 수 있다. 일부 구성에서, 투자자(120)는 2 개의 주소 사이에서 펀드 및/또는 토큰을 전송하는 transfer() 메소드(109)를 호출할 권한을 가질 수 있다.
도 3은 업그레이드 가능한 스마트 계약의 3 개의 상이한 버전(302A 내지 302C)을 나타내는 블록도이다. 다시 말해서, 도 3은 2 번 업그레이드된 스마트 계약(302)를 나타내며, 이에 따라 스마트 계약의 제1 버전(302A), 스마트 계약의 제2 버전(302B) 및 스마트 계약의 제3 버전(302C)이 생성된다. 일부 구성에서, 도 3에 도시된 스마트 계약(302)은 상술한 증권형 토큰(102)을 구현할 수 있다. 도 3에 도시되지는 않았지만, 본원에 기술된 각 스마트 계약(302)은 도 1의 증권형 토큰(102)에 대해 설명된 동일한 기능, 메소드 및/또는 파라미터의 어느 일부 또는 전부를 구현할 수 있다.
각 스마트 계약(302)은 그 후속 후손 계약에 대한 주소를 보유한다. 이러한 주소는 각각의 업그레이드 주소(111A 내지 111C) 필드의 각 스마트 계약(302)에 저장될 수 있다. 스마트 계약의 제1 버전(302A)의 업그레이드 주소(111A)는 스마트 계약의 제2 버전(302B)의 주소를 가리키며, 스마트 계약의 제2 버전(302B)의 업그레이드 주소(111B)는 스마트 계약의 제3 버전(302C)의 주소를 가리킨다. 이러한 방식으로, 제3 버전(302C)은 제1 버전(302A)의 자식/후손인 제2 버전(302B)의 자식/후손이다.
스마트 계약의 제3 버전(302C)이 현재 버전이라고 가정하면, 스마트 계약의 제3 버전(302C)의 업그레이드 주소(111C)는 설정 해제, 예컨대 모든 비트가 "0"으로 설정되거나, 모든 비트가 "1"로 설정되거나, 또는 스마트 계약(302)이 구현되는 분산 원장(122)의 주소에 대응하지 않는 임의의 다른 값이 설정될 수 있다. 설정 해제된 업그레이드 주소(111C)는 스마트 계약의 제3 버전(302C)이 스마트 계약(302)의 현재 활동 구현체, 예컨대 스마트 계약(302)의 최신 배포 버전임을 의미한다. 일부 구성에서, 스마트 계약(302)의 업그레이드 주소(111)는, 예컨대 분산 원장(122)의 스마트 계약(302)에 구현된 메소드를 호출함으로써, 스마트 계약(302)의 발행자(114)에 의해 초기에 설정될 수 있다.
일부 구성에서, 업그레이드 주소(111) 필드는 일단 설정되면 변경되지 않는다. 스마트 계약(302)의 동일한 후속 버전을 가리키도록 영구적으로 설정된 스마트 계약(302)의 업그레이드 주소(111) 필드를 유지하면, 스마트 계약(302)의 업그레이드 히스토리에 대한 감사(監査)가 가능하다. 스마트 계약(302)의 업그레이드 경로에 대한 감사를 수행하기 위해, 버전들은, 예컨대 제3 버전(302C)으로부터 제2 버전(302B)으로, 그리고 제1 버전(302A)으로, 역방향으로 추적될 수 있다. 감사 외에는 스마트 계약(302)의 수명 동안 역방향으로 추적할 필요가 없는데, 이는 주요 관심사가 그들이 가리키는 주소가 스마트 계약(302)의 활동 버전인지 여부 및 활동 버전이 아닌 경우에 활동 버전을 추적하는 방법이기 때문이다.
선택적으로, 각 스마트 계약(302)은 그들의 부모 계약에 대한 주소를 보유한다. 이러한 주소는 부모 주소(117A 내지 117C) 필드에 저장될 수 있다. 스마트 계약의 제1 버전(302A)이 가장 초기 버전이라고 가정하면, 스마트 계약의 제1 버전(302A)의 선택적인 부모 주소(117A)는 설정 해제, 예컨대 모든 비트가 "0"으로 설정되거나, 모든 비트가 "1"로 설정되거나, 또는 스마트 계약(302)이 구현되는 분산 원장(122)의 주소에 대응하지 않는 임의의 다른 값이 설정될 수 있다. 스마트 계약의 제2 버전(302B)의 선택적인 부모 주소(117B)가 스마트 계약의 제1 버전(302A)의 주소를 가리키는 반면, 스마트 계약의 제3 버전(302C)의 업그레이드 주소(117C)는 스마트 계약의 제2 버전(302B)의 주소를 가리킨다. 이러한 방식으로, 제1 버전(302A)은 제3 버전(302C)의 부모인 제2 버전(302B)의 부모가 된다.
제1 예시에서, 계약이 업그레이드될 때, 예컨대 업그레이드 주소(111) 및/또는 부모 주소(117)가 설정될 때 이벤트가 발생한다. 예시들에서, (예컨대, 투자자(120), 브로커 딜러(118), 관리인, 발행자(114), 소유자(112) 또는 네트워크 노드(140)에 속하는) 장치는 이러한 이벤트를 청취(listen)할 수 있다. 예시들에서, 이벤트는 업그레이드 주소(111) 및/또는 설정된 부모 주소(117)를 나타낸다. 자식 스마트 계약(302)은 이벤트시 업그레이드 주소(111)를 사용하여 직접 호출될 수 있다.
제2 예시에서, 호출 장치는 부모 스마트 계약(302)의 업그레이드 주소(111) 및/또는 부모 주소(117)가 설정되었는지 여부를 결정하기 위해 부모 스마트 계약(302)을 선택적으로 호출할 수 있다. 예시들에서, 자식 스마트 계약(302)의 getter 함수는 (부모를 가리키는) 부모 주소(117)를 반환할 수 있는 반면, 부모 스마트 계약(302)의 getter 함수는 (자식을 가리키는) 업그레이드 주소(111)를 반환할 수 있다. 예시들에서, 이러한 함수는 업그레이드 주소(111) 및/또는 부모 주소(117)가 설정되지 않은 경우 제로 주소(zero address)를 반환할 수 있다.
스마트 계약(302)이 증권형 토큰(102)을 구현하는 예시들에서, 스마트 계약(302)의 각 버전은 토큰 공급량 파라미터(115)를 포함할 수 있다. 토큰 공급량 파라미터(115)는 증권형 토큰(102)/스마트 계약(302)에서 총 발행(outstanding) 토큰의 총 개수를 나타낼 수 있다. 예를 들어, 토큰 공급량 파라미터(115)는 증권형 토큰(102)/스마트 계약(302)에 대한 잔고 테이블(105)에서 모든 주소에 대한 토큰 잔고의 합계일 수 있다.
일단 스마트 계약(302)의 후속 버전이 배포되면, 발행자(114)(또는 소유자(112))는 (스마트 계약(302)의 후속 버전에 대한) 총 공급량 파라미터(115)를 부모 버전의 총 공급량 파라미터(115)와 일치하도록 설정한다. 도 3의 예시에서, 스마트 계약의 제2 버전(302B)의 총 공급량 파라미터(115B)는 스마트 계약의 제2 버전(302B) 배포 이후 스마트 계약의 제1 버전(302A)의 총 공급량 파라미터(115A)와 동일하게 설정될 수 있다. 이와 유사하게, 스마트 계약의 제3 버전(302C)의 총 공급량 파라미터(115C)는 스마트 계약의 제3 버전(302C)의 후속 배포 이후 스마트 계약의 제2 버전(302B)의 총 공급량 파라미터(115B)와 동일하게 설정될 수 있다.
또한, 스마트 계약(302)이 증권형 토큰(102)을 구현하는 예시들에서, 각 버전(302)은 토큰 잔고 및 증권형 토큰(102)/스마트 계약(302)의 각 버전에서 발행된 토큰에 대한 주소를 나타내는 잔고 테이블(105A 내지 105C)을 포함할 수 있다. 각 잔고 테이블(105)의 토큰 잔고 및 주소는 스마트 계약(302)의 상태의 일부로 간주될 수 있다. 도 4a 내지 4d에 설명되는 바와 같이, 스마트 계약의 부모 버전 및 자식 버전 모두의 상태/잔고 테이블(105)은 부모 버전의 토큰이 자식 버전으로 마이그레이션되는 것을 반영하도록 업데이트될 수 있다.
도 4a 내지 4d는 토큰들(102)을 스마트 계약(302)의 후속 버전으로 마이그레이션하는 상이한 단계를 나타내는 블록도이다. 도 4a 내지 4d의 예시에서, 업그레이드되는 스마트 계약(302)은 증권형 토큰(102)을 구현하고 있다. 구체적으로, 도 4a 내지 4d 각각은 2 개의 잔고 테이블(105)을 도시하는데, 여기서 좌측 테이블(105A)은 (사장되는(deprecated)) 부모 스마트 계약(302)에 대해 구현(및 그 토큰을 추적함)되며, 우측 테이블(105B)은 부모 스마트 계약(302)의 후속 버전인 자식 스마트 계약(302)에 대해 구현(및 그 토큰을 추적함)된다. 자식 스마트 계약(302)의 주소가 주소 D라고 가정한다. 다시 말해서, 자식 스마트 계약(302)은 분산 원장(122)의 주소 D에 저장된다.
도 4a는 토큰을 스마트 계약(302)의 후속 버전으로 마이그레이션하는 동안의 제1 단계를 도시한다. 처음에, 부모 스마트 계약(302)(좌측의 잔고 테이블(105A)로 표시됨)이 450 개의 총 발행 토큰을 포함한다고 가정한다(총 공급량 파라미터(115)는 450과 동일함). 부모 스마트 계약(302)의 총 발행 토큰은, 주소 A에 100 개, 주소 B에 150 개, 및 주소 C에 200 개로, 3 개의 상이한 주소에 분산될 수 있다.
자식 스마트 계약(302)의 배포 이후, 발행자(114)(또는 소유자(112))는 부모 스마트 계약(302)의 토큰을 거래 허용하거나 거래 제한할 수 있다. 거래 제한은, 수신자가 업그레이드 주소(111) 필드의 주소(이 예시에서는 주소 D)와 일치하는 주소이지 않는 한, 부모 스마트 계약(302) 내에서 발생하는 모든 거래를 제한함으로써 업그레이드를 강제할 수 있다. 다시 말해서, 거래 제한은 부모 스마트 계약(302)의 토큰의 보유자가 자신의 보유 자산을 자식 스마트 계약(302)으로만 전송할 수 있음을 의미한다. 마이그레이션 이후, 자식 스마트 계약(302)(주소 D)은 부모 스마트 계약(302) 내의 보유자가 될 것이다. 이는 보유자가 토큰을 자식 스마트 계약(302)의 주소(주소 D)로 마이그레이션/전송함에 따라 유사 소각 기능(pseudo-burn functionality)을 제공하는 동시에, 업그레이드 동안 토큰 전환에 대한 전체 감사 추적을 제공한다.
자식 스마트 계약(302)이 처음 배포될 때(우측의 잔고 테이블(105B)로 표시됨), 총 발행 토큰 또는 토큰 보유자가 존재하지 않으므로(총 공급량 파라미터(115)는 0과 동일함), 잔고 테이블(105B)은 비어 있을 것이다. 이후, 신규 토큰이 업그레이드 프로세스의 일부로서 (부모 스마트 계약(302)의 총 공급량 파라미터(115)와 동일한 개수(450 개) 만큼) 자식 스마트 계약에서 발행된다. 예를 들어, 450 개의 신규 토큰이 자식 스마트 계약(302)에서 발행자(114)의 주소로 발행된다. (부모 스마트 계약(302)의) 기존 토큰이 주소 D로 마이그레이션됨에 따라, (자식 스마트 계약(302)의) 대응하는 신규 토큰은 발행자의 주소에서 토큰 보유자 주소로 전송된다.
도 4b 내지 4d는 3 개의 주소(A, B, C)에 보유된 (부모 스마트 계약(302)의) 기존 토큰이 자식 스마트 계약(302)의 주소(주소 D)로 마이그레이션하는 마이그레이션 경로와, 이에 대응하여 발행자의 주소로부터 3 개의 주소(A, B, C)로 발생하는 (자식 스마트 계약(302)의) 신규 토큰의 전송을 도시한다. 부모 스마트 계약(302)의 토큰을 거래 제한하는 대신, 발행자(114)는 부모 스마트 계약(302)이 거래를 계속하도록 허용할 수 있다는 점에 유의해야 한다. 부모 스마트 계약(302)이 계속 거래하는 경우, 부모 스마트 계약(302)의 토큰은 자식 스마트 계약(302)의 주소(주소 D)가 아닌 다른 주소로 전송될 수 있다. 예를 들어, 발행자(114)가 부모 스마트 계약(302)이 거래를 계속하도록 허용하는 경우, 주소 A와 관련된 토큰 보유자는 자신의 토큰 중 50 개를 (주소 D 대신에) 주소 B로 전송할 수 있다.
추후 업그레이드는 도 4a 내지 4d와 관련하여 설명된 것과 동일한 흐름을 따르며, 발행자(114)는 퇴역(obsolete) 부모 스마트 계약의 토큰이 활동적으로 거래되도록(또는 거래되지 않도록) 할 수 있다. (부모 스마트 계약(302)의 토큰이 계속 거래 허용되는지 여부에 대한) 규제는 (1) 토큰(102)/스마트 계약(302) 자체에서 구현된 준수 규칙(들)(106A); 및/또는 (2) 토큰(102)/스마트 계약(302)에 대해 외부적으로 구현된 준수 규칙(들)(106B)에서 발생할 수 있다. 다시 말해서, 업그레이드가 강제되는 것에 응답하여, 모든 토큰 거래가 자식 스마트 계약(302)의 주소(주소 D)로 전송되어야 하는 부모/사장되는(deprecated) 토큰(102)의 (또는 이와 달리 관련된) 준수 규칙이 시행된다. 일부 구성에서, 준수 규칙(106)은, 업그레이드 주소(111) 필드가 설정되었는지(거래가 제한됨을 나타냄) 또는 설정되지 않았는지(거래가 허용됨을 나타냄)를 결정함으로써, 부모 스마트 계약(302)의 토큰이 계속 거래 허용되는지 여부를 결정할 수 있다.
도 4b는 100 개의 토큰이 주소 A로부터 주소 D로 마이그레이션되는 토큰(102)의 마이그레이션 동안의 제2 단계를 도시한다. 다시 말해서, (주소 A와 관련된) 보유자는 부모 스마트 계약(302)에 존재하는 자신의 100 개의 기존 토큰을 자식 스마트 계약(302)의 주소 D로 마이그레이션한다. 이에 따라, 부모 스마트 계약(302)에 존재하는 이러한 100 개의 기존 토큰이 효과적으로 소각되는데, 이는 상기 100 개의 기존 토큰이 주소 D의 외부로 전송되지 않기 때문이다. 예시들에서, 기존 토큰의 (예컨대, 주소 A, B 또는 C로부터 주소 D로의) 마이그레이션은 분산 원장(122)의 부모 스마트 계약(302)에 구현된 전송 메소드를 호출하는 단계를 포함할 수 있다. 전송 메소드는 발행자(114), 소유자(112) 또는 전송 주소와 관련된 토큰 보유자에 의해 호출될 수 있다.
토큰 보유자 주소로부터 부모 스마트 계약(302)의 주소(D)로 기존 토큰을 마이그레이션하는 것 외에도, 자식 스마트 계약(302)의 대응하는 신규 토큰이 발행자의 주소로부터 토큰 보유자 주소로 전송된다. 예시들에서, 부모 스마트 계약(302)의 모든 기존 토큰을 대체하기 위해 (업그레이드 프로세스 동안) 자식 스마트 계약(302)에서 발행자의 주소로 충분한 신규 토큰이 발행된다. 예를 들어, 450 개의 신규 토큰이 자식 스마트 계약(302)에서 발행자의 주소로 발행된다. 예시들에서, (자식 스마트 계약(302)의) 모든 신규 토큰은 한 번에 발행된다. 이후, (부모 스마트 계약(302)의) 기존 토큰이 토큰 보유자 주소로부터 자식 스마트 계약(302)의 주소(주소 D)로 마이그레이션됨에 따라, 상응하는 수의 (자식 스마트 계약(302)의) 신규 토큰이 발행자의 주소로부터 토큰 보유자 주소로 전송된다.
이에 따라, (부모 스마트 계약(302)의) 100 개의 기존 토큰이 주소 A로부터 주소 D로 전송된 후, (자식 스마트 계약(302)의) 상응하는 100 개의 신규 토큰이 발행자의 주소로부터 주소 A로 전송될 수 있다. 예시들에서, 기존 토큰을 주소 D로 전송하는 전송 메소드 호출의 주소는, 발행자의 주소로부터 신규 토큰을 전송하기 위한 출력 주소로서 사용될 수 있다.
도 4c는 150 개의 토큰이 주소 B로부터 주소 D로 마이그레이션되는 토큰(102)의 마이그레이션 동안의 제3 단계를 도시한다. 다시 말해서, (주소 B와 관련된) 보유자는 부모 스마트 계약(302)에 존재하는 자신의 150 개의 기존 토큰을 자식 스마트 계약(302)의 주소 D로 마이그레이션하여, 이러한 150 개의 기존 토큰을 효과적으로 소각한다. 예시들에서, 상기 마이그레이션은, 발행자(114), 소유자(112), 또는 (전송 주소와 관련된) 토큰 보유자가 분산 원장(122)의 부모 스마트 계약(302)에 구현된 전송 메소드를 호출하는 단계를 포함한다. 이러한 150 개의 기존 토큰의 마이그레이션 이후, (부모 스마트 계약(302)의) 주소 D는 부모 스마트 계약(302)의 기존 토큰을 250 개(주소 A로부터 100 개, 및 주소 B로부터 150 개)만큼 보유할 수 있다. 또한, 이에 상응하는 자식 스마트 계약(302)의 신규 토큰 150 개가 발행자의 주소로부터 주소 B로 전송될 수 있다. 이 때, 발행자의 주소는 200 개의 잔여 신규 토큰을 보유한다(450 - 100(주소 A로) - 150(주소 B로)).
도 4d는 200 개의 토큰이 주소 C로부터 주소 D로 마이그레이션되는 토큰(102)의 마이그레이션 동안의 제4 단계를 도시한다. 다시 말해서, (주소 C와 관련된) 보유자는 부모 스마트 계약(302)에 존재하는 자신의 200 개의 기존 토큰을 자식 스마트 계약(302)의 주소 D로 마이그레이션하여, 이러한 200 개의 기존 토큰을 효과적으로 소각한다. 예시들에서, 상기 마이그레이션은, 발행자(114), 소유자(112), 또는 (전송 주소와 관련된) 토큰 보유자가 분산 원장(122)의 부모 스마트 계약(302)에 구현된 전송 메소드를 호출하는 단계를 포함한다. 이러한 200 개의 기존 토큰의 마이그레이션 이후, 부모 스마트 계약(302)의 최종 상태는 단일 보유자인 (자식 스마트 계약(302)의) 주소 D를 가지며, 상기 단일 보유자는 부모 스마트 계약(302)의 기존 토큰을 총 공급량인 450 개(주소 A로부터 100 개, 주소 B로부터 150 개, 및 주소 C로부터 200 개)만큼 보유한다. 이는 본질적으로 부모 스마트 계약(302)의 기존 토큰을 잠금/소각하며, 이들이 자식 스마트 계약(302)으로 마이그레이션되었음을 증명한다.
또한, 이에 상응하는 자식 스마트 계약(302)의 200 개의 신규 토큰이 발행자의 주소로부터 주소 C로 전송될 수 있다. 이 때, 발행자의 주소는 0 개의 신규 토큰을 보유하며, 발행자의 주소는 잔고 테이블(105B)로부터 선택적으로 제거될 수 있다.
도 5는 자식 스마트 계약(302)을 배포하는 방법(500)을 나타내는 흐름도이다. 방법(500)은 시스템(100)에서 가상 머신을 실행하는 적어도 하나의 프로세서, 예컨대 네트워크 노드(140)의 적어도 하나의 프로세서에 의해 실행될 수 있다. 방법(500)은, 예컨대 분산 원장(122)에 저장된 증권형 토큰(102)/스마트 계약(302)에 구현된 하나 이상의 메소드를 실행하는 단계를 포함할 수 있다. 또한, 방법(500)은, 예컨대 분산 원장(122)에 저장된 증권형 토큰(102)/스마트 계약(302)의 하나 이상의 파라미터를 사용할 수 있다.
방법(500)은, 적어도 하나의 프로세서가 분산 원장(122)에 부모 스마트 계약(302)의 후속 버전("자식"이라고도 함)인 자식 스마트 계약(302)을 배포하는 단계(502)로 시작한다. 현재 구현된 버전은 아니지만, 감사 가능성을 유지하기 위해 자식 스마트 계약(302)이 배포된 후에도 부모 스마트 계약(302)은 배포된 상태로 유지된다. 예시들에서, 분산 원장(122)에 자식 스마트 계약(302)을 저장하고, 예컨대 분산 원장(122)에서도 구현되는, 부모 스마트 계약(302)에 구현된 업그레이드 메소드를 호출함으로써 자식 스마트 계약(302)이 배포된다. 업그레이드 메소드는 부모 스마트 계약(302)의 소유자(112) 또는 발행자(114)에 의해 호출될 수 있다.
방법(500)은, 적어도 하나의 프로세서가 부모 스마트 계약(302)의 업그레이드 주소(111) 필드가 자식 스마트 계약(302)의 주소를 가리키도록 설정하는 단계(504)를 진행한다. 각 스마트 계약(302)은 자신의 자식 스마트 계약(302)에 대한 주소를 포함할 수 있다. 자식 스마트 계약(302)이 존재하지 않는 스마트 계약(302)의 경우(즉, 스마트 계약(302)이 스마트 계약(302)의 현재 활동 구현체인 경우), 업그레이드 주소(111) 필드가 설정 해제, 예컨대 모든 비트가 "0"으로 설정되거나, 모든 비트가 "1"로 설정되거나, 또는 스마트 계약(302)이 구현되는 분산 원장(122)의 주소에 대응하지 않는 임의의 다른 값이 설정될 수 있다. 스마트 계약(302)의 업그레이드 주소(111)는 스마트 계약(302)의 발행자(114)에 의해, 예컨대 분산 원장(122)의 스마트 계약(302)에 구현된 메소드를 호출함으로써 설정될 수 있다.
일부 구성에서, 업그레이드 주소(111) 필드는 일단 설정되면 변경되지 않는다. 스마트 계약(302)의 동일한 후속 버전을 가리키도록 영구적으로 설정된 스마트 계약(302)의 업그레이드 주소(111) 필드를 유지하면, 스마트 계약(302)의 업그레이드 히스토리에 대한 감사(監査)가 가능하다.
방법(500)은, 적어도 하나의 프로세서가 (부모 스마트 계약(302)의) 업그레이드 주소(111) 필드가 설정되었음을 나타내는 이벤트, 예컨대 이더리움 이벤트를 개시(initiate)하는 선택적인 단계(506)를 진행한다. 예시들에서, 이벤트는 업그레이드 주소(111) 및 선택적으로 부모 스마트 계약(302)의 주소를 나타낼 수 있다. 예시들에서, 이러한 이벤트는 분산 원장(122)을 구현하는 네트워크 노드(140)로 브로드캐스트(broadcast)된다. 예시들에서, (예컨대, 투자자(120), 브로커 딜러(118), 관리인, 발행자(114), 소유자(112) 또는 네트워크 노드(140)에 속하는) 장치는 이러한 이벤트를 청취(listen)할 수 있다.
방법(500)은, 적어도 하나의 프로세서가 자식 스마트 계약(302)의 부모 주소(117) 필드가 부모 스마트 계약(302)의 주소를 가리키도록 설정하는 단계(508)를 진행한다. 각 스마트 계약(302)은 자신의 부모 스마트 계약(302)에 대한 주소를 포함할 수 있다. 부모 스마트 계약(302)이 존재하지 않는 스마트 계약(302)의 경우(즉, 스마트 계약(302)이 스마트 계약(302)의 가장 초기 버전인 경우), 부모 주소(117) 필드가 설정 해제, 예컨대 모든 비트가 "0"으로 설정되거나, 모든 비트가 "1"로 설정되거나, 또는 스마트 계약(302)이 구현되는 분산 원장(122)의 주소에 대응하지 않는 임의의 다른 값이 설정될 수 있다. 스마트 계약(302)의 부모 주소(117)는 스마트 계약(302)의 발행자(114)에 의해, 예컨대 분산 원장(122)의 스마트 계약(302)에 구현된 메소드를 호출함으로써 설정될 수 있다.
방법(500)은, 적어도 하나의 프로세서가 (자식 스마트 계약(302)의) 부모 주소(117) 필드가 설정되었음을 나타내는 이벤트, 예컨대 이더리움 이벤트를 개시(initiate)하는 선택적인 단계(510)를 진행한다. 예시들에서, 이벤트는 부모 주소(117) 및 선택적으로 자식 스마트 계약(302)의 주소를 나타낼 수 있다. 예시들에서, 이러한 이벤트는 분산 원장(122)을 구현하는 네트워크 노드(140)로 브로드캐스트(broadcast)된다. 예시들에서, (예컨대, 투자자(120), 브로커 딜러(118), 관리인, 발행자(114), 소유자(112) 또는 네트워크 노드(140)에 속하는) 장치는 이러한 이벤트를 청취(listen)할 수 있다.
방법(500)은, 적어도 하나의 프로세서가 자식 스마트 계약(302)의 토큰 공급량 파라미터(115)를 부모 스마트 계약(302)의 토큰 공급량 파라미터(115)와 동일하게 설정하는 선택적인 단계(512)를 진행한다. 예시들에서, 선택적인 단계(512)는 스마트 계약(302)이 증권형 토큰(102)을 구현하는 구성들에 대해서만 수행된다. 이러한 구성에서, 토큰 공급량 파라미터(115)는 스마트 계약(302)에서 총 발행 토큰의 총 개수를 나타낼 수 있다. 예를 들어, 토큰 공급량 파라미터(115)는 스마트 계약(302)에 대한 잔고 테이블(105)에서 모든 주소에 대한 토큰 잔고의 합계일 수 있다. 이와 대조적으로, 방법(500)의 스마트 계약(302)이 증권형 토큰(102)을 구현하지 않는 경우, 선택적인 단계(512)는 수행되지 않는다.
도 6은 부모 스마트 계약(302)의 총 발행 토큰을 자식 스마트 계약(302)으로 마이그레이션하는 방법(600)을 나타내는 흐름도이다. 방법(600)은 시스템(100)에서 가상 머신을 실행하는 적어도 하나의 프로세서, 예컨대 네트워크 노드(140)의 적어도 하나의 프로세서에 의해 실행될 수 있다. 방법(600)은, 예컨대 분산 원장(122)에 저장된 증권형 토큰(102)/스마트 계약(302)에 구현된 하나 이상의 메소드를 실행하는 단계를 포함할 수 있다. 또한, 방법(600)은, 예컨대 분산 원장(122)에 저장된 증권형 토큰(102)/스마트 계약(302)의 하나 이상의 파라미터를 사용할 수 있다.
도 6의 방법(600)은 부모 스마트 계약(302) 및 자식 스마트 계약(302)이 각각 각각의 증권형 토큰(102)을 구현하는 경우 수행된다. 일부 구성에서, 도 6의 방법(600)은, 예컨대 자식 스마트 계약(302)이 배포된 후 도 5의 방법(500)에 대해 순차적으로 수행될 수 있다. 이에 따라, 도 6의 방법(600)의 부모 스마트 계약(302) 및 자식 스마트 계약(302)은 각각 도 5의 방법(500)에서 설명된 부모 스마트 계약(302) 및 자식 스마트 계약(302)과 동일할 수 있다. 일부 구성에서, 도 5의 방법(500) 및/또는 도 6의 방법(600)은 (부모 스마트 계약(302)의) 발행자(114)가, 예컨대 분산 원장(122)에서도 구현되는, 부모 스마트 계약(302)에 구현된 업그레이드 메소드를 호출하는 것에 응답하여 개시된다.
방법(600)은, 적어도 하나의 프로세서가 부모 스마트 계약(302)의 기존 토큰이 자식 스마트 계약(302)의 배포 이후 거래 제한되는지 여부를 결정하는 선택적인 단계(602)로 시작한다. 예시들에서, 발행자(114)는 부모 스마트 계약(302)의 거래 허용 또는 거래 제한, 또는 추가적인 거래 허용을 결정한다. 거래가 제한되는 경우, 부모 스마트 계약(302)의 기존 토큰의 모든 거래는 자식 스마트 계약(302)의 주소, 예컨대 도 4a 내지 4d 의 예시들에서 주소 D를 거래의 출력 주소로 사용해야 한다. 이와 대조적으로, 발행자(114)가 부모 스마트 계약(302)이 계속 거래하도록 허용하면, 부모 스마트 계약(302)의 기존 토큰은 자식 스마트 계약(302)의 주소(주소 D)가 아닌 다른 주소로 전송될 수 있다.
(부모 스마트 계약(302)의 기존 토큰이 계속 거래 허용되는지 여부에 대한) 규제는 (1) 증권형 토큰(102)/스마트 계약(302) 자체에서 구현된 준수 규칙(들)(106A); 및/또는 (2) 증권형 토큰(102)/스마트 계약(302)에 대해 외부적으로 구현된 준수 규칙(들)(106B)에서 발생할 수 있다. 예를 들어, 발행자(114)는 부모 스마트 계약(302)에 구현된 메소드를 호출하여, 부모 스마트 계약(302)의 기존 토큰의 거래가 제한되고/업그레이드가 강제되고 있음을 표시(예컨대, 준수 규칙(106)에서)할 수 있으며, 이후 적어도 하나의 프로세서는 부모 스마트 계약(302)의 기존 토큰(들)의 전송/거래가 개시될 때 상기 표시를 확인한다. 일부 구성에서, 준수 규칙(106)은, 업그레이드 주소(111) 필드가 부모 스마트 계약(302)에 설정되었는지(거래가 제한됨을 나타냄) 또는 설정되지 않았는지(거래가 허용됨을 나타냄)를 결정함으로써, 부모 스마트 계약(302)의 토큰이 계속 거래 허용되는지 여부를 결정할 수 있다. 일부 구성에서, 방법(600)의 나머지 단계는 부모 스마트 계약(302)의 기존 토큰이, 예컨대 자식 스마트 계약(302)의 배포 이후 거래 제한된다는 결정에 기초하여(예컨대, 응답하여)서만 수행된다.
방법(600)은, 적어도 하나의 프로세서가 자식 스마트 계약(302)의 신규 토큰을 중간 주소로 발행하는 단계(604)를 진행한다. 예시들에서, 자식 스마트 계약에서 발행된 신규 토큰의 개수는 부모 스마트 계약(302)의 총 공급량 파라미터(115)와 동일하다. 예시들에서, 중간 주소는 발급자(114)의 주소이다. 다시 말해서, 신규 토큰은 자식 스마트 계약(302)에서 발행될 수 있고, 초기에는 발행자의 주소에 보유된다.
방법(600)은, 적어도 하나의 프로세서가 부모 스마트 계약(302)의 모든 기존 토큰을 토큰 보유자 주소로부터 자식 스마트 계약(302)의 주소로 마이그레이션하는 단계(606)를 진행한다. 부모 스마트 계약(302)은, 부모 스마트 계약(302)의 기존 토큰을 보유하는 모든 주소의 토큰 잔고를 나타내는 (분산 원장(122)의) 잔고 테이블(105)을 포함할 수 있다. 예를 들어, 잔고 테이블(105)은 어느 주소(예컨대, 이더리움 주소)가 부모 스마트 계약(302)에서 얼만큼의 토큰을 보유하는지를 나타낼 수 있다. 이와 유사하게, 자식 스마트 계약(302)은, 자식 스마트 계약(302)의 기존 토큰을 보유하는 모든 주소의 토큰 잔고를 나타내는 (분산 원장(122)의) 잔고 테이블(105)을 포함할 수 있다.
단계(606)에서 마이그레이션을 수행하기 위해, 적어도 하나의 프로세서는 토큰 보유자 주소의 기존 토큰을 자식 스마트 계약(302)의 주소로 전송할 수 있다. 이는, 예컨대 발행자(114), 소유자(112), 또는 전송 주소와 관련된 토큰 보유자에 의해 호출되는, 분산 원장(122)의 부모 스마트 계약(302)에 구현된 전송 메소드를 호출하는 단계를 포함할 수 있다.
방법(600)은, 적어도 하나의 프로세서가 자식 스마트 계약(302)의 적어도 하나의 신규 토큰을 중간 주소로부터 토큰 보유자 주소로 전송하는 단계(608)를 진행한다. 예를 들어, (부모 스마트 계약(302)의) 100 개의 기존 토큰이 단계(606)에서 토큰 보유자 주소로부터 마이그레이션된 경우, (자식 스마트 계약(302)의) 100 개의 신규 토큰이 단계(608)에서 중간 주소로부터 토큰 보유자 주소로 전송된다.
방법(600)은, 적어도 하나의 프로세서가 임의의 나머지 토큰 보유자 주소의 기존 토큰이 아직 마이그레이션되지 않았는지 여부를 결정하는 선택적인 단계(610)를 진행한다. 아직 마이그레이션되지 않은 기존 토큰이 존재하는 경우, 상기 방법은, 적어도 하나의 프로세서가 신규 토큰 보유자 주소를 선택하고 신규 토큰 보유자 주소에 대해 단계(606) 및 단계(608)를 반복 처리하는 선택적인 단계(612)를 진행한다.
부모 스마트 계약(302)에 대한 단계(608)의 최종 수행 이후, 부모 스마트 계약(302)의 최종 상태는 부모 스마트 계약(302)의 기존 토큰의 총 공급량을 보유하는 단일 주소(자식 스마트 계약(302)의 주소)를 갖는다. 이는 본질적으로 부모 스마트 계약(302)의 보유 자산을 잠금/소각하며, 토큰이 자식 스마트 계약(302)으로 마이그레이션되었음을 증명한다. 단계(608)의 최종 수행 이후, 발급자의 주소는 일반적으로 신규 토큰을 보유하지 않는다.
단계(610)에서 더 이상 마이그레이션할 기존 토큰이 존재하지 않는 경우(또는 단계(610)이 수행되지 않은 경우), 방법(600)은 단계(614)에서 종료될 수 있다. 도 6은 부모 스마트 계약(302)에서 토큰을 보유하는 각 주소에 대해 반복 처리되는 방법(600)을 도시한다. 또는, 단계(606)은 부모 스마트 계약/증권형 토큰(102)에서 토큰을 보유하는 모든 토큰 보유자 주소에 대해 토큰을 마이그레이션하기 위해 수행될 수 있으며, 단계(608)은 중간 주소로부터 모든 토큰 보유자 주소로 신규 증권형 토큰을 전송하기 위해, 즉, 다음 토큰 보유자 주소로 이동하기 전에 각 토큰 보유자 주소에 대해 단계(606) 및 단계(608)를 반복 처리하지 않고 수행될 수 있다.
방법(500) 및/또는 방법(600) 이후, 자식 스마트 계약(302)이 호출될 수 있다. 제1 예시에서, 계약이 업그레이드될 때, 예컨대 업그레이드 주소(111) 및/또는 부모 주소(117)가 단계(504) 및 단계(508)에서와 같이 설정될 때 이벤트가 방출(emit)된다. 예시들에서, (예컨대, 투자자(120), 브로커 딜러(118), 관리인, 발행자(114), 소유자(112) 또는 네트워크 노드(140)에 속하는) 장치는 이러한 이벤트를 청취(listen)할 수 있다. 예시들에서, 이벤트는 업그레이드 주소(111) 및/또는 설정된 부모 주소(117)를 나타낸다. 자식 스마트 계약(302)은 이벤트시 업그레이드 주소(111)를 사용하여 직접 호출될 수 있다 호출 장치는 이벤트시 업그레이드 주소(자식 스마트 계약(302)의 주소)를 사용하여 자식 스마트 계약(302)에 구현된 메소드를 호출할 수 있다.
또는, 호출 장치는 부모 스마트 계약(302)의 업그레이드 주소(111)가 설정되었는지 여부를 결정하기 위해 부모 스마트 계약(302)을 선택적으로 호출할 수 있다. 예시들에서, 부모 스마트 계약(302)의 getter 함수는 (자식 스마트 계약(302)을 가리키는) 업그레이드 주소(111)를 반환할 수 있다. 예시들에서, 이러한 함수는 업그레이드 주소(111) 및/또는 부모 주소(117)가 설정되지 않은 경우 제로 주소(zero address)를 반환할 수 있다.
컴퓨터 시스템 개관
본 개시의 실시예들은, 상술한 다양한 단계 및 동작을 포함한다. 이러한 다양한 단계 및 동작은 하드웨어 구성 요소에 의해 수행되거나, 기계 실행 가능 명령어들로 구현될 수 있고, 이는 명령어로 프로그래밍된 범용 또는 특수 목적 프로세서가 상기 단계를 수행하도록 하기 위해 사용될 수 있다. 또는, 단계는 하드웨어, 소프트웨어 및/또는 펌웨어의 조합에 의해 수행될 수 있다. 이와 같이, 도 7은 본 개시의 실시예들과 활용될 수 있는 예시적인 컴퓨터 시스템(700)을 나타내는 블록도이다. 본 예시에 따르면, 컴퓨터 시스템(700)은 인터커넥트(702), 적어도 하나의 프로세서(704), 적어도 하나의 통신 포트(706), 적어도 하나의 주기억 장치(708), 적어도 하나의 이동식 저장 매체(710), 적어도 하나의 읽기 전용 메모리(712), 및 적어도 하나의 대용량 저장 장치(714)를 포함한다.
적어도 하나의 프로세서(704)는 임의의 공지된 프로세서일 수 있다. 적어도 하나의 통신 포트(706)는, 예컨대 모뎀 기반 다이얼 접속 연결과 함께 사용되는 RS-232 포트, 10/100 이더넷 포트, 또는 구리 또는 섬유를 사용하는 기가비트 포트(Gigabit port) 중 어느 하나일 수 있거나, 이를 포함할 수 있다. 적어도 하나의 통신 포트(706)의 특성은, 근거리 통신망(LAN), 광역 통신망(WAN), 또는 컴퓨터 시스템(700)이 연결되는 임의의 네트워크와 같은 네트워크에 따라 선택될 수 있다. 적어도 하나의 주기억 장치(708)는 랜덤 액세스 메모리(Random Access Memory; RAM), 또는 당업계에 일반적으로 공지된 임의의 다른 동적 저장 장치(들)일 수 있다. 적어도 하나의 읽기 전용 메모리(712)는 적어도 하나의 프로세서(704)를 위한 명령어와 같은 정적 정보를 저장하기 위한 프로그램 가능 읽기 전용 메모리(Programmable Read Only Memory; PROM) 칩과 같은 임의의 정적 저장 장치(들)일 수 있다.
적어도 하나의 대용량 저장 장치(714)는 정보 및 명령어를 저장하기 위해 사용될 수 있다. 예시들에서, (직렬/병렬 ATA 또는 SCSI 인터페이스를 사용하는 자기 디스크 드라이브 또는 솔리드 스테이트 드라이브와 같은) 하드 디스크, 광 디스크, 복수 배열 독립 디스크(Redundant Array of Independent Disk; RAID)와 같은 디스크 어레이, 또는 임의의 다른 대용량 저장 장치가 사용될 수 있다. 인터커넥트(702)는 하나 이상의 버스, 브리지, 제어기, 어댑터, 및/또는 점-대-점 접속부이거나, 이를 포함할 수 있다. 인터커넥트(702)는 적어도 하나의 프로세서(704)를 다른 메모리, 저장소, 및 통신 블록과 통신 가능하게 결합시킨다. 인터커넥트(702)는 사용되는 저장 장치에 따라 PCI/PCI-X 또는 SCSI 기반 시스템 버스일 수 있다. 적어도 하나의 이동식 저장 매체(710)는 외장 하드 드라이브, 플로피 드라이브, CD-ROM(Compact Disc-Read Only Memory), CD-RW(Compact Disc-Re-Writable), DVD-ROM(Digital Video Disc-Read Only Memory), BD-ROM(Blu-Ray Disc Read Only Memory), BD-R(Blu-Ray Disc Recordable), BD-RE(Blu-Ray Disc Recordable Erasable) 중의 임의의 종류일 수 있다.
상술한 구성 요소는 일부 가능한 유형을 예시하기 위한 것이다. 상술한 예시들은 단지 예시적인 실시예일뿐이므로, 상술한 예시들이 어떠한 방식으로도 본 개시를 제한해서는 안 된다.
도 8은 본 개시의 실시예들과 활용될 수 있는 또 다른 예시적인 컴퓨팅 장치(800)를 나타내는 블록도이다. 예시적인 컴퓨팅 장치(800)는 글로벌 레지스트리(108), 소유자(112), 발행자(114), 관리인(116), 브로커 딜러(118), 투자자(120), 분산 원장(122)의 사본을 저장하는 네트워크 노드들(140) 중 하나, 증권형 토큰 거래소(124), 및/또는 본원에 기술된 스마트 계약들 중 어느 하나를 실행하는 가상 머신(예컨대, 이더리움 가상 머신) 중 어느 하나를 구현하기 위해 사용될 수 있다. 컴퓨팅 장치(800)는 적어도 하나의 메모리(802), 적어도 하나의 프로세서(804), 선택적인 적어도 하나의 네트워크 인터페이스(806), 선택적인 디스플레이 장치(808), 선택적인 입력 장치(810), 및 선택적인 전원(812)을 포함한다.
예시들에서, 적어도 하나의 메모리(802)는 정보를 저장하기 위해 사용되는 모든 장치, 메커니즘, 또는 채워진 데이터 구조(populated data structure)일 수 있다. 예시들에서, 적어도 하나의 메모리(802)는 모든 유형의 휘발성 메모리, 비휘발성 메모리, 및/또는 동적 메모리이거나, 이를 포함할 수 있다. 예시들에서, 적어도 하나의 메모리(802)는 랜덤 액세스 메모리, 메모리 저장 장치, 광학 메모리 장치, 자기 매체, 플로피 디스크, 자기 테이프, 하드 드라이브, EPROM(Erasable Programmable Read-Only Memory), EEPROM(Electrically Erasable Programmable Read-Only Memory), (콤팩트 디스크, DVD, Blu-ray 디스크와 같은) 광학 매체, 및/또는 기타일 수 있다.
일부 실시예에 따르면, 적어도 하나의 메모리(802)는 하나 이상의 디스크 드라이브, 플래시 드라이브, 하나 이상의 데이터베이스, 하나 이상의 테이블, 하나 이상의 파일, 로컬 캐시 메모리, 프로세서 캐시 메모리, 관계형 데이터베이스, 플랫 데이터베이스, 및/또는 기타를 포함할 수 있다. 또한, 당업자는, 적어도 하나의 메모리(802)로서 사용될 수 있는, 정보를 저장하기 위한 많은 부가적인 장치 및 기술을 이해할 수 있을 것이다. 적어도 하나의 메모리(802)는 적어도 하나의 프로세서(804) 상에서 하나 이상의 애플리케이션 또는 모듈을 실행시키기 위한 명령어를 저장하기 위해 사용될 수 있다. 예시들에서, 적어도 하나의 메모리(802)는 본원, 예컨대 도 3 및 도 4에서 논의된 기능을 실행하기 위해 필요한 명령어의 전부 또는 일부를 수용하기 위하여 하나 이상의 예시에서 사용될 수 있다.
적어도 하나의 프로세서(804)는, (필드 프로그래머블 게이트 어레이(Field-Programmable Gate Array; FPGA), 주문형 집적 회로(Application-Specific Integrated Circuit; ASIC) 또는 다른 집적 회로 또는 회로 소자와 같은) 범용 프로세서(General Purpose Processor; GPP) 또는 특수 목적 프로세서, 또는 임의의 프로그래밍 가능 논리 소자와 같은, 임의의 공지된 프로세서일 수 있다. 예시들에서, 본원(예컨대, 도 3 및 도 4)에 개시된 기능 중 어느 하나는 적어도 하나의 프로세서(804) 및 적어도 하나의 메모리(802)에 의해 구현될 수 있다.
예시들에서, 적어도 하나의 선택적인 네트워크 인터페이스(806)는 (시스템(100)의 적어도 하나의 네트워크(112) 중 하나와 같은) 네트워크와 통신하기 위한 적어도 하나의 선택적인 안테나를 포함하거나, 이에 결합된다. 예시들에서, 적어도 하나의 선택적인 네트워크 인터페이스(806)는 이더넷 인터페이스, 셀룰러 무선 액세스 기술(Radio Access Technology; RAT) 라디오, Wi-Fi 라디오, 블루투스 라디오, 근거리 무선 통신(Near Field Communication; NFC) 라디오 중 적어도 하나를 포함한다. 예시들에서, 적어도 하나의 선택적인 네트워크 인터페이스(806)는 근거리 통신망(LAN) 또는 광역 통신망(WAN)을 사용하여 원격 서버와 충분한 속도의 셀룰러 데이터 연결(모바일 인터넷)을 구축하도록 구성된 셀룰러 라디오 액세스 기술 라디오를 포함한다. 예시들에서, 셀룰러 라디오 액세스 기술은 개인 이동 통신(Personal Communication Services; PCS), 특정 이동 무선(Specialized Mobile Radio; SMR) 서비스, ESMR(Enhanced Specialized Mobile Radio) 서비스, AWS(Advanced Wireless Services), CDMA(Code Division Multiple Access), 이동통신을 위한 국제 표준 시스템(Global System for Mobile Communications; GSM) 서비스, W-CDMA(Wideband Code Division Multiple Access), 범용 이동 통신 시스템(Universal Mobile Telecommunications System; UMTS), WiMAX(Worldwide Interoperability for Microwave Access), 3GPP(3rd Generation Partnership Projects), LTE(Long Term Evolution), 고속 패킷 접속(High Speed Packet Access; HSPA), 3 세대(3G), 4 세대(4G), 5 세대 (5G) 등 또는 다른 적절한 통신 서비스, 또는 이들의 조합 중 적어도 하나를 포함한다. 예시들에서, 적어도 하나의 선택적인 네트워크 인터페이스(806)는 광역 네트워크가 아닌, 원격 서버와 통신하는 무선 근거리 통신망과 통신하도록 구성된 Wi-Fi(IEEE 802.11) 라디오를 포함한다. 예시들에서, 적어도 하나의 선택적인 네트워크 인터페이스(806)는, 수동 NFC 태그, 능동 NFC 태그, 수동 RFID(Radio Frequency Identification) 태그, 능동 RFID 태그, 근접식 카드, 또는 다른 개인 지역 네트워크 장치와 같은, 근접 통신으로 제한되는 근거리 무선 통신 장치를 포함한다.
예시들에서, 선택적인 적어도 하나의 디스플레이 장치(808)는 발광 다이오드(Light Emitting Diode; LED), 액정 디스플레이(Liquid Crystal Display; LCD), LED 디스플레이, 유기 발광 다이오드(Organic Light Emitting Diode; OLED) 디스플레이, 전자 잉크(e-ink) 디스플레이, 전계 방출 디스플레이(Field Emission Display; FED), 표면 전도 전자 방출 디스플레이(Surface-Conduction Electron-Emitter Display; SED), 또는 플라즈마 디스플레이 중 적어도 하나를 포함한다. 예시들에서, 선택적인 적어도 하나의 입력 장치(810)는 (정전식(capacitive) 및 감압식(resistive) 터치 스크린을 포함하는) 터치 스크린, 터치 패드, 정전식 버튼, 기계식 버튼, 스위치, 다이얼, 키보드, 마우스, 카메라, 생체 인식 센서/스캐너, 마이크로폰 등 중 적어도 하나를 포함한다. 예시들에서, 사용자와 컴퓨팅 장치(800)의 상호 작용을 위해, 선택적인 적어도 하나의 디스플레이 장치(808)는 적어도 하나의 입력 장치(810)와 함께 인간 기계 인터페이스(Human Machine Interface; HMI)와 조합된다. 예시들에서, 적어도 하나의 선택적인 전원(812)은 컴퓨팅 장치(800)의 다양한 구성 요소에 전력을 제공하기 위해 사용된다.
용어
본 출원의 전반에 걸쳐 사용된 용어, 약어 및 문구에 대한 간략한 정의를 이하에서 제공한다.
"결정한다"라는 용어는 계산, 컴퓨팅, 생성, 프로세싱, 도출, 조사, 조회(예컨대, 표, 데이터베이스 또는 다른 데이터 구조에서의 조회), 확인 등을 포함할 수 있다. 또한, "결정한다"는 수신(예컨대, 정보 수신), 액세스(예컨대, 메모리의 데이터에 대한 액세스) 등을 포함할 수도 있다. 또한, "결정한다"는 해결, 선별, 선택, 구축 등을 포함할 수 있다.
"기초한"라는 문구는 명백하게 다르게 명시되지 않는 한 "~만을 기초로 하는"을 의미하지 않는다. 다시 말해서, "기초한"이라는 문구는 "~만을 기초로 하는" 및 "적어도 ~를 기초로 하는" 둘 모두를 설명한다. 또한, "기초한"이라는 문구는 중간 단계를 배제하지 않고, 예컨대 A가 C에 기초한다는 것이, B가 C에 기초하는 것 및 A가 B에 기초하는 것을 의미할 수 있다. 또한, "및/또는"이라는 용어는 "및" 또는 "또는"을 의미한다. 예시들에서, "A 및/또는 B"는 "A", "B", 또는 "A 및 B"를 의미할 수 있다. 또한, "A, B 및/또는 C"는 "A 단독", "B 단독", "C 단독", "A 및 B", "A 및 C", "B 및 C", 또는 "A, B 및 C"를 의미할 수 있다.
"연결된", "결합된" 및 "통신 가능하게 결합된"이라는 용어들 및 관련 용어는 운용상의 의미로 사용되며, 반드시 직접적인 물리적 연결 또는 결합으로 제한되는 것은 아니다. 따라서, 예시들에서, 2개의 장치가 직접적으로 또는 하나 이상의 중간 매체 또는 장치를 통해 연결될 수 있다. 또 다른 예로서, 장치는 서로 어떠한 물리적 연결도 공유하지 않으면서 정보가 서로 간에 전달될 수 있는 방식으로 결합될 수 있다. 본원에 제공된 개시 내용에 기초하여, 당업자는 상술한 정의에 따른 연결 또는 결합이 존재하는 다양한 방식을 이해할 수 있을 것이다.
"예시적인 실시예에서", "예시적 실시예에서, "일부 실시예에서", "일부 실시예에 따르면", "도시된 실시예에서", "다른 실시예에서", "실시예들에서", "예시들에서", "예시들", "일부 예시에서", "일부 예시" 등의 문구는 일반적으로 상기 문구 다음에 나오는 특정 특징, 구조 또는 특성이 본 개시의 적어도 하나의 실시예에 포함되고, 본 개시의 하나 초과의 실시예에 포함될 수 있다는 것을 의미한다. 또한, 이러한 문구가 반드시 동일한 실시예 또는 상이한 실시예를 지칭하는 것은 아니다.
명세서에서 구성 요소 또는 특징이 포함될 수 있다거나 특성을 가질 수 있다("may", "can", "could" 또는 "might")고 기술하는 경우, 해당 특정 구성 요소 또는 특징은 포함되거나 특성을 가지도록 요구되는 것은 아니다.
"응답적인"이라는 용어는 완전히 또는 부분적으로 응답하는 것을 포함한다.
"모듈" 이라는 용어는 소프트웨어, 하드웨어 또는 펌웨어(또는 이들의 임의의 조합) 구성 요소를 광범위하게 지칭한다. 모듈은 일반적으로 특정 입력(들)을 사용하여 유용한 데이터 또는 기타 출력을 생성할 수 있는 기능적 구성 요소다. 모듈은 독립적일 수도 있고 독립적이지 않을 수도 있다. ("애플리케이션"으로도 지칭되는) 애플리케이션 프로그램이 하나 이상의 모듈을 포함할 수 있거나, 모듈이 하나 이상의 애플리케이션 프로그램을 포함할 수 있다.
"네트워크"라는 용어는 일반적으로 정보를 교환할 수 있는 상호 연결된 장치의 그룹을 지칭한다. 네트워크는 근거리 통신망(LAN)에 있는 몇 대의 개인용 컴퓨터만큼 적을 수 있거나, 전세계 컴퓨터 네트워크인 인터넷만큼 클 수도 있다. 본원에서 사용되는 바와 같이, "네트워크"는 하나의 엔티티로부터 다른 엔티티로 정보를 전송할 수 있는 임의의 네트워크를 포함하도록 의도된다. 일부 경우에, 네트워크는, 다양한 네트워크 간(between and among)의 통신을 용이하게 하기 위해 작동될 수 있는 게이트웨이를 통해 상호 연결된, 하나 이상의 경계 네트워크, 음성 네트워크, 광대역 네트워크, 금융 네트워크, 서비스 제공자 네트워크, 인터넷 서비스 공급자(Internet Service Provider; ISP) 네트워크, 및/또는 공중 전화망(Public Switched Telephone Network; PSTN)과 같은 다수의 네트워크, 심지어 다수의 이기종 네트워크(heterogeneous network)를 포함할 수 있다.
또한, 예시를 위해, 본 개시의 다양한 실시예가 현대의 컴퓨터 네트워크 내의 컴퓨터 프로그램, 물리적 구성 요소 및 논리적 상호 작용의 맥락에서 설명되었다. 중요하게는, 이들 실시예가 현대의 컴퓨터 네트워크 및 프로그램과 관련하여 본 개시의 다양한 실시예를 설명하지만, 본원에서 기술된 방법 및 장치는 당업자가 이해할 수 있는 바와 같이 다른 시스템, 장치 및 네트워크에도 동일하게 적용될 수 있다. 이와 같이, 본 개시의 실시예의 예시된 적용예는 제한하려는 것이 아니라, 예시적인 것이다. 본 개시의 실시예가 적용될 수 있는 다른 시스템, 장치, 및 네트워크는, 예시들에서, 다른 유형의 통신 및 컴퓨터 장치 및 시스템을 포함한다. 보다 구체적으로, 실시예는 통신 시스템, 서비스, 및 휴대 전화 네트워크 및 호환 가능 장치와 같은 장치에 적용 가능하다. 또한, 실시예는 개인용 컴퓨터로부터 대규모 네트워크 메인 프레임 및 서버에 이르는 모든 레벨의 컴퓨팅에 적용 가능하다.
결론적으로, 본 개시는 분할 가능한 증권형 토큰을 위한 신규한 시스템, 방법 및 기구를 제공한다. 본 개시의 하나 이상의 실시예에 대한 상세한 설명을 상기에 제공하였지만, 당업자에게는 개시의 사상으로부터 벗어나지 않는 범위에서 다양한 대안, 수정 및 등가물이 명백할 것이다. 예시들에서, 상술한 실시예들이 특정 특징들을 언급하지만, 본 개시의 범위는 상이한 특징들의 조합을 갖는 실시예 및 설명된 특징들의 전부를 포함하지 않는 실시예도 포함한다. 따라서, 본 개시의 범위는 청구 범위의 범위 내에 포함되는 이러한 모든 대안, 수정 및 변형을 그 모든 균등물과 함께 포함하도록 의도된다. 따라서, 상기의 설명은 제한적인 것으로 간주되어서는 안 된다.
예시적인 실시예
실시예 1은, 네트워크 노드에 있어서, 적어도 하나의 프로세서; 상기 적어도 하나의 프로세서에 통신 가능하게 결합된 적어도 하나의 메모리; 및 상기 적어도 하나의 프로세서에 통신 가능하게 결합된 적어도 하나의 네트워크 인터페이스를 포함하며, 상기 네트워크 노드는 분산 원장(distributed ledger)을 구현하는 네트워크 노드들의 피어-투-피어 네트워크(Peer-to-Peer Network)에서 통신 가능하게 결합된 복수의 네트워크 노드들 내에 있도록 구성되고, 상기 네트워크 노드는 상기 적어도 하나의 네트워크 인터페이스를 통해 적어도 하나의 원격 위치 컴퓨팅 장치에 통신 가능하게 결합되며, 상기 적어도 하나의 프로세서는, 상기 분산 원장에 부모 스마트 계약(parent smart contract)의 후속 버전인 자식(child) 스마트 계약을 배포(deploy)하고; 상기 자식 스마트 계약의 주소를 가리키도록 상기 부모 스마트 계약의 업그레이드된 주소 필드를 설정하도록 구성되고, 상기 부모 스마트 계약은 상기 자식 스마트 계약이 배포된 이후 배포된 상태로 유지되는, 네트워크 노드를 포함한다.
실시예 2는, 실시예 1에 있어서, 상기 적어도 하나의 프로세서는, 상기 업그레이드된 주소 필드가 설정되었음을 나타내는 이벤트를 개시(initiate)하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 3은, 실시예 1 및 2 중 어느 하나에 있어서, 상기 적어도 하나의 프로세서는, 상기 부모 스마트 계약의 주소를 가리키도록 상기 자식 스마트 계약의 부모 주소 필드를 설정하고; 상기 업그레이드된 주소 필드가 설정되었음을 나타내는 이벤트를 개시하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 4는, 실시예 1 내지 3 중 어느 하나에 있어서, 상기 적어도 하나의 프로세서는, 상기 자식 스마트 계약의 토큰 공급량 파라미터를 상기 부모 스마트 계약의 토큰 공급량 파라미터와 동일하게 설정하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 5는, 실시예 1 내지 4 중 어느 하나에 있어서, 상기 적어도 하나의 프로세서는, 상기 부모 스마트 계약의 모든 기존 토큰들(old tokens)을 토큰 보유자 주소로부터 상기 자식 스마트 계약의 주소로 마이그레이션(migration)하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 6은, 실시예 5에 있어서, 상기 적어도 하나의 프로세서는, 상기 자식 스마트 계약의 적어도 하나의 신규 토큰을 상기 토큰 보유자 주소로 발행하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 7은, 실시예 6에 있어서, 상기 적어도 하나의 프로세서는, 마이그레이션이 필요한 적어도 하나의 다른 토큰 보유자 주소에 기존 토큰들이 존재하는지 여부를 파악하고; 상기 자식 스마트 계약의 신규 토큰들을 중간 주소로 발행하며; 상기 적어도 하나의 다른 토큰 보유자 주소에서 신규 토큰 보유자 주소를 선택하고; 상기 부모 스마트 계약의 기존 토큰들을 상기 신규 토큰 보유자 주소로부터 상기 자식 스마트 계약의 상기 주소로 마이그레이션하며; 상기 자식 스마트 계약의 적어도 하나의 신규 토큰을 상기 중간 주소로부터 상기 신규 토큰 보유자 주소로 전송하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 8은, 실시예 6 및 7 중 어느 하나에 있어서, 상기 적어도 하나의 프로세서는, 상기 부모 스마트 계약의 기존 토큰들이 상기 자식 스마트 계약의 배포 이후 거래 제한된다는 결정에 기초하여 모든 기존 토큰들을 마이그레이션하고 적어도 하나의 신규 토큰을 전송하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 9는, 실시예 6 내지 8 중 어느 하나에 있어서, 상기 적어도 하나의 프로세서는, 상기 부모 스마트 계약의 상기 업그레이드된 주소 필드가 설정되었는지 또는 설정되지 않았는지에 기초하여 상기 부모 스마트 계약의 기존 토큰들이 거래 제한되는지를 결정하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 10은, 실시예 1 내지 9 중 어느 하나에 있어서, 상기 기존 토큰들 및 상기 신규 토큰들은 각각 거래 가능한 외부 자산을 나타내는 암호화(cryptographic) 토큰인, 네트워크 노드를 포함한다.
실시예 11은, 실시예 1 내지 10 중 어느 하나에 있어서, 상기 부모 스마트 계약 및 상기 자식 스마트 계약은 각각의 원천(originating) 스마트 계약을 사용하여 구현되는, 네트워크 노드를 포함한다.
실시예 12는, 부모 스마트 계약을 업그레이드하는 전산화된 방법으로서, 상기 전산화된 방법은 분산 원장(distributed ledger)을 구현하는 네트워크 노드들의 피어-투-피어 네트워크(Peer-to-Peer Network)에서 복수의 네트워크 노드들 내에 포함되도록 구성된 네트워크 노드에 의해 수행되고, 상기 네트워크 노드는 상기 피어-투-피어 네트워크의 다른 네트워크 노드들에 통신 가능하게 결합되도록 구성되며, 상기 전산화된 방법은, 상기 분산 원장에 상기 부모 스마트 계약의 후속 버전인 자식 스마트 계약을 배포하는 단계; 및 상기 자식 스마트 계약의 주소를 가리키도록 상기 부모 스마트 계약의 업그레이드된 주소 필드를 설정하는 단계를 포함하며, 상기 부모 스마트 계약은 상기 자식 스마트 계약이 배포된 이후 배포된 상태로 유지되는, 전산화된 방법을 포함한다.
실시예 13은, 실시예 12에 있어서, 상기 업그레이드된 주소 필드가 설정되었음을 나타내는 이벤트를 개시(initiate)하는 단계를 더 포함하는, 전산화된 방법을 포함한다.
실시예 14는, 실시예 12 및 13 중 어느 하나에 있어서, 상기 부모 스마트 계약의 주소를 가리키도록 상기 자식 스마트 계약의 부모 주소 필드를 설정하는 단계; 및 상기 업그레이드된 주소 필드가 설정되었음을 나타내는 이벤트를 개시하는 단계를 더 포함하는, 전산화된 방법을 포함한다.
실시예 15는, 실시예 12 내지 14 중 어느 하나에 있어서, 상기 자식 스마트 계약의 토큰 공급량 파라미터를 상기 부모 스마트 계약의 토큰 공급량 파라미터와 동일하게 설정하는 단계를 더 포함하는, 전산화된 방법을 포함한다.
실시예 16은, 실시예 12 내지 15 중 어느 하나에 있어서, 상기 부모 스마트 계약의 모든 기존 토큰들을 토큰 보유자 주소로부터 상기 자식 스마트 계약의 주소로 마이그레이션(migration)하는 단계를 더 포함하는, 전산화된 방법을 포함한다.
실시예 17은, 실시예 16에 있어서, 상기 자식 스마트 계약의 적어도 하나의 신규 토큰을 상기 토큰 보유자 주소로 발행하는 단계를 더 포함하는, 전산화된 방법을 포함한다.
실시예 18은, 실시예 17에 있어서, 마이그레이션이 필요한 적어도 하나의 다른 토큰 보유자 주소에 기존 토큰들이 존재하는지 여부를 파악하는 단계; 상기 자식 스마트 계약의 신규 토큰들을 중간 주소로 발행하는 단계; 상기 적어도 하나의 다른 토큰 보유자 주소에서 신규 토큰 보유자 주소를 선택하는 단계; 상기 부모 스마트 계약의 기존 토큰들을 상기 신규 토큰 보유자 주소로부터 상기 자식 스마트 계약의 상기 주소로 마이그레이션하는 단계; 및 상기 자식 스마트 계약의 적어도 하나의 신규 토큰을 상기 중간 주소로부터 상기 신규 토큰 보유자 주소로 전송하는 단계를 더 포함하는, 전산화된 방법을 포함한다.
실시예 19는, 실시예 17 및 18 중 어느 하나에 있어서, 상기 부모 스마트 계약의 기존 토큰들이 상기 자식 스마트 계약의 배포 이후 거래 제한된다는 결정에 기초하여 모든 기존 토큰들을 마이그레이션하고 적어도 하나의 신규 토큰을 전송하는 단계를 더 포함하는, 전산화된 방법을 포함한다.
실시예 20은, 실시예 17 내지 19 중 어느 하나에 있어서, 상기 부모 스마트 계약의 상기 업그레이드된 주소 필드가 설정되었는지 또는 설정되지 않았는지에 기초하여 상기 부모 스마트 계약의 기존 토큰들이 거래 제한되는지를 결정하는 단계를 더 포함하는, 전산화된 방법을 포함한다.
실시예 21은, 실시예 12 내지 20 중 어느 하나에 있어서, 상기 기존 토큰들 및 상기 신규 토큰들은 각각 거래 가능한 외부 자산을 나타내는 암호화 토큰인, 전산화된 방법을 포함한다.
실시예 22는, 실시예 12 내지 21 중 어느 하나에 있어서, 상기 부모 스마트 계약 및 상기 자식 스마트 계약은 각각의 원천(originating) 스마트 계약을 사용하여 구현되는, 전산화된 방법을 포함한다.
실시예 23은, 네트워크 노드에 있어서, 적어도 하나의 프로세서; 상기 적어도 하나의 프로세서에 통신 가능하게 결합된 적어도 하나의 메모리; 및 상기 적어도 하나의 프로세서에 통신 가능하게 결합된 적어도 하나의 네트워크 인터페이스를 포함하며, 상기 네트워크 노드는 분산 원장(distributed ledger)을 구현하는 네트워크 노드들의 피어-투-피어 네트워크(Peer-to-Peer Network)에서 통신 가능하게 결합된 복수의 네트워크 노드들 내에 있도록 구성되고, 상기 네트워크 노드는 상기 적어도 하나의 네트워크 인터페이스를 통해 적어도 하나의 원격 위치 컴퓨팅 장치에 통신 가능하게 결합되도록 구성되며, 상기 적어도 하나의 프로세서는, 상기 분산 원장에 부모 스마트 계약의 후속 버전인 자식 스마트 계약을 배포하고; 상기 자식 스마트 계약의 주소를 가리키도록 상기 부모 스마트 계약의 업그레이드된 주소 필드를 설정하며; 상기 자식 스마트 계약의 신규 토큰들을 중간 주소로 발행하고; 상기 부모 스마트 계약의 모든 기존 토큰들을 토큰 보유자 주소로부터 상기 자식 스마트 계약의 주소로 마이그레이션(migration)하며; 상기 자식 스마트 계약의 적어도 하나의 신규 토큰을 상기 중간 주소로부터 상기 토큰 보유자 주소로 전송하도록 구성되고, 상기 부모 스마트 계약은 상기 자식 스마트 계약이 배포된 이후 배포된 상태로 유지되며, 상기 기존 토큰들 및 상기 신규 토큰들은 각각 거래 가능한 외부 자산을 나타내는 암호화 토큰인, 네트워크 노드를 포함한다.
실시예 24는, 실시예 23에 있어서, 상기 적어도 하나의 프로세서는, 상기 자식 스마트 계약의 토큰 공급량 파라미터를 상기 부모 스마트 계약의 토큰 공급량 파라미터와 동일하게 설정하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 25는, 실시예 23 및 24 중 어느 하나에 있어서, 상기 적어도 하나의 프로세서는, 상기 부모 스마트 계약의 기존 토큰들이 상기 자식 스마트 계약의 배포 이후 거래 제한된다는 결정에 기초하여 모든 기존 토큰들을 마이그레이션하고 적어도 하나의 신규 토큰을 전송하도록 더 구성되는, 네트워크 노드를 포함한다.
실시예 26은, 실시예 23 내지 25 중 어느 하나에 있어서, 제23항에 있어서, 상기 적어도 하나의 프로세서는, 상기 부모 스마트 계약의 상기 업그레이드된 주소 필드가 설정되었는지 또는 설정되지 않았는지에 기초하여 상기 부모 스마트 계약의 기존 토큰들이 거래 제한되는지를 결정하도록 더 구성되는, 네트워크 노드를 포함한다.

Claims (26)

  1. 네트워크 노드로서,
    적어도 하나의 프로세서;
    상기 적어도 하나의 프로세서에 통신 가능하게 결합된 적어도 하나의 메모리; 및
    상기 적어도 하나의 프로세서에 통신 가능하게 결합된 적어도 하나의 네트워크 인터페이스를 포함하며,
    상기 네트워크 노드는 분산 원장(distributed ledger)을 구현하는 네트워크 노드들의 피어-투-피어 네트워크(peer-to-peer network)에서 통신 가능하게 결합된 복수의 네트워크 노드들 내에 있도록 구성되고,
    상기 네트워크 노드는 상기 적어도 하나의 네트워크 인터페이스를 통해 적어도 하나의 원격 위치 컴퓨팅 장치에 통신 가능하게 결합되며,
    상기 적어도 하나의 프로세서는:
    상기 분산 원장의 제2 주소에 자식(child) 스마트 계약을 배포(deploy)하되, 상기 자식 스마트 계약은 상기 분산 원장의 제1 주소에 있는 부모 스마트 계약(parent smart contract)의 후속 버전이고, 제1 잔고 테이블이 상기 부모 스마트 계약 내에 있고, 제2 잔고 테이블이 상기 자식 스마트 계약 내에 있으며;
    상기 제2 주소를 가리키도록 상기 부모 스마트 계약의 업그레이드된 주소 필드를 설정하고;
    상기 제1 잔고에서, 제3 주소에 대응하는 제3 값으로부터, 특정 개수의 토큰들을 차감(subtract)하며;
    상기 제1 잔고에서, 상기 제2 주소에 대응하는 제2 값에, 상기 특정 개수의 토큰들을 가산(add)하도록 구성되고,
    상기 부모 스마트 계약의 특정 개수의 토큰들은, 상기 제1 잔고에서 상기 제2 주소에 대응하는 제2 값에 가산된 이후, 유통에서 제거되는,
    네트워크 노드.
  2. 제1항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 업그레이드된 주소 필드가 설정되었음을 나타내는 이벤트를 개시(initiate)하도록 또한, 구성되는,
    네트워크 노드.
  3. 제1항에 있어서,
    상기 적어도 하나의 프로세서는,
    상기 부모 스마트 계약의 제1 주소를 가리키도록 상기 자식 스마트 계약의 부모 주소 필드를 설정하고;
    상기 업그레이드된 주소 필드가 설정되었음을 나타내는 이벤트를 개시하도록 또한, 구성되는,
    네트워크 노드.
  4. 제1항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 자식 스마트 계약의 제1 토큰 공급량 파라미터를 상기 부모 스마트 계약의 제2 토큰 공급량 파라미터와 동일하게 설정하도록 또한, 구성되는,
    네트워크 노드.
  5. 제1항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 자식 스마트 계약의 제2 잔고 테이블을 수정함으로써 상기 자식 스마트 계약의 적어도 하나의 신규 토큰을 발행하도록 또한, 구성되고,
    적어도 하나의 새로운 토큰 각각은, 거래 가능한 외부 자산을 나타내는,
    네트워크 노드.
  6. 제5항에 있어서,
    상기 적어도 하나의 프로세서는,
    적어도 하나의 다른 토큰 보유자 주소에, 마이그레이션(migration)이 필요한 기존 토큰들이 존재하는지 여부를 파악하고;
    상기 자식 스마트 계약의 신규 토큰들을 중간 주소로 발행하며;
    상기 적어도 하나의 다른 토큰 보유자 주소에서 신규 토큰 보유자 주소를 선택하고;
    상기 부모 스마트 계약의 기존 토큰들을 상기 신규 토큰 보유자 주소로부터 상기 제2 주소로 마이그레이션하며;
    상기 자식 스마트 계약의 적어도 하나의 신규 토큰을 상기 중간 주소로부터 상기 신규 토큰 보유자 주소로 전송하도록 또한, 구성되는,
    네트워크 노드.
  7. 제6항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 부모 스마트 계약의 기존 토큰들이 상기 자식 스마트 계약의 배포 이후 거래 제한된다는 결정에 기초하여, 모든 기존 토큰들을 마이그레이션하고 적어도 하나의 신규 토큰을 전송하도록 또한, 구성되는,
    네트워크 노드.
  8. 제6항에 있어서,
    상기 적어도 하나의 프로세서는, 상기 부모 스마트 계약의 업그레이드된 주소 필드가 설정되었는지 또는 설정되지 않았는지에 기초하여, 상기 부모 스마트 계약의 기존 토큰들이 거래 제한되는지를 결정하도록 또한, 구성되는,
    네트워크 노드.
  9. 부모 스마트 계약을 업그레이드하는 전산화된 방법으로서, 상기 전산화된 방법은 분산 원장을 구현하는 네트워크 노드들의 피어-투-피어 네트워크에서 복수의 네트워크 노드들 내에 포함되도록 구성된 네트워크 노드에 의해 수행되고, 상기 네트워크 노드는 상기 피어-투-피어 네트워크의 다른 네트워크 노드들에 통신 가능하게 결합되도록 구성되며, 상기 전산화된 방법은:
    상기 분산 원장의 제2 주소에 자식 스마트 계약을 배포하는 단계 - 상기 자식 스마트 계약은 상기 분산 원장의 제1 주소에 있는 부모 스마트 계약의 후속 버전이고, 제1 잔고 테이블이 상기 부모 스마트 계약 내에 있고, 제2 잔고 테이블이 상기 자식 스마트 계약 내에 있음 - ;
    상기 제2 주소를 가리키도록 상기 부모 스마트 계약의 업그레이드된 주소 필드를 설정하는 단계;
    상기 제1 잔고에서, 제3 주소에 대응하는 제3 값으로부터, 특정 개수의 토큰들을 차감하는 단계; 및
    상기 제1 잔고에서, 상기 제2 주소에 대응하는 제2 값에, 상기 특정 개수의 토큰들을 가산하는 단계
    를 포함하고,
    상기 부모 스마트 계약의 특정 개수의 토큰들은, 상기 제1 잔고에서 상기 제2 주소에 대응하는 제2 값에 가산된 이후, 유통에서 제거되는,
    전산화된 방법.
  10. 제9항에 있어서,
    상기 업그레이드된 주소 필드가 설정되었음을 나타내는 이벤트를 개시(initiate)하는 단계를 더 포함하는,
    전산화된 방법.
  11. 제9항에 있어서,
    상기 부모 스마트 계약의 제1 주소를 가리키도록 상기 자식 스마트 계약의 부모 주소 필드를 설정하는 단계; 및
    상기 업그레이드된 주소 필드가 설정되었음을 나타내는 이벤트를 개시하는 단계를 더 포함하는,
    전산화된 방법.
  12. 제9항에 있어서,
    상기 자식 스마트 계약의 제1 토큰 공급량 파라미터를 상기 부모 스마트 계약의 제2 토큰 공급량 파라미터와 동일하게 설정하는 단계를 더 포함하는,
    전산화된 방법.
  13. 제9항에 있어서,
    상기 자식 스마트 계약의 제2 잔고 테이블을 수정함으로써 상기 자식 스마트 계약의 적어도 하나의 신규 토큰을 발행하는 단계를 더 포함하고,
    적어도 하나의 새로운 토큰 각각은, 거래 가능한 외부 자산을 나타내는,
    전산화된 방법.
  14. 제13항에 있어서,
    적어도 하나의 다른 토큰 보유자 주소에, 마이그레이션(migration)이 필요한 기존 토큰들이 존재하는지 여부를 파악하는 단계;
    상기 자식 스마트 계약의 신규 토큰들을 중간 주소로 발행하는 단계;
    상기 적어도 하나의 다른 토큰 보유자 주소에서 신규 토큰 보유자 주소를 선택하는 단계;
    상기 부모 스마트 계약의 기존 토큰들을 상기 신규 토큰 보유자 주소로부터 상기 제2 주소로 마이그레이션하는 단계; 및
    상기 자식 스마트 계약의 적어도 하나의 신규 토큰을 상기 중간 주소로부터 상기 신규 토큰 보유자 주소로 전송하는 단계를 더 포함하는,
    전산화된 방법.
  15. 제14항에 있어서,
    상기 부모 스마트 계약의 기존 토큰들이 상기 자식 스마트 계약의 배포 이후 거래 제한된다는 결정에 기초하여, 모든 기존 토큰들을 마이그레이션하고 적어도 하나의 신규 토큰을 전송하는 단계를 더 포함하는,
    전산화된 방법.
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
  21. 삭제
  22. 삭제
  23. 삭제
  24. 삭제
  25. 삭제
  26. 삭제
KR1020217007223A 2018-08-10 2019-08-09 업그레이드 가능한 증권형 토큰 KR102666835B1 (ko)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020247014044A KR20240068068A (ko) 2018-08-10 2019-08-09 업그레이드 가능한 증권형 토큰

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US201862717575P 2018-08-10 2018-08-10
US62/717,575 2018-08-10
US201962871543P 2019-07-08 2019-07-08
US62/871,543 2019-07-08
US201962881121P 2019-07-31 2019-07-31
US62/881,121 2019-07-31
PCT/US2019/045908 WO2020033830A1 (en) 2018-08-10 2019-08-09 Upgradeable security token

Related Child Applications (1)

Application Number Title Priority Date Filing Date
KR1020247014044A Division KR20240068068A (ko) 2018-08-10 2019-08-09 업그레이드 가능한 증권형 토큰

Publications (2)

Publication Number Publication Date
KR20210050526A KR20210050526A (ko) 2021-05-07
KR102666835B1 true KR102666835B1 (ko) 2024-05-20

Family

ID=69405114

Family Applications (4)

Application Number Title Priority Date Filing Date
KR1020217007305A KR20210050527A (ko) 2018-08-10 2019-08-09 투자자의 스마트 계약 기반 글로벌 레지스트리를 컨설팅하는 스마트 계약 기반 준수 규칙을 구현하는 자체 규제 증권형 토큰
KR1020247014044A KR20240068068A (ko) 2018-08-10 2019-08-09 업그레이드 가능한 증권형 토큰
KR1020217007223A KR102666835B1 (ko) 2018-08-10 2019-08-09 업그레이드 가능한 증권형 토큰
KR1020217007222A KR20210050525A (ko) 2018-08-10 2019-08-09 분할 가능한 증권형 토큰

Family Applications Before (2)

Application Number Title Priority Date Filing Date
KR1020217007305A KR20210050527A (ko) 2018-08-10 2019-08-09 투자자의 스마트 계약 기반 글로벌 레지스트리를 컨설팅하는 스마트 계약 기반 준수 규칙을 구현하는 자체 규제 증권형 토큰
KR1020247014044A KR20240068068A (ko) 2018-08-10 2019-08-09 업그레이드 가능한 증권형 토큰

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020217007222A KR20210050525A (ko) 2018-08-10 2019-08-09 분할 가능한 증권형 토큰

Country Status (6)

Country Link
US (5) US11961067B2 (ko)
EP (3) EP3834155A4 (ko)
JP (6) JP7138233B2 (ko)
KR (4) KR20210050527A (ko)
SG (3) SG11202100410YA (ko)
WO (3) WO2020033830A1 (ko)

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7264350B2 (ja) * 2017-01-08 2023-04-25 ブプロトコル ファンデーション 仮想通貨の交換と評価のための方法
CN112514345B (zh) * 2018-03-29 2023-08-01 Dlt全球公司 实现可更新智能合约的系统和方法
SG11202100410YA (en) * 2018-08-10 2021-02-25 Tzero Group Inc Splittable security token
US11734655B2 (en) * 2019-01-17 2023-08-22 Mastercard International Incorporated Method and system for a failsafe mechanism for blockchain wallets
US11283616B2 (en) * 2019-04-03 2022-03-22 Hong Kong Baptist University Method for index-based and integrity-assured search in a blockchain
KR20220063147A (ko) * 2019-06-13 2022-05-17 루이스 에두아르도 구티에레스-셰리스 적합도-경사 블록체인 합의를 사용하는 시스템 및 방법
US11232439B2 (en) 2019-08-09 2022-01-25 Eygs Llp Methods and systems for preventing transaction tracing on distributed ledger-based networks
CN114341906A (zh) * 2019-08-09 2022-04-12 谷本広志 程序、挑战支持系统、挑战支持方法及终端
EP4005151A2 (en) * 2019-09-10 2022-06-01 Currency Com Limited Distributed blockchain-type implementations configured to manage tokenized digital assets and improved electronic wallets, and methods of use thereof
US20210103997A1 (en) * 2019-10-03 2021-04-08 Thomas Zachary High Real estate technology platform
US11388010B2 (en) * 2019-10-18 2022-07-12 Arcblock, Inc. Blockchain account migration
US20210118051A1 (en) * 2019-10-18 2021-04-22 2218716 Alberta Ltd. System and method for digitally tokenizing securities and managing subscription and distribution transactions
CN115004628A (zh) * 2019-11-20 2022-09-02 艾格斯有限责任公司 用于基于可替代和不可替代代币在基于分布式分类账的网络内识别和安全存储分布式分类账中的区分特点的系统、装置和方法
CN115968481A (zh) 2020-04-15 2023-04-14 艾格斯有限责任公司 用于使用分布式账本认证和控制网络通信的智能断言令牌
CN111858089B (zh) * 2020-06-29 2024-01-23 北京百度网讯科技有限公司 以太坊节点的调用方法以及装置
CN111679902B (zh) * 2020-08-14 2020-11-10 支付宝(杭州)信息技术有限公司 基于区块链的智能合约调用方法及装置、电子设备
CN112104567B (zh) * 2020-09-03 2022-11-18 中国银联股份有限公司 流量控制方法、装置、设备及介质
CN111813441B (zh) * 2020-09-10 2021-02-02 腾讯科技(深圳)有限公司 智能合约发布方法、装置、计算机可读介质及电子设备
CN112613877B (zh) * 2020-12-17 2021-12-07 腾讯科技(深圳)有限公司 应用于区块链网络的智能合约触发方法、装置及相关设备
WO2023003618A1 (en) * 2021-07-20 2023-01-26 Dearborn Financial, Inc. Referential data structures for automatically updating asset attributes in real time based on streaming data
DE102021004023A1 (de) 2021-08-04 2023-02-09 Giesecke+Devrient Advance52 Gmbh Verfahren zum direkten übertragen von token
US20230068301A1 (en) * 2021-08-26 2023-03-02 Mastercard International Incorporated Method and system for privately managed digital assets on an enterprise blockchain
US12019752B2 (en) * 2021-10-06 2024-06-25 Hewlett Packard Enterprise Development Lp Security dominion of computing device
US11956363B2 (en) * 2021-11-05 2024-04-09 Nicholas M. VENEZIA Systems and methods for hierarchical organization of data within a non-fungible tokens or chain-based decentralized systems
KR102475530B1 (ko) * 2021-12-01 2022-12-08 한국예탁결제원 부인 방지 기능을 강화한 증권형 토큰 관리 시스템
WO2023141241A1 (en) * 2022-01-20 2023-07-27 Dearborn Financial, Inc. Referential data structures for automatically updating asset attributes in real time based on streaming data
WO2024089587A1 (en) * 2022-10-23 2024-05-02 Goldman Sachs & Co. LLC Digital assets platform
WO2024089548A1 (en) * 2022-10-23 2024-05-02 Goldman Sachs & Co. LLC Hierarchical digital issuance tokens and claim tokens
KR102590475B1 (ko) * 2022-12-26 2023-10-20 주식회사 테사 증권형 토큰 정보 관리 서비스 방법 및 sto 플랫폼

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160321435A1 (en) * 2015-05-01 2016-11-03 Monegraph, Inc. Managing digital content via block chain registers
WO2018065411A1 (en) * 2016-10-05 2018-04-12 Calastone Limited Computer system
WO2018127923A1 (en) * 2017-01-08 2018-07-12 Eyal Hertzog Methods for exchanging and evaluating virtual currency

Family Cites Families (43)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3140420A (en) 1961-01-03 1964-07-07 Rca Corp Electron tube generating oppositely directed radially-displaced beams
US8909557B2 (en) * 2002-02-28 2014-12-09 Mastercard International Incorporated Authentication arrangement and method for use with financial transaction
US8332303B2 (en) * 2002-03-15 2012-12-11 Goldman, Sachs & Co. Method and apparatus for monitoring and evaluating trade activity
US20050131787A1 (en) * 2003-12-16 2005-06-16 Monteleone Leonard C. System and method for trading of mortgage backed securities
US7690026B2 (en) * 2005-08-22 2010-03-30 Microsoft Corporation Distributed single sign-on service
US9177313B1 (en) * 2007-10-18 2015-11-03 Jpmorgan Chase Bank, N.A. System and method for issuing, circulating and trading financial instruments with smart features
AU2012225130A1 (en) 2011-03-04 2013-10-24 Scribble Technologies Inc. System and methods for facilitating the synchronization of data
US11184156B2 (en) 2011-07-27 2021-11-23 Aon Global Operations Se, Singapore Branch Impact data manager for dynamic data delivery
SI3073670T1 (sl) * 2015-03-27 2021-07-30 Black Gold Coin, Inc. Sistem in postopek za osebno identifikacijo in verifikacijo
US20180240107A1 (en) * 2015-03-27 2018-08-23 Black Gold Coin, Inc. Systems and methods for personal identification and verification
US9819670B2 (en) * 2015-06-18 2017-11-14 Airwatch Llc Distributing security codes through a restricted communications channel
US20170011460A1 (en) * 2015-07-09 2017-01-12 Ouisa, LLC Systems and methods for trading, clearing and settling securities transactions using blockchain technology
US20170076382A1 (en) * 2015-09-14 2017-03-16 Bank Of America Corporation System for dynamic generation of allocation guide for assets
US10110447B2 (en) * 2015-10-23 2018-10-23 Oracle International Corporation Enhanced rest services with custom data
US10341325B2 (en) * 2016-01-29 2019-07-02 Vmware, Inc. System and method for transferring device identifying information
BR112018016782A2 (pt) 2016-02-23 2018-12-26 Nchain Holdings Ltd sistema e método implementado por computador configurado para controlar uma transferência feita através de um blockchain
WO2017145004A1 (en) * 2016-02-23 2017-08-31 nChain Holdings Limited Universal tokenisation system for blockchain-based cryptocurrencies
DK3257191T3 (en) * 2016-02-23 2018-07-23 Nchain Holdings Ltd REGISTER AND AUTOMATIC PROCEDURE FOR MANAGING BLOCKCHAIN FORCED SMART CONTRACTS
CN105956923B (zh) * 2016-04-20 2022-04-29 上海如鸽投资有限公司 资产交易系统以及资产的数字化认证和交易方法
US10022613B2 (en) 2016-05-02 2018-07-17 Bao Tran Smart device
AU2017263465B9 (en) * 2016-05-11 2021-01-28 Nasdaq, Inc. Application framework using blockchain-based asset ownership
JP6775086B2 (ja) 2016-12-16 2020-10-28 株式会社日立製作所 ブロックチェーン監視及び管理
TWI614713B (zh) 2017-01-23 2018-02-11 現代財富控股有限公司 基於區塊鏈的智能合約版本控管系統及其方法
US11249977B2 (en) * 2017-03-03 2022-02-15 Mastercard International Incorporated Method and system for storage and transfer of verified data via blockchain
CN107145521B (zh) 2017-04-10 2019-05-21 杭州趣链科技有限公司 一种面向区块链多级智能合约的数据迁移方法
EP3631742A4 (en) * 2017-06-01 2020-09-30 Etoro Group Ltd. INTELLIGENT CONTRACT FOR THE COPY TRADE
US11196552B2 (en) * 2017-08-04 2021-12-07 Truss Financial, LLC Secure data distribution protocol using blockchains
CN110019516B (zh) * 2017-11-10 2021-08-20 华为技术有限公司 一种信息管理方法、装置及系统
CN108170740B (zh) 2017-12-18 2022-04-26 深圳前海微众银行股份有限公司 数据迁移方法、系统和计算机可读存储介质
US10713722B2 (en) * 2018-02-14 2020-07-14 Equity Shift, Inc. Blockchain instrument for transferable equity
US20190287107A1 (en) * 2018-03-15 2019-09-19 International Business Machines Corporation Resource equity for blockchain
US11416931B2 (en) * 2018-03-16 2022-08-16 Salt Blockchain Inc. Investment fund token ownership
US11010403B2 (en) * 2018-04-24 2021-05-18 Microsoft Technology Licensing, Llc Relational distributed ledger for smart contracts
WO2019210310A1 (en) * 2018-04-27 2019-10-31 SharesPost, Inc. Global liquidity and settlement system
US20190333033A1 (en) * 2018-04-29 2019-10-31 Keir Finlow-Bates System and method for creating, storing and transferring unforgeable digital assets in a database
US20190340685A1 (en) * 2018-05-03 2019-11-07 Alpha Ledger Technologies, Inc. Blockchain-based asset and immutable real-time intelligent securities platform
US10965673B2 (en) * 2018-05-11 2021-03-30 Civic Technologies, Inc. User ID codes for online verification
WO2019227025A1 (en) * 2018-05-24 2019-11-28 Walmart Apollo, Llc System and methods for exception handling in a distributed computing environment
EP3808051B1 (en) * 2018-06-12 2024-01-10 The Vanguard Group, Inc. Device, method, and computer readable medium for large scale electronic processing
US20200042989A1 (en) * 2018-07-31 2020-02-06 Ramesh Ramadoss Asset-backed tokens
EP3834158A4 (en) * 2018-08-09 2022-05-04 tZERO IP, LLC VERIFYING FOR THE PRESENCE OF A WHITELISTED TRANSACTION ADDRESS BEFORE ALLOWING A TRANSFER TO A SELF-REGULATING TOKEN TRANSACTION ADDRESS REQUIRING A WHITELISTED TRANSACTION ADDRESS FOR SELF-REGULATING TOKEN REMOVAL
SG11202100410YA (en) * 2018-08-10 2021-02-25 Tzero Group Inc Splittable security token
US11146399B2 (en) * 2018-10-19 2021-10-12 Eygs Llp Methods and systems for retrieving zero-knowledge proof-cloaked data on distributed ledger-based networks

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160321435A1 (en) * 2015-05-01 2016-11-03 Monegraph, Inc. Managing digital content via block chain registers
WO2018065411A1 (en) * 2016-10-05 2018-04-12 Calastone Limited Computer system
WO2018127923A1 (en) * 2017-01-08 2018-07-12 Eyal Hertzog Methods for exchanging and evaluating virtual currency

Also Published As

Publication number Publication date
JP2021524645A (ja) 2021-09-13
SG11202100708WA (en) 2021-02-25
JP2021534486A (ja) 2021-12-09
JP2022009204A (ja) 2022-01-14
JP7447081B2 (ja) 2024-03-11
JP7138233B2 (ja) 2022-09-15
EP3834363A4 (en) 2022-05-25
JP6964211B2 (ja) 2021-11-10
EP3834363A1 (en) 2021-06-16
EP3834155A4 (en) 2022-06-01
WO2020033832A1 (en) 2020-02-13
WO2020033830A1 (en) 2020-02-13
EP3834364A1 (en) 2021-06-16
JP7216169B2 (ja) 2023-01-31
JP2021527279A (ja) 2021-10-11
KR20240068068A (ko) 2024-05-17
EP3834364A4 (en) 2022-04-06
EP3834155A1 (en) 2021-06-16
US20240095719A1 (en) 2024-03-21
US20220374870A1 (en) 2022-11-24
SG11202100415QA (en) 2021-02-25
WO2020033835A1 (en) 2020-02-13
US11829997B2 (en) 2023-11-28
JP2022169795A (ja) 2022-11-09
JP2024059854A (ja) 2024-05-01
US20200051069A1 (en) 2020-02-13
SG11202100410YA (en) 2021-02-25
US20220101307A1 (en) 2022-03-31
KR20210050526A (ko) 2021-05-07
KR20210050527A (ko) 2021-05-07
KR20210050525A (ko) 2021-05-07
JP7478783B2 (ja) 2024-05-07
US11410159B2 (en) 2022-08-09
US20200051043A1 (en) 2020-02-13
US11961067B2 (en) 2024-04-16

Similar Documents

Publication Publication Date Title
KR102666835B1 (ko) 업그레이드 가능한 증권형 토큰
US11216802B2 (en) Self-enforcing security token implementing smart-contract-based compliance rules consulting smart-contract-based global registry of investors
US11102003B2 (en) Ledger-independent token service
Vo et al. Internet of blockchains: Techniques and challenges ahead
US20200380505A1 (en) Auto-pilot transactions using smart contracts
US20200051072A1 (en) Verifying transaction address is whitelisted before allowing transfer to transaction address of self-regulating token requiring whitelisted transaction address to withdraw self-regulating token
Bandara et al. Patterns for blockchain data migration
US20230359604A1 (en) Method and apparatus for creating and managing user configurable objects and functions on distributed ledger networks
US20230093411A1 (en) Synchronising event streams
Ahubele et al. An Improved Ethereum-Based Model for Smart Contract Implementation

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant