비트코인은 어떤 프로그래밍 기술이 들어간건가요?

2021. 04. 19. 11:06

비트코인은 어떤 프로그래밍 기술이 들어간건가요?

프로그래밍이란 직업을 가지려고 하는 학생인데 궁금해서 물어보게 되었습니다.

알려주시면 감사하겠습니다.

어떤 공부를 하면 좋을지도 알려주시면 감사할 것 같습니다.

공유하고 돈벌기 ♥︎

총 4개의 답변이 있습니다.

질문자 채택 답변

비트코인은 C++를 사용하는 것으로 알고 있습니다.

아래 사이트는 비트코인 소스코드가 있는 github 사이트 입니다.

https://github.com/bitcoin/bitcoin

소스를 보게되면 C++로 개발이 된것을 볼수가 있습니다.

C언어 공부 이후 C++를 공부해보는 것이 어떻할까 합니다.

2021. 04. 19. 23:56
8
한국물가협회/전산사업부

안녕하세요.

비트코인은 블록체인 기반의 최초 암호화폐를 의미하며, 블록체인에 대한 설명은 하기와 같습니다.

비트코인과 블록체인은 혼동되어 사용되기도 하지만 같은 의미는 아닙니다.

블록체인은 ‘공공 거래 장부’로 불리는 데이터 분산 처리 기술을 말합니다. 그렇다면 왜 블록체인이 떠오르고 있을까요.

블록체인은 무엇인가요?

블록체인은 데이터 분산 처리 기술입니다. 즉, 네트워크에 참여하는 모든 사용자가 모든 거래 내역 등의 데이터를 분산, 저장하는 기술을 지칭하는 말입니다. 블록들을 체인 형태로 묶은 형태이기 때문에 블록체인이라는 이름이 붙었죠. 블록체인에서 ‘블록’은 개인과 개인의 거래(P2P)의 데이터가 기록되는 장부가 됩니다. 이런 블록들은 형성된 후 시간의 흐름에 따라 순차적으로 연결된 ‘사슬(체인)’의 구조를 가지게 됩니다. 모든 사용자가 거래내역을 보유하고 있어 거래 내역을 확인할 때는 모든 사용자가 보유한 장부를 대조하고 확인해야 합니다. 이 때문에 블록체인은 ‘공공 거래장부’ 또는 ‘분산 거래장부’로도 불리기도 합니다.


기존거래와 블록체인의 차이점은?


기존 거래 방식은 은행이 모든 장부를 관리하는 통일된 거래 내역이지만, 블록체인 방식은 분산화된 장부 통해 투명한 거래 내역 유지

출처: SW 중심사회



기존거래 방식은 은행이 모든 거래 내역을 가지고 있었습니다. 만약 가 B에게 10만원을 송금한다고 하면 현재 금융 시스템에서는 은행이 중간 역할을 합니다. 왜냐하면 A가 B에게 10만원을 줬다는 사실을 ‘증명’해줘야 하기 때문이죠. 따라서 두 사람 사이에 안전하게 거래할 수 있도록 은행이 중간 역할을 해주는 것입니다.

블록체인도 거래 내역을 저장하고 증명합니다. 그러나 거래 내역을 은행이 아닌 여러 명이 나눠서 저장을 합니다. 만약 한 네트워크에 10명이 참여하고 있다면 A와 B의 거래 내역을 10개의 블록을 생성해 10명 모두에게 전송, 저장합니다. 나중에 거래 내역을 확인할 때는 블록으로 나눠 저장한 데이터들을 연결해 확인합니다.


블록체인의 특징은?

블록체인은 분산저장을 한다는 점이 특징입니다. 기존 거래 방식에서 데이터를 위·변조하기 위해선 은행의 중앙서버를 공격하면 가능했습니다. 최근 몇몇 은행 전산망 해킹 사건이 일어났다는 점을 생각해보면 현실적인 위협인 셈이죠. 그러나 블록체인은 여러 명이 데이터를 저장하기 때문에 위·변조가 어렵습니다. 블록체인 네트워크를 위·변조하기 위해서는 참여자의 거래 데이터를 모두 공격해야 하기 때문에 사실상 해킹은 불가능하다고 여겨집니다.

또한 블록체인은 중앙 관리자가 필요 없다는 점도 특징으로 꼽힙니다. 은행이나 정부 등 중앙기관이나 중앙 관리자가 필요했던 것은 공식적인 증명, 등기, 인증 등이 필요했기 때문이죠. 그러나 블록체인은 다수가 데이터를 저장, 증명하기 때문에 중앙관리자가 존재하지 않게 됩니다.

블록체인, 비트코인 탄생의 일등 공신

