I. 서론
블록체인[1] 기술은 단순 거래 기능을 가진 비트코인[2]과 스마트 컨트랙트와 NFT(Non-fungible token) 등의 기능을 가진 이더리움[3]을 시작으로 현재 다양한 기술 분야에서 활발히 사용되고 있다. 특히나 보안 기술 분야에 적용하려는 연구가 활발히 진행되고 있는데, 해시함수와 탈중앙화된 네트워크 구조를 통하여 DDoS(Distributed Denial of Service)[4] 공격과 단일 지점의 장애를 방지할 수 있는 방향이 각광받고 있다.
이러한 특징을 바탕으로 블록체인 기술은 비트코인을 시작으로 스마트 컨트랙트 기능을 가진 이더리움을 통해 다양한 애플리케이션에서 사용중이다.[5] 이더리움의 스마트 컨트랙트 생태계는 다양한 NFT와 DApp(Decentralized Applications)[6]를 지원하며, 탈중앙화된 금융(DeFi) 서비스와 NFT 시장에서도 핵심적인 역할을 하고 있다. 그 중 하나인 SBT(SoulBound Token)[7]는 이더리움의 생태계 내에서 보안 및 신분 증명 등의 방식으로 활용할 수 있다. 이러한 블록체인의 탈중앙화 특성을 이용하여 개인정보를 SBT에 저장하는 방식이 제안되고 있으나[8] 가스비 문제와 저장 용량의 제약 등으로 실질적인 구현이 어렵다는 한계가 존재하여 데이터 저장이 아닌 개인의 신원 및 평판 증명 등에 국한되어 있는 상황이다. 또한 일부 SBT에 데이터를 저장하는 방식도 존재하였으나, 데이터의 용량에 따라 가스비가 증가하는 SBT의 특성에 따라 생성비가 과도하게 올라 연구가 진행되지 않는 상황이다.
최근 신체 치수 측정, 얼굴 위변조 판별과 관련된 기술들이 지속적으로 연구되지만, 개인의 민감정보인 의류 사이즈를 측정하는 경우[9]와 얼굴 변조 여부[10] 등의 기술을 활용하는 스타트업에서는 중앙화된 서버에 고객의 데이터를 저장하는 방식이 기술적, 비용적으로 부담이 큰 상황이다. 이에 본 논문은 스타트업에서 IPFS(Inter Planetary File System)[11] 방식을 활용하여 고객의 정보를 분산화하여 외부 서버에 분산 저장하고 해당 데이터를 열람할 수 있는 CID는 SBT에 저장하여 고객에게 제공하는 방식을 제안한다. IPFS 방식은 데이터를 여러 노드에 분산 저장하기 때문에 데이터 유실 및 해킹의 위험이 중앙화된 서버에 비해 낮고, SBT는 타인에게 양도가 불가능하다는 특징을 가지고 있어 고객의 SBT가 타인에게 탈취당할 가능성 없이 CID를 안전하게 보관할 수 있는 수단이다. 또한 스마트 컨트랙트를 통하여 CID를 열람할 수 있는 권한은 스타트업의 전자지갑 주소로만 설정하여 외부에서는 contract adress를 알아도 CID 열람이 불가능하도록 한다. 이를 통해 고객은 데이터를 열람할 수 있는 키를 직접 보관하여 안심이 되고, 스타트업에서 데이터를 열람할 때마다 해당 기록이 블록체인 서버에 기록되어 추후 문제가 발생해도 쉽게 대응할 수 있다. 스타트업의 입장에서는 자체 데이터베이스에 고객의 민감정보를 저장해두는 위험이 사리지고, 고객의 이름과 contract address만 보관해두면 된다. 추후 필요할 때마다 CID를 받아와 IPFS 서버에서 열람하고, 사용후에는 데이터를 폐기하면 되기 때문에 보안에서의 부담이 줄어든다.
SBT를 생성하기 위해서는 먼저 ERC-721[12] 표준 인터페이스를 사용하여 대체불가능한 토큰(NFT)을 발행해야 하며, ERC-5192[13] 표준을 통하여 SBT의 구현에 필요한 토큰 잠금 기능을 추가한다. 이 과정에서 비용적인 측면을 고려하여 SBT 발행시 Layer2 Solution 조정을 통하여 토큰 생성 비용을 1/4300로 낮추는 방법도 제안한다.
본 논문에서는 텍스트 형식의 민감한 개인정보를 메모장에 업로드하여 IPFS 방식으로 저장한 후, CID를 통하여 ERC-5192 표준의 토큰 잠금 기능을 가진 SBT를 발행하여, 최종적으로 데이터의 내용을 안전하게 저장 및 확인하는 방식을 제안한다. 이러한 방법을 통해 신원 확인 및 자격 증명 등에만 사용이 국한되어있던 SBT의 한계에서 벗어나 IPFS에 저장된 데이터를 열람할 수 있는 CID 저장 수단으로 사용한다. 또한 이더리움 메인넷이 아닌 Layer2 Solution인 Optimism 방식을 활용하여 토큰 생성 비용도 1/4000으로 낮추고 스마트 컨트랙트 설정을 통해 contract address가 유출되어도 기존에 승인된 계좌에서만 CID를 열람할 수 있도록 설정한다. 스타트업에서는 고객의 민감정보를 자체 데이터베이스에 저장하지 않고 필요할 때마다 CID를 불러와 데이터를 확인하기 때문에 보안에 대한 부담이 줄어들고 Layer2 solution을 통해 비용적인 부담도 현저히 줄어든다. 실제 코드는 노션 페이지[14]와 깃허브 저장소[15]에서 확인할 수 있다.
II. 관련 연구
2.1 IPFS
IPFS는 데이터를 여러 노드에 분산 저장하여, 단일 장애 지점(SPOF, Single Point of Failure)을 제거한다.[16] 이는 중앙 서버의 장애로 인한 데이터 손실을 방지하고, 네트워크의 안정성과 가용성을 높이는 효과가 있다. 또한 IPFS는 버전 관리 기능을 제공하여 파일의 변경된 사항을 추적할 수 있도록 한다. 이를 통해 관리자는 파일의 역사(history)를 쉽게 관리할 수 있고, 이전 버전으로의 복원이 용이하다.
파일이 IPFS에 업로드될 때 생성되는 해시값인 CID는 파일의 고유한 식별자로 사용된다. CID는 파일의 내용을 바탕으로 결정되므로, 동일한 파일에서는 항상 동일한 CID를 생성하며, 이를 통하여 파일의 무결성을 확인할 수 있다. 전통적인 URL 방식의 위치 기반 주소 지정과 달리, IPFS는 콘텐츠 자체를 기반으로 주소를 지정한다. 이는 파일의 위치가 아니라 파일의 내용을 기준으로 접근할 수 있게 한다. IPFS는 데이터를 블록 단위로 나누어 저장하고, 필요할 때만 해당 블록을 전송함으로써 대역폭 사용을 최적화한다. 이를 통해 대용량 파일의 전송 속도를 높이고 네트워크 부하를 줄인다. IPFS의 운영 방식은 Fig. 1로 표현할 수 있다.

