Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Centralized Dapps to read from Dapps game
Search
biga816
July 19, 2018
Technology
2.5k
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Centralized Dapps to read from Dapps game
biga816
July 19, 2018
More Decks by biga816
See All by biga816
Euler Finance Hacking Incident
biga816
0
730
BlockchainTokyo23.pdf
biga816
1
420
BuidlMeetupVol2.pdf
biga816
0
45
Service Worker Cache Problems
biga816
1
1.8k
Consider how distributed IPFS is
biga816
2
5.4k
Usage of ethereum libraries for dapps
biga816
0
4.6k
Other Decks in Technology
See All in Technology
Meet AgentCore Identity Consent Portal
hironobuiga
3
160
データ品質を壊しながらSnowflakeのAIに分析させてみた
kawanago
0
400
キャリアLT今日までそして明日から
kentapapa
1
140
いちAWSエンジニアのAI活用を振り返る #devio2026 / devio osaka 2026 kawahara
masahirokawahara
2
320
インバスケット試験対策アプリを 作って見えたAIエージェント構築 ナレッジ2選
shichijoyuhi
1
110
1万名の社員が使う認証基盤で どう信頼性を担保するか?
kairim0
0
180
BedrockとLambdaで作る リアルタイム進行型推理ゲーム
kawametho
0
160
IR Today: Theory, Practice, and Agents
dtunkelang
0
330
[2026 Oracle Technical Deep Dive] オンプレミスDBのCloud移行アプローチ:移行計画に基づくメソッドとツールの選択 (2026年9月17日開催)
oracle4engineer
PRO
0
110
あなたの知らないAmazon VPC Route Server/Amazon VPC Route Server you don't know about
masakiokuda
2
210
MCPゲートウェイを作って運用してわかったこと — Agent時代の権限管理の現在地
mtpooh
10
2.9k
The seven pitfalls of AI (revised version)
ufried
0
210
Featured
See All Featured
Ecommerce SEO: The Keys for Success Now & Beyond - #SERPConf2024
aleyda
1
2.2k
The Cost Of JavaScript in 2023
addyosmani
55
10k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
53k
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.5k
How STYLIGHT went responsive
nonsquared
100
6.3k
How to Think Like a Performance Engineer
csswizardry
28
2.9k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.3k
Why Your Marketing Sucks and What You Can Do About It - Sophie Logan
marketingsoph
0
420
Tell your own story through comics
letsgokoyo
1
1.1k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
380
Paper Plane (Part 1)
katiecoart
PRO
2
11k
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
Transcript
Dappsゲームから読み解く CentralizedなDapps Akihiro Tanaka(@biga816)
⾃⼰紹介 • 元AccentureのWeb&Mobileエンジニア • Trident Artsチーフエンジニア • DApps絶賛開発中
DAppsゲームは 本当にDecentralizedなのか?
DAppsとは • ⾮中央集権型アプリケーション(Decentralized Applications) • 以下の3つの定義を満たす(byビットコイン研究所ブログ) 1. アプリケーションは、オープンソースであること。オペレーションは⾃動であり、中央のコ ントロール主体を持たないこと。トークン、データ、レコード、などにつき、暗号化されて 分散化されたブロックチェーンを利⽤していること。
2. アプリケーションは、オープンに流通可能な、暗号トークンを持っていること。アプリケー ションの利⽤に際してトークンを利⽤すること。参加者には、そのトークンによってリワー ド(報酬)が⽀払われること。 3. アプリケーションはマーケットやユーザーからの改善要求によりプロトコルを改善していく こと。この改善は、ユーザーのコンセンサスによること。 <参考>http://doublehash.me/what-is-dapps/
CryptokittiesとEtheremonのシステム構成 からDappsの姿を読み解いてみる
Cryptokittiesのシステム構成 Webサーバ (express, react) APIサーバ My Kitties Marketplace App Kitty
Detail (Breed, Sell, Gift) ファイルサーバ GCP Client ERC721 Node (Metamask) DB バッチ 処理?? ERC721 Node (Own node? Infura?) web3.js
Cryptokittiesのコントラクト contract KittyAccessControl { event ContractUpgrade(address newContract); address public ceoAddress;
address public cfoAddress; address public cooAddress; bool public paused = false; modifier onlyCEO() { require(msg.sender == ceoAddress); _; } modifier onlyCFO() { require(msg.sender == cfoAddress); _; } modifier onlyCOO() { require(msg.sender == cooAddress); _; } modifier onlyCLevel() { require( msg.sender == cooAddress || msg.sender == ceoAddress || msg.sender == cfoAddress ); _; } : : modifier whenNotPaused() { require(!paused); _; } modifier whenPaused { require(paused); _; } function pause() external onlyCLevel whenNotPaused { paused = true; } function unpause() public onlyCEO whenPaused { paused = false; } }
Etheremonのシステム構成 My Monstar Market App Battle ファイルサーバ Client ERC721 Node
(Metamask) DB バッチ 処理?? ERC721 Node (Own node? Infura?) web3.js Webサーバ (react) APIサーバ
Etheremonのコントラクト contract BasicAccessControl { address public owner; uint16 public totalModerators
= 0; mapping (address => bool) public moderators; bool public isMaintaining = true; function BasicAccessControl() public { owner = msg.sender; } modifier onlyOwner { require(msg.sender == owner); _; } modifier onlyModerators() { require(moderators[msg.sender] == true); _; } modifier isActive { require(!isMaintaining); _; } function ChangeOwner(address _newOwner) onlyOwner public { if (_newOwner != address(0)) { owner = _newOwner; } } : : function AddModerator(address _newModerator) onlyOwner public { if (moderators[_newModerator] == false) { moderators[_newModerator] = true; totalModerators += 1; } } function RemoveModerator(address _oldModerator) onlyOwner public { if (moderators[_oldModerator] == true) { moderators[_oldModerator] = false; totalModerators -= 1; } } function UpdateMaintaining(bool _isMaintaining) onlyOwner public { isMaintaining = _isMaintaining; } }
%ecentralized "QQlications →$entralized "QQlications
DApps(CApps)とは • ⾮中央集権型アプリケーション(Decentralized Applications) • ブロックチェーンを活⽤したアプリケーション 1. ⾮中央集権型に設計することが可能である。(ただし、多くのDAppsゲームは中央集権型の設 計) 2.
⾮改ざん性や透明性といったブロックチェーンの特性を⽣かしている。
⾯⽩い(クソみたいな) DApps作ろうぜ!
Thank you Twitter: @biga816 Qiita: biga816