전체 글 130

[이더리움과 월드 컴퓨터] 1-2. 튜링 완전과 튜링 불완전

이전글 [이더리움과 월드 컴퓨터] 1-1. 블록체인: 단일 장부와 단일 메모리 이전글 [이더리움과 월드 컴퓨터] 0. 이더리움 소개 0. 이더리움 소개 이더리움이 등장하기 전 블록체인은 단순히 암호화폐를 기록하고 검증하는 용도로 사용되었습니다. 물론 네임코인처럼 블 kwjdnjs.tistory.com 튜링 완전과 튜링 불완전 이번 글에서는 이전 글에서 소개했던 범용 블록체인이 가진 문제점에 대해 살펴보겠습니다. I. 튜링 머신 범용 블록체인이 가진 문제점을 이해하기 위해서는 튜링 완전과 튜링 불완전의 의미를 이해해야 합니다. 그리고 이를 이해하기 위해서는 튜링 머신이 무엇인지에 대해 먼저 알아야 합니다. 튜링 머신은 앨런 튜링이 1936년 발표한 논문에서 등장한 가상의 기계입니다. 당시 앨런 튜링은 모든..

[이더리움과 월드 컴퓨터] 1-1. 블록체인: 단일 장부와 단일 메모리

이전글 [이더리움과 월드 컴퓨터] 0. 이더리움 소개 0. 이더리움 소개 이더리움이 등장하기 전 블록체인은 단순히 암호화폐를 기록하고 검증하는 용도로 사용되었습니다. 물론 네임코인처럼 블록체인을 이용하여 다른 정보를 저장하려는 시도가 kwjdnjs.tistory.com 1-1. 블록체인: 단일 장부와 단일 메모리 이번 글에서는 먼저 블록체인이 무엇인지에 대해 알아본 후, 이더리움이 이 기술을 어떻게 범용성을 갖도록 확장시켰는지에 대해 알아보겠습니다. I. 블록체인 블록체인이 무엇인지에 대해 설명한다면 다음과 같이 한 줄로 요약해 볼 수 있습니다. '블록체인이란 트랜잭션을 블록에 담고, 이 블록들을 특정한 합의 알고리즘을 통해 연결하여, 네트워크 참여자들이 나눠갖는 것' 이미지로 표현하면 다음과 같습니다...

[이더리움과 월드 컴퓨터] 0. 이더리움 소개

0. 이더리움 소개 이더리움이 등장하기 전 블록체인은 단순히 암호화폐를 기록하고 검증하는 용도로 사용되었습니다. 물론 네임코인처럼 블록체인을 이용하여 다른 정보를 저장하려는 시도가 있었지만 크게 성공하지는 못했습니다. 하지만 이더리움이 2015년에 등장하면서 블록체인 기술을 보다 범용적으로 사용할 수 있게 되었습니다. 이더리움을 이용하면 블록체인에 다양한 정보를 저장할 수 있고, 이를 이용하면 기존 비트코인 블록체인은 할 수 없었던 보다 다양하고 복잡한 트랜잭션 처리가 가능합니다. 이더리움은 이렇듯 범용적인 플랫폼 형태의 블록체인이었기 때문에, 기존 비트코인 노선을 걷던 블록체인과는 다른 2세대 블록체인으로 불리게 됩니다. 앞으로 이어지는 글들을 통해 이러한 2세대 블록체인인 이더리움의 특징에 대해 살펴..

[비트코인 구조] 탭스크립트와 P2TR