Fig. 1. Flow of IPFS Execution Method
파일이 IPFS에 업로드될 때, 파일은 여러 블록으로 분할되고 각 블록은 고유한 해시값을 갖는다. 파일의 전체 해시값(CID)은 이러한 블록들의 해시값들을 기반으로 생성된다. 생성된 블록들은 IPFS 네트워크의 여러 노드에 분산 저장된다. 이를 통해 파일의 일부가 손실되더라도 다른 노드에서 해당 블록을 가져올 수 있어 데이터의 가용성이 높아진다. 사용자가 파일을 요청하면, IPFS는 네트워크에서 해당 파일의 해시값을 기반으로 블록을 검색하고, 이를 조합하여 원본 파일을 복원한다. CID를 통해 파일의 내용이 변경되지 않았음을 보장한다. 그러나 IPFS는 데이터를 장기적으로 보존하지 않는 노드들로 구성되어 있기 때문에, 중요한 데이터의 경우 유실 위험이 존재할 수 있다. 이를 보완하기 위하여 Pinning 서비스를 통해 특정 데이터를 지속적으로 IPFS 상에 보존하여 데이터가 유실되지 않도록 할 수 있다.
IPFS의 장점으로는 첫째, 해시값을 사용하여 파일의 무결성을 검증할 수 있다.[17] 파일이 변경되거나 수정사항이 생기면 해시값이 달라지므로, 변조 여부를 확인하기 용이하다. 둘째, 가용성이 높다. 파일이 네트워크의 다양한 노드에 분산되어 저장되므로, 단일 노드의 장애가 전체 시스템에 영향을 미치지는 않는다. 셋째, 콘텐츠를 더욱 효율적으로 배포할 수 있다. IPFS는 P2P(peer-to-peer) 네트워크를 통하여 콘텐츠를 효율적으로 배포하는 것이 가능하다. 이를 통해 네트워크의 트래픽을 분산시키고, 이는 대규모 콘텐츠 전달을 가능하도록 한다.[18] 넷째, 탈중앙화의 특성이 뚜렷해진다. 네트워크 상의 모든 노드가 중앙 서버의 개입 없이 데이터를 저장하고 제공할 수 있어 중앙화된 통제 없이도 데이터의 공유가 자유롭다.
2.2 Layer2 Solution
Layer2 Solution은 이더리움 메인넷의 확장성 문제를 해결하기 위해 도입된 기술로, 메인넷의 높은 가스비와 느린 거래 처리 속도를 개선하려는 목적을 가진다. 대표적으로 Optimism Rollup[19]과 사이드체인[20]이 있다. Optimism Rollup은 이더리움 메인넷 외부에서 트랜잭션을 처리한 뒤, 요약된 결과만을 메인넷에 기록하는 방식으로 이더리움 메인넷의 보안성을 그대로 유지하면서도 높은 거래 처리속도와 낮은 가스비를 제공한다는 장점이 있다. 그러나 거래가 확정되기 전에 일정한 검증 지연 시간이 필요하다는 단점도 존재한다.
사이드체인은 메인넷과 독립적으로 운영되는 별도의 블록체인으로 메인넷과의 연결을 위해 브릿지[21]를 사용한다. 사이드체인은 높은 유연성과 낮은 가스비로 효율적인 트랜잭션 환경을 제공하지만, 독립된 보안 모델을 가지고 있기 때문에 메인넷과 동일한 수준의 보안성을 제공하기 어렵고, 중앙화된 노드에 의존하는 경우 보안 취약점이 발생할 수 있다.
2.3 기존 연구 분석
김동완 등은 “SBT와 NFT를 활용한 디지털 휴먼의 신원 및 소유권 통합 인증 연구”[22]에서 메타버스 내의 디지털 휴먼의 신원 인증과 소유권 증명 문제를 해결하기 위해 SBT와 NFT를 결합한 통합 인증 시스템을 제안한다. 이 연구는 KYC 인증을 한 후 플랫폼에서 SBT를 발급받으며, 디지털 휴먼에 관한 신원 인증은 스마트 컨트랙트를 통해 이루어진다. 제안된 시스템은 소유권 및 신원 인증 과정을 한번의 스마트 컨트랙트로 동시에 처리하여 인증 과정의 효율성이 높다는 특징이 있다. 그러나 해당 연구에는 몇 가지 한계점이 존재한다. 첫째, KYC 인증 자체가 중앙 서버에 의존한다는 문제가 있으며, 이는 메타버스 플랫폼의 탈중앙화 특성과 상충될 수 있다. 둘째, 제안된 시스템은 주로 신원 인증에 국한되어 있으며, 데이터 저장 및 보호와 관련된 구체적인 해결 방안이 부족하다는 한계가 있다. 셋째, SBT를 실제로 구현할 때 참고할 만한 구현 방법에 대한 구체적인 기술적 설명 및 세부적인 설명이 부족하다.
조성우 등은 “탈중앙 사용자 인증을 위한 SBT 구현 및 인증 시나리오 제안”[23]에서 블록체인과 같은 탈중앙 환경 속 사용자 인증을 수행하기 위해 SBT를 활용하는 방안을 제시한다. 이 연구에서는 블록체인의 투명성이 야기하는 개인정보 프라이버시 확보가 어렵다는 문제를 해결하기 위해 SBT를 활용한 사용자 인증 방법을 제안한다. 대부분의 기존 연구들이 SBT를 구현할 때 NFT의 전송 기능을 제거한 형태로 구현하고 있지만, 이 연구는 ERC-5192 표준의 토큰 잠금 기능을 활용하여 안정성과 사용성을 확보한 SBT를 구현하고 이를 기반으로 사용자 인증 프로세스를 제안하고 있다. 그러나 해당 연구에는 몇 가지 한계점이 발견된다. 첫째, 결국은 오프체인에서 데이터가 관리되는 특징으로 사용자 데이터를 탈중앙 데이터베이스인 IPFS에 저장하지만, 완벽한 탈중앙성을 확보하기에는 한계가 있다. 둘째, 해당 연구는 주로 신원 인증에 초점을 맞추고 있어, 텍스트 형식의 고객 민감 정보를 저장하려는 스타트업의 요구사항을 충족하지 못한다는 한계가 있다.
Tanwar 등은 "Patient-centric soulbound NFT framework for electronic health record (EHR)"[24]에서 환자 데이터를 보호하기 위한 환자 중심의 Soulbound NFT 프레임워크를 제안한다. 해당 프레임워크는 환자의 개인 데이터를 SBT 방식으로 토큰화하여 안전하게 저장하고, 중앙 기관에서 데이터를 관리하는 방안을 제시한다. 이를 위하여 기존 NFT의 전송 기능을 제거하여 전송이 불가능하도록 만든다. 이는 환자의 데이터 소유권이 보장되고, 의료 기록의 무결성을 유지할 수 있으며, 환자와 의사 사이의 데이터 접근이 안전해진다. 그러나 이 연구에는 몇 가지 한계점이 발견된다. 첫째, SBT를 실제로 구현할 때 참고할 만한 구현 방법에서의 구체적인 기술적 설명이 부족하다. 둘째, 데이터 관리에 중앙 기관이 포함되기에 완전한 탈중앙화를 이루지는 못하였다.
기존 연구 결과들을 토대로 데이터 중앙 저장 방식, SBT에 데이터를 직접 저장하는 방식, IPFS 방식으로 데이터를 저장한 후 CID를 SBT에 저장하는 방식을 비교한 결과는 Table 1에 표시한다.
Table 1. Comparison of Data Strorage Methods

