이더리움 백서 톺아보기 - 3편

중급11분 소요2022-05-27

이더리움 목적


이더리움의 목적은 분산 애플리케이션 제작을 위한 대체 프로토콜을 만드는 것이다. 대규모 분산 애플리케이션에 유용할 것이라 생각되는 다른 종류의 제작기법을 제공하며, 빠른 개발 시간, 작고 드물게 사용되는 애플리케이션을 위한 보안, 다른 애플리케이션과의 효율적인 상호작용이 중요한 상황에 특히 주안점을 두고 있다.

- 이더리움 백서 중 -


이더리움의 목적은 분명합니다. 비트코인이 제3자의 신뢰기관 없이 통용 가능한 디지털자산을 만들었다면, 이더리움은 제3자의 신뢰기관 없이 통용 가능한 애플리케이션 플랫폼을 만들려고 했습니다.


분산 애플리케이션을 위한 대체 프로토콜이 의미하는 바는 탈중앙화된 환경에서 누구나 쉽게 애플리케이션을 개발하고 이용할 수 있는 플랫폼을 의미합니다. 이러한 플랫폼은 탈중앙화되어 있으므로 특정 집단에 의해서 플랫폼이 중단되거나 침해받지 않습니다. 즉, 누군가 응용프로그램을 개발하여 해당 플랫폼에 배포하는데 있어서 자유롭고, 이용자 역시 언제나 다양한 애플리케이션을 이용할 수 있습니다. 비트코인에서는 이러한 응용프로그램 개발이 어렵고 복잡합니다. 하지만 이더리움에서는 기존에 응용프로그램을 개발했던 개발자들이라면 쉽게 애플리케이션을 개발・배포하여 많은 사용자가 이용하도록 제공할 수 있습니다.


이더리움은 튜링 완전 언어를 내장하고 있는 블록체인이라는 필수적이고 근본적인 기반을 제공함으로써 이 목적을 이루고자 한다. 누구든지 이 언어를 사용하여 스마트 컨트랙트, 분산 애플리케이션을 작성하여 소유권에 대한 임의의 규칙, 트랜잭션 형식(transaction format), 상태변환 함수(state transition function) 등을 생성 할 수 있다.


- 이더리움 백서 중 -

 

탈중앙화된 환경에서의 블록체인 응용프로그램 플랫폼이 가능한 이유는 이더리움이 제공하고 있는 튜링 완전 언어 때문입니다. 이더리움에서는 기존 프로그래밍 언어와 거의 동일한 기능을 제공하는 튜링 완전 언어를 제공하고 있습니다. 때문에 개발자들가 쉽게 블록체인 위에서 운용되는 응용프로그램을 쉽게 개발・배포하여 제공할 수 있습니다. 

 

이더리움 위에서 운용되는 응용프로그램은 블록체인의 특징을 더 활용할 수 있습니다. 그 특징으로 제시되고 있는 것이 스마트 컨트랙트 프로그램, 분산화된 환경에서의 응용프로그램, 소유권에 대한 규칙을 적용한 응용프로그램, 영구히 블록체인에 기록되는 트랜잭션형식의 프로그램 등입니다. 이러한 응용프로그램은 모두 블록체인 환경에서 운용되므로 해당 프로그램을 배포하고 사용하는데 있어서 제한이 없습니다. 그리고 모든 프로그램의 동작과 실행여부가 절차에 따라서 블록체인에 영구히 기록되고 보관됩니다. 또한 제3자의 신뢰기관 없이 운용되는 블록체인 특징으로 인하여 특정한 중앙서버나 주체 없이 탈중앙화된 환경에서 자율적으로 운용되는 응용프로그램들이 개발・배포되어 사용될 수 있습니다.

 

비트코인의 경우 비트코인이라는 디지털자산이 탈중앙화된 환경에서 사람들에게 자유롭게 사용할 수 있습니다. 반면 이더리움은 다양한 응용프로그램을 통해 탈중앙화 환경에서 다양한 디지털자산이 탈중앙화된 환경에서 자유롭게 사용될 수 있습니다.

 

정리하자면 비트코인이 디지털자산의 탈중앙화를 가져왔다면, 이더리움은 디지털자산을 운용하는 기관, 프로그램 등의 탈중앙화를 가져온 것입니다. 다시 말해, 비트코인은 디지털자산을 개인이 자유롭게 관리하고 운영할 수 있게 해주었습니다. 그리고 이더리움은 이러한 디지털자산을 운용하는 은행, 서비스들을 탈중앙화된 환경에서 자유롭게 운영할 수 있는 기반 플랫폼을 제공해 준 것이라 할 수 있습니다.


네임코인의 기본적인 형태는 두 줄 정도의 코드로 작성할 수 있고, 통화나 평판 시스템 관련 프로토콜은 스무 줄 내외의 코드로 만들 수 있다. 어떤 값을 저장하고, 특정한 조건들을 만족했을때만 그 값을 얻을 수 있게 하는 일종의 암호상자인 스마트 컨트랙트 또한 이 플랫폼 위에 만들 수 있다. 이것은 비트코인의 스크립팅(scripting)이 제공하는 것보다 훨씬 강력한 기능들이 제공되기 때문에 가능한 것으로, 튜링-완전(Turing-completeness), 가치 인지능력(value-awareness), 블록체인 인지능력(blockchain-awareness), 상태(state)개념 등이 포함된다.

- 이더리움 백서 중 -

 

이더리움 플랫폼 위에서는 누구나 쉽게 블록체인 기반의 토큰을 쉽게 제작할 수 있습니다. 실제 거래소에서 이더리움 기반의 ERC-20으로 사용되고 있는 토큰은 아래의 코드에서 보는 것처럼 7줄의 코드로 개발할 수 있습니다. 해당 소스파일을 컴파일(실행할 수 있는 파일) 한 후 이더리움 네트워크에 배포하면 사람들은 GOLD 토큰으로 불려지는 ERC-20 토큰을 사용할 수 있게 됩니다.


[GOLD 토큰을 ERC-20 형식의 토큰으로 제작한 예]

https://docs.openzeppelin.com/contracts/4.x/erc20


이와 같이 이더리움은 개발코드를 조금 이해할 수 있다면 어떠한 제한이나 장벽없이 블록체인 위에서 운용되는 다양한 애플리케이션들을 개발하고 배포하여 사용할 수 있도록 도와줍니다. 이 플랫폼은 탈중앙화되어 있어서 누군가에 의해서 개발자들이 배포한 응용프로그램을 삭제하거나 중단할 수 없습니다. 위에 제시된 단순한 형태의 토큰 응용프로그램부터 다양한 형태의 금융 응용프로그램까지 제한이 없습니다.