[Ethereum] 튜링완전 개념 알아보기

김동욱·2022년 2월 12일
0

Ethereum

목록 보기
2/2

이더리움의 특징 중 하나이자 핵심개념인 튜링완전에 대한 개념을 익혀보도록 하자.


✔ 튜링완전 (Turing Completeness)

어떤 프로그래밍 언어나 추상 머신이 튜링머신과 동일한 계산 능력으로 문제를 풀 수 있다는 의미
(즉, 튜링머신과 동일한 계산 능력을 가지고 문제를 풀 수 있다면 그것을 '튜링완전하다'라고 볼 수 있다.)

여기서 말하는 튜링머신은 뭔지 알아보자.

✔ 튜링머신 (Turing Machine)

  • 추상적인 수학 개념상의 기계

  • 알고리즘 구현 언이인 튜링완전언어로 구현

  • 무한한 저장공간만 있다면 이 세상의 모든 문제를 풀 수 있는 기계를 만드는 것이 가능한데, 그것을 튜링기계라고 한다.

    튜링완전언어 + 무한한 저장공간 =  모든 계산 가능한 문제를 계산해내는 기계 = 튜링기계(인간의 뇌)

아직도 개념이 애매모호하기 떄문에 튜링머신의 구성요소를 통한 예시에 대해 알아보겠다.

튜링머신의 구성요소

  • 테이프(Tape) : 일정한 크기의 셀(Cell)로 나뉜 종이 테이프, 길이는 무한
  • 헤드(Head) : 테이프 표시 위로 읽기/쓰기 헤드존재
  • 상태 기록기(State register) : 현재 튜링 머신의 상태를 기록하는 장치
  • 행동표(Action Table) : Instruction Table이라고도 하며, 특정 조건에서 수행해야 할 행동을 기록함

예시) 튜링머신에는 끝없는 무한 테이프(0과 1로 이루어진)가 있으며 상태 기록기로 기록이 되고, 행동표에 따라 헤드가 이동(계산하는 행위)하면서 무한히 기록될 수 있다.
이렇게 간단한 구조만으로 모든 것을 계산할 수 있을 만큼 강력 하다는 것이 여기서 말하는 튜링머신이다.

✔ 이더리움의 튜링완전

이더리움은 튜링완전하다.
정확히는 튜링완전에 가깝다고 볼 수 있다.
(튜링완전의 무한한 저장공간을 이더리움 플랫폼에도 갖는가? 라는 물음에 대한 답은 메모리는 유한하다에 더 가깝기 때문이다.)

가스(gas) 과금 메커니즘 도입

비트코인과 달리 이더리움은 튜링완전언어를 지원하기때문에 무한루프 공격에 노출될 수 있다.
이 부분에 대해 이더리움에서는 EVM이 스마트 컨트랙트를 실행하게 되면, 각 명령어의 비용을 gas단위로 일일이 계산하여 지불하는 방식을 가진다.
이 방식은 이더리움 플랫폼에 선순환을 가져올 수 있다.

ex) 외부 공격시 이더리움에서 발생하는 상황

  1. 공격자가 무한루프를 통해 공격 -> 수수료 투입

  2. 네트워크에 채굴 노드들이 늘어난 수수료로 수익 늘어남

  3. 수익 증가에 따라 채굴 노드들이 더 많은 컴퓨팅 파워 투입

  4. 높은 컴퓨팅 파워로 네트워크 작업처리능령 향상

  5. 네트워크 작업처리능력 향상으로 더 많은 공격 처리가 가능

이러한 방식으로 gas를 통한 과금 메커니즘을 도입함으로써 외부 공격시 보안을 더 강화시키는 선순환 시스템을 가지고 있다.


참고

http://wiki.hash.kr/index.php/%ED%8A%9C%EB%A7%81%EC%99%84%EC%A0%84
https://www.youtube.com/watch?v=RPQD7-AOjMI
https://brunch.co.kr/@ashhan/10

profile
웹 개발 관련 공부한 내용 기록하는 블로그입니다.

0개의 댓글