Turing Complete, Bitcoin vs. Ethereum
튜링 완전성 Turing Completeness 이란,
이론적으로 모든 계산 가능한 문제를 표현하고 해결할 수 있는 능력
쉽게 말하면:
- “무슨 프로그램이든 만들 수 있다”
- 조건문(if), 반복문(while, for) 등 모든 기본 연산이 가능해야 함
튜링 완전성의 조건
필요 요소 | 설명 |
---|---|
조건 분기 (If-Else) | 상황에 따라 다른 행동을 할 수 있어야 함 |
반복/루프 (For, While) | 어떤 작업을 반복할 수 있어야 함 |
메모리 읽기/쓰기 | 데이터를 저장하고 수정할 수 있어야 함 |
Smart Contract 스마트 계약 이란?
중앙 관리자 없이 자동으로 실행되는 프로그램
- 계약 조건 프로그래밍 코드로 작성
- 조건 충족되면, 자동으로 계약 내용 실행
- 중간에 사람이 개입할 필요 없음
예시
- A가 B에게 돈을 보내되, 상품이 배송 완료되면 자동 송금
- 보험금 자동 지급 (사건 발생 확인되면 자동으로)
이더리움: 튜링 완전한 스마트 계약 플랫폼
이더리움의 스마트 계약 언어: Solidity
- 다양한 조건 분기, 반복, 복잡한 로직 구현 가능
- 디파이(DeFi), 게임, DAO, NFT 등 다양한 애플리케이션 가능
이더리움은 “분산 슈퍼컴퓨터”를 목표로 만들어졌기 때문에 어떤 프로그램이든 실행 가능한 범용 가상 머신(EVM) 구조를 가짐.
단, 무한 루프 방지를 위해 “Gas 가스” 시스템을 도입함
- 코드 실행에는 가스가 소모됨
- 무한 반복을 하더라도 가스가 다 떨어지면 자동으로 중단됨
비트코인: 튜링 불완전한 스크립트 시스템
비트코인의 스마트 계약/트랜잭션 조건: Bitcoin Script
- 스택 기반, 범용 언어 아님
- 굉장히 제한적이고 안전하게 설계됨
- 간단한 조건 지불, 멀티시그, 시간잠금 등만 가능
비교 요약
항목 | 이더리움 (Solidity) | 비트코인 (Script) |
---|---|---|
튜링 완전성 | O (Turing Complete) | X (Turing Incomplete) |
반복문/루프 | 가능 (Gas로 제한) | 불가능 |
조건 분기 | 가능 | 매우 제한적 |
사용 목적 | 범용 DApp 실행 | 안전한 지불/이체 |