일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 분산원장
- 백준
- ethereum
- 블록체인 기술
- view 이동
- pow
- Algorithm
- Xcode
- PBFT
- viewcontroller
- solidity
- POS
- 비트코인
- DEFI
- 알고리즘
- Blockchain
- 프로그래머스
- 이더리움
- dsYM
- DPOS
- reentrancy
- Mining
- .dsym
- External Call
- ios
- Crash
- 블록체인
- 암호화폐
- Report
- 재진입공격
- Today
- Total
목록분류 전체보기 (65)
개발하기좋은날
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/8ok6V/btrGCEbegbP/sVzPSuRzrfmUzgR8C93pnk/img.png)
퍼블릭 블록체인 기준 먼저, 분산 데이터 베이스와 블록체인의 가장 큰 차이점 - 악의적인 사용자를 전제하고 만들어진 시스템 (합의 알고리즘) - 운영 주체가 사라져도 시스템 유지 가능 (거버넌스) 분산 데이터베이스도 분산시켜 데이터를 저장하는것은 같지만 악의적인 사용자를 전제하지는 않는다 이러한 차이점은 분산 데이터베이스 배경 떄문인데 일반적으로 재해 복구, 백업, 성능상의 이점 만 주로 고려했기 때문 블록체인 또한 분산 원장의 기술로서 특징과 차이점에 대해 알아보자 분산 원장은 여러 위치, 여러 사람에 의해 복제, 공유 또는 동기화된 데이터 베이스를 어떻게 합의 할것이냐에 대한 기술 분산 원장 기술에서는 모든 참여자가 거래내역이 기록된 원장 전체를 각각 보관하고 새로운 거래를 반영하여 갱신 하는 작업도..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bHO0Nu/btrGuqyaBu6/zb15iqujVfqSmXHhmtG4ck/img.png)
분산 데이터베이스란? - 하나의 데이터베이스 관리 시스템으로, 여러 CPU에 연결된 저장장치들을 제어하는 형태의 데이터베이스 물리적으로 떨어져있고 여러 노드들은 네트워크를 통해 연결됨으로, 투명성 확보가 중요 분산 데이터 베이스의 대표적인 3가지 기술 클러스터링 레플리케이션 샤딩 클러스터링 - 데이터 베이스가 서버가 죽으면 어떻게 해야하지? - 클러스터링은 DB 서버가 죽었을때 가용성을 위해 서버를 여러개로 만드는 방법 - 데이터베이스는 한개이기 떄문에 병목이 존재한다, 비용부담이 크다, 장애 대응에 강하다 - Active-Active 모드, Active-Standby 모드가 있다 - Active-Active 모드 클러스터링된 서버를 전부 가동하여 항상 장애에 대응할수있게 - Active-Standby ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bz8rJ0/btrGv4IstcP/ILTJb8ZxXoI5yv5xtvKKLk/img.png)
BFS (너비 우선 탐색) 정의 - 루트 노드 또는 임의의 노드에서 시작해서 인접한 노드를 먼저 탐색하는 방법 동작 과정 1. 먼저 깊이가 1인 노드들(1번,2번,4번)을 먼저 방문하게 된다 2. 방문한 노드는 Queue에 넣어서 보관하게된다 3. 깊이가 1 인 경로를 전부 탐색하면 큐에서 하나씩꺼내서 다음 깊이인 깊이2 노드를 방문한다 4. 1 ~ 3 과정 반복 BFS 특징 직관적이지 않은 면이 있다. BFS는 시작 노드에서 시작해서 거리에 따라 단계별로 탐색한다고 볼 수 있다. BFS는 재귀적으로 동작하지 않는다. 이 알고리즘을 구현할 때 가장 큰 차이점은, 그래프 탐색의 경우 어떤 노드를 방문했었는지 여부를 반드시 검사 해야 한다는 것이다. 이를 검사하지 않을 경우 무한루프에 빠질 위험이 있다. B..
문제 내용 : 현재의 비밀번호를 새 비밀번호로 변경하는데 필요한 최소 동작의 수를 리턴하는것 조건 : - 1000이상의 숫자 - 한 번에 한 개의 숫자만 변경 가능 - 4자리의 소수인 비밀번호로만 변경 가능 풀이 과정 : 처음에는 BFS 알고리즘 적용하여 풀생각을 못하여 무작정 풀었지만 몇개의 테스트 케이스 밖 에 통과하지 못하였다 이후 너비 탐색사용하여 모든 경우의 수를 찾으면서 최소한의 접근이 필요했으며 그 과정속에서 조건에 맞을때 방문 FLAG 변경과 조건2에 부합하는 count를 증가시켜서 최소한의 접근과 모든 경우의 수를 판별하여 newPwd를 찾아 낼수있었다 풀이 코드 : const primePassword = (curPwd, newPwd) => { if(curPwd === newPwd) re..
거버넌스란? - 블록체인 네트워크를 유지하기 위해 구성원들간의 이해관계 조정 블록체인에서 거버넌스는 오프체인 거버넌스, 온체인 거버넌스로 나누어 진다 그래서 온체인 거버넌스란 무엇인가? 블록체인 네트워크 구성요소 이외에 다른 요소가 없이 체인 내부에서 거버넌스가 이루어질 수 있는 형태를 뜻함 개발자나 채굴자 등의 모두가 블록체인 상 투표에 참여하여 정책을 수정할 수 있는 방식이다. 이오스, 테조스 등 많은 코인들이 온 체인 거버넌스를 채택하고 있다. 그럼 오프체인은 무엇일까? 네트워크 외에서도 거버넌스가 이루어져 블록체인 네트워크 내부에까지 직접적인 영향을 주는 형태를 오프체인 거버넌스라고 한다. 예를들어 비트코인기능개선제안(BIP), 이더리움기능개선제안(EIP) 등이 있을 수 있겠다. 거버넌스의 효과와..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/LEW6O/btrFY8doq8e/By75mKoFJrq2bchsXy0TuK/img.png)
합의 알고리즘이란, 다수의 참여자들이 통일된 의사결정을 하기 위해 사용하는 알고리즘 블록체인에서 합의 알고리즘이 필요한 이유? - 블록체인에서는 네트워크에 참여하는 모든 참여자들이 동일한 데이터를 복사하여 분산 저장하기 때문에 원본과 사본의 구별이 없기에 해당 알고리즘이 필요 - 중앙화된 서버대신 수많은 노드에 데이터가 보관및 저장되기 때문에 데이터가 위변조되지 않은 원본이라는 것이라는 것을 상호간에 합의하는 과정이 필요 대표적인 합의 알고리즘엔 Pow(Proof of Work), Pos(Proof of Stake), DPos(Delegated Proof of Stake) 등이 있다 합의 알고리즘에 대해 간단하게 알아보자 작업 증명(Pow) - 비트코인 창시자 사토시 나카모토가 제안한 알고리즘 - 블록생..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/biuzjs/btrFVhtJQeD/IpjKVhJq96lM8bFNJ5R8j0/img.png)
블록체인에서 블록은 헤더(Header) + 바디(Body)로 구성되어있다 - 헤더(Header)는 메타데이터 - 바디(Body)는 트랜잭션의 리스트로 구성 메타 데이터는 - 해당 블록은 체인에서 몇 번째 블록인지 - 해당 블록에서 몇 개의 트랜잭션이 있는지 - 해당 블록 생성은 누가 했는가 - 해당 블록의 크기, 총 전송량은 얼마인가 블록(Block)을 설명하기위해 필요한 데이터들이 들어있다 * 참고로 헤더에 Nonce 값은 Body Nonce랑은 다른 역할 그럼 Body에서 트랜잭션은 무엇인가? 먼저 트랜잭션이란, 위키 설명에서는 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위 블록체인에서 마찬가지로 상호작용 및 작업 수행의 논리적 단위, 블록체인에서 일어나는 모든 활동..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/lwY8u/btrFRcUHV1g/7uZEvFEnlYVDS4JAHy0TBK/img.png)
블록체인은 활용되는 목적 또는 공개 범위에 따라 여러 방법으로 블록체인 네트워크를 구축할수있다 1. 퍼블릭 블록체인 (Public Blockchain) 2. 프라이빗 블록체인 (Private Blockchain) 3. 컨소시엄 블록체인(Consortium Blockchain) 퍼블릭 블록체인 (Public Blockchain) - 개방형 블록체인은 누구나 트랜잭션을 생성 프라이빗 블록체인 (Private Blockchain) - 폐쇄형 블록체인은 서비스 제공자 (기업, 기관)의 승인을 받아야만 참여할수있다 - 엔터프라이즈 블록체인 이라고도함 - 리눅스 재단 오픈소스 프로젝트인 "하이퍼레저" 또한 프라이빗 블록체인 컨소시엄 블록체인(Consortium Blockchain) - 동일한 목적이나 가치를 가지고..