전체 글

Hi i'm eom :)
· 컴퓨터
brew로 watchman을 깔다가 Watchman - 변경을위한 파일 및 디렉토리 감시 도구 Watchman - 변경을위한 파일 및 디렉토리 감시 도구 Watchman 은 파일 및 레코드를 감시하거나 변경시 조치를 수행하는 오픈 소스 및 크로스 플랫폼 파일 감시 서비스입니다. Facebook 에 의해 개발되었 ko.linux-console.net Error: Cannot Install In Homebrew On ARM Processor In Intel Default Prefix라는 에러를 만났는데, 찾아보니 brew prefix가 /usr/local로 되어있어서 생기는 문제라고 한다. m1에서는 /opt/homebrew로 되어있어야 한다고 한다. 해당 위치에 재설치를 해서 해결했다. https://bl..
보호되어 있는 글입니다.
11일 새벽 1시 ehtereum.org 커뮤니티콜이 있었다. 저번에 있었던 커뮤니티콜도 참가하려 했지만, 시간을 잘못 알아서 참가하지 못했었다. 사실 영어를 잘 못해서 대충 느낌적인 느낌으로만 알아듣다가 디스코드에 요약본이 올라와, 내용을 다시 정리해보았다. https://heom.notion.site/af1962497a764768baa765f0c456b4ff 이더리움 커뮤니티콜 이더리움 디코 arredr2가 올린 요약본을 번역한 내용입니다.(구글번역기가) heom.notion.site 다 이더리움.org에 대한 내용이었는데, 나는 이더리움 재단에서 직접 이더리움.org를 관리하는 것인줄 알았는데, 얘기를 들어보니 별도의 6명의 팀원이 홈페이지를 운영하는 것 같았다. 그리고 이번에 이더리움.org 홈페..
챕터9:스마트 컨트랙트 보안 다른 프로그램들과 마찬가지로 스마트 컨트랙트도 작성된 그대로 실행되는데, 프로그래머가 의도한 내용과 반드시 일치하지 않을 때가 있다. 또한 모든 스마트 컨트랙트는 공개되어 있으며, 모든 사용자는 트랜잭션을 생성하여 간단하게 상호작용할 수 있다. 어떤 취약점이라도 악용될 수 있으며, 손실은 거의 항상 복구할 수 없다. 따라서 모범 사례를 따르고 잘 테스트된 디자인 패턴을 사용하는 것이 가장 중요하다. 보안 모범 사례 방어적 프로그래밍은 스마트컨트랙트에 특히 적합하다. 미니멀리즘/단순성 - 코드는 간단할수록 안전하다. 코드 재사용 - 같은 코드를 반복하지마라(함수, 라이브러리로 정리), 개발된 라이브러리를 사용하는 것이 디자인이나 기능은 몰라도 일단 안전하다. 코드 품질 - 스마..
챕터8:스마트 컨트랙트와 바이퍼 바이퍼(vyper)는 이더리움 가상 머신을 위한 실험적인 컨트랙트용 프로그래밍 언어인데, 개발자들이 이해하기 쉬운 코드를 작성할 수 있도록 함으로써 뛰어난 감사 용이성(auditability)을 제공하고자 만들어졌다. 사실, 바이퍼의 주요 원칙 중 하나는 개발자들이 오독하기 쉬운 코드(misleading code)를 작성할 수 없게 하자는 것이다. 취약점과 바이퍼 이 책에서는 최근이라고 나와 있지만, 이젠 예전이 되어버린 한 연구에서 https://arxiv.org/pdf/1802.06038.pdf 배포된 약 백만개의 이더리움 스마트 컨트랙트를 분석한 결과 심각한 취약점을 가진 스마트 컨트랙트가 아주 많다는 사실을 확인했다고 한다. 취약점의 유형은 다음과 같다. 자기파괴 ..
· 코딩/JS
https://github.com/react-grid-layout/react-grid-layout/blob/master/test/examples/11-no-vertical-compact.jsx GitHub - react-grid-layout/react-grid-layout: A draggable and resizable grid layout with responsive breakpoints, for React. A draggable and resizable grid layout with responsive breakpoints, for React. - GitHub - react-grid-layout/react-grid-layout: A draggable and resizable grid layout wi..
챕터7:스마트 컨트랙트와 솔리디티 컨트랙트 계정은 개인키를 갖지 않으므로 스마트 컨트랙트에 규정된 미리 결정된 방식으로 '스스로 제어'하는 반면, EOA는 프로토콜의 외부에 있어서 프로토콜에 독립적인 '실제 세계'의 개인키로 생성되고 암호로 서명된 거래에 의해 제어된다. 여러번 나오는 얘기이지만 이더리움에는 EOA와 컨트랙트 계정 이렇게 두가지 유형의 계정이 있다. 이번장에서는 컨트랙트 계정과 이를 제어하는 코드에 대해서 설명한다. 스마트 컨트랙트란 무엇인가 이 책에서는 '스마트 컨트랙트'라는 용어를 불변적인(immutable) 컴퓨터 프로그램을 지칭하는데, 이 프로그램은 이더리움 네트워크 프로토콜(즉, 탈중앙화된 이더리움 월드 컴퓨터)의 일부인 이더리움 가상 머신의 컨텍스트 상에서 결정론적으로(dete..
챕터 6 : 트랜잭션 트랜잭션은 외부 소유 계정(EOA)에 의해 서명된 메세지인데, 이더리움 네트워크에 의해 전송되고 이더리움 블록체인에 기록된다. 이 기본 정의는 놀라울 정도로 매력적인 의미를 담고 있다. 다른 관점으로 바라보면, 트랜잭션은 EVM에서 상태 변경을 유발하거나 컨트랙트를 실행할 수 있는 유일한 방법이라는 것이다. 이더리움은 글로벌 싱글톤 상태 머신이며, 트랜잭션은 이 상태 머신을 움직여서 상태를 변경할 수 있도록 만든다. 컨트랙트는 독자적으로 실행되지 않는다. 또한 이더리움도 자율적으로 실행되지 않는다. 모든 것은 트랜잭션으로부터 시작된다. 다 중요한 말이라 그대로 가져왔다. 이더리움 네트워크에서 모든 상태변화는 트랜잭션으로 이뤄진다. 이더리움 혼자 실행되고 돌아갈 수 있는 게 아니라 그..
챕터 5 : 지갑 넓은 의미에서 지갑은 이더리움의 주요 사용자 인터페이스를 제공하는 소프트웨어 어플리케이션이다. 지갑은 사용자 돈에 대한 접근을 통제하고, 키와 주소를 관리하며, 잔액을 추적하고, 트랜잭션 생성과 서명을 제어한다. 여기에 더해서 몇몇 이더리움 지갑은 ERC20 토큰처럼 컨트랙트와 상호작용할 수 있다. 사실 이더리움이나 비트코인 네트워크에서 지갑이라는 것에 어떤 형태는 존재하지 않는다. 그냥 개인키랑 공개키가 다다. 그걸 통해서 블록안에서 내 기록을 가져오는 형태이다. 우리가 흔히 알고 있는 메타마스크 같이 잔고를 표시해주고, 송금, 스왑과 같은 기능을 탑재한 지갑들이 사실은 당연한게 아니라, 그 지갑에서 우리의 편의를 위해 대신 처리해주는 것이다. 우리가 직접 그 기능들을 쓰려고 한다면,..
1. 서비스 설계 스마트 컨트랙트 프론트엔드 (서버) 2. 노드 운영 유무 3. 수수료 4. 유저 상호 작용 유저의 지갑(개인키) 사용 방식 트랜잭션 생성 후 결과 확인 스마트 컨트랙트 1. 업그레이드 어려움 2. read, write 3. 컨트랙트 연동 4. event 5. 테스트 6. security // 코드 검사해주는 업체들이 있음 노드 운영 1. 블록체인 노드 관련된 api를 얼마나 이용 할 것 인가 2. 스마트 컨트랙트 관련 api 3. 노드 운영/유지비 vs KAS 수수료 1. Bapp 서비스는 원래 유저가 수수료를 지불하는 구조 2. 유저가 수수료를 안 내게 하고 싶다면? 3. 스마트 컨트랙트의 수수료 유저 상호작용 1. 개인키(지갑)를 어떻게 사용하게 할 것인가 2. 특정 액션 이후의 결..
지난주차에는 스마트 컨트랙트에 대해서 공부했다면, 이번주는 그 스마트컨트랙트를 이용해서 블록체인을 활용한 어플리케이션을 개발하는 과정을 살펴본다. 일반적인 App 은 아이디,비밀번호를 이용해서 로그인을 하고 서버에 정보가 저장된다. 하지만 Bapp 서비스는 개인키를 이용해서 로그인하고 블록체인 에 정보를 저장한다. 개인키는 참말로 길고 어렵게 생겼는데, 이를 사용자들이 직접 사용하기에는 무리가 있다. 그래서 우리는 Bapp 서비스를 만들기 위해서 Caver.js, Klaytn API, Klip API 와 같은 툴들을 이용하여 유저가 편리하게 Bapp을 이용할 수 있게 할 수 있다. 우리는 React를 이용해서 개발을 할건데, React 프로젝트는 여러가지 방식으로 만들 수 있는데 여기서 우리는 creat..
원래는 다중서명 시 모든 서명이 남게 되지만, 슈노르 서명 이용시 1개 분량의 서명만이 남아 서명한 사람들의 프라이버시가 지켜지고, 블록의 용량을 아낄 수 있게 된다. 또한 다중서명과 단일서명을 구분할 수 없게 된다. --> 이게 좋은 것인지는 잘 모르겠다. 블록체인이라함은 모든 것이 공개되어야 한다는 것이 내 생각인데, 누가 서명한지 모르게 되는것이 좋은것인가? 너무 블록크기만을 생각하는 게 아닌가 싶다. 어짜피 한 지갑에서 출금되는 것이라 상관없는 건가... https://academy.binance.com/ko/articles/what-is-a-multisig-wallet 다중서명 지갑이란 무엇인가요? | Binance Academy 다중서명 지갑은 트랜잭션을 위해 하나 이상의 서명을 요구함으로써 ..
HEOM
IMEOM