본문 바로가기

스마트컨트랙트6

솔리디티(Solidity)란? 💡 솔리디티(Solidity) 솔리디티는 스마트 컨트랙트를 실행하는 객체 지향, 정적 타입, 고급 스크립트 언어로, EVM에서 실행된다. 솔리디티는 컨트랙트 기반의 고급 프로그래밍 언어이다. 자바스크립트와 같은 스크립트 언어의 구문과 매우 유사하다. 솔리디티는 C++ 과 파이썬, 자바스크립트를 기반으로 만들어졌으며, 이더리움 네트워크에서 스마트 컨트랙트를 생성할 수 있도록 설계되었다. 솔리디티는 정적 타입 스크립트 언어이기에, 런타임 언어와 달리 컴파일 시 제약 조건을 확인하고 적용한다. ✓ 역사 솔리디티는 2014년 8월 컴퓨터 과학자 가빈 우드가 처음 제안하였다. 우드는 이더리움에서 2년간 CTO로 재직했으며, 크리스찬 라이트와즈너가 우드를 이어받아 솔리디티 개발을 이끌었다. 그 결과 2015년 8월.. 2022. 7. 7.
이더리움에서의 스마트 컨트랙트란? 💡이더리움에서의 스마트 컨트랙트 이더리움은 블록체인 기술을 활용해 스마트 컨트랙트와 암호화폐 거래를 제삼자 없이 안전하게 이뤄질 수 있도록 하는 오픈소스 퍼블릭 서비스이다. 누구든지 분산형 어플리케이션(dApp)을 이더리움 네트워크에 배포할 수 있다. 이더리움은 개발자들이 dApp을 만들 수 있도록 튜링 완전한 언어인 솔리디티를 제공하였으며, 이더리움 네트워크에 올라간 솔리디티 코드는 EVM을 통해 실행된다. ✓ 이더리움의 역사 비탈릭 부테린은 2011년 비트코인 생태계에 관심을 가지기 시작했으며, 비트코인 매거진을 공동 창립하였다. 부테린은 비트코인에서 단순 암호화폐 거래를 하는 것에서 그치지 않고, 애플리케이션을 실행할 수 있는 범용적인 블록체인을 만들고자 했다. 그리고, 2013년 일반적인 스크립트.. 2022. 7. 7.
비트코인 스마트 컨트랙트의 한계 💡 비트코인 스마트 컨트랙트의 한계 비트코인은 최초의 블록체인 알고리즘이지만 확장성이나 성능 등의 한계가 존재했다. 오늘날에는 비트코인의 단점을 극복하기 위한 다양한 플랫폼과 프로젝트가 존재한다. ✓ 라이트닝 네트워크 (Lightning Network) 비트코인의 거래량이 늘어날 수록 처리해야 할 트랜잭션이 많아진다. 그런데 비트코인의 TPS는 트랜잭션 양과 관계없이 고정되어 있기 때문에 저장해야 할 트랜잭션이 많아질수록 트랜잭션이 처리되는 속도가 느려지게 된다. 라이트닝 네트워크는 이러한 성능 문제를 해결한다. 라이트닝 네트워크에서는 트랜잭션 내용을 블록체인 외부에 저장하고, 트랜잭션의 최종 결과만 블록체인에 올린다. 트랜잭션이 블록체인 바깥에서 이루어지기 때문에 트랜잭션이 처리되기까지 대기 시간이 필.. 2022. 7. 7.
비트코인 스크립트 (P2PK - Pay To PubKey, P2PKH - Pay To PubKeyHash) 💡 Pay to PubKey (P2PK) 두 개의 데이터와 하나의 Opcode 만 사용하는 가장 간단한 종류의 비트코인 스크립트이다. 비트코인 초기 버전에는 이러한 유형의 스크립트가 사용되었다. P2PK는 퍼블릭 키에 직접 코인을 송금하는 데 사용한다. 수신자의 공개 키를 직접 노출하기 때문에 보안에 취약하며, 오늘날에는 사용되지 않는다. 그러나 스크립트 실행 방식을 이해하는데는 도움이 된다. ScriptPubkey 는 잠금을 정의하는 데이터 구조이며, ScriptSig는 해제 키를 정의하는 데이터 구조이다. ScriptSig는 트랜잭션 입력(Input) 내부에 존재하며, ScriptPubkey는 이 트랜잭션 입력이 잠금을 해제하려는 이전 트랜잭션의 출력에서 추출된다. "잠금을 해제한다"는 것은 Scri.. 2022. 7. 7.
UTXO 동작 원리 💡UTXO 동작 원리 비트코인은 특정 지갑에 저장되는 것이 아니라, 이 UTXO에 저장되며, 이 UTXO를 통해 코인의 존재 여부를 확인할 수 있다. 그렇다면 이 UTXO 는 어떻게 동작하는 걸까? ✓ 트랜잭션 구조 UTXO를 이해하기 위해서는 우선 트랜잭션 구조를 알아야 한다. 하나의 트랜잭션은 위와 같은 모양이며, 다양한 데이터 구조들로 구성되어 있다. * 트랜잭션 버전 (Transaction Version) 트랜잭션 버전은 네트워크에서 트랜잭션의 유형을 지정하는 버전 번호이다. 트랜잭션은 버전 별로 그 구조와 규칙이 조금씩 다르다. 따라서 노드는 트랜잭션을 읽을 때는 버전 번호를 확인하고 트랜잭션을 어떻게 읽어야 하는지 파악할 수 있다. * 잠금시간 (Lock Time) 마지막 데이터는 잠금 시간으.. 2022. 7. 7.
스마트 컨트랙트란? 💡 스마트 컨트랙트 스마트 컨트랙트는 블록체인 네트워크에 호스팅되고 실행되는 프로그램이다. 조건을 지정해두고, 해당 조건이 충족되면 미리 정해둔 계약을 이행하는 방식으로 코드를 작성한다. 어떠한 계약을 수립, 검증하고 특정 조건이 충족되었을 경우 이행하기 위한 컴퓨터 프로토콜로, 작성된 로직대로 스스로 작동한다. 서면으로, 이루어져 사람이 하나씩 검증하여 시간이 많이 걸렸던 계약의 과정을 디지털을 도입해 자동화를 통해 간단하고, 빠르고 정확하게 이행할 수 있다. 스마트 컨트랙트는 일반적인 중앙 집중식 서버가 아니라 탈중앙화된 블록체인에서 실행하기 때문에 계약 조건이나 이행 내용을 변조하기 어려우며 계약을 신뢰하기 위해 제삼자가 필요하지 않다. ✓ 스마트 컨트랙트 역사 스마트 컨트랙트의 개념은 1994년 .. 2022. 7. 7.