비트코인은 Script 라는 프로그래밍 언어를 이용해 디지털 자산을 송금할 수 있는 프로토콜이다. 비트코인 Simplicity 를 핵심 철학으로 하고 있기 때문에 다양한 기능을 확장하기 보다는 보안과 안정성의 가치를 중요시 한다.
이더리움은 프로그래밍 The world computer 목표로 하는 새로운 프로토콜 시도로 진행 됐다. 이더리움은 EVM 이라는 가상머신을 통해 상태(모든 계좌와 스마트컨트렉트 데이터)를 업데이트 하는 State Machine 이다. 이를 통해 동일한 상태를 분산 네트워크 상의 노드들이 공유 한다.
스마트컨트렉트는 Solidity 라는 프로그래밍 언어로 만드는 Class 라고 볼 수 있다. Solidity 코드로 작성 된 스마트컨트렉트가 이더리움 분산 네트워크 상으로 Deploy 되면, Class 는 Instance 화 되고, EVM 메모리 상에 등록된다. Instance 는 Class 에서 미리 정의된 변수들과 함수들을 갖고 있다.
이더리움은 현재는 PoW 방식을 통해 새로운 블록을 생성한다. 블록 생성 시간은 15초 내외로 블록의 난이도는 해시 파워에 따라 변화 한다. 캐스퍼를 통해 PoS 로 전환을 준비하고 있다. FFG(Friendly Finality Gadget) 를 통해 점진적인 Hybrid PoS 도입과 블록 확정성을 가지려고 한다. 향후에는 CBC(Correct By Construction) 으로 나아가는 것을 준비하고 있다.
스케일링 문제를 해결하기 위한 솔루션으로는 Raiden Network, Liquidity Network, 플라즈마, 샤딩 등이 대안으로 나오고 있는 상황이다. 오프체인, 사이드체인(차일드체인) 이 먼저 선보일 것으로 보여지고, 샤딩은 이보다는 시간이 더 필요할 것으로 보인다.