smartpool: decentralized mining pools using smart contracts · bitcoin’s mining power distribu=on...

26
SmartPool: Decentralized mining pools using smart contracts 1 Loi Luu Cofounder, SmartPool.io PhD candidate, Na=onal University of Singapore [email protected] loi_luu

Upload: others

Post on 20-Jul-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SmartPool:Decentralizedminingpoolsusingsmartcontracts

1

LoiLuuCofounder,SmartPool.ioPhDcandidate,Na=onalUniversityofSingapore

[email protected]_luu

Page 2: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Outline•  Whatismining&pooledmining•  Whycentralizedminingpoolisnotideal•  SmartPoolsolu=on

Page 3: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Whatismining•  Probabilis=callyelectsleaderstoproposeblocks–  Bysolvingproofofwork,ormining

•  Awaytoissuemorecoins–  12.5BTCper1Bitcoinblock–  5ETHper1Ethereumblock

Page 4: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Howtomineablock•  Needtofindanoncesothat

Hash(BlockHeader,nonce)≤dor

Hash(BlockHeader,nonce,dataset)≤d•  Findingavalidnonceishard–  Normalcomputerstakeyearstofindavalidnonce

Page 5: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Miningpool•  Groupofminersjoinhandtomineblockstogether•  Rewardissplitamongminersbasedontheircontribu=ons–  Reducevariance–  Receivesmallerrewardsfrequently

Page 6: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Howminingpoolswork•  Poolstrackminercontribu=onsbyusingshares–  Ashareissimilartoablock,butrequiredlessworktofind

–  Eachsharehasprobabilityd/Dbeingavalidblock

Hash(BlockHeader,nonce,dataset)≤d

Hash(BlockHeader,nonce,dataset)≤DwithD>>d

Validblock

Validshare

Page 7: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Howminingpoolswork(2)•  Pooloperatorrecordstheshares,anddistributesrewardaccordingly

Network(Bitcoin,Ethereum)

Solominer Solominer SolominerMiningpool

poolmembers

block block block

shareshare

Page 8: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Pooledminingisgreat•  Forminers–  Allowthemtohavestableincome–  Lowvariancemeanseasiertomakeeconomicplan

•  Forthenetwork–  Helpincreasethesecurityofthenetworkbyallowingmoreminerstojointheminingprocess

Page 9: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Centralizedpooledminingissues•  Miningincryptocurrenciesishighlycentralized–  3-5poolscontrolmajorityofhashpower

Ethereum’sminingpowerdistribu=onBitcoin’sminingpowerdistribu=on

Page 10: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Centralizedpooledminingissues(2)•  Implicittrust– Minerstrustpooltorecordsharesandpaycorrectly

•  Transac=oncensorshipthreat–  Poolsdecidewhichtransac=onstoinclude,nottheminers

•  Singlepointoffailures–  Easytopar==onthenetwork[IEEESS&P‘17]

Page 11: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SMARTPOOL:REPLACINGPOOLOPERATORBYASMARTCONTRACT

Page 12: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Naïvesolu=on

MiningpoolSmart

Contract

Miner’sminingsodware

Pool’sGateway

Miner’sLocalenvironmentgetWork()

submitWork()

Workresponded

EthereumBlockchain

submitShares()

User’saddress

RewardissentwhenablockisminedMinerusesthepool’saddressasthe

coinbaseaddressintheirblocks

Page 13: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Naïvesolu=on’sProblems•  Numberofsharesislarge

–  Mayrequirebillionsofsharesperblock–  Requireasmanymessagestothecontract

•  Cost(gas)toverifyaEthashPoWisexpensive–  Maybemorethantherewardpershare–  Rendernega=veincomestominers

•  VerifyinganEthashPoWwasnoteventechnicallyfeasible–  Requireaccessto1GBdataset–  Smartcontractstorageiscostly(around$80,000USDperGB)

Hash(BlockHeader,nonce,dataset)≤d

Page 14: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SMARTPOOL’SSOLUTION

Page 15: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SmartPool–Solu=on•  Allowbatchsubmissions(uptomillionsofshares)–  significantlyreducenumberoftransac=onstothecontract

