[include(틀:암호화폐)] [목차] == 개요 == '''스마트 컨트랙트'''(smart contract) 또는 '''스마트 계약'''은 [[블록체인]] 기반으로 체결하는 [[계약]]을 말한다. [[Ethereum]]에서 처음 도입되었다. 현재는 [[에이다(암호화폐)|에이다]], [[NEO(암호화폐)|NEO]], [[Qtum]], [[EOS(암호화폐)|EOS]] 등의 [[암호화폐]]에도 적용된 상태이다. [[Ethereum]]에서는 [[C++]], [[Python]], 그리고 [[JavaScript]]의 영향을 받아 만들어진 [[솔리디티]]([[Solidity]])라는 [[프로그래밍 언어]]를 사용하여 스마트 계약서를 작성한다. 초기의 이더리움은 자바스크립트[* [[비트코인]]이 C++로 만들어진 것에 비해, 고등학생때부터 비트코인을 연구한 비탈릭 부테린이 이더리움은 이 언어로 만든 이유는 어디까지나 스마트 컨트랙트를 위함이 가장 컸다. 플랫폼이 되기 위한 길.]로 만들어졌었고, 스마트 컨트랙트를 용이하게 하기 위해 자바스크립트에 몇몇 명령어를 추가한 솔리디티라는 언어를 만들었다. 이름이 달라졌지만 기본 구성은 자바스크립트와 유사하다. 자바의 JVM과 유사하게, 이더리움의 각 노드에서는 EVM이라는 일종의 [[가상머신]]을 에뮬레이팅하여 스마트컨트랙트 코드를 실행하고 그 결과를 이더리움 네트워크에 연동한다. Solidity 언어는 자바 기반이어서 대부분의 개발자들이 쉽게 적응할 수 있었으나, 스마트컨트랙트 개발의 확장성을 위하여 이더리움 재단에서는 [[파이썬]], [[자바]], [[C언어]] 등의 다른 프로그래밍 언어로 스마트컨트랙트를 개발할 수 있도록 다양한 EVM 컴파일러 또는 [[Wrapper]]를 개발하고 있다. [[분류:블록체인]][[분류:암호화폐]]