Ethereum

    Ethereum/이더리움 - Solidity(솔리디티) function payable

    이번 포스팅에서는 스마트 컨트랙트 함수에서 사용되는 payable 속성에 대해 알아보고자 한다. Solidity 언어는 코인(coin) 혹은 토큰(token)이라는 가상화폐를 다루는 언어이다. 다른 언어들은 프로그램을 만들기 위한 언어로 탄생했지만 Solidity는 가상화폐라는 돈을 다루기 위한 언어로 탄생했기 때문에 다른 언어와는 다르게 payable이라는 키워드가 존재한다. Solidity 언어에서 payable 키워드는 이더리움 플랫폼 위에서 이더(ether)를 전송하는 스마트 컨트랙트를 작성하기 위해 반드시 사용돼야 하는 키워드이다. 즉, payable을 작성한 함수에서만 이더(ether)를 보낼 수 있고 payable을 작성하지 않은 함수에서는 이더(ether)를 보낼 수 없다. 코드를 살펴보면..

    Ethereum/이더리움 - 스마트 컨트랙트 이벤트 등록 및 백엔드에서 트랜잭션 생성하기

    이번 포스팅에서는 스마트 컨트랙트 안에 이벤트를 등록하는 방법에 대해 다루고자 한다. 이전 포스팅에서 작업한 카운터(Counter) 컨트랙트에 이벤트를 등록하는 방향으로 작업을 진행해 보겠다. 그리고 프론트에서 트랜잭션을 생성하는 것이 아닌 백엔드에서 트랜잭션 객체를 생성하고 프론트에 전달하는 방향으로 코드를 리팩토링하고자 한다. 이전 글) 2022.07.13 - [Ethereum] - Ethereum/이더리움 - 메타마스크를 통한 스마트 컨트랙트 실행 Ethereum/이더리움 - 메타마스크를 통한 스마트 컨트랙트 실행 이번 포스팅에서는 메타마스크를 사용해서 스마트 컨트랙트를 실행시켜보는 작업을 진행해보고자 한다. 위에 보이는 것과 같이 스마트 컨트랙트에 의해 동작하는 Counter(카운터)를 만들어 볼..

    Ethereum/이더리움 - JavaScript로 스마트 컨트랙트 배포 및 실행

    이번 포스팅에서는 JavaScript를 사용해서 스마트 컨트랙트를 배포하고 배포된 스마트 컨트랙트를 실행시키는 방법에 대해 다루고자 한다. keystore 파일에서 개인키 가져오기 JavaScript로 스마트 컨트랙트 컴파일하기 JavaScript로 스마트 컨트랙트 배포하기 1. keystore 파일에서 개인키 가져오기 Geth를 실행시킨 다음 해당 노드에서 계정을 생성하게 될 경우 다음과 같이 keystore 디렉토리 안에 UTC--로 시작하는 파일이 생성된다. keystore 파일 안에는 계정 정보들이 객체 형태로 존재한다. 암호화 되어 있는 계정 정보 파일이라고 볼 수 있으며 단방향 암호화가 아니기 때문에 복호화를 통해 개인키를 얻어내는 것이 가능하다. keythereum 이라는 라이브..

    Ethereum/이더리움 - 비트코인 vs 이더리움

    이번 포스팅에서는 이더리움과 비트코인의 차이점에 대해 간략히 다뤄보고자 한다. 비트코인 vs 이더리움 EVM Account Transaction 1. 비트코인 vs 이더리움 이더리움의 가장 큰 특징이라고 한다면 스마트 컨트랙트( Smart Contract)를 구현할 수 있다는 점이다. 비트코인의 경우 트랜잭션을 생성할 때 "A 계정의 소유자가 B 계정에서 10 BTC를 전송한다."와 같은 실제 거래의 내용 자체가 주를 이뤘다. 하지만 이더리움의 스마트 컨트랙트를 사용하면 다음과 같은 기능들도 구현이 가능하다. 가령 A 가 B를 통해 C의 상품을 구입하는 상황이라고 하자. B는 A에게 상품 금액을 받고 C에게 이 사실을 알린다. C는 A에게 상품을 전달하고 A가 C로부터 상품을 제대로 전달 받..