turing-complete-and-gas
작성
튜링 완전
- 튜링 완전: 튜링 머신을 시뮬레이션 할 수 있는 시스템 (튜링 머신이 해결할 수 있는 문제를 해결할 수 있다.)
- 튜링 완전한 시스템: UTM (Universal Turing machine)
- 정지 문제: 튜링 머신을 돌렸을 때, 무한하게 돌지 아닐지를 알 수 없는 문제
- 이더리움: 탈중앙화된 단일 상태 월드 컴퓨터
튜링 완전의 위험성
- 개방 액세스 시스템에서 매우 위험 (정지 문제 때문)
- 정지 문제의 의미
- 튜링 머신은 유연해서 어떠한 복잡한 연산도 할 수 있음
- 하지만 유연성 때문에 보안, 자원 관리가 어려움
- 실행 해보지 않으면 얼마나 오래 실행 될 지 알 수가 없음
- 해결법
gas
- EVM이 스마트 컨트랙트를 실행하면
- gas가 각 명령어의 비용을 일일이 계산
- 각 명령어는 가스 단위로 미리 정해진 비용이 있음
- 스마트 컨트랙트를 실행 시킬 때 트랜잭션은 스마트 컨트랙트를 실행할 수 있는 가스를 가지고 있어야함
- 가스 가용량을 초과하면 EVM는 실행을 중지
- 가스는 ether로 구매 가능 (transaction과 함께 ether를 보내야함)