본문 바로가기

Block Chain40

[Hardhat] Solidity TDD 작성하기(1) : 설치 및 배포 테스트 || Hardhat.ts || 안녕하세요 개발이 체질의 최원혁 입니다. Hardhat을 활용해서 내가 만든 Solidity코드의 TDD를 작성하는 방법에 대해 알아보겠습니다. 우선 이번 게시글에서는 Hardhat을 설치하고 베포 과정을 테스트하는 TDD를 작성해보겠습니다. 함수 & 변수 & 애러 테스트는 다름 게시글에서 알아보겠습니다. # 1. Hardhat 이란? hardhat은 이더리움 소프트웨어 개발환경으로 스마트컨트랙트와 Dapp 개발에 필요한 환경을 제공합니다. Solidity 컴파일, 디버깅, 배포 등 다양한 기능을 지원하며 반복되는 작업을 간단한 명령어로 통해 자동화하여 Dapp을 유연하게 개발할 수 있도록 도와줍니다. 또한 Hardhat을 통해 만들어진 많은 플러그인(plugin list : https://hardhat.. 2023. 5. 14.
[Solidity] 스마트컨트렉트 함수 호출 Call() || Solidity 0.8 | ethers.js | payload || 안녕하세요. 스마트컨트렉트 개발자 개발의 체질 최원혁입니다. 이번 게시글에서는 EVM 기반의 블록체인 네트워크에서 스마트컨트렉트의 함수가 호출되는 방법을 알아보고 Solidity의 Call() 함수에 를 활용하여 실습을 해보겠습니다. # 1. 트랜잭션의 데이터 페이로드 전달 트랜잭션에는 값(value)과 데이터(data)라는 2개의 필드를 포함하며 이를 페이로드(payload)라고 합니다. 값만 있는 경우 : 이더 지급(payment) 데이터만 있는 경우 : 스마트컨트렉트 호출 둘다 있는 경우 : 이더 지급 + 스마트컨트렉트 호출 트랜잭션은 크게 페이로드의 데이터 유무에 따라 위 3가지 형태의 목적을 갖게 됩니다. 이번 시간은 페이로드에 데이터를 담아 스마트컨트렉트의 함수를 호출하는 과정에 대해 알아보겠.. 2023. 5. 7.
[Wallet Series #2] 메타마스크의 window.ethereum는 어디서 왔을까? 안녕하세요. 스마트컨트렉트 개발자 최원혁입니다. 어제 다녀온 블록체인 회사에 면접을 보고 왔습니다. 주요 업무가 wallet 개발이다 보니 지갑 개발에 관련된 질문을 많이 받았습니다. 받았던 질문 중에서 메타마스크의 window.ethereum은 어떻게 생긴 데이터인지 질문을 받았습니다. 당시에 대답을 논리 정연하게 하지 못해 아쉬운 마음이 많아 이번 게시글을 통해 내용을 논리적으로 정리해 볼까 합니다. # 1. window 객체? feat. 프로퍼티(Property)메타마스크의 window.ethereum을 이해하기 전, 앞에 붙어 있는 window가 무엇인지에 대해 먼저 이해할 필요가 있습니다.Window 객체 : 자바스크립트의 모든 객체, 전역 함수, 전역 변수들은 자동으로 window 객체의 프로.. 2023. 4. 13.
[Wallet Series #1]이더리움의 디지털 서명과 타원곡선 함수 안녕하세요. 스마트컨트렉트 개발자 최원혁입니다. 오늘 블록체인 회사 면접을 보고왔습니다. 스스로 많이 부족한 점을 느낄 수 있었던 계기가 됬네요... 기술 질문에서 답변하지 못하거나 논리정연하게 답하지 못한 내용이 있습니다. 그중 하나가 solidity의 ecrecover에 대한 내용이였습니다. 이를 이해하기 위해선 이더리움이 활용하는 디지털 서명과 타원 곡선 함수에 대한 이해가 필요했습니다. 오늘 공부하면서 정리한 내용을 적어볼까합니다. # 1. 디지털 서명 이란? 디지털 서명이란 내가 만든 데이터를 내가 만들었음을 증명하는 기술입니다. EXAMPLE : { nonce: ‘0xc9’, gasPrice: ‘0x4a817c800’, gasLimit: ‘0x61a80’, from:'영애', to: '철수',.. 2023. 4. 11.
[Rollup Series #2] 이더리움의 롤업을 위한 댕크샤딩 & PBS 안녕하세요. 스마트컨트렉트 개발자 최원혁입니다. 오늘은 크립토씬에서 가장 핫한 키워드인 "롤업"에 대한 내용과 롤업을 위한 이더리움의 기술 댕크샤딩에 대해 알아보겠습니다. | 이더리움 현재 로드맵과 The Surge : 1) The Merge — 작업 증명 이더리움과 비콘 체인의 합병(merge)을 통해 이더리움을 지분증명으로 전환하고, 이는 앞으로의 확장성 개선 로드맵에 초석이 된다. 2) The Surge — 롤업들의 트랜잭션 데이터 저장 공간을 위한 블롭(blob)이 추가되는 댕크샤딩이 도입되며, 롤업 네트워크들에게 충분한 데이터 가용성을 제공한다. 3) The Verge — 머클트리 대신 버클트리를 도입하여, 노드들이 state 정보를 저장하지 않은 상태에서도 블록을 검증할 수 있게 한다. 이는 .. 2023. 4. 6.
[RollUp Series #1] 레이어2와 사이드체인의 차이점 안녕하세요. 스마트컨트렉트 개발자 최원혁입니다. 오늘은 롤업 시리즈 1편으로, 레이어2와 사이드체인의 차이점에 대해 다뤄보겠습니다. | 레이어2와 사이드체인의 차이점 ○ 레이어2 : 레이어(Layer)는 "층"이라는 뜻으로 레이어 2는 "2층"을 의미합니다. "1층"인 레이어1이 문제가 생기거나 무너진다면, 레이어2 또한 더이상 동작할 수 없게 되는 구조이기에, "레이어"라는 표현을 씁니다. 이 처럼 레이어1에 영향을 받은 존재는 레이어2(L2)라 부릅니다. ○ 사이드 체인 : 사이드체인은 메인넷과 서로 다른 블록체인 위에 존재합니다. 사이드체인에 문제가 생기거나 해킹을 당해도 메인넷에 영향을 주지 않습니다. 이처럼 이 둘의 차이는 "독립성"입니다. 이렇게 분리된 이유는 기존의 레이어1이 가진 "속도"문.. 2023. 4. 3.
[Hack Series] 플래시론 공격에 의한 DKP 토큰 가격 조작 해킹 분석 안녕하세요. 스마트 컨트렉트 개발자 개발이 체질의 최원혁입니다. 2023년 2월 8일 BSC 체인의 DKP 토큰이 공격을 받았습니다. PancakeSwap에 유동성이 공급되있던 DKP 토큰은 공격자의 플래시론에 의해 가격이 조작되어, 공격자는 약 $80,000의 이익을 얻었습니다. 이번 Hack Series는 QuillAudits의 분석 보고를 참고하여 공격자의 공격 패턴과 방법에대해 알아보겠습니다. | 공격 시나리오 : 공격자 주소 :0xF38B677fa6E9E51338D0c32FD21afe43406E06Df 공격자 컨트렉트(1) : 0xf34ad6cea329f62f4516ffe00317ab09d934fba3 공격 자금 트랜잭션 :https://bscscan.com/tx/0x4e5b2b6e9f033e6.. 2023. 3. 24.
[Hack Series] 접근 제어 취약점 SwapX Protocol 해킹 분석 안녕하세요. 스마트 컨트렉트 개발자 개발이 체질의 최원혁입니다. 2023년 2월 27일 BSC 체인의 Dapp SwapX 프로토콜에서 해킹 공격으로 인해 약 100만달러의 손실을 입은 사건이 발생했습니다. 이번 Web3 Hack 시리즈는 공격자가 EVM기반의 Dapp SwapX 프로토콜의 어떤 취약점을 노렸는지, 해킹 공격에 대한 내용을 분석해보겠습니다. 공격 시나리오 : (1) 먼저 공격자는 PancakeSwap Router를 통해 0.0581BNB를 100만 DND 토큰으로 교환했습니다. 공격자의 PancakeSwap 트랜잭션(0.0581BNB -> 100M DND ): 0xf3a5d3 (2)이후 피해자는 SwapX의 0x4f1f05bc 함수를 반복하여 호출합니다. 이때 약 238개의 Token Tr.. 2023. 3. 16.
[DeFi Series] Staking Reward 컨트렉트 파헤치기 || Math | Algorithm || (2) 안녕하세요. 스마트컨트렉트 개발자 개발이 체질의 최원혁입니다. 저번 'Staking Reward 컨트렉트 파헤치기 (1)' 게시글에서는 스테이킹의 기본 설명과 알고리즘 공식 기본편에 대해 다뤘습니다. 아직 보지 않으신 분들은 아래 링크를 통해 먼저 학습한 후, 이번 게시글을 읽어주시기 바랍니다. [DeFi Series] Staking Reward 컨트렉트 파헤치기 || Math | Algorithm || (1) 안녕하세요. 스마트컨트렉트 개발자 개발이 체질의 최원혁입니다. 이번 게시글에서 소개해드릴 지분증명에 의한 스테이킹(Staking) 리워드(Reward) Smart Contract입니다. 스테이킹 리워드 컨트랙트는 borntodevelop.tistory.com 추가적으로, 기본적인 알고리즘 공식을 .. 2023. 3. 6.
반응형