튜링불완전 편집하기

이동: 둘러보기, 검색

경고: 로그인하지 않았습니다. 편집을 하면 IP 주소가 공개되게 됩니다. 로그인하거나 계정을 생성하면 편집자가 아이디(ID)으로 기록되고, 다른 장점도 있습니다.

편집을 되돌릴 수 있습니다. 이 편집을 되돌리려면 아래의 바뀐 내용을 확인한 후 저장해주세요.
최신판 당신의 편집
14번째 줄: 14번째 줄:
 
물론 비트코인 스크립트 언어로도 할 수 있는 작업이 많지만, 모든 경우의 [[프로그래밍]]을 다 지원하지는 못한다.<ref>yahweh87, 〈[https://steemit.com/kr/@yahweh87/35-4 # 35 – 이더리움 백서(4편)]〉, 《스팀잇》</ref> 특히 while 이나 for과 같이 순환(loop) 명령 카테고리가 빠져있다. 이는 비트코인의 결함이기도 하지만 의도된 것인데, 비트코인은 무한 반복 공격을 방지하기 위해 순환 명령어를 없앴다. 이론적으로 튜링불완전성은 스크립트 프로그래머가 극복할 수 있는 장애물이기는 하다.<ref>람보짱, 〈[https://blog.naver.com/irambo/221192494361 이더리움 한글 백서]〉, 《네이버 블로그》, 2018-01-14</ref> 어떤 순환 명령이든 단순히 하위 코드를 여러 차례 if 구문과 함께 반복하여 구현하는 것이 가능하기 때문이다.<ref>야옹메롱, 〈[https://blog.naver.com/mage7th/221376090743 (이더리움) White Paper 백서 풀이 및 해석]〉, 《네이버 블로그》, 2018-10-12</ref> 하지만 이는 매우 공간 비효율적인 프로그램이 된다. 예를 들어 [[타원곡선]] [[서명 알고리즘]]을 실행하기 위해서 코드 안에 있는 곱셈을 모두 개별적으로 256번 반복하는 과정이 필요하기 때문이다.<ref>Vitalik Buterin, 〈[https://files.meetup.com/18113822/Etherenum_whitepaper%20v1.2.pdf 차세데 스마트 컨트랙트와 탈중앙화된 어플리케이션 플랫폼(A Next-Generation Smart Contract and Decentralized Application Platform]〉, 《이더리움 코리아》</ref>
 
물론 비트코인 스크립트 언어로도 할 수 있는 작업이 많지만, 모든 경우의 [[프로그래밍]]을 다 지원하지는 못한다.<ref>yahweh87, 〈[https://steemit.com/kr/@yahweh87/35-4 # 35 – 이더리움 백서(4편)]〉, 《스팀잇》</ref> 특히 while 이나 for과 같이 순환(loop) 명령 카테고리가 빠져있다. 이는 비트코인의 결함이기도 하지만 의도된 것인데, 비트코인은 무한 반복 공격을 방지하기 위해 순환 명령어를 없앴다. 이론적으로 튜링불완전성은 스크립트 프로그래머가 극복할 수 있는 장애물이기는 하다.<ref>람보짱, 〈[https://blog.naver.com/irambo/221192494361 이더리움 한글 백서]〉, 《네이버 블로그》, 2018-01-14</ref> 어떤 순환 명령이든 단순히 하위 코드를 여러 차례 if 구문과 함께 반복하여 구현하는 것이 가능하기 때문이다.<ref>야옹메롱, 〈[https://blog.naver.com/mage7th/221376090743 (이더리움) White Paper 백서 풀이 및 해석]〉, 《네이버 블로그》, 2018-10-12</ref> 하지만 이는 매우 공간 비효율적인 프로그램이 된다. 예를 들어 [[타원곡선]] [[서명 알고리즘]]을 실행하기 위해서 코드 안에 있는 곱셈을 모두 개별적으로 256번 반복하는 과정이 필요하기 때문이다.<ref>Vitalik Buterin, 〈[https://files.meetup.com/18113822/Etherenum_whitepaper%20v1.2.pdf 차세데 스마트 컨트랙트와 탈중앙화된 어플리케이션 플랫폼(A Next-Generation Smart Contract and Decentralized Application Platform]〉, 《이더리움 코리아》</ref>
  
비트코인이 튜링불완전한 스크립트를 사용하는 반면에 [[이더리움]]은 [[튜링완전]]한 언어인 [[솔리디티]](Solidity)와 [[서펀트]](Serpent)를 사용한다. 이는 복잡한 다중계약인 [[스마트 계약]]을 가능하게 하며 [[분산 어플리케이션]]을 구현한다. 튜링불완전성을 갖는 프로그램도 튜링 완전성을 갖는 프로그램과 동일한 계약을 생성할 수는 있지만, 만약 튜링완전성이 없을 경우 다루기가 매우 어려우며, 이러한 한계로 인해 계약의 활용도가 매우 제한적일 수밖에 없다.<ref>어미새, 〈[https://blog.naver.com/yahweh87/221257278677 이더리움 백서(11편)]〉, 《네이버 블로그》, 2018-04-20</ref>
+
비트코인이 튜링불완전한 스크립트를 사용하는 반면에 [[이더리움]]은 [[튜링완전]]한 언어인 [[솔리디티]](Solidity)와 [[서펜트]](Serpent)를 사용한다. 이는 복잡한 다중계약인 [[스마트 계약]]을 가능하게 하며 [[분산 어플리케이션]]을 구현한다. 튜링불완전성을 갖는 프로그램도 튜링 완전성을 갖는 프로그램과 동일한 계약을 생성할 수는 있지만, 만약 튜링완전성이 없을 경우 다루기가 매우 어려우며, 이러한 한계로 인해 계약의 활용도가 매우 제한적일 수밖에 없다.<ref>어미새, 〈[https://blog.naver.com/yahweh87/221257278677 이더리움 백서(11편)]〉, 《네이버 블로그》, 2018-04-20</ref>
  
 
* '''이더리움의 스마트 계약 플랫폼'''
 
* '''이더리움의 스마트 계약 플랫폼'''

해시넷에서의 모든 기여는 다른 기여자가 편집, 수정, 삭제할 수 있다는 점을 유의해 주세요. 만약 여기에 동의하지 않는다면, 문서를 저장하지 말아 주세요.
또한, 직접 작성했거나 퍼블릭 도메인과 같은 자유 문서에서 가져왔다는 것을 보증해야 합니다 (자세한 사항은 해시넷:저작권 문서를 보세요). 저작권이 있는 내용을 허가 없이 저장하지 마세요!

취소 | 편집 도움말 (새 창에서 열림)