W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)Benjamin Oh
W3C HTML5 컨퍼런스 2020에 대한 정보는 다음에서 확인 가능합니다.
- https://www.openbooth.space/exhibition/html5
SSI Meetup Korea에서 번역 활동 참여 경험 및 DID 관련 프로젝트 진행에 대한 경험을 살려 W3C HTML5 컨퍼런스에서 블록체인 상의 DID 구현에 대한 발표를 하였습니다.
시중에 돌아 다니는 블록체인에 대한 다양한 정보들이 내용의 깊이가 다르고, 의미가 지나치게 추상적이고 단편적인 것들이 많아 오해가 생기는 경우도 있는 것 같습니다. 블록체인에 대해 학습을 시작하면서 어려운 점이 많았고, 심지어 블록체인 = 비트코인, 또는 블록체인 = 인증시스템... 이런 식의 잘 못된 정의들이 있어서 학습하는 데 어려움이 많았습니다. 이 문서는 당초 함께 공부하는 스터디 그룹 멤버들과 공유하고자 약 3주간의 자료조사와 학습을 한 후에 정리하는 차원에서 작성된 것입니다. 블록체인의 정의, 구성요소, 작동원리 등에 관한 내용이며, 블록체인에 관심이 있는 분들에게 미약하나마 도움이 될까 하여 공유합니다.
제가 도움을 받은 자료들에 대한 출처는 맨 마지막 페이지에 넣었습니다.
W3C HTML5 컨퍼런스 2020 - 웹 환경에서 블록체인 노드와 통신 및 신원인증 (DID)Benjamin Oh
W3C HTML5 컨퍼런스 2020에 대한 정보는 다음에서 확인 가능합니다.
- https://www.openbooth.space/exhibition/html5
SSI Meetup Korea에서 번역 활동 참여 경험 및 DID 관련 프로젝트 진행에 대한 경험을 살려 W3C HTML5 컨퍼런스에서 블록체인 상의 DID 구현에 대한 발표를 하였습니다.
시중에 돌아 다니는 블록체인에 대한 다양한 정보들이 내용의 깊이가 다르고, 의미가 지나치게 추상적이고 단편적인 것들이 많아 오해가 생기는 경우도 있는 것 같습니다. 블록체인에 대해 학습을 시작하면서 어려운 점이 많았고, 심지어 블록체인 = 비트코인, 또는 블록체인 = 인증시스템... 이런 식의 잘 못된 정의들이 있어서 학습하는 데 어려움이 많았습니다. 이 문서는 당초 함께 공부하는 스터디 그룹 멤버들과 공유하고자 약 3주간의 자료조사와 학습을 한 후에 정리하는 차원에서 작성된 것입니다. 블록체인의 정의, 구성요소, 작동원리 등에 관한 내용이며, 블록체인에 관심이 있는 분들에게 미약하나마 도움이 될까 하여 공유합니다.
제가 도움을 받은 자료들에 대한 출처는 맨 마지막 페이지에 넣었습니다.
8 week: Technology of Platformless Media BlockchainDaemin Park
- The architecture of platformless media blockchain
- Wallet
- Micropayment
- Decentralized storage with big data system
- Decentralized identification
(국민대학교 소프트웨어융합대학원 블록체인 전공 <블록체인과 미디어> 2019년 여름학기 수업)
Brief introduction about the ideas of the Blockchain technology.
Written in Korean.
Starts with Hash function, Hashcash, proof-of-work, and how Blockchain adopted and extended the idea.
블록체인을 어떻게 공부해야 할까, 블록체인을 공부하면서 만나게 될 개념들은 뭘까 미리 맛보기로 보고 간다고 생각하시면 됩니다!
(아쉽게도 여기서는 블록체인을 왜 공부해야 하는지에 대한 이유나 '탈중앙화 데이터베이스'라는 블록체인의 근본적인 백그라운드는 건너뛰고 시작합니다.)
비트코인과 이더리움을 중점으로 요즘 핫한 블록체인 응용 예시들을 가지고 설명하다보니 다소 어려운 점들이 있을 수도 있습니다. 이 내용이 이해가 안 가신다고 좌절하지 마시고, 앞으로 공부하면서 이런 것들을 보겠구나 하고 넘어가시면 됩니다.
정말 0에서 시작하는 분들에게는 다소 어려울 수도 있는 점 양해 부탁드립니다. 다음에는 더 쉽게~ 풀어서 찾아뵐게요.
8 week: Technology of Platformless Media BlockchainDaemin Park
- The architecture of platformless media blockchain
- Wallet
- Micropayment
- Decentralized storage with big data system
- Decentralized identification
(국민대학교 소프트웨어융합대학원 블록체인 전공 <블록체인과 미디어> 2019년 여름학기 수업)
Brief introduction about the ideas of the Blockchain technology.
Written in Korean.
Starts with Hash function, Hashcash, proof-of-work, and how Blockchain adopted and extended the idea.
블록체인을 어떻게 공부해야 할까, 블록체인을 공부하면서 만나게 될 개념들은 뭘까 미리 맛보기로 보고 간다고 생각하시면 됩니다!
(아쉽게도 여기서는 블록체인을 왜 공부해야 하는지에 대한 이유나 '탈중앙화 데이터베이스'라는 블록체인의 근본적인 백그라운드는 건너뛰고 시작합니다.)
비트코인과 이더리움을 중점으로 요즘 핫한 블록체인 응용 예시들을 가지고 설명하다보니 다소 어려운 점들이 있을 수도 있습니다. 이 내용이 이해가 안 가신다고 좌절하지 마시고, 앞으로 공부하면서 이런 것들을 보겠구나 하고 넘어가시면 됩니다.
정말 0에서 시작하는 분들에게는 다소 어려울 수도 있는 점 양해 부탁드립니다. 다음에는 더 쉽게~ 풀어서 찾아뵐게요.
This document discusses blockchain sharding as a solution to scalability issues in blockchains. It introduces the concept of sharding where the transaction processing load is distributed across multiple shards to improve overall processing capacity and storage efficiency. Some of the key challenges of implementing sharding are assigning transactions and addresses to shards, achieving consensus across shards, enabling cross-shard communication, and ensuring atomicity of transactions that span multiple shards.
The document discusses multisignature (multisig) addresses and Schnorr signatures. It explains that multisig addresses require signatures from multiple private keys to authorize transactions. Schnorr signatures could improve upon the currently used ECDSA signatures by having shorter signatures and providing signature aggregation for multisig transactions. The document also covers how Practical Byzantine Fault Tolerance (PBFT) consensus protocol works and how Schnorr-based multisignatures could lower communication costs for PBFT from quadratic to linear scaling.
The document discusses web3.js, Truffle, and how to develop decentralized applications (dApps). It provides information on:
- What web3.js and Truffle are and how they interact with Ethereum contracts and the Ethereum Virtual Machine.
- The basic structure of a dApp including smart contracts, frontend using web3.js, and backend also using web3.js to communicate with the blockchain via JSON-RPC.
- Examples of web3.js APIs like sendTransaction and getTransactionReceipt to interact with the blockchain.
2. 지갑이란?
지갑
사용자의 돈에 대한 접근, 키 및 주소 관리, 잔액 추적 및 트랜잭션 작성 및 서명을 제어함.
사용자의 키를 저장하고 관리하는 데 사용되는 데이터 구조를 의미함.
지갑의 개인 키의 컨테이너이며, 구조화 된 파일이나 간단한 데이터베이스로 구현됨.
지갑에는 key만으로 보관하고, 비트코인에서 말하는 “bitcoin”의 개념은 네트워크의 블록체인
에 기록됨(UTXO).
사용자는 지갑의 키를 사용하여, 트랜잭션에 서명함으로써 네트워크의 동전을 제어함.
Key
Address
Others
3. 비결정적 지갑(Nondeterministic Wallet)
무작위로 생성된 개인 키를 사용하는 지갑, 고로 각 키 사이에는 아무런 관계가 없다
-> 백업 및 가져오기가 힘들다라는 큰 단점이 있음
임의의 개인 키를 미리 생성하여 각 키를 한 번만 사용하고 필요에 따라 키를 추가로 생성함.
4. 비결정적 지갑(Nondeterministic Wallet)
무작위로 생성된 개인 키를 사용하는 지갑, 고로 각 키 사이에는 아무런 관계가 없다
-> 백업 및 가져오기가 힘들다라는 큰 단점이 있음
임의의 개인 키를 미리 생성하여 각 키를 한 번만 사용하고 필요에 따라 키를 추가로 생성함.
아무런 관계가 없으므로,
k1으로 k2를 유추하거나
복구하는 것이 불가능
6. 계층결정적 지갑(HD Wallet)
Tree 구조의 지갑으로, 단일 seed에서 많은 키를 쉽
게 파생 시킬 수 있음.
HD 지갑은 트리구조를 사용하여, 부모 키가 일련의
자식 키를 파생시킬 수 있음.
지갑에서 키 사용에 있어 조직적 의미를 나타낼 수
있음.
사용자가 개인 키에 액세스 하지 않고도 공개 키들
을 생성 할 수 있음.
상응하는 개인키 없이도 공개키 생성 가능
(Extented key)
7. 계층결정적 지갑(HD Wallet)
확장 개인/공개키(Extended Key)
256bit의 key와 256bit의 chain code를 합친 것을 extended key라고 지칭함(512bit)
확장 개인키로는 다음 세대의 개인/공개키를 모두 생성 가능하고, 확장 공개키는 다음 세대의 공개키만 생성이
가능하다.
->상응하는 개인키 없이도 공개키 생성 가능(Extented key)
xpub
xprv
9. 지갑( Wallet )
계층 결정적(hierarchical deterministic) 지갑
HD지갑 구현시 중요한 점은 부모키에서 자식키를 만드는 것이다.
이때 chain code 라는 숫자를 사용하여 자식키를 만든다. 자식의 public key 로 부모의 public key를
추론하기 어려워진다.
Chain code와 nchild값으로 hash값을 구한다.
구한 hash값으로 자식의 chain code를 구한다.
부모의 pubkey와 hash값으로 자식의 pubkey를 만든다.
10. 지갑( Wallet )
계층 결정적(hierarchical deterministic) 지갑
HD지갑은 128, 256, 512비트 크기의 무작위 숫자인 root seed로 부터 마스터 체인코드와 마스터
개인키를 생성한다. 이로부터 자식키를 생성한다.
11. Seed and Mnemonic Code ( BIP-39 )
Mnemonic ( BIP-39 )
Seed를 만들어 내는 일련의 영어 단어를 의미함.
대부분의 bitcoin 지갑에서 mnemonic을 사용하여, backup 및 recovery할 때 사용함.
12. Wallet Technology Details
Mnemonic Code Words ( BIP-39 )
Mnemonic code는 시드로부터 생성된 임의의 숫자를 표현하는 일련의 단어로, 각 단어별로
지칭하는 숫자가 정해져있다.
이 일련의 단어들은 사람이 기억하고 복구하기 쉽고, 다른 지갑 어플리케이션과 호환이 가능
하도록 사용한다.
실제 비트코인 Mnemonic word list