III. 제안 구도
3.1 SBT 생성
SBT를 생성한 후 Layer2 Solution을 통하여 비용을 절감하고 IPFS 방식을 통하여 데이터를 저장한다. 저장한 후의 데이터 형태를 확인한 후 CID를 바탕으로 SBT에 저장하고 tokenURI가 잘 불러와지는지 확인한다. 단계별 자세한 설명은 다음과 같다.
SBT는 ERC-721 표준을 기반으로 하고 특정 지갑에 영구적으로 묶여 소유자가 다른 사람에게 전송할 수 없는 비대체성 토큰(NFT)을 의미하며, 이를 구현하기 위해 ERC-5192 표준의 토큰 잠금 기능이 사용된다. ERC-721 표준은 각각의 토큰이 고유하고, 상호 교환될 수 없는 속성을 정의하여 다양한 디지털 자산을 블록체인 상에서 안전하게 관리할 수 있도록 한다. ERC-5192 표준은 토큰의 전송을 방지하는 잠금 기능을 정의하여, SBT가 특정 지갑에 영구적으로 귀속되도록 하고, 이를 통해 사용자의 민감한 정보를 안전하게 보호할 수 있는 보안성을 제공한다.
3.2 Layer2로 비용 절감
이더리움 메인넷의 높은 가스비용을 줄이기 위해 Layer2 Solution을 사용하였다. Layer2 Solution은 이더리움과 같은 블록체인의 확장성과 속도를 향상시키기 위해 사용되는 프로토콜으로 메인체인(Layer1)의 부하를 줄이고, 거래 속도를 높이며, 거래 수수료를 낮추는 데 기여한다. 대표적으로 이더리움 메인넷의 보안성을 유지하면서 거래 처리속도와 가스비를 절감할 수 있는 Optimism Rollup 방식과 메인넷과 독립적인 네트워크인 사이드체인 방식이 있으며 보안성 및 호환성이 더 우수한 Optimism Rollup 방식이 더 적합할 것으로 판단하였다. 실험에서는 Arbitrum[25], Optimism을 사용하여 SBT 발행에 들어가는 수수료를 줄이는 방법을 제시한다. 정확한 토큰 발행 가격 및 속도와 관련된 결과는 Table 2에 표시한다.
Table 2. Comparison of Layer 2 Solutions

