블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템

혹시 그 외에 또 다른 기능은 없을까? 했는데 있다.



[그림 7] 분쟁 해결을 위한 Sequence diagram



바로 dispute handling (분쟁 해결) 기능이다. 엔티티 중 arbitrator(중재자)가 맡아 진행하는 일로, 만약 구매자가 데이터를 다운로드 받는 동안 문제가 생기는 경우 이를 해결해준다. 하지만 dispute handling에도 예외적인 상황은 있다. 3가지 가능성을 한 번 살펴보자.


우선 첫 번째로, 모두가 만족하는 문제가 없는 경우이다. 구매자가 정상적으로 IPFS와 스마트 컨트랙트를 이용하여 이더리움을 지불하고 데이터를 받았다면 중재자의 개입 없이도 문제 없이 진행될 수 있다.

두 번째는 구매자의 잘못으로 인해 다운로드를 실패한 경우이다. 예를 들어, 다운로드를 받다가 네트워크가 끊겼다던지, 강제 종료되는 상황이 되었다던지 하는 경우 기존의 데이터를 다시 받을 때 가스비 혹은 추가 구매비 등을 지급해야 하는 경우가 생길 수 있다. 구매자가 이러한 상황에 대한 환불 요청을 하는 경우 트랜잭션이 정상적으로 진행되었는지를 확인하여 로그상 문제가 없다면 환불해주지 않는다.

세 번째는 위와 반대인 시스템의 문제로 다운로드를 실패한 경우이다. 분산된 네트워크 특성상 서버가 다운되는 현상은 발생하지 않을 확률이 높지만 일부 share를 가진 네트워크의 서버가 다운되었다던지 혹은 기타 변수로 인해 문제가 생긴 경우 arbitrator는 구매자에게 100% 환불을 해주어야 할 의무가 있다.


전체적인 흐름을 요약한 Sequence diagram을 한 번 보고 마지막으로 이 플랫폼을 이용한 시뮬레이션 결과를 살펴보도록 하자.



[그림 8] 데이터 공유 시나리오에 대한 Sequence diagram



앞에 모든 내용을 순서대로 차근차근 설명해왔기 때문에 summary에 대한 내용은 생략하고 넘어가도록 하겠다.



Implementation Details for Simulation

이 글의 초중반 쯤 언급했던 내용과 같이 이 플랫폼 자체는 이더리움 프라이빗 네트워크 위에서 구동되며, 솔리디티 언어를 이용한 스마트 컨트랙트를 사용한다. 또한 IPFS를 이용하여 데이터를 네트워크 상에 분산 저장하는 기능도 함께 수행한다. 이러한 환경을 토대로 진행한 시뮬레이션 결과를 한 번 살펴보도록 하자.



Simulation Results

이 실험에서는 기본적으로 스마트 컨트랙트를 통해 여러 함수를 실행했을 때 가스 소모량이 얼마나 되는지를 확인하고 있다. 기본적으로 gas 가격은 2 Gwei에 맞춰져 있다. (2 * 10⁹ wei, 1 Ether = 10¹⁸ wei)



[표 1] 스마트 컨트랙트 가스 소비 금액 실험 - 데이터 소유자 기준 (1 ETH = 150 USD)



[표 1]은 IPFS와 관련된 스마트 컨트랙트로써 데이터 소유자와 연관이 있다. 전체적으로 볼 때, 컨트랙트 생성에 약 0.55달러, 파일 생성에 약 0.016달러, 파일 삭제에 약 0.0088달러, 구매자 설정에 약 0.0091달러 그리고 블랙리스트를 설정하는데 약 0.0043달러가 가스비로 소모되었다. 블랙리스트의 경우 악의적인 노드를 지정하여 파일 업로드 또는 다운로드에 제한을 받도록 하는 것이다. 여러 차례 진행한 트랜잭션에서도 거의 동일한 값을 얻었다고 하며, 그래프로 나타내보면 아래와 같다.



[그림 9] 데이터 소유자의 입장에서 본 스마트 컨트랙트 가스 소모량 그래프



여기서 transaction cost는 블록체인 네트워크 상에서 데이터를 보내는 데 드는 비용이고, execution cost는 함수를 실행하는데 필요한 컴퓨터 자원 사용료를 말한다.

다음 [표 2]는 데이터를 구매하는 사람의 입장에서 본 스마트 컨트랙트 가스 소모량을 보여준다.



[표 2] 스마트 컨트랙트 가스 소비 금액 실험 - 데이터 구매자 기준 (1 ETH = 150 USD)



스마트 컨트랙트 실행을 위한 contract creation에는 약 0.52달러, 데이터 구매에 필요한 이더리움을 지불하는데 드는 비용은 약 0.021달러, 다운로드 결과를 확인하는 데 드는 비용에 약 0.0092달러, 마지막으로 파일을 잘 받았다는 결과를 전달하는 데 드는 비용이 약 0.016달러이다. 이에 대한 그래프 또한 아래 그림에서 확인할 수 있다.



[그림 10] 데이터 구매자의 입장에서 본 스마트 컨트랙트 가스 소모량 그래프



