36
淺談閃電網路/微支付通道 Taipei Ethereum Meetup 2016/07/29 1

Introduction to Lightning networks

Embed Size (px)

Citation preview

Page 1: Introduction to Lightning networks

淺談閃電網路/微支付通道

TaipeiEthereumMeetup2016/07/29

1

Page 2: Introduction to Lightning networks

自我介紹

•  區塊鏈工程師(世紀快網科技股份有限公司)•  敝公司目前有在徵人喔•  [email protected]

•  興趣:網路安全、隱私

2

Page 3: Introduction to Lightning networks

比特幣擴容問題

•  新區塊的產生 (約10分鐘)

•  小額交易要被確認 (時間長)

– 除非支付高額手續費

3

Page 4: Introduction to Lightning networks

區塊大小快被佔滿

4

Page 5: Introduction to Lightning networks

Q:有沒有方式能夠在不增加 區塊大小下增加效能?

5

Page 6: Introduction to Lightning networks

微支付通道 (MicropaymentChannel)

6

Page 7: Introduction to Lightning networks

重新思考交易的行為

一定每一筆資料都需要寫到鏈上嘛?

7

Page 8: Introduction to Lightning networks

交易移到鏈下?

8

Page 9: Introduction to Lightning networks

例子 •  Bob 想要從 Alice 那下載 10 GB 的檔案, 願意付頻寬費

給 Alice, 但 Bob 不相信 Alice 而不願一次付清, 怕 Alice 中途跑走. 如果資料每 GB 價值 1 mBTC

1.  建立 10 次交易,付 10 次交易費

2.  每一次交易的完成必須等待區塊鏈確認

9

Page 10: Introduction to Lightning networks

有詐欺及手續費過高的問題

10

Page 11: Introduction to Lightning networks

建立單向微支付通道 (OneWayMicropaymentChannel)

11

Page 12: Introduction to Lightning networks

鏈下多筆交易

12

Page 13: Introduction to Lightning networks

小結

•  付款方發起 2-of-2 的多簽名合約,並存入略高於支付金額的訂金

–  Alice:無法在 nLockTime(100 blocks) 前取回訂金

–  Bob:只要簽名即可收款

•  在雙方同意後,傳送這筆多簽名合約到區塊鏈 (鏈上)

•  確認後,雙方可進行多筆鏈下交易 (鏈下)

•  最後再將結算後的交易寫回區塊鏈 (鏈上)

13

Page 14: Introduction to Lightning networks

雙向微支付通道(Bidirec7onalMicropaymentChannel)

IntroducContoMicropaymentChannels 14

Page 15: Introduction to Lightning networks

閃電網路

•  比特幣中被廣泛接受的創新– 提供一層Paymentlayer– 由JosephPoon 和 TadgeDryja 在 2014 年提出

– 目標是支援更多鏈下交易伴隨較低的手續費

•  公司 –  Lightning–  Blockstream–  Blockchain

15

Page 16: Introduction to Lightning networks

mul7signature(mul7sig)addresses(P2SH-addresses)

16

Page 17: Introduction to Lightning networks

Time-Locks1.  Absolutetype,CheckLockTimeVerify(CLTV)2.  RelaCvetype,CheckSequenceVerify(CSV)

17

Page 18: Introduction to Lightning networks

HashValuesandSecrets

18

Page 19: Introduction to Lightning networks

Poon Dryja

19

Page 20: Introduction to Lightning networks

•  各自存入 5BTC 到一個 2-of-2 多簽名地址

•  Alice 與 Bob 彼此交換 Secrets

建立通道(OpeningtheChannel)

20

Page 21: Introduction to Lightning networks

承諾交易(commitmenttransacCon)假設 Alice 要支付給 Bob1BTCè Alice(4BTC);Bob(6BTC)

21

Page 22: Introduction to Lightning networks

è  對 Bob 而言,需要簽名並等待 1000 個區塊時間後才能領取

è  對 Alice 而言,需要 Bob 的 Secert

22

Page 23: Introduction to Lightning networks

誰廣播,對方立馬可以拿到錢 而廣播方必須等待Time-Locks

