일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 분산원장
- 재진입공격
- 비트코인
- Algorithm
- reentrancy
- dsYM
- 이더리움
- 블록체인 기술
- .dsym
- solidity
- ethereum
- 프로그래머스
- Mining
- Blockchain
- PBFT
- pow
- Crash
- DEFI
- ios
- viewcontroller
- 블록체인
- External Call
- 암호화폐
- DPOS
- Xcode
- Report
- POS
- view 이동
- 알고리즘
- 백준
- Today
- Total
목록전체 글 (65)
개발하기좋은날
Fallback, Receive 함수에 대해 알아보겠습니다 Fallback - 대비책 함수 - 무기명 함수 즉 이름이 없는 함수 - external과 payable이 필수 어떤 경우에 사용이 되는가? - 스마트 컨트랙트가 이더를 받을수 있게함 - 이더를 받고 난 후 어떠한 행동을 취하게 할 수 있음 - Call 함수로 없는 함수가 불려질떄, 어떠한 행동을 취하게 할 수 있음 0.6 이전 버전의 Fallback은 아래와 같이 사용 function() external payable { } 0.6 이후 fallback Fallback은 Recevie와 Fallback 두가지 형태로 나뉨 Receive: 순수하게 이더만 받을때 작동 Fallback : 함수를 실행하면서 이더를 보낼때, 불려진 함수가 없을 때 작..
External call에 이어서 관련된 재진입 공격에 대해 알아봅시다. 이더리움의 DAO 해킹 사건이후 가장 요구되는 기본 보안 사항이다 보통 재진입 공격같은 경우 External Call의 address.call에 의해 발생한다 DAO 사건또한 이러한 문제 떄문에 발생한 이슈입니다 1. 단일 함수에 대한 재진입 입니다 // INSECURE mapping (address => uint) private userBalances; function withdrawBalance() public { uint amountToWithdraw = userBalances[msg.sender]; (bool success, ) = msg.sender.call.value(amountToWithdraw)(""); // At t..
모든 체인의 Contract는 보안성이 중요하다 순식간에 자본금이 사라질수있기 떄문이다. 시큐리티 코딩은 기본적으로 스마트컨트랙트 개발자라면 알아두어야할 사항이라 생각하여 포스팅을 시작한다 External Call 신뢰성 - External Call 잠재적인 위험에 노출되어있다고 생각해도 무방 하다. - External Call은 해당 계약및 의존하는 다른 계약에서 악성 코드를 실행 할 수 있기 때문이다. - 그래서 모든 External Call은 잠재적인 보안 위험으로 취급되어 최대한 외부호출을 제거하거나 권장 사항을 사용하여 위험을 최소화 해야한다 1. 신뢰할 수 없는 계약의 표시 - 가장 먼저 외부 계약에 관련해서 상호 작용이 잠재적으로 안전하지 않다는 것을 분명히 하자 // bad Bank.wit..

블록체인에서 흔히 '채굴' 이라는 단어는 블록체인 네트워크에 노드로 트랜잭션을 검증하여 분산원장을 기록하고 보상으로 암호화폐를 얻는 것을 말함 여기서 블록체인 네트워크에서 새로운 블록을 생성하고 그 대가로 암호화폐를 지급받는 노드들이 '채굴자' 라고 얘기하조 그럼 우리 노드들은 채굴을 왜하는걸까? (당연히 돈이 되니깐 하조..ㅋㅋ) 이익이 되니깐 하는거다 이건 비트코인 게임 이론이랑도 연관이 있다 대표적으로 비트코인의 Pow에 대해 알아봅시다 이 노드(채굴자)는 어떤일 을 하나면 (이것도 일이조) - 네트워크 동기화 : 새로운 노드가 비트코인 네트워크에 합류하면, 다른 노드에게 과거의 블록들을 요청해 블록체인을 다운로드 할수있게 해주조 - 트랜잭션 검증 : 새로운 트랜잭션을 수신한 노드는 반드시 해당 트..