3.3 데이터 저장 방식 비교
텍스트 형식의 데이터를 메모장에 먼저 저장하고 SBT에 저장하기 위해 Pinata와 web3.storage에서 IPFS 방식을 활용하였다. 메모장 내용을 IPFS에 저장하고 CID를 생성하여 SBT에 연동하였다. Pinata와 web3.storage 모두 무료로 사용이 가능하며 UI를 제외한 기능에서는 큰 차이가 없음을 확인했다.
3.4 데이터 형태 확인
데이터 형식은 메모장에 “김재현 185 75 265”를 저장하는 방식으로 진행하였다. 개인정보를 텍스트 형식으로 변환할 때 고정된 형식과 필드 값을 사용하여 데이터 변환의 일관성을 유지한다. 실험에서는 키, 몸무게, 신발 사이즈와 같은 개인정보는 사전에 정의된 규칙에 따라 순차적으로 배열되며, 각 필드 사이에는 구분자를 사용해 오류 가능성을 최소화한다.
3.5 tokenURI 확인
SBT에 연동된 CID를 통해 링크를 받아와 메모장의 내용을 확인할 수 있도록 한다. 이는 블록체인 네트워크에서 SBT의 상태를 확인하고, 해당 토큰에 연동된 데이터를 URI를 통하여 안전하게 접근할 수 있게 한다. 고객은 본인의 SBT에 저장된 Contract Address를 통해 CID를 확인할 수 있고, 스타트업의 경우 EmitCID를 통하여 CID를 확인할 수 있다.
IV. 실험
4.1 실험 환경
해당 실험은 이더리움의 메인넷과 Layer2 Solution인 Arbitrum, Optimism을 사용하여 진행되었다. 실험 환경 스펙은 Table 3에, 사용된 장비는 Table 4에 표시한다.
Table 3. Experimental Environment Specification

Table 4. Equipment Specification