미리 알아야 할 내용들 [비트코인 구조] 탭루트(Taproot) 미리 알아야 할 내용들 [비트코인 구조] 스크립트(Script)와 Opcode, P2PK 미리 알아야 할 내용들 [비트코인 구조] 잠금 스크립트(scriptPubkey)와 해제 스크립트(scriptSig) 기초 미리 알아야 할 내용들 [비트 kwjdnjs.tistory.com [비트코인 암호학] 5. 슈노르 서명(Schnorr signature) [비트코인 암호학] 3.2 공개키와 개인키 [비트코인 암호학] 3.1 공개키 암호화 [비트코인 암호학] 2.3 타원곡선의 스칼라 곱셈 [비트코인 암호학] 2.2 유한체에서의 타원곡선 [비트코인 암호학] 2.1 유 kwjdnjs.tistory.com [비트코인 구조] 세그윗(Segwit), Bech3..

[비트코인 암호학] 5. 슈노르 서명(Schnorr signature)

[비트코인 암호학] 3.2 공개키와 개인키 [비트코인 암호학] 3.1 공개키 암호화 [비트코인 암호학] 2.3 타원곡선의 스칼라 곱셈 [비트코인 암호학] 2.2 유한체에서의 타원곡선 [비트코인 암호학] 2.1 유한체 [비트코인 암호학] 1.3 타원곡선의 kwjdnjs.tistory.com [비트코인 암호학] 4.2 ECDSA - 1 [비트코인 암호학] 4.1 디지털 서명 [비트코인 암호학] 3.2 공개키와 개인키 [비트코인 암호학] 3.1 공개키 암호화 [비트코인 암호학] 2.3 타원곡선의 스칼라 곱셈 [비트코인 암호학] 2.2 유한체에서의 kwjdnjs.tistory.com [비트코인 암호학] 4.3 ECDSA - 2 이번 글에서는 이전 글에서 생성했던 서명을 검증해보겠습니다. [비트코인 암호학] 4...

[비트코인 구조] 탭루트(Taproot)

미리 알아야 할 내용들 [비트코인 구조] 스크립트(Script)와 Opcode, P2PK 미리 알아야 할 내용들 [비트코인 구조] 잠금 스크립트(scriptPubkey)와 해제 스크립트(scriptSig) 기초 미리 알아야 할 내용들 [비트코인 구조] 비트코인 트랜잭션(Transaction) 기초 미리 알면 좋은 내용 kwjdnjs.tistory.com 탭루트(Taproot) 탭루트는 2021년 진행된 비트코인 소프트포크의 명칭입니다. 주요 변경점으로는 슈노르(Schnorr) 서명의 도입, 탭스크립트의 도입 등이 있습니다. 다중서명과 슈노르(Schnorr) 서명 기존의 비트코인은 ECDSA를 사용하여 서명을 검증하였습니다. ECDSA는 충분히 좋은 디지털 서명방식이지만, 다중서명에 있어서는 비효율적인 방..

[비트코인 구조] HD 지갑 파생 경로(Derivation Paths)

미리 알아야 할 내용들 [비트코인 구조] BIP32: HD지갑(Hierarchical Deterministic Wallet) 미리 알아야 할 내용들 [비트코인 구조] BIP39: 니모닉(Mnemonic)과 시드(Seed) 미리 알아야 할 내용들 [블록체인 용어] 니모닉(Mnemonic) 코인을 보관하기 위해 개인 지갑을 이용하는 경우 사용자는 블록 kwjdnjs.tistory.com HD 지갑 파생 경로(Derivation Paths) 이번 글에서는 HD 지갑의 파생 경로에 대한 표준에 대해 알아보겠습니다. 이를 위해 먼저 파생 경로를 표현하는 방법에 대해 알아보겠습니다. 지난 글에서 다음과 같은 키 파생을 진행했었습니다. 이는 다음과 같이 표현할 수 있습니다. 마스터 개인키(m) -> 인덱스 0번 일반..

[비트코인 구조] BIP32: HD지갑(Hierarchical Deterministic Wallet)

미리 알아야 할 내용들 [비트코인 구조] BIP39: 니모닉(Mnemonic)과 시드(Seed) 미리 알아야 할 내용들 [블록체인 용어] 니모닉(Mnemonic) 코인을 보관하기 위해 개인 지갑을 이용하는 경우 사용자는 블록체인 계좌의 통장 비밀번호라고 할 수 있는 개인키를 직접 보관해야 합니 kwjdnjs.tistory.com [비트코인 구조] 개인키(Private key), 공개키(Public key), 주소(Address) 생성 미리 알아야 할 내용들 '비트코인/암호학' 카테고리의 글 목록 평범한 대학생의 블록체인 기술 관련 블로그 입니다. kwjdnjs.tistory.com [비트코인 암호학] 3.1 공개키 암호화 타원곡선을 이용해 디지 kwjdnjs.tistory.com [비트코인 암호학] 2...

[비트코인 구조] BIP39: 니모닉(Mnemonic)과 시드(Seed)

미리 알아야 할 내용들 [블록체인 용어] 니모닉(Mnemonic) 코인을 보관하기 위해 개인 지갑을 이용하는 경우 사용자는 블록체인 계좌의 통장 비밀번호라고 할 수 있는 개인키를 직접 보관해야 합니다. 보관된 개인키는 블록체인 상의 자신의 계좌에 접 kwjdnjs.tistory.com [비트코인 구조] 비트코인 해시 함수(sha-256, hash256, hash160) 비트코인 해시 함수(sha-256, hash256, hash160) 해시 함수는 입력 데이터를 고정된 길이의 해시값으로 변환하는 함수를 말합니다. 비트코인에서는 기본적인 해시 함수인 sha-256과 이를 응용한 hash256, has kwjdnjs.tistory.com BIP39: 니모닉(Mnemonic)과 시드(Seed) 비트코인에서 사..

[비트코인 구조] 멤풀(Mempool)

멤풀(Mempool) 비트코인 풀 노드는 트랜잭션을 수집하여 블록에 담고 작업증명을 진행해야 합니다. 이 과정에서 만약 수집한 트랜잭션을 블록에 포함하기 전에 임시로 저장할 수 있는 공간이 있다면, 트랜잭션을 더욱 효율적으로 관리할 수 있습니다. 여기에서 등장한 것이 바로 멤풀입니다. 멤풀은 '메모리 풀(Memory pool)'의 약자입니다. 트랜잭션을 임시로 저장하는 공간이 풀 노드의 메모리이기 때문에 붙여진 이름입니다. 메모리는 휘발성 저장소 입니다. 따라서 만약 풀 노드가 종료된다면, 멤풀 역시 사라집니다. 결론적으로 멤풀에 오래 남아있는 트랜잭션은 시간이 지날수록 없어지게 됩니다. 만약 트랜잭션이 블록에 포함된다면 해당 트랜잭션은 멤풀에서 제거됩니다. 이러한 방식으로 멤풀은 지속적으로 변경되면서 ..