무료 미리 보기7분 분량

스마트 컨트랙트란 무엇일까요?

스마트 컨트랙트(smart contract)는 블록체인에 저장돼 있다가 누군가 호출하면 실행되는 프로그램이에요. 똑똑하지도 않고, 법적인 의미의 계약도 아니에요. 자판기에 가까워요. 맞는 걸 넣으면 정해진 게 나오고, 누구의 승인도 필요 없어요.

중요한 특성

  • 결정적: 같은 상태에서 같은 호출을 하면 항상 같은 결과가 나와요.
  • 공개적: 배포된 바이트코드는 누구나 읽을 수 있고, 보통 소스 코드도 읽을 수 있어요.
  • 자율적: 한번 배포되면 작성자 없이 실행되고, 멈출 방법이 없는 경우도 많아요.

"코드가 곧 법"은 구호가 아니라 경고예요

컨트랙트는 작성자가 의도한 대로가 아니라 코드에 적힌 대로 작동해요. 의도에 관한 조항도, 항소할 판사도 없어요. 코드가 누군가 자금을 빼 가도록 허용한다면, 그건 컨트랙트 위반이 아니에요. 그게 컨트랙트가 정상 작동한 결과예요.

그래서 감사(audit)라는 게 있는 거고, 실제 돈을 담고 있는 미감사 컨트랙트는 서류상의 빈틈이 아니라 실제 리스크예요. 또 "컨트랙트가 검증됐다(verified)"는 말은 공개된 소스 코드가 배포된 바이트코드와 일치한다는 뜻일 뿐이에요. 그 소스가 안전한지에 대해서는 아무것도 말해 주지 않아요.

검증됐다는 건 "이게 실제로 돌아가고 있는 코드가 맞다"는 뜻이에요. "이 코드는 안전하다"는 뜻이 아니고, 둘을 혼동해서 사람들이 아주 큰돈을 잃었어요.
스마트 컨트랙트란 무엇일까요? · Crypto Academy