스마트 계약 이해하기
- 스마트 계약
- 스마트 계약은 어디에 사용이 될까?
- 스마트 계약을 하기 위한 Solidity
- DApp은 무엇인가?
1. 스마트 계약
스마트 계약은 Solidity라는 프로그래밍 언어로 작성이 되기에 이더리움 네트워크 내에서 진행되는 계약입니다. 말 그대로 계약이기에 작성된 코드의 조건이 맞으면 코드의 내용이 진행하는 것입니다. 자판기를 예시로 든다면 자판기에 돈을 넣는 것을 이더를 확보하는 것으로 볼 수 있고 원하는 상품의 버튼을 누르는 것을 자신이 이용하고자 하는 스마트 계약 체결 버튼을 누르는 것으로 비교할 수 있습니다. 자판기 내부 시스템이 스마트 계약의 코딩 내용으로 비교가 되며 조건이 맞으면 상품이 출구로 나오듯 스마트 계약이 진행되어 원하는 자료, 계약 결과 혹은 보상을 얻게 됩니다. 단지 이더리움 네트워크 안에서 Solidity라는 언어로 작성되어 작동된다는 점에서 스마트 계약으로 이름이 붙여졌습니다.
2. 스마트 계약은 어디에 사용이 될까?
이 부분은 미래의 예측이기에 저의 생각을 적는 것임을 미리 이야기드립니다. 사회는 무수한 계약이 존재합니다. 온라인 쇼핑, 부동산, 숙박시설의 이용 등 다양한 곳에서 계약이 이루어지고 있습니다. 계약이란 단어를 사용하여서 딱딱하고 중요한 내용이 많이 떠오르지만 결국은 Solidity를 이용한 코딩입니다. 스마트 계약의 진행은 짜인 코딩이 진행되는 것이므로 여전히 온라인 쇼핑에서 물품을 구매하는 데 사용되거나 부동산 거래를 할 경우 스마트 계약 체결이 진행이 되고 보증서 등을 NFT로 받거나 트랜잭션의 기록이 남아 계약을 증명할 수도 있을 것이라고 생각합니다. 이러한 코딩은 앞으로 발전할 IoT 기술에도 사용을 할 수 있습니다. 숙박시설의 예약 시 자신의 계정을 등록하여 숙박시설의 열쇠를 자신의 주민등록증 혹은 이더리움 지갑으로 이용할 수 있게 활용을 하거나 자신이 선호하는 집 안의 기온이나 조명의 세기 음악 취향을 자신에게 맞는 정보를 자신의 계정에 등록을 해두고 숙박시설을 이용 시 IoT가 설정된 값으로 자동 조절을 하는 방식도 가능할 것으로 생각됩니다.
3. 스마트 계약을 하기 위한 Solidity
앞서 말씀드린 바와 같이 스마트 계약은 Solidity라는 언어로 작성된 코딩이라고 보시면 됩니다. 앞으로 올라올 글에서 Solidity 언어를 공부하는 내용을 올리려고 합니다. 마치 JAVA C++ 등의 언어를 배우는 것과 비슷한 언어를 배우는 내용이 되겠습니다. Solidity가 코딩 용어이고 튜링 완전한 언어입니다. 즉 컴퓨터로 할 수 있는 모든 작업을 표현 가능한 언어입니다. 그렇다는 것은 응용프로그램을 만들 수 있고, 이를 활용하여 다양한 서비스를 만들 수 있습니다. 다만 GUI가 없습니다. 현재의 응용프로그램 혹은 어플은 GUI가 존재하여 버튼 그림을 클릭하거나 어플의 모양을 터치하듯 화면 내에 사용에 편의를 주는 UI들이 존재하지만 Solidity에서 GUI가 없다는 것이 단점입니다.
4. DApp은 무엇인가?
Solidity를 백앤드로 사용하는 GUI 애플리케이션입니다. GUI는 HTML/CSS/JAVA Script를 이용하여 프런트 앤드를 구성하는 App으로 Decentralized Application을 줄여 DApp이라고 부릅니다. Mist 브라우저라고도 불리는 이더리움 지갑은 DApp 중 하나로써 이더리움이라는 운영체제에서 실행되는 앱의 예시라고 보시면 될 것 같습니다.
※ Solidity 언어를 공부하기 전에 Solidity는 어떠한 언어인지에 대한 기본 지식을 정리하였습니다. 전문적이지 못하고 가볍게 제가 아는 내용으로만 정리를 하여 오류가 존재할 수 있고 모든 내용을 적지 못하였습니다.