無知

갈 길이 먼 공부 일기

이더리움 17

스마트 컨트랙트 (10) | NEO, 중국의 이더리움

NEO 개요 및 특장점 네오(NEO, 小蚁币)는 중국 최초의 블록체인 기반 암호화폐이다. 몇몇은 '중국의 이더리움'이라는 별명으로 부른다. 중국어로는 샤오이비(小蚁币, 소의폐, Xiao Yi Bi, xiǎo yǐ bì)라고 부른다. 2014년 중국의 다홍페이(Da Hongfei)가 기존 비트코인과 이더리움의 장점을 결합하여 C# 언어로 네오를 개발했다. 네오는 SHA-256과 RIPEMD160 해시 알고리즘 기반으로 한 위임 프랙티컬 비잔틴 장애 허용(dPBFT; delegated Practical Byzantine Fault Tolerance) 방식의 합의 알고리즘을 따른다. 네오 개발팀은 중국 상하이에 있고, 직원은 약 30명이다. 네오(NEO)는 중국 최초의 암호화폐라는 상징성 덕분에 중국 내에서 ..

스마트 컨트랙트 (8) | DApp

1. David Johnston이 정의한 Dapp Everything that can be decentralized, will be decentralized. David A. Johnston, JOHNSTON'S LAW http://www.johnstonslaw.org/ A. DApp 정의 ) " DApp은 컴퓨터 프로그램의 종류" (1) 어플리케이션은 오픈 소스이고, 자율적으로 운영되며, 토큰을 과반 이상 점유하는 세력이 없어야 한다. (2) 알고리즘을 기반으로 토큰을 생성해 어플리케이션의 사용 및 보상 지급에 활용한다. (3) 어플리케이션의 개선 목적으로 다수결에 따라 프로토콜의 변경을 결정한다. - DApp = 컴퓨터 프로그램 - 토큰 = DApp 프로그램 사용 수단. DApp 사용자 참여 활성화를..

스마트 컨트랙트 (5-5) | Solidity(솔리디티) Contracts, Inheritance, Interface

1. Contract Contracts can be created “from outside” via Ethereum transactions or from within Solidity contracts. IDEs, such as Remix, make the creation process seamless using UI elements. One way to create contracts programmatically on Ethereum is via the JavaScript API web3.js. It has a function called web3.eth.Contract to facilitate contract creation. When a contract is created, its constructo..

스마트 컨트랙트 (5-1) | Solidity(솔리디티) 레이아웃

1. Solidity Language 1-1. 특성 - 절차적 언어 ( VS 함수형 언어) - 정적 타입 언어 (컴파일 시 타입 결정. 오류 시 컴파일 에러) - 변수 이름의 대소문자 구분 - 객체 지향 언어 - 확장자 : sol 2. LayOut 2-1. pragma 파일 최상단에 위치, 컴파일러의 특정 기능을 활성화하는 데에 사용 Pragmas The pragma keyword is used to enable certain compiler features or checks. A pragma directive is always local to a source file, so you have to add the pragma to all your files if you want to enable it in..

스마트 컨트랙트 (4-2) | 가스

1. 가스의 개념 1-1. 정의 - 가스란, 이더리움 블록체인 내 트랜잭션, 컨트랙트를 실행하는 데 필요한 계산 작업의 측정 단위 Gas refers to the unit that measures the amount of computational effort required to execute specific operations on the Ethereum network. Since each Ethereum transaction requires computational resources to execute, each transaction requires a fee. Gas refers to the fee required to conduct a transaction on Ethereum successful..

스마트 컨트랙트 (4-1) | 컨트랙트, 이더리움 가상머신

1. 이더리움 스마트 컨트랙트의 개념 1-1. 계정 1-1-1. 계정의 종류 : 외부 소유 계정(EOA)와 계약 계정(Contract Account)가 존재한다. 1-1-2. EOA, 외부 소유 계정 - 일반적으로 사용자에 의해 관리된다. (사용자가 가지는 지갑으로 생각하면 된다) - 프라이빗 키에 의해 관리된다. - EOA 계정이 스마트 컨트랙트와 통신하는 방법은 2가지. (1) 신규 컨트랙트를 생성 (2) 이미 생성된 컨트랙트에 메시지를 전송 1-1-3. 계약 계정, 컨트랙트 어카운트 - 사용자가 아닌, 이더리움 가상 머신 위에서 동작하는 프로그램에 의해 관리된다 - 프라이빗 키가 없다 1-2. 개념 1-2-1. 닉자보가 스마트 컨트랙트를 주장한 이유 - 프로그램화된 계약은 자동 실행이 가능해 부정을..

스마트 컨트랙트 (4) | 이더리움, DAO

1. 이더리움의 유래 [비탈릭 부테린과 Colored Coin, 마스터 코인의 조우] 이더리움의 유래에 대해 간략히 짚고 넘어가자. 이더리움의 창시자인 비탈릭 부테린은, 2011년 비트코인 매거진에서 비트코인 관련 아티클을 작성하기 시작하면서 암호화폐 생태계에 발을 들였다. 2013년 대학교에 입학했으나 이내 학업을 멈추고, 비트코인 커뮤니티를 돌아다니고자 여행을 떠난다. 이전 글에서도 다뤘듯, 비트코인을 하부 구조 삼아 스크립트에 데이터를 담는 새로운 코인, 컬러드 코인 프로젝트들이 당시 유행했고, 그렇게 여행에서 컬러드코인의 대표주자, 마스터코인 팀을 만나게 된다. [BITCOIN IN ISRAEL: INTERVIEW WITH MENI ROSENFELD AND RON GROSS, PART I] Alt..