# 4주간의 여정 4주라는 시간이 나에겐 길게 느껴지지 않았었다, 어떤 프로젝트를 했었을때 4주는 기본적으로 개발만 완료된 상태였다 하지만 마지막 팀프로젝트에서의 4주는 개발이 완료되고 Minimum 한 기능이 완료되고 나서 Advance한 기능들 이후 서비스에서 필요한 예외 처리, 시나리오 테스트 이후 보완 등 지속적인 장애에 관련된 부분을더 신경 쓸수있었다 팀프로젝트의 가장큰 장점은 역시 퍼포먼스인거같다 서로 의지 하고 믿으면서 도움을 구했을때 문제가 생겼을경우 빠르게 문제를 해결할수있는 창구가 되기도 하고 모듈별로 개발하여 합치는 GIT의 특성떄문에 프로젝트의 완성도가 빠르게 높아짐을 느낄수가있었다 확실히 개인으로 프로젝트를 진행하던 나한테 팀이라는게 얼만나 중요한지 깨달았고 그파워가 프로젝트의 완..

목표 : SNS IC 커뮤니티 개발 팀원 : 4명 기한 : 2주 사용 스택 : React, MongoDB, nodejs, solidity(eth) 담당 파트 : 프론트, 백앤드 이전 회사에서 풀스택으로 근무 했을때 팀 으로 프로젝트를진행한다는 느낌을 받은적이없었다 이번 기회를 통해서 팀프로젝트을 경험해 본다 먼저 Git을 활용한 프로젝트 관리를 통해 기능을 나누어 구현을 하고 합병하고 커뮤니케이션하며 하나씩 하나의 목표를 위해 함께한다는는게 즐겁다는것을 느꼈으며 혼자했을때의 답답함을 벗어던지고 대화를 통해 다양한 해결 방법이 도출될수있다는것을 느끼며 팀에 대한 메리트를 느끼게 되었다 다들 팀워크가 서툴어서 의사소통의 문제와 제대로된 업무 분담이 힘들어 겹쳐진 부분도있어 합병에 충돌이 나는 문제를 겪는 조..

프로젝트도 끝나고 휴식으로 충전도좀 하고!! 다시 기본적인 블록체인의 이론에대해 정리 해보는 시간을 가져보자 프루닝(Pruning)? 경량화 기법으로, 인공 지능 분야에서 검색 모델을 학습한후에 불필요하거나 중요도가 낮은 노드 등을 제거하는 기술 이게 무슨말이냐면 중요한건만 냅두고 불필요한건 삭제하자 이런말이다 블록체인에서는 오래된 블록체인 데이터를 자동으로 삭제하는데 사용이된다 대표적으로 비트코인과 이더리움에 대해 알아보자 - 비트코인 비트코인 노드는 블록체인의 사본을 보관하고 네트워크를 실행하는데 필요한 여러 태스크를 수행 하는데 많은 스토리지를 낭비하는 문제가 있다 많은 스토리지? 비트코인은 300GB 이상을 차지하는 블록체인 DB가 있는데 2009년부터 지금까지 해당 네트워크가 중단된적이 없기떄문..

IPFS(Inter Planetary File System) 으로 Git, BitTorrent, kademlia, Bitcoin 같은 서비스에서 영감을 받아 시작된 오픈 소스 프로젝트 IPFS는 - 분산형 파일 시스템에 데이터를 저장하고 인터넷으로 공유하기 위한 프로토콜 - P2P 네트워크 사용 이러한 특징을 가지고있다 기존 HTTP 프로토콜 방식은 데이터가 위치한 곳의 주소를 찾아가서 요청한 컨텐츠를 가져오는 방식이라면, IPFS는 전 세계 여러 컴퓨터에 분산 저장된 각 데이터 조각으로 잘게 나눠서 가져온 후 하나로 합쳐서 보여주는 방식으로 동작 합니다 IPFS는 프로토콜이면서 파일시스템, 웹, 모듈러, 암호화, p2p, CDN, 네임 서비스등 모든것을 아우르는 말입니다 프로토콜 - Content-ad..