전체 글71 비트코인 기술(탭루트, Taproot) 탭루트 (Taproot)2021년 11월 14일, 블록 높이 709,632에서 탭루트가 활성화됐다.세그윗 이후 4년 만의 주요 업그레이드로, BIP 340(슈노르 서명), BIP 341(탭루트), BIP 342(탭스크립트)가 결합돼 프라이버시·효율성·프로그래밍 가능성을 한 단계 끌어올렸다.탭루트 이전의 문제기존 비트코인에서는 복잡한 조건(3-of-5 멀티시그 등)을 쓸 때 그 구조 전체가 블록체인에 드러났다.프라이버시: 멀티시그 여부, 참여자 수, 서명자 수가 공개됐다.비효율: 여러 서명을 포함해야 해서 데이터 크기가 커지고 수수료가 비싸졌다.단순 전송과 복잡한 컨트랙트가 외관상 달랐기 때문에 체인 분석이 용이했다.BIP 340: 슈노르 서명사토시는 특허 문제 때문에 ECDSA를 선택했다. 특허가 만료된.. 2026. 10. 29. 비트코인 기술(멤풀, Mempool) 멤풀이란내 비트코인 거래가 10분째 안 되는 이유지갑에서 전송 버튼을 누르면 트랜잭션은 즉시 블록에 기록되지 않는다. 전송 시점과 블록 포함 시점 사이에는 반드시 대기 구간이 있다. 이 공간이 멤풀(Mempool, Memory Pool) 이다.정의멤풀은 아직 블록에 포함되지 않은 미확인(unconfirmed) 트랜잭션들이 대기하는 임시 저장 공간이다. 비트코인 블록은 평균 10분마다 생성되므로, 그 사이에 발생한 트랜잭션은 멤풀에서 자기 차례를 기다린다. 채굴자가 다음 블록을 만들 때 멤풀에서 트랜잭션을 선택해 담는다.흐름은 다음과 같다.지갑 전송 → 네트워크 전파 → 멤풀 대기 → 채굴자 선택 → 블록 포함 → 확인 완료“하나의 멤풀”은 없다흔히 “비트코인 멤풀”이라고 단일한 장소처럼 말하지만, 실제로.. 2026. 10. 29. Chapter5. 데코레이터 활용(어느 곳에서나 동작하는 데코레이터 만들기) 어느 곳에서나 동작하는 데코레이터 만들기함수에만 잘 동작하는 데코레이터가 아니라, 함수와 메서드 모두에서 잘 동작하는 범용 데코레이터를 만드는 방법을 알아보자데코레이터를 만들 때 보통 함수를 기준으로 먼저 설계한다. 예제)DBDriver 객체는 연결 문자열을 받아서 데이터베이스에 연결하고 DB 연산을 수행하는 객체이다. 메서드는 DB 정보 문자열을 받아서 DBDriver 인스턴스를 생성한다. 데코레이터는 이러한 변환을 자동화해 문자열을 받아 DBDriver를 생성하고 함수에 전달한다. 따라서마치 객체를 직접 받은 것처럼 가정할 수 있다. 이 데코레이터는 일반 함수에서는 잘 동작함def inject_db_driver(function): @wraps(function) def wrapped(dbs.. 2026. 10. 25. 비트코인 기술(세그윗 SegWit, 라이트닝 네트워크, UTXO) 세그윗(SegWit): 서명 분리로 확장하기세그윗(Segregated Witness)은 2017년 8월에 활성화된 비트코인 프로토콜 업그레이드트랜잭션에서 서명 데이터(witness)를 본문에서 분리해 블록의 실질적 용량을 늘린 기술비트코인 역사상 가장 격렬했던 거버넌스 논쟁인 블록사이즈 전쟁의 결과물블록사이즈 전쟁의 맥락 (2015–2017)1MB 블록 한도에 트랜잭션 수요가 근접하면서 확장성 문제가 핵심 쟁점이 됐다. 두 진영이 대립했다.빅 블록 진영: 블록 크기를 2MB·8MB 이상으로 직접 늘리는 하드 포크를 주장. 즉시 처리량을 늘릴 수 있다는 논리. 대형 채굴 풀과 일부 기업이 포함됐다.스몰 블록 진영: 블록 크기 증가가 노드 운영 비용을 높여 탈중앙화를 약화시킨다고 우려. 세그윗 같은 소프트 .. 2026. 10. 18. Chapter5. 데코레이터 활용(흔한 실수 피하기 - 래핑된 원본 객체의 데이터 보존, 데코레이터 부작용 처리) 래핑된 원본 객체의 데이터 보존문제점: 원본 메타데이터 손실데코레이터를 함수에 적용하면 원본 함수가 wrapped라는 새로운 함수로 감싸지게 됨.이로 인해 원본 함수 이름, 문서(docstring), 어노테이션(annotations) 등 고유의 메타데이터가 손실되고 래퍼 함수의 정보로 덮어씌워짐.결과: 디버깅이 어려워지고, doctest 같은 단위 테스트 도구가 정상적으로 동작하지 않는 부작용이 발생.def trace_decorator(function): def wrapped(*args, **kwargs): logger.info("%s 실행", function.__qualname__) return function(*args, **kwargs) return wrapped.. 2026. 10. 18. 비트코인 기술(해시 함수 SHA-256, 난이도 조정, 머클 트리) 비트코인 기술해시 함수(SHA-256)비트코인을 한 줄로 줄이면 “해시 함수 위에 올린 돈”이다. 작업증명, 블록 연결, 머클 트리, 주소 생성, 거래 ID까지 전부 같은 함수에 의존한다.개념해시 함수는 임의 길이의 입력을 받아 고정 길이의 출력을 내는 함수.SHA-256은 어떤 데이터를 넣어도 256비트(64자리 16진수)를 반환한다. 1바이트 문자도, 1GB 영상도 같은 길이로 반환된다.📌 해시 함수가 암호학적으로 쓸모 있으려면 다음 성질이 필요함.결정성: 같은 입력은 항상 같은 출력을 만든다.산정 효율: 입력 → 해시 계산은 빠르다.역상 저항(Pre-image resistance): 해시값만 보고 원래 입력을 알아내는 것은 사실상 불가능하다.충돌 저항(Collision resistance): 서로.. 2026. 9. 27. Chapter5. 데코레이터 활용(파라미터 변환, 유효성 검사, 코드추적) 데코레이터 활용 우수 사례데코레이터를 언제, 어떤 목적으로 쓰면 좋은지 데코레이터가 특히 유용한 대표적인 상황들을 소개한다. 데코레이터가 좋은 선택이 되는 주요 경우활용 사례설명효과파라미터 변환• 복잡하고 반복적인 인자를 받는 레거시 함수나 프레임워크 함수에서, 데코레이터가 중간에서 인자를 가로채 가공한 뒤 깔끔한 도메인 객체(helper)로 변환해줌• 파라미터가 어떻게 처리되는지 세부사항을 숨기면서 함수의 서명을 변경함• 복잡한 함수에 더 깔끔한 인터페이스를 제공할 때 유용. 단, 의도를 명확히 해야 함• 대규모 리팩토링 없이도 함수의 서명을 더 간단하고 직관적으로 변경할 수 있으며, 디자인 패턴에서의 어댑터(Adapter) 역할을 수행코드 추적 (Tracing)• 기존 코드를 전혀 수정하지 않고 외부.. 2026. 9. 27. 비트코인 저축 및 DCA 전략 비트코인 저축 및 DCA 전략1. 전통적 저축의 한계와 비트코인의 대안성현상: 시중은행 정기예금 금리는 3~4% 수준이나, 주요 생활비 등 체감 물가 상승률이 이를 상회하여 현금의 실질 구매력이 감소함. 법정화폐는 양적완화(QE) 등으로 통화량이 증가하며 가치가 희석됨.분석: 인플레이션 환경에서는 실물 자산 보유자가 이득을 얻고, 현금 저축자는 손해를 보는 구조적 부의 재분배가 발생함.비트코인을 저축 수단으로 활용하는 이유:고정 공급: 2,100만 개로 발행량이 수학적으로 제한됨. 4년 주기의 반감기로 인해 신규 발행률이 감소함(2024년 이후 연 약 0.8%).보관 비용의 최소화: 보관료, 취득세 없이 시드 문구만으로 보관 가능함.분할성: 최소 단위인 1사토시(0.00000001 BTC)로 잘게 쪼개어.. 2026. 9. 20. Chapter5. 고급 데코레이터(코루틴(coroutine)을 위한 데코레이터, 데코레이터를 위한 확장 구문) 코루틴(coroutine)을 위한 데코레이터코루틴(Coroutine): 비동기(Asynchronous) 작업을 위한 특별한 함수일반 함수는 호출되면 끝까지 실행된 뒤 종료되지만, 코루틴은 실행을 중간에 멈췄다가(await) 나중에 다시 이어서 실행할 수 있는 특별한 함수파이썬에서는 async def 키워드로 정의. 내부에서 await를 만나면 제어권을 양도하고 대기 상태로 들어가며, 그 동안 CPU나 이벤트 루프가 다른 작업을 처리할 수 있도록 함예시 상황) 쇼핑몰 서버에서 사용자 주문을 처리할 때, 외부 결제모듈 API 응답을 기다리는 n초 동안 멈춰있지 않고, 대기 시간 동안 다른 사용자의 주문이나 조회 요청을 처리함. 이로 인해 적은 자원으로도 수많은 요청을 동시에 처리할 수 있음.def 일반함수(.. 2026. 9. 20. 이전 1 2 3 4 ··· 8 다음