4.2 함수 설명
SBT의 생성, 잠금, CID 연동 등에 사용된 주요 함수들을 설명한다.
1.Constructor (string memory name, string memory symbol): SBT 스마트 컨트랙트의 생성자 함수를 의미하며, 토큰의 이름과 기호를 설정한다.
2.Mint (address to, uint256 tokenId, string memory cid): SBT를 발행하는 함수로, 소유자만이 호출할 수 있다는 특징이 있다. 발행된 토큰은 주어진 주소에 생성되며, IPFS의 CID를 기반으로 토큰 URI가 설정된다.
3._setTokenURI (uint256 tokenId, string memory _tokenURI): 주어진 CID를 기반으로 토큰 URI를 설정한다. 이 함수는 내부적으로 사용된다.
4._transfer (address, address, uint256) internal virtual override: 토큰의 전송을 방지하기 위해 재정의된 함수로, 항상 전송이 불가능하도록 설정되어 있다.
5.safeTransferFrom (address, address, uint256) public virtual override: SBT의 안전한 전송을 방지하기 위해 재정의된 함수로, 항상 전송이 불가능하도록 설정되어 있다.
6.safeTransferFrom (address, address, uint256, bytes memory) public virtual override: SBT의 안전한 전송을 방지하기 위해 재정의된 함수로, 항상 전송이 불가능하도록 설정되어 있다.
7.transferFrom (address, address, uint256) public virtual override: SBT의 전송을 방지하기 위해 재정의된 함수로, 항상 전송이 불가능하도록 설정되어 있다.
8.requestViewCID(): 사용자가 CID를 조회할 권한을 요청하는 함수로, 권한이 없는 사용자가 이함수를 호출하면 조회 권한 요청이 기록된다.
9.approveViewer(address viewer): 소유자가 특정 사용자에게 CID 조회 권한을 부여하는 함수이다. 요청이 존재할 때만 권한을 부여할 수 있으며, 권한이 부여된 사용자는 CID를 조회할 수 있다.요청이 승인되면 approveViewers 매핑에 대한 권한 상태가 업데이트되어 해당 사용자가 SBT에 접근할 수 있다. 스타트업에서 SBT를 생성할 때 관리자의 계정에 조회 권한을 부여한 후 고객에게 SBT를 제공하고 추후 추가로 권한을 요청할 경우 사용한다.
10.revokeViewer(address viewer): 소유자가 특정 사용자의 CID 조회 권한을 취소하는 함수로, 권한이 취소되면 해당 사용자는 더 이상 CID에 접근할 수 없다. 스타트업에서 관리자의 계정을 변경해야 할 경우 고객이 관리자의 권한을 회수하기 위하여 사용한다. SBT 소유자가 직접 접근 권한을 관리하여 개인정보 유출을 방지할 수 있다.
11.EmitCID(): CID를 반환하고 조회 이벤트를 기록하는 함수로 CID 조회 권한이 있는 사용자만 호출이 가능하며, 누가 언제 조회했는지 로그에 기록된다.
12.getViewLogs(): 소유자가 CID 조회 기록을 확인할 수 있는 함수이다. 로그는 배열 형태로 반환되며, 이를 통해 소유자는 누가 언제 CID를 조회했는지 확인할 수 있다.
13.tokenURI (uint256 tokenId) public view virtual override returns (string memory): 주어진 CID에 해당하는 토큰 URI를 반환한다. 토큰이 존재하지 않을 경우 에러를 발생시킨다.
4.3 데이터 확인 방식 로드맵
스타트업에서 메모장 내용을 IPFS 방식으로 저장하고 SBT에 연동하여 확인하는 방식은 Fig. 2에 표시한다.

Fig. 2. Data storage and Operation Process
1) 스타트업이 메모장 파일을 업로드한다. 2) IPFS방식을 통해 파일을 블록으로 분할하여 저장하고 CID를 생성한다. 3) 스타트업이 CID를 바탕으로 SBT 계약을 배포한다. 이때 SBT 열람 권한을 스타트업의 계좌에만 미리 부여한다. 4) 고객이 생성된 SBT를 자신의 디지털 지갑에 보관한다. 5) 스타트업이 Contract Address를 바탕으로 CID를 확인하며, 이 과정은 블록에 기록된다. 6) 스타트업은 CID를 이용해 정보를 확인한 후 데이터를 파기하여 중앙서버에 따로 데이터를 저장할 필요가 없다. 7) 고객은 모든 열람기록을 언제든 확인 가능하다.
4.4 SBT 발행 및 확인 방법
4.4.1 지갑 연결 및 파일 업로드
MetaMask 계정을 생성한 후 확장프로그램으로 연결해둔다. MetaMask 지갑에 optimism 방식으로 이더리움을 보내두는데 최소수량인 0.01ETH를 보낸다고 가정한다. 또 준비한 메모장 파일을 pinata에 업로드 한 후 CID를 기억해둔다. pinata에 업로드 함으로써 IPFS 방식으로 메모장을 업로드 할 수 있으며 자동으로 CID가 생성된다. 이는 탈중앙화 방식의 데이터 저장 방식의 일종이다.
4.4.2 파일 내 SBT 생성
Remix-Ethereum IDE에 접속한 후 FILE EXPLORER에서 파일을 생성한 후 코드를 작성한다. Fig. 3을 보면 (0)에서 코드 작성을 완료한 후 SOLIDITY COMPILER에서 ‘Compile 파일이름’을 클릭한다. DEPLOY&RUN TRANSACTIONS에서 (1)의 ENVIRONMENT의 Injected Provider-MetaMask를 선택하여 MetaMask와 연결한다. 해당 과정을 통하여 생성할 토큰이 저장될 가상화폐 지갑에 연결을 완료한다. 연결된 지갑 주소는 (2)에서 확인이 가능하다.

