[블록체인] Smart Contract, DApp
·
CS/Blockchain
🤝 Smart Contract디지털 형식으로 명시된 서약(commitment)들의 집합불변의 컴퓨터 프로그램불변(immutable): 한 번 배포되면 변경 불가결정적(deterministic): 실행한 결과가 모두 같음EVM 위에서 동작탈중앙화된 World Computer, 동일한 상태를 유지 🎧 RemixRemix - Ethereum IDEsolidity compilercontracts/artifacts 폴더가 생성됨Storage_metadata.json - ABIStorage.json - Bytecode 📱 DAppDecentralized Application탈중앙화된 P2P 네트워크 상에 백엔드 로직이 구동되는 응용 프로그램블록체인 상의 스마트 컨트랙트가 기존의 중앙화된 서버에 의해 서비스를 ..
[블록체인] 합의(자격 증명, 지분 증명)
·
CS/Blockchain
🧱 합의 (Consensus)분산 시스템에서 상태를 동기화하기 위해 사용탈중앙화되었지만, 결정론적으로 운영하기 위해 각자 지켜야 하는 규칙누가 생성한 블록이 유효한 지 합의하기 위한 프로토콜작업증명(PoW, Proof of Work)과 지분 증명(PoS, Prrof of Stake)이 가장 일반적이다.이더리움은 22년 9월 15일 PoW에서 Pos로 전환하는 더 머지(The Merge) 업그레이드를 했다. 🧱 작업 증명 (PoW)임의의 값을 대입하여 얻은 결과 값이 목푯값 이하의 값을 도출할 때까지 해시를 반복하는 작업해시 함수의 특성에 따라 역산 불가능하며 무작위로 대입하는 작업을 무수히 반복하여야 한다.⛏️ 마이닝(mining, 채굴)새로운 블록을 만들기 위한 작업많은 참여자가 참여할수록 블록체인..
[블록체인] 트랜잭션(Transaction)
·
CS/Blockchain
⚡ 트랜잭션외부 소유 계정(EOA)에 의해 서명된 메시지이더리움 네트워크에 전송되고 블록체인에 기록된다.블록체인 상태 변경을 유발하거나 컨트랙트를 실행하는 유일한 방법이다.이더리움은 독자적으로 상태가 변경되지 않는다.컨트랙트는 독자적으로 실행되지 않는다.이더리움은 거대한 하나의 컴퓨터이고, 트랜잭션을 통해 그 데이터를 업데이트(상태 변경)한다. ⚡ 트랜잭션 구조 논스 (nonce) 발신 주소(EOA)에 의해 발행된 일련번호 가스 가격 (gas price)발신자가 지급하는 가스의 가격가스 한도 (gas limit)트랜잭션을 위해 지불 허용할 가스의 최대량수신자 (recipient)목적지 이더리움 주소값 (value)목적지에 보낼 이더의 양데이터 (data)가변 길이의 바이너리 데이터 페이로드 (payloa..
[블록체인] 암호학(Cryptography)
·
CS/Blockchain
🔑 블록체인 정의P2P(Peer to Peer) 네트워크를 통해 관리되는 분산 데이터베이스의 한 형태로, 블록체인 노드(네트워크에 연결된 여러 컴퓨터)에 디지털 서명된 거래 정보를 보관하는 분산 원장 기술(Distributed Ledger Technology) 🔑 동작 원리누군가 트랜잭션(transaction)을 만들어 요청한다.트랜잭션을 요청받은 노드는 트랜잭션의 유효성을 검증(validation)한다.유효한 트랜잭션이 블록체인의 P2P 네트워크에 전파된다.(boardcast)블록 생성자는 블록 생성 규칙을 준수하며, 검증된 트랜잭션(1의 트랜잭션)을 포함하는 새 블록(block)을 생성한다.생성된 새로운 블록이 P2P 네트워크에 전파된다.기존 블록에 새로운 블록이 연결되며 트랜잭션이 처리된다. ?..