스마트 컨트랙트 (3) | P2SH, OP_RETURN

01. P2SH, Pay-to-Script-Hash 스마트 컨트랙트 (2) | Bitcoin Scripts 0. Testnet 실습 >>> from bitcoin import * >>> priv = sha256('****************') >>> pub = privtopub(priv) >>> addr = pubtoaddr(pub) >>> addr '1L8zP6iitxPx3YKXfJQSJpifhNgwZnUszM' >>> addr = pubtoaddr.. moozii-study.tistory.com 위의 지난 글에서 살펴보았듯이, 기존 P2PKH 기반의 Multisignature Transaction은 아래와 같은 문제가 존재했다. 다중서명 트랜잭션은 현재 몇가지 한계가 있다. 1. 스크립트 상 참여..

이더리움의 작동방식 (8) | 채굴, 작업증명 PoW, DAG

* 이 글은 How does Ethereum work, anyway? 라는 글을 읽어가며 이해한 바를 한국어로 번역하여 정리하는 글입니다. 시리즈의 형태로 끊어가며 업로드되었으니, 참고 부탁드립니다. 이더리움 블록체인의 구성 요소 이더리움 블록체인은, 계정 / 상태 / 가스 및 수수료 / 상호작용 / 블록 / 상호작용의 집행 / 채굴 / 작업 증명 등으로 구성된다. 지난 글에 이어서 계속 설명한다. 8. 채굴 및 작업 증명 이더리움의 작업 증명 방식은 Ethash, 이더해시라 한다. 대거-하시모토 알고리즘으로도 알려져 있다. Ethash is the planned PoW algorithm for Ethereum 1.0. It is the latest version of Dagger-Hashimoto, a..

이더리움의 작동방식 (7) | EVM, 가상 머신

* 이 글은 How does Ethereum work, anyway? 라는 글을 읽어가며 이해한 바를 한국어로 번역하여 정리하는 글입니다. 시리즈의 형태로 끊어가며 업로드되었으니, 참고 부탁드립니다. 이더리움 블록체인의 구성 요소 이더리움 블록체인은, 계정 / 상태 / 가스 및 수수료 / 상호작용 / 블록 / 상호작용의 집행 / 채굴 / 작업 증명 등으로 구성된다. 지난 글에 이어서 계속 설명한다. 7. 가상머신의 실행 실제 트랜잭션의 실행이 일어나는 가상 머신에 대해 알아보자. 이 파트는 깊이 이해하지 않더라도 크게 무리가 없으니 가볍게 넘어가도록 하자. 트랜잭션 실행을 진행하는 프로토콜의 일부에는 이더리움 가상 머신이 포함되어 있다. 이더리움 가상 머신은, 튜링 완전한 가상 머신이라 정의한 바 있다...

이더리움의 작동방식 (6) | 트랜잭션 실행, RLP, 메시지콜, 계약생성

* 이 글은 How does Ethereum work, anyway? 라는 글을 읽어가며 이해한 바를 한국어로 번역하여 정리하는 글입니다. 시리즈의 형태로 끊어가며 업로드되었으니, 참고 부탁드립니다. 이더리움 블록체인의 구성 요소 이더리움 블록체인은, 계정 / 상태 / 가스 및 수수료 / 상호작용 / 블록 / 상호작용의 집행 / 채굴 / 작업 증명 등으로 구성된다. 지난 글에 이어서 계속 설명한다. 6. 트랜잭션의 실행 이더리움 네트워크에 트랜잭션을 보내고, 그 트랜잭션을 기반으로 이더리움 네트워크의 상태가 전이되는 과정을 살펴보도록 하자. 트랜잭션 실행 선결 조건 먼저, 실행을 위해서는, 트랜잭션은 다음과 같은 요건을 충족해야 한다. 1. 트랜잭션은 올바르게 포매팅된 RLP를 포함해야 한다 RLP란, ..

이더리움의 작동방식 (5) | 블록, Ommer, 헤더, 로그블룸, 난이도

* 이 글은 How does Ethereum work, anyway? 라는 글을 읽어가며 이해한 바를 한국어로 번역하여 정리하는 글입니다. 시리즈의 형태로 끊어가며 업로드되었으니, 참고 부탁드립니다. 이더리움 블록체인의 구성 요소 이더리움 블록체인은, 계정 / 상태 / 가스 및 수수료 / 상호작용 / 블록 / 상호작용의 집행 / 채굴 / 작업 증명 등으로 구성된다. 지난 글에 이어서 계속 설명한다. 5. 블록 이더리움의 블록은, 아래와 같이 구성된다. 1. 블록 헤더 2. 블록 내 포함된 트랜잭션 내역에 대한 정보 3. 부모 블록이 동일한 형제 블록들의 헤더의 집합 (Ommer blocks) Ommer가 뭐야? Ommer 블록은, , 즉 삼촌 블록 정도로 해석된다. 국내 여러 번역글은 부모가 동일한 형제..