23

Page 24: Introduction to Lightning networks

•  假設 Bob 要支付給 Alice1BTC – 交易回到原始狀態:Alice(5BTC);Bob(5BTC)

•  有兩件事情要做– 雙方同時簽署一份新的承諾交易,交換新的Hash– 雙方交換之前彼此擁有的Secrets

更新通道(UpdatetheChannel)

24

Page 25: Introduction to Lightning networks

•  上一個交易Alice(4BTC);Bob(6BTC)•  如果Bob在結算時,送出過去對他有利的交易

•  回想之前,誰廣播,誰必須等Time-Locks•  加上更新通道的第二步,雙方互相交換上次交易的Secrets•  如果Bob廣播對他有利的舊交易,他要等待1000個區塊•  對於Alice來說,

防止 Bob送出舊的交易

25

Page 26: Introduction to Lightning networks

Bob 廣播舊交易後

1.Alice 馬上可領錢

2.Alice知道Secret,將 6BTC 領走 (破壞交易順序的人,會損失所有錢)

26

Page 27: Introduction to Lightning networks

RSMC(RevocableSequenceMaturityContract)

27

Page 28: Introduction to Lightning networks

•  先前,Alice和Bob建立了雙向通道•  如果Alice想支付1BTC給Carol(第三者)

•  可以的作法1.  Alice與 Carol再建一條雙向通道(建立通道要成本)2.  或是,如果Bob與Carol之間已經有通道了

那麼AliceàBobàCarol

•  對Alice而言,她的疑慮–  怕Bob沒把錢給Carol–  怕Carol否認她收到錢

網路

28

Page 29: Introduction to Lightning networks

•  消除Alice的疑慮–  確認Bob將錢給Carol後,才將錢給Bob–  知會Carol,Bob會轉交錢給她

•  Alice要求Carol產生一個Secret,將Hash(secret)的結果給Alice;並告知Carol,只有Bob將錢給她後,才能將這個secret給Bob

•  同時,Alice把這個hash值給Bob,只有Bob錢給Carol後,才能拿到secret,之後交給Alice確認後,Alice才給Carol錢

Carol

29

Page 30: Introduction to Lightning networks

30

Page 31: Introduction to Lightning networks

•  他需要相信他把錢給Carol後會拿到secret•  他還需要相信Alice真的會給他錢

對於Bob

HTLC(HashedTimelockContract)

31

Page 32: Introduction to Lightning networks

Alice建立 1BTC的多簽名合約 •  Case1對於 Bob,若合約中有他的簽名以及正確的 secret值,即可解鎖

•  Case2對於 Alice,使用 CLTV-Cmelock,當合約過期後,自己簽名即可解鎖

CLTV-7melock

32

Page 33: Introduction to Lightning networks

Ethereum

•  Serenity– Ethereum2.0– SwitchtoPoSconsensus–  IntroducescalingsoluConsincludingshardingandstatechannels

33

Page 34: Introduction to Lightning networks

總結

•  無需所有交易都記在鏈上 (隱私較佳)

•  對通道中的雙方隱私性差 (同一地址)

•  通道建立必須存入訂金 (錢有段時間被鎖)

•  較少手續費有待驗證 – 找到一條路由,較少手續費,較少 hop

–  Flare:AnApproachtoRouCnginLightningNetwork(白皮書)

34

Page 35: Introduction to Lightning networks

參考文獻

•  UniversalPaymentChannels(pdf)•  TheBitcoinLightningNetwork:ScalableOff-ChainInstantPayments(pdf)

•  AProtocolforMicrotransacCons(pdf)

35

Page 36: Introduction to Lightning networks

參考文章

•  微支付通道–  IntroducContoMicropaymentChannelsstorj(link)–  Paymentchannels,LightningFAQ(link)

•  閃電網路– UnderstandingtheLightningNetwork,Part1:BuildingaBidirecConalBitcoinPaymentChannel(link)

– UnderstandingtheLightningNetwork,Part2:CreaCngtheNetwork(link)

– UnderstandingtheLightningNetwork,Part3:CompleCngthePuzzleandClosingtheChannel(link)

36