Crypto는 신뢰라는 특징을 갖고 있다.중간에서 신뢰에 기반한 일을 대행하고 안전을 담보하는 주체인 미들맨의 필요성에 의문을 가져봅니다. 신뢰가 보장된다면 소비자는 더이상 미들맨에 의존할 필요가 없어집니다.Crypto에 의해 나타난 형태로, P2P네트워크에 기반하여
인터넷 상에 있는 사람들과 동일한 데이터를 가지는 것이 핵심입니다. 누구나 데이터를 추가할 수 있습니다.데이터는 한 번 추가되면, 수정이나 삭제할 수 없습니다.블록체인 네트워크에 있는 모든 사람들이 데이터를 관리합니다.(1) 블록데이터를 저장하는 공간입니다. 블록체인에
블록체인이란 P2P네트워크를 통해서 관리되는 분산 데이터베이스의 한 형태입니다. 거래 정보를 담은 장부를 중앙 서버에 저장하는 것이 아닌, 블록체인 네트워크에 연결된 컴퓨터들에 저장 및 보관하는 기술입니다. 활용되는 목적 또는 공개 범위에 따라 다양한 방법으로 블록체인
합의 알고리즘이란, 다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘을 말합니다. 합의 프로토콜이라고도 불립니다. 블록체인은 중앙화된 서버 대신에 수많은 노드들에 데이터가 보관되므로, 각각의 노드들은 블록에 기록하는 데이터가 위변조되지 않은 원본이라는 것
블록체인에서 실행되고 개인 및 공개 키를 저장하고 해당 키와 관련된 모든 트랜잭션을 블록 체인에 모니터링하고 유지하는 소프트웨어입니다. 노드가 바로 지갑입니다.지갑은 주소(공개 키)와 암호(개인 키)로 구성되어 있습니다.비트코인의 경우, 코인이 지갑에 저장되는 것이 아
블록체인 네트워크를 유지하기 위해서는 구성원들간의 이해관계 조정이 필요합니다. 이러한 수요로 탄생한 개념이 거버넌스입니다. (1) BIP (Bitcoin Improvement Protocol)(2) EIP (Ethereum Improvement Protocol)(3)
비트코인에서는 UTXO Model을 사용하고, 이더리움에서는 Account Model을 사용합니다. 흐름 상 이더리움의 Account Model부터 알아보려고 합니다.모든 트랜잭션은 일회성입니다. 하나의 트랜잭션은 하나의 상태만 변화시킬 수 있습니다. 비트코인의 경우
블록체인 트릴레마는 확장성, 탈중앙화, 보안이라는 세 가지 요소를 모두 만족할 수 있는가에 대한 개념입니다. 확장성(scalability): 사용자 수가 늘어나더라도, 유연하게 대응할 수 있는 정도. 블록체인에서는 노드 수의 증가에 따라 TPS가 증가하지 않는 문제와
블록체인 트릴레마 해결 방법으로써 L1과 L2를 살펴보겠습니다.레이어1은 비트코인, 라이트코인, 이더리움과 같은 블록체인 프로토콜을 의미합니다. 블록체인의 확장성 문제를 직접적으로 개선하기 위한 방법을 논의합니다.(1) 합의 프로토콜 개선: 작업 증명은 비트코인과 같이
세그윗은 분리된 증인이라는 뜻입니다. 전자서명을 input에 포함시키지 않고 따로 모아 관리합니다. 이 전자서명들은 1MB 이내로 모아서 관리됩니다. 세그윗은 소프트포크이기 때문에 기존 버전과 호환이 가능합니다.(1) 세그윗 적용 전에는, 블록 안에 1MB이내의 거래와
영지식증명이란 직접적인 정보를 제공하지 않고, 진위여부를 입증하는 증명법입니다. (1) 완전성 (completeness)진술이 참이라면 증명자는 검증자에게 충분히 높은 확률로 이 지식을 증명할 수 있어야 한다(2) 건전성 (soundness)진술이 거짓이라면 증명자는
비콘체인은 이더리움 2.0의 핵심 시스템 체인입니다. 기존의 채굴자 대신 거래 검증인이 자신의 토큰(지분)을 예치하고, 투표한 뒤에 그 결과에 따라 거래를 검증하고 네트워크를 운영하는 이더리움의 거래 검증 시스템입니다. 비콘체인은 지분증명(PoS)을 통해 유효성 검증인
확장성 문제는 크게 두 가지로 생각할 수 있습니다. 블록에 거래가 포함될 때의 속도 지연 합의 노드들 간에 합의 과정에서의 속도 지연 이 두 가지 중 "합의 노드들 간에 합의 과정에서의 속도 지연" 대한 확장성 솔루션을 알아보도록 하겠습니다. 대표적으로 이오스(EOS
하이퍼렛저는 리눅스재단이 이끌고 있는 가장 유명한 Private Blockchain 기술입니다. 스마트 컨트랙트를 구현할 수 있는 오픈 소스 프로젝트입니다. IBM 등 글로벌 대기업이 개발에 참여했으나, 현재는 이더리움 등의 Public Blockchain에 밀려서 사
CAP 정리를 통해 블록체인을 생각해보려고 합니다.인터넷으로 서비스를 제공할 때, 서비스 제공자는 3 가지 특성을 보장해야 합니다.서비스를 이용하는 사용자에게 항상 최신의 정보를 제공해야 합니다.서비스가 멈추지 않아야 합니다.네트워크의 어느 지점이 끊어지더라도 서비스는
합의 프로토콜을 2가지 속성을 만족시켜야 합니다.safetyliveness문제 없는 두 노드가 서로 다른 값으로 합의하면 안 됩니다. 다른 값이 합의됐다는 것은 같은 높이의 서로 다른 블록이 생성됐다는 뜻입니다. 문제 없는 모든 노드들은 무한 루프에 빠지지 않고 상태
채굴은 블록체인 네트워크에 노드로써 트랜잭션 검증과 분산원장 기록의 역할을 수행하고, 암호화폐를 보상으로 받는 행위를 말합니다. 즉, 새로운 블록을 만드는 것이 채굴의 핵심입니다. 이는 컴퓨터 연산 작업을 통해 수행됩니다. 10분에 한 번씩 일정량의 블록이 생성되는데,
비트코인에서 트랜잭션을 검증하는 과정을 살펴봅시다.(1) 원본 데이터를 자신의 개인키로 암호화하고, 디지털 서명을 진행합니다.(2) 원본 데이터와 디지털 서명된 데이터를 노드에 전파합니다.(3) 트랜잭션을 받은 노드는 해당 트랜잭션이 진짜인지 검증하기 위해, 트랜잭션을
1. FLP Impossibility Fischer, Lynch, Paterson Impossibility 어떤 합의 알고리즘이 네트워크에서 통용되기 위해서는 Safety와 Liveness라는 특성을 갖고 있어야 합니다. 그동안 컴퓨터과학의 분산환경에서 합의 알고리
디지털 화폐는 금전적 가치가 전자적 형태로 저장, 이전 또는 거래될 수 있는 통화를 의미합니다. 실물화폐와는 다르게 가상환경에서 통용되는 실체가 없는 화폐이기 때문에 가상 화폐라고 불리기도 합니다.가상화폐는 게임 등 온라인 상의 '가상' 공간에서만 거래되는 가상화폐입니
지갑의 유형은 다양하게 나뉩니다. 웹 월렛, 어카운트 방식 등 다양한 방식의 지갑과, 거래소에서 사용하는 용어인 콜드 월렛과 핫 월렛 등에 대해서 알아보려고 합니다.인터넷 액세스가 개인 정보 및 보안에 미치는 위험 때문에 덜 안전한 암호화폐 지갑입니다.암호화폐의 "콜드
비트코인은 특정 지갑에 저장되는 것이 아니라, UTXO에 저장되며, 이 UTXO를 통해 코인의 존재 여부를 확인할 수 있습니다.네트워크에서 트랜잭션의 유형을 지정하는 버전 번호입니다. 트랜잭션은 버전 별로 구조와 규칙이 다릅니다. 따라서 노드는 트랜잭션을 읽을 때, 버
블록체인은 분산처리와 동시에 암호화 기술을 적용하여 높은 보안성을 확보합니다. 암호화 기술은 보안성이 높고, 위변조가 어렵다는 특징이 있어, 데이터 무결성을 쉽게 증명할 수 있다는 장점이 있습니다. (cf) 데이터 무결성Data Integrity. 데이터 베이스에 값이
공개 키 암호화 방식(Public Key Cruptography)은 공개 키와 비밀 키로 구성된 한 쌍의 키를 사용한 암호화 방식입니다. 두 키는 ECDSA을 사용하여 생성됩니다. 공개 키로 암호화된 데이터는 해당 개인 키로 복호화 할 수 있습니다. 송신자는 수신자의
dApp은 이미지를 주로 IPFS에 저장시키는데, 이 저장 공간에 있는 데이터(Saved Data)들이 NFT랑 연동이 되는 구조로 이루어져 있습니다.IPFS란, "InterPlanetary File System"의 약자로서, 분산형 파일 시스템에 데이터를 저장하고 인
Virtual Machine은 우리가 짠 코드와 우리 컴퓨터 사이에서 추상화 수준을 생성합니다. 컴퓨터라는 하드웨어마다 우리가 작성한 코드가 다르게 동작하면 곤란한 상황이 발생합니다. 그래서 보통은 하드웨어 위에 가짜 컴퓨터를 하나 만들어둡니다. 그렇게 어떤 컴퓨터에
1. 스마트 컨트랙트의 역사 시작은 닉 재보의 비트 골드입니다. 비트코인골드가 아닙니다. 그 후, 비탈릭 부테린의 이더리움과 솔리디티가 등장합니다. 다음으로 댄 라리머의 스팀, 이오스와 WASM, C++ 등등의 키워드를 생각해 볼 수 있습니다. 2. 스마트 컨트랙트
비트코인 스마트 컨트랙트에서는 Opcode를 사용해 스크립트를 구성하였습니다. 그러나 비트코인 스크립트에는 치명적인 단점이 하나 있었습니다. 바로 몇가지 Opcode를 사용할 수 없다는 점입니다. 사토시 나카모토는 무한 반복 공격과 같은 보안상의 이슈를 고려해 의도적으
EVM의 내부 동작 구조를 확인해봅시다.이더리움은 거래에 기반을 둔 상태 머신(Transaction-Based State Machine)입니다. 상태 머신이란 일련의 입력을 받고, 그 입력을 기반으로 새로운 상태로 전환하는 것을 의미합니다. 이더리움이라는 상태머신은 G
암호학 기초를 Formal Method로 살펴봅시다.정보를 보호하는 방법을 연구합니다정보를 은닉 (대칭키 / 비대칭키)정보의 출처를 검증 ( 디지털 서명 알고리즘 )암호학은 너무 강력해서 한때 미국 정부는 암호화 기술을 무기로 간주하고 규제를 심하게 했습니다.56bit
Decentralized Identify 탈중앙 신원증명이란, 데이터의 주권이 개인에게 있고 필요한 때에 그 데이터를 중앙화된 시스템을 거치지 않고 증명할 수 있는 기술을 말합니다. 분산원장기술 Distributed Ledger Technology를 기반으로 사용자 정
DID는 블록체인을 기반으로 자신을 증명할 수 있는 정보를 스스로 관리 및 보관하고, 신원증명이 필요한 서비스를 이용할 때 인증정보를 제3자가 아닌 사용자가 직접 관리하도록 하여 데이터 주권을 사용자에게 가져다주는 Self Sovereignty Identify (자기
작년에 말한 레이어1들은 루나, 솔라나, 아발란체 등의 체인에 대해서 얘기합니다. 이것은 전부가 아니라, 비트코인과 이더리움 간의 싸움이라고 보고 싶다. 비트코인 - 크립토 커런시. 결제 통화이더리움 - 유틸리티사실 유틸리티 코인 대장은 리플이라고 보는 것이 좋을 거
NFT를 생성할 수 있는 /create 를 구현하려고 합니다. Media file, Name, External link, Description을 받아서 NFT를 생성할 수 있습니다.팀원들이 공통으로 구현하기에는 비효율적이라고 생각해서, 빠르게 구현해봤습니다.Home,
DID는 SSI (Self-Sovereign Idenetity)의 한 종류입니다. 중앙 집중형 신원 증명에서 탈중앙화 자기 주권 신원 증명으로 전환된 것입니다. 블록체인과 함께 등장하여 중앙 집중형 절차와 데이터 저장소를 배제하고, 신원 증명에 대한 개인 권한을 극대화
Local 환경에서 ERC-721 개발하는 과정을 살펴보겠습니다.명령어 truffle init을 통해 로컬 환경에서 truffle로 개발하기 위한 환경을 만들어줍니다.명령어 npm init을 통해 npm 초기화를 해줍니다.Owner만이 mintNFT function을
인센티브 기반의 Web2.0 커뮤니티를 구현해보겠습니다. 팀에서 백엔드 역할을 맡았으므로, 백엔드를 기준으로 필요한 기능은 다음과 같습니다.Join 시에 Client로부터 < Username, Email, Password, Password2, Profile Ima
블록체인 이전에는 온라인 거래들이 특정 서버에 기반을 두고 이뤄졌습니다. 해당 서비스를 운영하는 회사에서 컴퓨터를 하나 마련하고, 여기서 모든 거래들이 진행되고 내역들이 장부에 저장됐습니다. 여기에는 위험이 따릅니다. 중앙 서버만 털리면, 장부를 조작해서 돈을 빼가거나