스마트 컨트랙트 설계 원칙

bolee·2022년 5월 22일
0

아래는 책 '블록체인 인 액션'에서 소개하고 있는 스마트 컨트랙트 설계 원칙이다.

  1. 테스트 체인에서 스마트 컨트랙트를 코딩, 개발, 배포하기 전에 우선 설계부터 한다. 또한, 프로덕션 블록체인에 배포하기 전에 철저한 테스트를 거쳐야 한다. 왜냐하면 스마트 컨트랙트는 변조 불가능하기 때문이다.

  2. 시스템 사용자와 유스 케이스를 정의한다. 사용자란 행위와 입력값을 발생시키고, 설계하고 있는 해당 시스템으로부터 그 출력값을 받는 주체다.

  3. 데이터 에셋, 피어 참여자, 그들의 역할, 강제할 규칙, 설계하고 있는 시스템에 기록해야할 트랜잭션을 정의한다.

  4. 컨트랙트 이름, 데이터 에셋, 함수, 함수의 실행과 데이터 접근을 위한 규칙을 정의하는 컨트랙트 다이어그램을 작성한다.

  5. 스마트 컨트랙트 내에서 일어나는 상태 변화와 같은 시스템 역동성을 표현하기 위해 유한 상태 머신 UML 다이어그램을 활용한다.

  6. 스마트 컨트랙트에서 규칙과 조건을 명시하는 수정자를 사용함으로써 신뢰 중개를 위한 확인과 검증을 구현한다. 일반적으로 확인은 참여자에 대한 일반적인 규칙을 담당하고, 검증은 애플리케이션에 특정한 데이터를 체크하는 역할을 맡는다.

  7. 일회용 시크릿 패스드를 사용해 함수의 파라미터를 시큐어 해싱을 함으로써 프라이버시와 보안을 확보한다.

  8. 스마트 컨트랙트는 규틱의 강제, 준수, 규정, 출처, 리얼타임 알림을 위한 로그, 타임스탬프 활동 정보와 오프라인 오퍼레이션에 대한 메세지에 필요한 함수와 데이터만을 포함하도록 설계한다.

  9. 스마트 컨트랙트 안의 함수들을 호출하는 것을 표현하는UML 시퀀스 다이어그램을 활용한다. 시퀀스 다이어그램은 시스템의 다이나믹한 오퍼레이션을 효율적으로 파악할 수 있다.

  10. 어떤 데이터와 오퍼레이션을 온체인과 오프체인으로 구분하여 구현하는 것은 블록체인 애플리케이션 설계의 중요한 결정 사항이다.

참고 자료
비나 라마머시 저, 정우현 옮김, "블록체인 인 액션", 제이펍, 2021

0개의 댓글