- Today
- Total
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- pow
- 리눅스
- solidity
- bitcoin
- 이더리움
- 코인
- defi
- blockchain
- overthewire
- pwnable
- 해시
- Crypto
- security
- DreamHack
- compound
- Linux
- Leak
- 비트코인
- PWN
- BANDiT
- shellcode
- lending
- 반딧
- V2
- web3
- 해킹
- wargame
- Ethereum
- 블록체인
- hacking
목록블록체인 (12)
Nullorm
블록체인, Web3라는 세계에 입문한지 어느덧 1년이라는 시간이 되었다. 처음에는 블록체인 기술이라는 것을 정말 “탈중앙화된 금융” 그 이상도, 이하도 아닌 것으로 인식하고 있었다. 때문에 이더리움, 솔라나와 같은 모든 종류의 코인을 그저 비트코인과 대동소이한 암호화폐 라고만 생각했다. 하지만, 온체인 상에 어플리케이션을 올리고, 탈중앙화된 방식으로 서비스를 운영하며, 꽤나 high-level의 프로그래밍 언어도 존재하고, 해킹 방식 또한 기존에 접하던 것들과는 다소 차이가 있는, 흔히 말하는 2세대 블록체인의 여러 요소들이 나에게 꽤나 매력적으로 다가왔던 것 같다. 일년간의 경험을 통해 나의 미래먹거리는 Web3라는 생각을 굳힐 수 있었고, 블록체인밸리 학회를 시작으로, 회사 인턴십을 거쳐 업사이드 아..
블록은 이전블록의 해시(prevHash라고 부르도록 하겠다.)와 트랜잭션의 묶음이라고 생각할 수 있다. 해시는 블록의 데이터를 통해 계산되기 때문에 체인의 형태로 구성될 수 있다. 만약, 블록이 생성된 이후에 블록의 데이터를 변경하게 되면, 해당 블록의 블록해시(block hash)가 바뀌고, 이는 이후 생성된 다른 블록들에 영향을 주어 모든 검증자들이 알아차릴 수 있기 때문에, 다음 블록이 모두 무효화되어 임의 변조를 막을 수 있다.네트워크의 모든 참가자들이 동기화된(Syncronized) 상태(State)를 유지하고, 모든 트랜잭션에 동의를 하기 쉽게 하기 위해 다수의 트랜잭션들을 한 개의 블록으로 묶어서 Commit, agree, Syncronize를 한 번에 처리한다. 모든 블록들이 적절하게 검증..
오늘은 web3에서 Solidity를 사용하는 사람이라면 한 번쯤은 짚고넘어가야할 필요가 있는 payable 키워드를 들고와보았다. 처음 solidity를 공부할 때 부터 대체 저 키워드가 무엇인지부터 시작해서 transfer, call, send로 대체 왜 나뉘는지, 대체 어떻게 쓰는건지도 어려웠던 것 같은 기억이 있는데, 나처럼 삽질하지 말고 이거 하나 보고 그냥 가볍게 넘어가보도록 하자. ^__^ 1. payable 키워드 다른 프로그래밍 언어와 달리, solidity는 가상화폐(코인)을 동력으로 하는 언어이다. 그렇다 보니, 다른 언어에서는 쓰이지 않는 송금 관련 함수 또는 키워드들이 존재하곤 한다. 즉, 가상화폐(코인)로 접근하기 위한 키워드가 사용된다는 것이다. 이더리움(ethereum) 생태..
Solidity를 하다보면, onlyOwner라는 이름의 modifier가 많이 쓰인다. 그냥 항상 송금/출금 등의 함수에서 당연히 붙이는거니까~ 하면서 쓰고있었는데, 정확한 문법에 대한 이해가 필요할 듯 해 정리해보려고 한다. modifier onlyOwner() { require(msg.sender == owner, "caller is not the owner"); _; } function withdraw() public onlyOwner { payable(owner).transfer(address(this).balance); } 줄마다 보면서 해석해봐야할 것 같다. 1. modifier 함수변경자의 의미 modifier는 "함수변경자, 제어자" 라는 이름으로도 불린다. 즉, 함수의 기능에 있어 특정..
이전 작업증명(PoW)에 이어, 이번에는 비트코인을 구성하는 블록체인 네트워크에 대해 공부해보도록 하자. 이번 글에서는, 지금까지 블록체인을 공부하면서 계속 공부했던 블록체인의 구조를 전체적으로 한번 보게될 것 같다. 블록체인(또는 비트코인구조)에 대한 다른 기초적인 개념이 잘 탑재되어있지 않다면, 이번 장을 따라가기 힘들 수도 있다.(아닐수도 있긴 하다 ㅎ) 이 포스팅을 쓰기 전에, 한번 bitcoin의 오픈소스 코드를 조금 읽어보고 왔다. (트랜잭션, 블록 생성 관련 코드) 그렇게 얻은 지식들을 조금 더 공유해보고자 한다. 비트코인 오픈소스 깃헙 링크 https://github.com/bitcoin/bitcoin/tree/master GitHub - bitcoin/bitcoin: Bitcoin Cor..
지난 글에서 비트코인 백서(White Paper)를 읽어보며, 비트코인의 이중지불 문제가 무엇이고, 왜 발생했는지 등에 대해 알아보았다. (아래 링크 참고) https://nullorm.tistory.com/38 [Bitcoin] 블록체인 기술공부 / 비트코인 백서 공부 (1. 초록) / 이중지불 문제 블록체인 공부를 시작했는데, 무엇을 먼저 시작해야할지 모르겠고, 무작정 기술로만 들어가면 중간에 흥미를 잃을 듯 하여 코인들의 목적, 원리 등을 직접 까(open)보면서 공부해보려고 한다. 공 nullorm.tistory.com 이번 글에서는 이중지불 문제를 비트코인에서 어떻게 해결했는지 살펴보도록 하자. 1. 이중지불이 뭘까? 짚어보지도 않고 넘어가는건 좀 그래서 일단 간단하게 짚고만 넘어가겠다. 이중지..
블록체인 가상화폐를 대표하는 비트코인은 채굴, 검증 등 모든 수학적 과정 안에 이 SHA-256이라는 알고리즘이 등장하는 것으로 보인다. 사실 해시알고리즘까지 알아야하나? 싶긴 하지만 그래도 일단 코인수학&암호학 이라는 카테고리를 만든 김에 첫 번째 수학적 내용으로 적절해보이긴 해서 공부해보았다. 1. SHA-256? SHA-256은 메시지, 파일 암호화 또는 무결성검증 등에 널리 사용되는 일방향 암호화 해싱 알고리즘이다. 대상 데이터를 256-bit 길이의 hash값으로 변환하는 역할을 한다. 해시 알고리즘의 가장 큰 특징은 암호화 대상 데이터(평문)의 값이 아주 조금만 달라져도 결과값(암호문)이 크게 달라지는 것이다. 한번 예시와 함께 살펴보자. 2. 예시 (python) import hashlib ..
지난편에 이어서 이번 포스팅에서는 비트코인의 거래(Transaction)에 대해 한번 공부해보도록 해야겠다. 등장하는 단어들이 다소 어려운 감이 없지않아 있기 때문에, 정말 하나하나 다 설명하면서 넘어가보도록 하겠다. 비트코인 백서: 2. 거래 우리는 전자 화폐(electronic coin)를 디지털 서명의 체인으로 정의한다. 비트코인에서 정의한 전자화폐(가상화폐)는 바로 '디지털 서명의 체인'이라는 방식인 것이다. 이게 무슨 말일까? 우선 그 전에, 디지털 서명을 전자서명과 헷갈릴 수 있을 것 같아 이 둘의 차이점을 짚으면서 개념을 확인해보자. 차이점이라기 보다는 범주의 차이? 정도이다. 전자서명 안에 디지털서명이 있다. 전자서명? 미 전자 상거래법에서는 전자 서명을 전자적 수단에 의해 생성,전송,전달..
지난번 포스팅에서 다뤘었다. 대체 PoW가 무엇인가!!! 작업증명이 그래서 뭔데!!! 자. 지금부터 한번 시작해보도록 하자. 라는 말을 쓰는 지금 시점에서, 나는 작업증명이 뭔지 모른다. 따라서, 이 글을 읽는 사람들에게 누구보다 모르는 사람의 관점에서 잘 설명할 수 있지 않을까? (라는 희망.) 1. 서론 블록체인 네트워크에서 비트코인은 블록체인에 새로운 블록을 추가하는 방식으로 조폐(화폐를 제조) 및 송금을 한다. 작업증명은 이 조폐 및 송금에서 사용되는 트랜잭션(Transaction: 거래)시에 이를 거래하는 방법이다. 나카모토 사토시의 비트코인 백서에는 이런 말이 있었다(비트코인 백서 서론) 필요한 것은 신뢰 대신 암호학적 증명(cryptographic proof)에 기반해, 거래 의사가 있는 두..
블록체인 공부를 시작했는데, 무엇을 먼저 시작해야할지 모르겠고, 무작정 기술로만 들어가면 중간에 흥미를 잃을 듯 하여 코인들의 목적, 원리 등을 직접 까(open)보면서 공부해보려고 한다. 공부를 하는 것이기 때문에 "~인 것으로 보인다"라는 워딩이 많이 들어가는건 양해해주시길.. 또한 이번 글에서는 개요 및 초록, 그리고 몇 중요한 개념들에 대해서만 정리해보고 다음 글부터 본격적으로 시작해보려 한다. 1. 개요 비트코인은 가명의 기술자 '나카모토 사토시'가 블록체인 기술을 기반으로 개발한 최초의 디지털 자산. 기존 화폐(원, 달러)와 달리 정부, 은행 등의 개입 없이 미리 만들어진 알고리즘에 의해서만 발행되며, 거래 내역은 P2P네트워크에 참여한 사용자들에 의해 검증 및 관리되는 구조이다. 재래 통화의..