스마트컨트랙트의 보안 허점은 무엇인가요?
이더리움의 패리티 사건이라고 스마트컨트랙트의 보안 허점을 파고 든 사건이 발생한적이 있습니니다.
스마트 컨트렉트는 블록체인에서 꼭 필요한 기능인데요 스마트 컨트랙트가 원래 자체적으로 보안에 허술한 부분이 있는건가요?
2017년에 패리티 멀티시그 지갑의 스마트 컨트랙트가 해킹을 당함으로써 3500억 원 상당의 암호화폐가 동결되어 버리는 일이 발생했습니다. 이 사건은 패리티 멀티시그 지갑을 구현하기 위해 작성된 스마트 컨트랙트 코드의 취약점을 이용한 해킹이었습니다.
즉, 스마트 컨트랙트라는 것 자체가 보안에 취약한 것이 아니라, 사람이 스마트 컨트랙트를 작성할 때 보안상의 문제가 발생할 수 있는 모든 변수를 고려하지 못함으로써 발생하는 문제라고 할 수 있습니다.
각각의 스마트 컨트랙트 코드의 함수는 그 자체의 기능상에 문제가 없이 조건만 맞으면 바로 체결되어 버리지만 그러한 각각의 함수들이 모여 하나의 스마트 컨트랙트를 구성했을 때 상호 작용에 의해 보안상 취약점이 발생할 수 있는 것입니다.
그렇기 때문에 이 사건을 통해 스마트 컨트랙트를 작성할 때 오너십에 대한 부분을 명확하게 확인해야 하고 스마트 컨트랙트에 사용된 함수 외에 다른 함수를 스마트 계약으로 가지고 와서 이용할 수 없도록 제한을 해 두어야 한다는 것을 알 수 있습니다.
답변이 도움이 되길 바랍니다.
Dao사태나 Parity 사건을 본다면 스마트컨트랙트로 개발하는 개발자의 잘못으로 인한 해킹이 있을 수 있습니다. FOMO3D의 경우에는 트랜잭션을 의도적으로 조작하여 winner가 된 경우도 있습니다.
스마트 컨트랙트가 개발 및 업데이트 중이고, 해커들은 이를 뚫으려고 매번 고민을 많이 합니다. 보안에 허술하다라고 말하기보다는 계속해서 성장중이라고 할 수 있습니다. 그 안에서 스마트컨트랙트를 개발하는 개발자들이 많은 이슈에 대해 고민하고 계속 업데이트 한다면 보안상 더욱 견고해질 것이라 판단됩니다.