Fig. 3. Actual Development Page
4.4.3 파일 내 SBT 생성
(3)을 확인하면 DEPLOY에서 NAME에 토큰의 이름을 입력하고, (4)의 SYMBOL에 토큰의 약어(ex SBT)를 입력하고 (5)의 transact를 누른다. 이는 토큰의 기본적인 이름 및 정보를 결정하는 과정이다. 그 후 MetaMask에서 (6)의 컨펌 버튼을 눌러주고 Deployed/Unpinned Contracts에서 “2.mint” 함수에 to, tokenId, CID를 입력해준다. “to” 칸에는 입력받는 메타마스크 주소를 입력하고 “tokenId” 칸에는 원하는 토큰의 아이디를 숫자로 입력하며 “CID“ 칸에는 IPFS 방식으로 올린 파일에서 생성된 CID를 입력하면 된다. 해당 부분에서 4.2에서 소개된 ”2.mint함수“가 사용된다.
4.4.4 SBT 생성 확인
name, owner를 눌러서 설정한 name과 지갑주소가 잘 입력되었는지 확인한다. 블록체인 특성상 잘못된 지갑 주소를 입력한 경우 되찾는 것이 불가능하기 때문에 매우 중요한 단계이다. symbol에서는 tokenURI 칸에서 tokenId를 눌러서 결과값이 잘 나오는지 확인한다. 또 실행 완료된 결과값에서 to옆에 있는 ”contract address“를 확인한다. 해당 부분들을 모두 확인하고 하나라도 잘못된 부분이 있다면 4.4.3으로 돌아가서 다시 실행해야 한다.
4.4.5 SBT를 고객의 지갑에 가져오기
MetaMask에 들어가 NFT 칸에서 ‘NFT 가져오기’를 누른다. 주소랑 토큰 ID를 입력해야 하는데, 내 지갑 주소가 아닌 4.4.4에서 확인한 ”contract address“를 입력하고 토큰 ID를 입력해준다. 그러면 SBT이 성공적으로 지갑에 저장된다.
4.4.6 스타트업에서 CID를 통해 데이터 확인하기
스타트업에서는 ‘11.EmitCID 함수’를 통해 CID를 확인 가능하며 고객은 ‘12.getViewLogs’ 함수를 통해 누가 언제 CID를 조회하였는지 확인이 가능하다. 이를 통해 데이터 침해 의심 상황이 발생 시 48시간 내로 감독 기관 및 데이터 주체에게 상황을 보고하도록 한다. 이 과정은 Fig. 4에 표시한다.

Fig. 4. Data Storage and Access Flow Based on IPFS and SBT
4.5 스마트 컨트랙트 보안 강화
스마트 컨트랙트의 보안을 유지하기 위하여 ‘9.approveViewer’와 ‘10.revokeViewer’ 함수를 통해 접근 권한을 철저히 관리하며, 승인된 사용자만이 CID와 연동된 데이터를 열람할 수 있도록 설정한다. 접근 시도는 접근 로그에 기록하여 향후 발생할 수 있는 보안 문제를 대비하며 CIDViewed와 같은 이벤트 기록을 통해 스마트 컨트랙트의 데이터를 실시간으로 모니터링하고, 비인가 접근을 감지할 수 있다. 데이터 조회 시 접근 내역을 기록하여 관리자가 데이터 접근 내역을 확인할 수 있으며, 이를 통해 무단 접근이 발생할 경우 빠르게 대응이 가능하다.
사용자의 개인키를 탈취하려는 시도가 발생할 수 있다. 이에 대해서는 지속적인 보안 교육과 함께 2단계 인증(2FA)을 사용하도록 권장하여 대비가 가능하다.
4.6 실험 결과 및 의의
4.6.1 실험 결과 및 보안성 분석
Pinata를 사용하여 데이터를 IPFS에 저장하고, CID를 SBT에 연동하는 방식은 중앙화된 데이터베이스보다 보안성이 뛰어나다. CID는 파일 내용 기반의 해시값으로 생성되기 때문에 데이터 변조가 불가능하며, 이를 통해 데이터의 무결성이 보장된다. 또한 실험에서는 CID에 대한 접근 권한을 사전 승인된 스타트업 계좌만이 가질 수 있도록 제한하였으며, 승인된 계좌만이 ‘11.EmitCID 함수’를 통해 CID에 접근할 수 있었다. 접근 권한의 부여와 취소는 고객이 ‘9.approveViewer’와 ‘10.revokeViewer 함수’를 통해 관리할 수 있다. 스타트업은 데이터를 조회하여 활용하고 CID를 포함한 모든 개인정보를 폐기한다. 추후 데이터가 필요한 경우 반복적으로 CID를 요청한다. CID 요청 기록은 ‘12.getViewLogs 함수’를 통해 확인이 가능하다. 해당 내용은 Table 5에 표시한다.
Table 5. Security Requirements

