본문 바로가기

Blockchain/Blockchain In Action

[Blockchain In Action] 스마트 컨트랙트의 Best Practice

스마트 컨트랙트를 만드는 과정에서 개발자는 무엇을 고려해야 하는가?


1. 블록체인 기능이 개발할 애플리케이션에 반드시 필요한 지를 확인해야 한다.

블록체인 기반 솔루션과 스마트 컨트랙트는 모든 문제에 대한 만병 통치약이 아니다.

개발할 애플리케이션에 블록체인 기능이 필요하지 않을 수도 있다.

2. 스마트 컨트랙트가 개발할 애플리케이션에 반드시 필요한 지를 확인해야 한다.

스마트 컨트랙트는 체인에 있는 모든 참여자에게 보이고, 그들의 풀 노드상에서 실행된다는 점을 염두에 두어야 한다. 

스마트 컨트랙트는 단일 노드 계산을 위한 것이 아니다. 

또한 스마트 컨트랙트는 기존의 클라이언트/서버 또는 내재적인 stateless 분산 솔루션을 대체하는 것이 아니다. 

스마트 컨트랙트가 필요한 경우는 강제할 규칙, 규정, 정책 등에 대한 공동의 합의가 필요하고, 그 결정을 반드시 기록해야 할 필요가 있을 때이다. 

3. 스마트 컨트랙트 코드는 간단하고 일관성 있고 감사 가능하게 작성하자.

철저하게 객체지향적인 설계를 통해 중복적인 데이터와 관계없는 함수는 최대한 피해야한다. 

4. 솔리디티는 자주 업데이트 된다는 점을 감안하자.

항상 작성하고 있는 코드와 일치하는 컴파일러 버전으로 맞추는 것을 잊지 말자. 솔리디티는 초기 단계이므로, 자주 기능과 버전이 바뀐다.