- 설립연도 10년 이내 - 매출액 100억 이하 - 직원 수 30명 이하 위 조건을 만족하는 기업의 company_classification을 "STARTUP"으로 수정하는 스크립트를 작성하고 있었습니다. ``` update company set company_classification = "STARTUP" where company_number in (((select company_number from company where LENGTH(established_at) = 4 and established_at >= date_format(curdate(), '%Y') - 10) union all (select company_number from company where LENGTH(established_a..
블록체인에서 발신자가 트랜잭션을 네트워크에 브로드캐스팅하기 전에 트랜잭션을 개인 키로 디지털 서명하는 데, 이를 통해 데이터 출처 인증과 부인 방지를 제공하며 이를 통해 발신자가 비트코인 같은 자산의 정당한 소유자임을 증명한다. 디지털 서명에는 몇 가지 중요한 속성이 있는데, 진본성, 위조 불가능성, 재사용 불가능성 등이다. 진본성 수신자가 디지털 서명을 검증할 수 있다. 위조 불가능성 메시지를 보낸 사람만 개인 키를 사용해 서명 기능을 사용할 수 있게 한다. 재사용 불가능성 디지털 서명을 메시지에서 분리해 다른 메시지에 다시 사용하지 못한다. RSA 디지털 서명 알고리즘 RSA 암호화를 활용한 디지털 서명은 다음과 같은 단계를 거친다. 데이터 패킷의 해시 값 계산 해시를 수신자가 다시 계산한 다음 원본..
해시 테이블 키를 값에 매핑하는 데 사용하는 데이터 구조이다. 해시 함수는 필요한 값을 찾을 수 있는 버킷 배열에 대한 인덱스를 계산하는 데에 사용되며 버킷 배열에는 레코드가 저장되 있고 레코드는 해시 키를 통해 저장되고 버킷은 특정한 순서로 이루어진다. 오라클 데이터베이스의 해시 인덱스로 생각하면 편하다. DHT를 데이터가 여러 노드에 분산돼 있으며 노드가 P2P 네트워크의 버킷에 해당하는 데이터 구조라고 생각할 수 있다. DHT DHT는 해시 함수를 통해 데이터로부터 간결한 키를 생성하고 이 키는 P2P 네트워크의 데이터와 연결된다. 네트워크상의 사용자가 데이터를 요청하면 파일명을 다시 해싱하여 동일한 키를 생성할 수 있으며 네트워크에 있는 어떤 노드에든 해당 데이터를 찾도록 요청할 수 있다. DHT..
트라이 트라이, 또는 디지털 트리란 순서가 있는 트리 데이터 구조로, 데이터셋을 저장하는 데에 사용된다. 패트리샤 페트리샤란 문자와 숫자로 부호화한 정보를 검색하는 실용적 알고리즘(Practical Algorithm to Retrieve Information Coded in Alphanumeric)의 약자로 기수 트리라고도 한다. 패트리샤 트리는 트라이 형태의 간결한 표현 구조로써 자식 노드가 하나 뿐인 노드를 그 부모 노드와 병합한다. 머클-패트리샤 트리 패트리샤 트리와 머클 트리의 정의에 근거한 트리로, 루트 노드에 전체 데이터 구조의 해시 값이 있는 트리이다.
랄프 머클이 제안한 자료구조로써 대구모 데이터셋을 안전하고 효율적으로 검증할 수 있다. 머클 트리는 이진 트리로, 입력을 먼저 리프 노드에 배치한 다음, 자식 노드 쌍의 값을 함께 해싱하여 부모 노드의 값을 구하는 방식으로 머클 트리라는 하나의 해시 값을 얻ㅇ르 때까지 부모 노드의 값을 구해나가는 트리이다. 이진트리이므로 조회 시 logN의 시간 복잡도를 가져 탐색 속도가 빠르며, 해시값을 통해 이진 트리를 구성하게 되므로 데이터 위변조 시 빠르게 알아차릴 수 있다. 또한 풀노드를 저장하는 것이 아닌, 일부 노드만을 저장하여 라이트 노드로써 데이터를 저장할 수 있기에 효율적이다.
블록체인과 굉장히 관련깊은 분야인 암호학에 대해 공부하면서 다양한 암호화폐 지갑에서 로컬에 저장돼 있는 데이터를 암호화하는 방식인 AES에 대해 간략히 서술하였다. DES(Data Encryption Standard) DES는 미국 표준 기술 연구소에서 암호화 표준 알고리즘으로 도입했으며, 1980년대와 1990년대에 널리 사용되었으나 이후 무차별 공격에 저항력이 그리 좋지 않은 것으로 밝혀졌다. DES는 56비트의 길이의 키를 사용하여 암호화하였는데 이로 인해 문제가 야기되어 삼중 DES의 도입으로 해결했으나 3DES는 56비트 키를 3개 이용하고 DES 알고리즘도 마찬가지로 세 번 실행하는 방식으로 168비트 키를 사용하도록 젤안되었으며, 따라서 무차별 공격을 거의 불가능하게 만들었다. 그러나 성능 ..