Cryptography
-
라이트닝 네트워크(Lightning Network)란?Cryptography 2022. 6. 12. 22:02
치솟는(또는 곤두박질치는) 가격을 보면, "비트코인은 전송은 너무 비싸고, 실생활에 쓰일 수 있으려나?"라는 궁금증을 가질 때가 있습니다. 라이트닝 네트워크(lightning network)는 비트코인 트랜잭션을 더 저렴하고 더 빠르게 만들도록 고안되었는데요. 이런 라이트닝 네트워크는 비트코인, 이더리움과 같은 layer1으로 통칭되는 크립토 기술에 기반하여 운용되는 layer2에 속합니다. 이번 글에서는 이러한 라이트닝 네트워크가 무엇인지 자세히 알아보도록 하겠습니다: 라이트닝 네트워크는 무엇을 위해 탄생되었나? 라이트닝 네트워크의 주요 기능 라이트닝 네트워크의 구조 라이트닝 네트워크는 무엇을 위해 탄생되었나? [2] 비트코인은 글로벌 replicated 퍼블릭 렛져에 트랜잭션을 기록하는 시스템입니다...
-
메타마스크 내부구조(Metamask InternalCryptography 2022. 6. 9. 23:38
크립토 지갑(Crypto Wallet) 중 가장 널리 사용되고 있는 것이, 브라우저 기반의 앱 메타마스크(Metamask)입니다. MAU도 아래와 같이 빠르게 성장하였는데요: 이번 글에서는 메타마스크 내부구조를 살펴보며, 이더리움 기반의 월렛에 대해 알아보도록 하겠습니다: 메타마스크 모바일 앱 아키텍쳐 메타마스크 Controllers Ethereum과의 연동 메타마스크 모바일 앱 아키텍쳐 [2] 메타마스크는 Front 단에서 보면 크게 2가지 기능을 제공합니다. 이 부분을 살펴보기 위해서 먼저 metamask-mobile에 해당되는 repo를 살펴보겠습니다 [3]. 첫 번째는 일반 유저가 사용할 수 있는 Wallet UI 인터페이스입니다. 유저는 ETH, ERC20, ERC721 등에 해당되는 자산을 관..
-
커스토디얼(custodial) vs 논커스토디얼(noncustodial) 월렛Cryptography 2022. 6. 7. 23:07
블록체인 월렛을 살펴보다 보면, 월렛의 private key의 관리방식에 따라 크게 커스토디얼, 논커스토디얼로 나뉩니다. 이번 글에서는 각각은 어떻게 다르고, 어떠한 장단점을 가지는지 살펴보겠습니다: 커스토디얼 vs 논커스토디얼 월렛 장단점 하이브리드 형태 커스토디얼 vs 논커스토디얼 월렛 앞에서 언급한 바와 같이, 2가지는 월렛의 핵심이 되는 private key가 실제로 어디에 저장되느냐에 따라서 나뉩니다. 논커스토디얼 월렛의 경우에는 사용자가 private key에 대한 완전한 컨트롤이 가능하기에 가상화폐 등을 입출금할 때 사용자가 관리하는 private key를 사용하게 됩니다. 반대로 커스토디얼(custodial, 구금의, 양육권을 갖는) 월렛은 제3자가 private key에 대한 컨트롤을 하..
-
블록체인 코드를 변경해 pseudo 암호화폐 만들기Cryptography 2021. 12. 14. 18:13
암호화폐는 블록체인에 기반하고 있다고들 합니다. 그렇다면 블록체인은 암호화폐인 것일까요? 아니라면 암호화폐는 블록체인과 어떤 점이 다른 걸까요? 이번 글에서는 이전 글인 '파이썬으로 간단한 블록체인 만들어보기'에서 만든 블록체인을 변형해서 간단한 암호화폐를 만들어 보며 암호화폐를 이해해보려 합니다. 암호화폐에는 블록체인에 어떤 부분을 추가해야 하는가 Flask API 추가 암호화폐에는 블록체인에 어떤 부분을 추가해야 하는가 암호화폐는 분산된 원장(distributed ledger)입니다. 먼저, 원장이라는 부분을 고려하면 원장은 소유권, identity, 상태, 권위 등을 확정하는 데에 사용됩니다 [2]. 이러한 목적을 위해 원장은 기록 대상의 변동사항을 기록합니다. 즉, 트랜잭션(transaction)..
-
파이썬으로 간단한 블록체인 만들기Cryptography 2021. 12. 13. 23:20
블록체인은 블록이라고 불리는 것들이 암호기법을 통해 체인처럼 연결된 것 [1]을 말합니다. 흔히 아래와 같은 형태로 표현되는데요: 위의 정의에서 '암호기법을 통해 연결된다'와 같은 부분들은 실제로 간단한 블록체인을 만들어보면 복잡한 설명이 필요없이 쉽게 이해가 됩니다. 이번 글에서는 파이썬으로 구현된 간단한(100줄 이내 ^^) 블록체인을 살펴보면서, 블록체인의 일반적인 구조를 알아보겠습니다: 블록체인 클래스 구조 flask를 이용해 api로 제공하기 블록체인 클래스 구조 먼저, Blockchain이라는 클래스는 아래와 같은 생성자로 만들어 볼 수 있습니다: import datetime import hashlib import json class Blockchain: def __init__(self): s..
-
Corda란?Cryptography 2021. 10. 26. 22:04
코르다(Corda)는 트랜잭션 배칭(batching)을 위해서 블록을 사용하지 않기 때문에 정의상 블록체인이 아닙니다. 그러나, 코르다는 분산 원장(distributed ledger)이며 블록체인이 제공하는 모든 이점을 제공해주는데요. 예로, 금융산업과 같은 분야에서 트랜잭션에 대해 공유하고 있는 원장을 참여자들이 이벤트가 발생한 이후에 매번 끊임없이 체크해야되는 필요성을 없애줍니다 (기존 Bitcoin, Ethereum과 같은 블록체인과 달리). 이번 글에서는 아래와 같은 점들을 알아보겠습니다: 코르다란? 아키텍쳐 코르다란? 코르다는 위에서 언급한 매번 원장을 체크하지 않아도 되는 이점 외에도 다양한 장점이 존재합니다. 코르다는 참여자들이 모두 동일한 상태를 가지도록 하며, 모든 참여자가 코르다 네트워..
-
마이닝 풀이란?Cryptography 2021. 10. 26. 21:23
마이닝 풀(mining pool)은 채굴자들이 모여서 그룹으로 채굴하는 것을 말합니다. 새로운 블록이 성공적으로 채굴되면 풀 매니저는 코인베이스 트랜잭션을 받고, 블록을 채굴하기 위해서 자원을 투입한 채굴자 그룹에서 그 보상을 분배주는 역할을 수행합니다. 이러한 마이닝 풀은 solo 마이닝보다 더욱 수익성이 있는데, 마이닝 풀에서는 개별 노드가 블록을 찾았는지와 상관 없이 보상을 분배해주기 때문입니다 (물론 이상적인 경우에). 마이닝 풀 매니저가 사용할 수 있는 모델은 pay-per-share, proportional 모델 등 다양하게 존재합니다. Pay-per-share 모델에서는 마이닝 풀 매니저는 적은 수수료를 채굴에 참여하는 모든 채굴자들에게 지불하는 반면, proportional 모델에서는 지분..
-
비트코인 채굴 시스템Cryptography 2021. 10. 26. 20:58
비트코인이 탄생한 2009년 이래로, 비트코인 채굴자들은 비트코인 채굴을 위해 다양한 방법을 사용해 왔습니다. 채굴이 기반한 핵심 원리가 double SHA256 알고리즘이기 때문에, 전문가들은 그러한 해시값 계산하는 시스템을 더욱 빠르게 발전시켜 왔습니다. 이번 글에서는 비트코인에 사용되는 다양한 종류의 채굴 방법을 알아보고 어떻게 진화해왔는지 살펴보겠습니다: CPU GPU FPGA ASICs CPU CPU 채굴은 오리지널 비트코인 클라이언트에서 사용가능했던 첫 번째 타이비의 방식입니다. 사용자는 심지어 노트북이나 데스크톱 컴퓨터를 사용해 비트코인을 채굴할 수 있었습니다. CPU 채굴은 더 이상 이익이 되지 않으며 ASIC 기반의 방식과 같은 더욱 발전된 방법이 사용됩니다. CPU 채굴은 비트코인이 탄..