스마트컨트랙트
-
[Ethernaut 풀이] 이더리움을 해킹해보자 - 8.VaultBlockChain/Technology 2021. 8. 12. 13:55
오늘의 풀어볼 문제는 Vault 입니다. 컨트랙트에서 변수를 private로 표시하면 다른 컨트랙트가 해당 변수에 엑세스하는 것을 방지할 수 있다는 점을 기억하는 것이 중요합니다. 하지만 private과 loacal로 표시된 상태 변수들은 여전히 공개적으로 접근할 수 있습니다. zk-SNARK는 매개변수를 공개할 필요 없이 누군가가 비밀 매개변수를 소유하고 있는지 여부를 판별하는 방법을 제공합니다. ≪ Ethernaut 풀이 시리즈 ≫ [Ethernaut 풀이] 이더리움을 해킹해보자 - 4.Telephone [Ethernaut 풀이] 이더리움을 해킹해보자 - 6.Delegation [Ethernaut 풀이] 이더리움을 해킹해보자 - 7.Force 1. 목표 확인 이번 level의 목표는 금고를 여는 것입..
-
[Ethernaut 풀이] 이더리움을 해킹해보자 - 6.DelegationBlockChain/Technology 2021. 8. 12. 00:53
오늘의 풀어볼 문제는 Delegation 입니다. delegatecall 사용은 특히 위험하며 여러 해킹의 공격 벡터로 사용되었습니다. delegates는 당신의 컨트랙트에 대하여 완전한 접근 권한을 가집니다. 강력한 기능인만큼 위험하며 The Partiy Wallet Hack Explained은 이 아이디어가 어떻게 3천만 달러를 훔치는데 사용되었는지에 대해 다뤘습니다. ≪ Ethernaut 풀이 시리즈 ≫ [Ethernaut 풀이] 이더리움을 해킹해보자 - 1.Fall back [Ethernaut 풀이] 이더리움을 해킹해보자 - 2.Fallout [Ethernaut 풀이] 이더리움을 해킹해보자 - 4.Telephone 1. 목표 확인 이번 level의 목표는 주어진 instance의 owenershi..
-
[Ethernaut 풀이] 이더리움을 해킹해보자 - 4.TelephoneBlockChain/Technology 2021. 8. 11. 13:17
오늘의 풀어볼 문제는 Telephone 입니다. 이번 예제는 간단할 수 있지만 이 예제는 간단할 수 있지만 tx.origin과 msg.sender를 혼동하면 악의적인 피싱 공격이 일어날 수 있습니다. 피해자가 스스로 공격자의 악의적인 주소로 자금을 보낼 수 있습니다. ≪ Ethernaut 풀이 시리즈 ≫ [Ethernaut 풀이] 이더리움을 해킹해보자 - 0.Hello Ethernaut [Ethernaut 풀이] 이더리움을 해킹해보자 - 1.Fall back [Ethernaut 풀이] 이더리움을 해킹해보자 - 2.Fallout 1. 목표 확인 Claim ownership of the contract below to complete this level. ownership만 가져오면 됩니다. 이번 level..
-
[Ethernaut 풀이] 이더리움을 해킹해보자 - 2.FalloutBlockChain/Technology 2021. 8. 11. 02:19
오늘의 풀어볼 문제는 Fallout 입니다. 이번 주제는 Rubixi라는 회사에서 일어났었던 이더리움 생태계의 실화를 바탕으로 만들어진 내용입니다. 공격자는 아주 간단한 방법으로 onwership을 주장하고, 일부 자금을 훔칠 수 있었습니다. ≪ Ethernaut 풀이 시리즈 ≫ [Ethernaut 풀이] 이더리움을 해킹해보자 - 0.Hello Ethernaut [Ethernaut 풀이] 이더리움을 해킹해보자 - 1.Fall back 1. 목표 확인 컨트랙트의 소유권을 주장하기 이번 level은 목표도 하나이고, 하는 방법은 간단합니다. 그냥 ownership만 가져오면 됩니다. Get new instance 버튼을 눌러 인스턴스를 생성하고 시작합니다. 2. 문제풀이 이번에 주어진 컨트랙트의 코드입니다...
-
[Ethernaut 풀이] 이더리움을 해킹해보자 - 1.FallbackBlockChain/Technology 2021. 8. 11. 01:11
오늘의 풀어볼 문제는 Fallback 입니다. Fallback은 컨트랙트 함수에 없는 함수를 호출했을 때 실행되거나 컨트랙트에 receive 함수가 없는 데 data 없이 호출되었을 때 실행됩니다. ≪ Ethernaut 풀이 시리즈 ≫ [Ethernaut 풀이] 이더리움을 해킹해보자 - 0.Hello Ethernaut 1. 목표 확인하기 컨트랙트의 주인이 되어야 한다. 컨트랙트의 잔액이 0이 되어야 한다. Get new instance를 눌러 게임을 시작합니다. 콘솔창에 보면 Level address와 Instance address 두 가지 주소가 나옵니다. Level - Contract Account (CA) -> Level 컨트랙트는 사용자가 요청하면 Instance 컨트랙트를 생성합니다. 콘솔 명령..
-
[Ethernaut 풀이] 이더리움을 해킹해보자 - 0.Hello EthernautBlockChain/Technology 2021. 8. 10. 22:38
Ethernaut는 Web3/Solidity 기반의 게임으로 각 레벨마다 '해킹'을 해야하는 게임입니다. 플레이어는 이를 통해 이더리움 스마트 컨트랙트의 취약점을 직접 배울 수 있습니다. OpenZeppeline과 Smart Contract Auditing으로 유명한 Zeppeline team에서 제공하고 있으며, 총 15단계로 이뤄져 있고 각 레벨마다 컨트랙트의 취약점을 찾아내야 합니다. 100% 오픈 소스로 모든 레벨은 다른 플레이어가 기여한 것입니다. The Ethernaut 사이트에 접속하면 아래와 같은 화면이 나옵니다. Play now 버튼을 눌러 게임을 시작할 수 있습니다. Ethernaut play하기 https://ethernaut.openzeppelin.com/ Ethernaut ethe..
-
나만보는 Blockchain 개념 (4) 솔리디티로 이더 송금하기BlockChain/Technology 2021. 7. 27. 15:19
오늘의 주제 1. 컨트랙트에서 이더 송금하기 2. fallback() 함수 3. selfdestruct() 함수 1. 컨트랙트에서 이더 송금하기 Solidity 프로그래밍을 위해 remix.ethereum에 들어갑니다. 새로 파일을 하나 만들고, 아래 코드를 작성하고 컴파일을 합니다. pragma solidity 0.8.6; contract Test1 { uint nonce; constructor(uint _nonce) payable { nonce = _nonce; } function getNonce() public view returns (uint) { return nonce; } function withdraw(uint _nonce) public { require(nonce == _nonce); pa..
-
나만보는 블록체인 개념 (3) 토큰 컨트랙트 -1BlockChain/Technology 2021. 7. 27. 15:19
오늘의 주제 1. 토큰 2. 토큰의 컨트랙트 1. 토큰 ERC-20 Ethereum Request for Comment 20의 약자. EIPs에서 관리하는 공식 프로토콜이며 이더리움 블록체인 네트워크에서 정한 표준 토큰 스펙이다. ERC-20 토큰은 이더리움과 교환 가능하며 이더리움 지갑으로 전송이 가능하다. 코인과 토큰의 차이 코인 : 블록체인 네트워크(메인넷)을 구축하여 독립적인 블록체인 생태계 구성이 가능하다. 토큰 : 특정 블록체인을 기반으로 한 dApp*분산화 애플리케이션에 사용되는 암호화폐이다. 토큰은 스마트 계약을 통해 생성된다. 스마트 계약은 불가역적으로 전개되는 기능을 통해 중앙관리가 배제된 서비스를 구현한다. 이더리움 블록체인 플랫폼을 활용해 토큰을 발행하여 자신의 비즈니스를 구현하고,..