분류 전체보기110 비트코인의 transaction과 script language 이번 글의 선수지식으로는 비트코인의 UTXO 개념에 대해 알고있어야 합니다. 잘 모르시는 분은 아래 링크를 참고해주세요. 비트코인의 UTXO: up-to-date-items.tistory.com/91 사실 비트코인은 서로 주고 받는 개념이 아닙니다. 단순히 생각해보았을 때 내가 누군가에게 1BTC를 보냈다면 내 계좌에서 1BTC가 빠져나가서 상대방에게 전달되는 것을 생각하겠지만 엄밀히 따지면 내가 누군가에게 보냈다는 문서를 쓰는게 비트코인을 보냈다고 합니다. 이 부분에 대해서는 노마드코더라는 유튜버가 알기 쉽게 설명을 했는데 그 분의 비유를 빌리자면 우리가 집을 사고 팔 때 실제로는 집 문서의 소유주를 바꾸고 집을 팔거나 샀다고 합니다. 이거랑 비슷하다고 생각하시면 됩니다. 그러나 아래에서는 편의상 보냈.. 2021. 3. 27. 백준 12865번 1차원 리스트 풀이(파이썬) 문제 링크: www.acmicpc.net/problem/12865 유명한 dp문제인 knapsack 문제입니다. 굳이 2차원 배열을 사용하지 않아도 1차원 리스트로 덮어 쓰면 풀이가 가능합니다. 이 문제는 각 물건을 1번씩 밖에 사용하지 못하므로 1차원 리스트로 풀이할 경우 거꾸로 탐색하면서 풀어야 각 물건을 1번씩만 사용하게 됩니다. 왜 거꾸로 해야하는지는 한번 생각해보시길 바랍니다. 2021. 3. 26. golang 인터페이스 활용 golang에서는 빈 인터페이스를 통해서 여러가지 타입을 받을 수 있습니다. 바로 예시로 넘어가서 확인해보겠습니다. myPrint 함수의 인자를 보면 타입명이 interface{} 입니다. 빈 인터페이스를 나타내는 것으로 모든 타입을 받을 수 있습니다. 원리를 간단하게 살펴보겠습니다. 위 코드처럼 선언하게 되면 run()이란 함수를 가진 구조체 타입들만 해당함수의 인자로 들어올 수 있습니다. 그런데 이러한 조건없이 empty interface로 선언하면 아무조건이 없으므로 모든 타입을 받을 수 있게 됩니다. 이번에는 인터페이스의 형변환에 대해 알아보겠습니다. a는 empty interface type으로 b는 int형으로 선언후 더하기 연산을 해보았습니다. 그러나 위에 빨간줄이 나와있듯이 에러가납니다. .. 2021. 3. 25. 비트코인의 디지털 서명 이번 글의 선수지식으로는 개인키와 공개키에 대한 개념이 있어야 합니다. 혹시 개인키와 공개키의 생성원리가 궁금하신 분은 아래 링크를 참고해주세요. 비트코인과 이더리움의 개인키, 공개키 생성원리: up-to-date-items.tistory.com/98 개인키는 자신만이 아는 비밀 정보이고 공개키는 다른 사용자들에게 공개되도 상관없는 정보입니다. 이 두가지를 잘 이용하면 상대방은 자신이 받은 정보가 정말 자기가 예상하는 사람으로부터 온건지에 대한 것을 확인할 수 있습니다. 예를 들어 Tony가 Alice의 transaction을 발견했는데 Tony는 이게 정말 Alice의 transaction이 맞는지에 대한 의심이 들 수 있습니다. 이 때 비밀키, 공개키를 잘 활용하면 A로부터 온게 맞다는 것을 확신할 .. 2021. 3. 25. 이전 1 ··· 13 14 15 16 17 18 19 ··· 28 다음