–  onlysubmittheMerklerootofalltheshares

SmartPoolsmartcontract

Miners

Submitbatchofshares

Page 16: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SmartPool–Solu=on(2)•  Probabilis=cverifica=ontocheckasubmission–  Randomlyverifyonlyonesharepersubmission

–  Pr[ofchea=ngdetected]ispropor=onaltotheamountofchea=ng

SmartPoolsmartcontract

Requestedproof

Submitbatchofshares

Probabilis=cVerifica=on

Creditcontribu=ons

Requestarandomproof

Miners

Page 17: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SmartPool:Disincen=vizechea=ng•  Penaltyscheme:pay0shareinasubmissionifchea=ngdetected

–  Expectedrewardisthesamewhetherchea=ngornot–  Minershavenoincen=vetocheat

•  Ifwesamplemorethan1share,canstronglydisincen=vizechea=ngminers

•  Cryptoeconomicispowerful!

Get1.5Rewardwith2/3probability

Get0Rewardwith1/3probability

Probabilis=cverifica=on

passed

detected

Expectedreward=1

17

Reward=1

Page 18: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SmartPool:CheaplyVerifyEthashPoW•  VerifyingEthashPoWwasthoughttobeimpossibleinsidea

contract–  datasetincludes64randomelementsfroma1GBdataset.Wecan’tstoretheen=re1GBdataset

–  Canwestorejustthe16MBdataset?Sincethe1GBdatasetisgeneratedfromthe16MBone•  WouldcosthundredsofEthers•  The16MBdatasetchangesevery30kblocks(4-5days)•  Geongtheelementinthe1Gbdatasetfromthe16MBseedisexpensive

–  i.e.requires8SHA-512computa=onsperelement,willrunoutofgas

Hash(BlockHeader,nonce,dataset)≤d

Page 19: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Oursolu=on:onlyverifytheresultofEthash•  Observa=on

–  Wedonotneedtheen=re1GBdatasetnorthe16Mbseed,weonlycareaboutthecorrectnessofthe64sampledelements(basedonthenonceandtheblockheader)

•  Solu=on–  StoretheMerklerootofthe1GBdatasetinthecontract

•  EveryonecanverifythisMerkleroot–  Requiretheminerstosendthemerkleproofforeachdataelement

•  Checkingtheproofsfor64elementsismuchcheaperandsimpler

Page 20: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SmartPool’sEthashinTestnet•  Weself-implementtheSHA-512insolidity–  Costis200kofgaspercomputa=on

•  FullyverifyanEthashPoWwith3.9Mofgas–  CurrentgasLimit>4M–  Canbeoptmizedfurther

•  Oursolu=oncanbeusedtobuildalighterlight-client

Page 21: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Moreinthewhitepaper•  Howtopreventminersfromstealingothers’shares?•  Howtopreventclaimingasharemul=ple=mes– Withinasubmission–  Acrosssubmissions

•  HowtorunminingpoolsforothercryptocurrenciesonEthereum

21

Page 22: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SmartPool:FeaturesandPlan•  Features

–  Totallydecentralized–  Secure–  Efficientandscalable–  Opensourceandnon-profit

•  Plan–  TestnetdeploymentinMarch–  MainnetdeploymentinMay–  Suppor=ngothercryptocurrenciesdependsonfunding

Page 23: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

SmartPool.ioiscallingfordona=on

23

Page 24: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Closingthoughts•  Blockchains&smartcontractshelpremovemiddleman/centralizedoperators–  Decentralizedminingpoolsisoneexample.

•  Blockchains&smartcontractsarethetools,notthesolu=ons– Morethoughtsonthedesignandimplementa=onsrequired

Page 25: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Acknowledgement•  EthereumFounda=on

•  DinarDirham•  24pseudonymousdonors

Page 26: SmartPool: Decentralized mining pools using smart contracts · Bitcoin’s mining power distribu=on Ethereum’s mining power distribu=on Centralized pooled mining issues (2) •

Thankyou–Q&Ahtp://smartpool.ioSmartPool_Prj