4.6.2 실험 결과 및 성능 분석
ERC-721 방식을 준수하는 SBT를 Layer2 Solution을 통해 구현함으로써, 평균 속도가 10TPS인 이더리움 메인넷 대비 거래 처리 속도가 100~300TPS로 개선되었다. Optimism을 활용한 실험에서 TPS는 이더리움 메인넷의 TPS에 비해 약 10배 이상의 성능 향상을 보여준다. 또한 이더리움 메인넷에서 SBT 발행 시 평균 \(\$14.16\)의 가스비가 소요되었으나, Arbitrum에서는 \(\begin{align}\$0.07\end{align}\), optimism에서는 \(\begin{align}\$0.003\end{align}\)로 각각 1/202, 1/4300 수준까지 비용을 절감할 수 있었다. Layer2 Solution을 통해 SBT를 발행하는 과정에서 수수료를 절약하면서도 데이터 무결성과 보안성을 유지할 수 있었다.
실험을 통해 SBT를 발행하고, 이를 잠금 상태로 설정하여 블록체인 네트워크에서 안전하게 관리할 수 있다는 점이 확인되었다. 또한 다양한 Layer2 Solution을 통해 비용 절감 효과를 검증하였으며, 승인된 계좌만이 CID에 접근할 수 있다는 것을 확인했다.
4.6.3 개인정보 보호 법규 준수 여부
GDPR(General Data Protection Regulation)을 토대로 개인정보 보호 법규를 준수하는지 확인한다. 본 시스템은 사용자의 명확한 동의를 바탕으로 실행하며 목적에 맞게 최소한의 데이터만 수집하고 목적 외 사용을 방지한다. SBT에 데이터를 직접 저장하는 것이 아닌 CID를 저장하여 데이터를 최소한으로 저장하는 최소화 원칙을 충족하며 IPFS 상의 데이터에 대한 수정 권한을 제공하여 데이터의 정확성을 유지한다. CID를 통해 개인정보가 블록체인에 영구적으로 저장되지 않도록 제한하며 무결성과 기밀성이 유지된다. 모든 데이터 접근과 수정은 로그로 기록되며 IPFS를 통해 데이터 수정 및 삭제 권한도 부여한다. 데이터 유출 시 48시간 이내로 고객에게 알리며 접근 제어를 통해 보안을 강화한다. 해당 내용은 Table 6에 표시한다.
Table 6. GDPR Security Requirements