세 번째 시뮬레이션 결과는 review system과 관련이 있다. 앞에서 봤던 두 가지 경우를 제외하고 별도로 작동하는 스마트 컨트랙트에서 가스 소모량이 어느 정도 되는지 확인해보자. (가스 최대 리밋 : 300만)



[표 3] 스마트 컨트랙트 가스 소비 금액 실험 - Review system 기준 (1 ETH = 150 USD)



Review system의 경우 컨트랙트 생성을 위한 가스 소모량이 각각 673,317 그리고 468,305로 측정되었고, 나머지 리뷰 작성, 리뷰 불러오기, 평점 불러오기는 컨트랙트 생성에 비하면 매우 적은 양의 가스비만 소모되었다. 이 또한 아래의 그래프를 통해 확인할 수 있다.



[그림 11] Review system 스마트 컨트랙트에 대한 가스 소모량 그래프



이제 마지막으로 CPU의 평균 계산 시간과 데이터 길이에 따른 가스 소모량 변화 그리고 마이닝 시간을 확인해보도록 하자.



[그림 12] Share의 개수에 따른 CPU 평균 계산 시간



CPU의 평균 컴퓨터 계산 시간은 SSS에 의해 생성된 share의 개수에 의해 결정된다. share의 개수가 증가할수록 CPU의 평균 계산 시간은 기하급수적으로 늘어났고, 논문에서는 share의 개수가 3개일 때를 기준으로 실험을 진행하였다고 한다. 결과적으로 share의 개수(k)가 3개일 때, 0.32ms 정도의 시간을 보였으며, share의 개수가 11개일 때는 0.66ms의 시간을 보였다. 3보다 더 작은 경우에는 보안성이 떨어지고, 11보다 더 큰 경우에는 각 share를 암호화하는 복잡도가 너무 커졌다.

다음은 트랜잭션에 포함된 input data의 길이에 따른 가스 소모량과 마이닝 시간에 대한 그림이다.



[그림 13] Input data 길이에 따른 가스 소모량 그래프



[그림 14] Input data 길이에 따른 마이닝 시간 그래프



그림 13을 보면 input data의 길이가 길어질수록 가스 소모량도 같이 증가하는 형태를 보였다. 하지만 마이닝 시간의 경우 유저가 입력한 input data의 길이에 대해 의존적이긴 하지만 임시적으로 유지될 뿐 보통 네트워크의 상태나 마이너의 어떤(?) 선택이 시간 변화에 가장 주요한 요인으로 작용한다고 한다.



Conclusion

드디어 결론까지 왔다. 첫번째로 블록체인과 관련된 글을 써보는 것이라 논문의 내용을 대부분 그대로 옮겨오기도 했고 내 생각은 많지 않았던 것 같은데 앞으로 IPFS나 데이터 관련 내용들을 더 공부하게 되면 내용을 추가해보고자 한다.

이제 정말 끝을 낼 시간이다!

이 플랫폼에서 목표하고 있는 것은 바로 데이터의 진위를 판별하고 제대로 된 데이터만이 공유될 수 있는 그러한 환경을 만드는 것이다. 데이터를 구매하고자 하는 고객의 입장에서 리뷰를 통해 자신에게 유용한 데이터를 판단할 수 있는 기회를 제공하고 데이터에 대한 접근 제어, 분쟁 해결, 구독 서비스 등이 기존의 플랫폼과는 차별성이 있다는 것을 어필하고 있다.



[표 4] 기존 플랫폼과의 비교



또한, 이 플랫폼을 통해서 데이터를 구입하고자 하는데 드는 비용을 줄일 수 있다고 하는데 모든 스마트 컨트랙트를 한 번 실행하는 데 약 0.009323686 ETH가 드는 것으로 볼 때 큰 규모에서의 데이터 교환이라던지, 중요한 데이터를 보관할 때는 확실히 유용하게 쓰이지 않을까 하는 생각이 든다. (데이터를 보관하고 공유하는데 돈이 드는 것을 고려할 수 있는 사람이라면 싸게 먹힐 수도 있을 것 같다.)

그림 15처럼 share를 암호화 하는데도 SSS 알고리즘이 CPU 계산 시간을 가장 짧게 만들어주고 있기 때문에 시간적, 경제적 효과를 볼 수 있는 플랫폼이었다고 생각한다.



[그림 15] 기존 암호 알고리즘과 SSS의 비교 그래프



Reference

[1] A Secure Data Sharing Platform Using Blockchain and Interplanetary File System, 2019



CURG 원본 링크: https://medium.com/curg/%ED%98%B9%EC%8B%9C-%EA%B7%B8-%EC%99%B8%EC%97%90-%EB%98%90-%EB%8B%A4%EB%A5%B8-%EA%B8%B0%EB%8A%A5%EC%9D%80-%EC%97%86%EC%9D%84%EA%B9%8C-%ED%96%88%EB%8A%94%EB%8D%B0-%EC%9E%88%EB%8B%A4-246826d187b2

블록체인과 IPFS를 이용한 안전한 데이터 공유 플랫폼 - 분쟁 해결 시스템

https://y8ncastle.world/2020/06/01/curg/blockchain/data-sharing-2/

Author

Alec J

Posted on

2020-06-01

Updated on

2021-02-09

Licensed under