비트코인과 같은 가상화폐가 등장하게 된 것도 블록체인 덕분입니다. 블록체인을 사용하게 되면 중앙기관의 역할이 필요 없어지기 때문에 ‘중앙은행’이 없더라도 화폐 발행이 가능하게 된 거죠. 비트코인의 경우 이를 발행한 기관도, 통제하는 곳도 없습니다. ‘나카모토 사토시’라는 개발자가 비트코인 네트워크만을 만들었을 뿐입니다. 비트코인을 원하는 사람들이 직접 ‘채굴’을 통해 ‘발행’할 수 있죠. 이는 중앙은행 없이도 화폐 발행, 유통이 가능하다는 점을 실제로 보여줬습니다.

일각에서는 블록체인이 중앙기관과 은행을 대체할 것이라는 극단적인 전망을 하기도 합니다. 하지만 당장 블록체인이 모든 중앙기관을 대체하기에는 어려울 것으로 보입니다. 현재 비트코인도 화폐가치가 매일 몇 십만 원 단위로 오르락내리락 하면서 투기성이 지적되고 있는 등의 부정적인 측면이 발생하고 있기 때문이죠. 하지만 블록체인이 가진 높은 신뢰성과 보안성 덕분에 네트워크를 더 안전하게 만드는 기술로 산업 전분야에 확산될 것으로 보입니다.

2021. 04. 19. 15:15
10

안녕하세요 비트코인은 C, C++ 로 만들어졌습니다.

비트코인의 소스는 여기서 확인할 수 있습니다.

https://github.com/bitcoin/bitcoin

그리고 이후에 나온 이더리움은 C++과 Go언어로 개발했습니다.

이더리움 관련 문서와 개발은 아래 사이트를 참고하면 좋습니다.

https://geth.ethereum.org/docs/

추가적으로 이더리움에서 스마트컨트랙트나 dapp을 개발하기 위해서는 솔리디티라는 언어를 사용합니다.

솔리티는 여기를 참고하면 됩니다.

https://docs.soliditylang.org/en/v0.8.3/

마지막으로 제가 일반인을 위한 블록체인 프로그래밍 기초 강좌를 오픈한 사이트입니다.

https://kimsfamily.kr/pages/blockchainprogramming

참고하시기 바랍니다.

감사합니다.

2021. 04. 20. 13:08
8

안녕하세요.

비트코인과 같은 암호화폐의 프로그래밍에 대해 개념적으로 이해하려면 암호화폐의 메인넷이라 불리는 블록체인 네트워크와 일반 은행의 전산시스템의 차이를 이해하는 것이 도움이 됩니다.

비트코인은 물론 요즘 테슬라 창업주 일론머스크로 인해 뜨고 있는 도지(DOGE) 코인 등 대부분의 암호화폐는 거래기록이 담긴 "원장"이 인터넷에 공개되어 있는 수 많은 서버에 저장됩니다. 그리고 그 서버의 주인이 누구인지도 알 수 없습니다.

반면 일반 은행의 거래 원장은 은행에서도 일부 직원만 접근이 가능하도록 강력한 접근통제 및 보안시스템으로 둘러쌓여 있는 은행 IDC의 내부망에 위치한 서버에 저장되어 있습니다.

이러한 차이로 인해 인터넷에 공개되어 있는 암호화폐의 블록체인 서버에 저장된 거래 원장(거래 내역)의 유출, 위조, 변조를 막기 위해 최신의 보안기술이 암호화폐의 메인넷 서버에 적용되어 있습니다. 그 중에서도 가장 중요한 프로그래밍 기술은 "암호화" 와 거래 당사자 간의 "인증"을 위한 기술입니다. 즉 암호알고리즘과 인증기술이죠.

그 중에서도 거래 원장이 위/변조 되지 않았다는 것을 입증할 수 있는 Hash 알고리즘, 그리고 원장을 암호화하고 거래 당사자를 인증해줄 수 있는 공개키 기반 암호기술(PKI : Public Key Infrastructure)이 가장 중요합니다.

특히 PKI는 데이터의 암호화와 거래 당사자(송금자와 수신자)를 인증하는데 필수적인 현대 암호학의 정수라 해도 과언이 아닙니다.

암호화폐의 블록체인을 이해하시려면 HASH 함수와 PKI에 대한 이해가 필수적입니다.

PKI를 쉽게 설명해준 블로그의 주소를 첨부합니다. ( https://blogger.pe.kr/583 )

PKI의 정의와 설명은 위키를 참고하세요. ( http://wiki.hash.kr/index.php/PKI )

도움이 되셨기를 바랍니다.

2021. 04. 20. 08:55
6