V. 결론
본 연구에서는 SBT(Soul-Bound Token)를 활용하여 텍스트 형식의 데이터를 블록체인에 안전하게 저장하는 방법을 제안한다. ERC-5192 표준을 기반으로 구현된 SBT를 사용하여 데이터를 IPFS에 저장하고 CID(Content Identifier)를 SBT에 연동함으로써, 탈중앙화된 방식으로 데이터를 관리하는 방안을 제시한다.
이를 통해 신체 치수 측정 등의 기술을 활용하는 스타트업에서 고객의 민감한 개인정보를 자체 데이터베이스에 저장할 필요가 없고, 고객에게 SBT를 부여함으로써 고객이 열쇠를 직접 보관하며 개인정보의 사용 기록을 확인할 수 있는 투명성도 보장된다. 또한 만약 Contract Address가 해킹되더라도 권한이 없는 계좌는 CID에 접근할 수 없기 때문에 해킹으로부터 안전하다는 장점도 있다.
그러나 본 연구는 IPFS에 저장된 데이터의 기밀성을 강화하기 위한 보안 조치가 부족하다는 한계가 존재한다. 추가적인 암호화 기술을 적용한 방법에 대한 연구를 필요로 하며, IPFS에 저장된 데이터의 기밀성을 보장하기 위한 암호화 알고리즘 관련 보안 조치 연구를 제안한다. 예를 들어 의료 분야에서 환자 기록을 SBT와 IPFS에 저장하는 경우, 저장 전 데이터를 암호화하고 암호화 키를 고객의 SBT에 연동하는 방식으로 보안성을 높일 수 있다. 또한 본 시스템을 다양한 데이터 크기별로 비교하거나 실제 산업과 스타트업에 적용할 때의 실증 연구를 제안한다.
References
- P. Dutta, T. Choi, S. Somani, R. Butala, 'Blockchain technology in supply chain operations: Applications, challenges and research opportunities,' Transportation Research Part E: Logistics and Transportation Review, vol. 142, pp. 102067, July. 2020.
- S. Nakamoto, 'Bitcoin: A Peer-to-Peer Electronic Cash System,' Decentralized Business Review, vol. 21260, Oct. 2008.
- V. Buterin, 'A Next-Generation Smart Contract and Decentralized Application Platform,' Ethereum Foundation, White Paper, pp. 1-36, Dec. 2014.
- B. Kumar Mohanta, D. Jena, S. S. Panda, S. Sobhanayak, 'Blockchain technology: A survey on applications and security and privacy Challenges,' Internet of Things, vol. 8, pp. 100107, Oct. 2019.
- K. Croman et al., 'On Scaling Decentralized Blockchains,' in *Proceedings of the Financial Cryptography and Data Security, FC 2016 International Workshops: BITCOIN, VOTING, and WAHC, Revised Selected Papers, Christ Church, Barbados, vol. 9604, pp. 106-125, Feb. 2016.
- K. Wu, Y. Ma, G. Huang, X. Liu, 'A first look at blockchain-based decentralized applications,' Software: Practice and Experience, vol. 51, no. 10, pp. 2033-2050, Oct.2021. https://doi.org/10.1002/spe.2751
- V. Buterin and G. Griffith, 'Decentralized Society: Finding Web3's Soul,' *Ethereum Foundation*, White Paper, pp. 1-33, July. 2022.
- S.-W. Cho, J.-W. Seo, and S.-Y. Park, 'A Proposed Authentication Scenario based on SBT implementation for Decentralized User Authentication,' Journal of The Korea Society of Computer and Information, vol. 28, no. 12, pp. 115-127, Dec. 2023. https://doi.org/10.9708/JKSCI.2023.28.12.115
- W. Entriken and D. Shirley, 'ERC-721: Non-Fungible Token Standard,' Ethereum Improvement Proposals, no. 721, Jan. 2018.
- T. Daubenschütz and Anders, 'ERC-5192: Minimal Soulbound NFTs,' Ethereum Improvement Proposals, no. 5192, July. 2022.
- Z. Yan, W. Jin, and W. Shen, 'Towards a Trustworthy Decentralized Storage System with IPFS,' IEEE Transactions on Big Data, vol. 7, no. 4, pp. 700-714, Dec. 2021.
- P. J. Ryan, and S. G. Mazurek, 'Decentralized Storage with IPFS and Filecoin,' IEEE Communications Standards Magazine, vol. 4, no. 3, pp. 22-28, Sep. 2020.
- S.H. Kim, 'Automatic size measurement of garments using vision deep learning models and point-cloud data,' Applied Science, vol. 10, no. 2, pp. 123-130, Feb. 2023. https://doi.org/10.3390/app10010123
- Notion, 'SBT Token Project', https://screeching-volcano-a43.notion.site/SBT-c247f21085364593a3b90ec5abdb0158, accessed Sep. 2024.
- GitHub, 'SBT Token Repository', https://github.com/rich-hyun/SBT_token, accessed Sep. 2024.
- S.H. Kim, 'CloudNet: A LiDAR-based face anti-spoofing model that is robust against light variation,' Applied Science, vol. 10, no. 2, pp. 123-130, Feb. 2023. https://doi.org/10.3390/app10010123
- J. Benet, 'IPFS - Content Addressed, Versioned, P2P File System,' Protocol Labs, July. 2014.
- P. Rodrigues, A. Nascimento, and D. Guedes, 'A Performance Evaluation of IPFS in Real-World Scenarios,' Journal of Computer Networks and Communications, vol. 2020, Article ID 3253687, Oct. 2020.
- J. P. Dickerson et al., 'Optimism: Enhancing Ethereum Smart Contract Performance with Layer 2 Scaling,' in Proceedings of the 26th International Conference on Financial Cryptography and Data Security, FC 2022, Virtual Event, pp. 105-120, Feb. 2022.
- B. Pustejovsky and C. Croman, 'Understanding Sidechains: Concepts, Applications, and Risks,' in *Proceedings of the IEEE International Conference on Blockchain and Cryptocurrency (ICBC)*, Seoul, South Korea, pp. 234-241, May. 2021.
- M. Zamyatin, et al., 'XCLAIM: Trustless, Interoperable, Cryptocurrency-Backed Assets,' in *Proceedings of the 26th Annual Network and Distributed System Security Symposium (NDSS)*, San Diego, CA, pp. 1-15, Feb. 2019.
- D.W. Kim, D.P. Hong, C.H. Noh, D. M. Shin, 'Study on Integrated Authentication of Digital Human Identity and Ownership Using SBT and NFT,' Journal of The Korea Society of Computer and Information, vol. 28, no. 12, pp. 115-127, Dec. 2023. https://doi.org/10.9708/JKSCI.2023.28.12.115
- S.W. Cho, J.W. Seo, and S.Y. Park, 'A Proposal for SBT Implementation and Authentication Scenario for Decentralized User Authentication,' Journal of The Korea Society of Computer and Information, vol. 28, no. 12, pp. 115-127, Dec. 2023. https://doi.org/10.9708/JKSCI.2023.28.12.115
- N. Tanwar and J. Thakur, 'Patient-centric soulbound NFT framework for electronic health record (EHR),' Journal of Engineering and Applied Science, vol. 70, no. 33, pp. 1-10, Mar. 2023. https://doi.org/10.1186/s44147-022-00171-8
- H. Kalodner, S. Goldfeder, X. Chen, S. M. Weinberg, and E. W. Felten, 'Arbitrum: Scalable, private smart contracts,' in Proceedings of the 27th USENIX Security Symposium, USENIX Security 2018, Baltimore, MD, pp. 1353-1370, Aug. 2018.
- European Parliament and Council of the European Union, "Regulation(EU)2016/679 of the European Parliamentand of the Council of 27 April 2016onthe protection of natural persons withregard to the processing of personal data and on the free movement of suchdata," *Official Journal of the European Union*, L119, pp. 1–88, May. 2016.