買比特幣 買比特幣
Ctrl+D 買比特幣
ads

UENC:用酒吧蹦迪的例子 解釋為什么比特幣需要閃電網絡_Asia Influencer Platform

Author:

Time:1900/1/1 0:00:00

本文由安比實驗室贊助

從川普發推到孫哥道歉,最近圈子里出現很多“吸引眼球”的事件,但他們會對整個生態真的產生什么重大影響么?

我覺得未必,把時間維度拉長,技術的進步才是關鍵的影響因素。

今天的文章是上周在Reddit熱度最高的帖子之一,它用很通俗的例子解釋了為什么比特幣需要閃電網絡,以及比特幣支付是怎么逐漸進步的。

文章很長,建議先碼后看,enjoy~

1

初代:中本聰殘破的nSequence通道

中本聰雖然把產品做出來了,但中本聰的版本完成的實在太糟糕。我們不得不自己動手修復它,順帶增加了RBF作為附帶功能。

最開始的規則是如果A交易的輸入與B交易相同,且A的nSequence更大,那么內存池會將會用A替換B。

0xFFFFFFFF是nSequence能夠取到的最大值,這會導致該筆交易被標記為“最終交易”,且不能在內存池中被替換掉。

nLockTime和nSequence正是“nSequence通道”有著如此奇怪規則的原因。nLockTime只能在nSequence小于0xFFFFFFFF時才能起作用。如果nSequence是0xFFFFFFFF,nLocktime就不會起作用。

舉一個簡單的例子:

1.你去一個酒吧,對酒保說你會在酒吧關門的時候結賬。因為我們是在比特幣宇宙,時間是以區塊高度的形式被測量的,所以酒吧關門的時間是未來的某個區塊高度。

2.當你喝第一杯酒時,你會從你的資金里拿出一筆錢,進行一筆交易付給酒保。這筆交易有一個起始為0的nSequence和一個nLocktime。你創建這筆交易然后酒保給你酒。

3.如果你想多喝幾杯,你需要重新創建類似的交易,把要多付的錢加到給酒保的交易中,但是這筆交易的nSequence要比原來的那個增加1。

4.不管怎樣,最終你可能還是會因為兩個原因離開酒吧:

酒吧關門了,nLockTime標記的關門時間一到,酒保就可以廣播最新的交易,然后讓保安不客氣把你踢出門。

你不想再喝酒傷肝了,所以你把最新交易的nSequence重簽成0xFFFFFFFF,也就是它能到的最大值。這讓酒保能夠立即拿到他的錢,所以他就可以讓保安客氣的把你送出門。

路透社:彼得·泰爾離開Meta董事會前曾不滿扎克伯格“過分關注元宇宙”:金色財經報道,知名投資人、億萬富豪彼得·泰爾去年突然從Meta董事會辭職前曾對馬克·扎克伯格癡迷元宇宙表示擔憂,而這一舉措也導致Meta錯過AI技術機遇并在與谷歌和微軟的競爭中處于劣勢。據悉,在離開Meta董事會前的最后一次會議中,彼得·泰爾告訴扎克伯格和其他高管“Meta過分關注元宇宙”,這會讓公司的核心社交媒體業務受到TikTok的挑戰。(路透社)[2023/4/26 14:26:48]

這就是支付通道,它是通過創造一筆“最終”交易來關閉的,這筆交易包含此前的交易。這里當然不存在rounting,因為通道是單向的而且有最大生命周期的限制。但是還是放過中本聰吧,他需要休息,那時他也正忙著發明比特幣呢。

還記得我說這種支付通道是殘破的么?

這是因為內存池規則不是共識規則,而且不能被驗證。全節點并不能看到你簽名的所有交易,只有帶有最大的nSequence的那筆交易才是真正在鏈上使用的。

所以你可以像下面這樣做:

1.成為吳忌寒的朋友,因為他擁有51%以上的算力。

2.給吳忌寒一些你定的酒作為與你合作的獎勵。比如說你定了一百杯酒,你和吳忌寒把酒分了,給他了50杯。

3.當酒吧關門時,吳忌寒讓他的礦機挖nSequence為0的那筆交易。就是那筆你只付了一杯酒錢的那筆交易。

4.因為全節點沒有辦法驗證nSequence,它們會接受nSequence=0的版本然后確認,傻傻地把僅付了一杯酒的錢寫進區塊鏈。

5.這個酒保被激怒了,從吧臺下面拿出一把槍,想把你和吳忌寒打死。

6.吳忌寒用他的魔法力量來讓子彈減速,結果子彈只是像風吹花瓣一樣輕輕接觸了你一下。

7.酒保嘴里嘟囔著聽不清的話,突然他的衣服被撕開了,他真的變成了一頭熊!

8.你盯著它,心里想著萊昂納多能從熊的爪子下活下來,那你也能活下來,況且他只是一個有錢的演員而已,然后你擺好了姿勢,嘴里喊著“吃我一招!”

9.有人能繼續幫我編下去么?

下面是知識點:

1.遇到熊人非常糟糕。

Hamster宣布智能合約Gas分析工具正式上線:4月25消息,一站式Web3.0安全開發環境及中間件引擎Hamster自研的智能合約代碼分析工具正式上線。據悉,該工具可向Web3.0數以十萬計的智能合約提供合約Gas消耗情況分析,能大幅提高合約運行效率,緩解以太坊網絡堵塞情況。此外,Hamster將自動創建模擬鏈并生成Gas費消耗報告,讓開發者更好地了解自己合約在以太坊網絡中的消耗情況。通過結果分析,開發者還可以發現合約中的潛在問題,如:循環操作次數過多;過量的存儲操作與計算操作;不必要的外部調用及復雜性設計等。能進一步優化合約的性能和可靠性,降低運行成本。[2023/4/25 14:25:06]

2.你不能僅僅因為閃電網絡不是鏈上的,就馬上否定它,然后啟用所謂的“中本聰版本”。

中本聰版本是一個帶有nSequence支付通道的半成品,在這個方案中鏈上交易代表著多個邏輯上交易款項的和,這幾乎和現代版本的鏈下技術做的一樣。nSequence早在windowsAlpha0.1.0版本就存在了。

3.礦工完全能夠繞過內存池規則。實際上,nSequence能夠變成一個可選的功能是因為礦工被nSequence系統激勵著一直遵守RBF規則罷了。

我的意思是,你給吳忌寒的酒,除了能是你給礦工挖特定版本的交易的手續費,還能是什么其他東西呢?

4.中本聰也會犯錯,最初的nSequence的設計就是其中之一。今天,我們不再這樣使用nSequence了。

改進中本聰最初的版本是比特幣開發的一部分,因為隨著時間的發展,我們學到了一些中本聰永遠不會不知道的東西。中本聰是這項科技的一個里程碑。但是他永遠不會是最后一個,也不會是最重要的一個,他會被歷史牢記,但也只是作為一個先行者的身份。

2

Spilman通道

Spilman通道是激勵兼容-限時型單向通道,實際上就是一種改進版的中本聰通道。

現在,我們知道如果你想在交易通道上作弊,酒保會變成一頭熊咬你。而且我們知道你是吳忌寒的好朋友,酒保再也不會接受一個能夠讓顧客和礦工聯合起來騙人的支付通道方案。

好消息來了,JeremySpilman提出了一個新方案能夠讓顧客再也騙不到酒保了。首先,你和酒保進行一個這樣的儀式:

UniSat Wallet:由于代碼庫存在漏洞,UniSat Marketplace數小時前遭到大量雙花攻擊:4月24日消息,UniSat Wallet發推表示,幾個小時前,由于我們的代碼庫存在漏洞,剛剛上線的UniSat Marketplace遭受了大量雙花攻擊。在上周的測試中,我們模擬了不同的雙花攻擊方法,并對代碼進行了改進和增強。不幸的是,在最初的公開版本中仍然暴露了某些問題。目前,我們有了初步的調查結果,在所有383筆交易中,有70筆交易被確定為受影響。將在未來幾天進一步調查,并賠償與該事件有關用戶的損失。

此前消息,UniSat Wallet表示,由于存在一些問題,UniSat Marketplace暫時無法訪問。[2023/4/24 14:23:24]

1.你拿出一些資金,然后創造一筆注資交易付給一個你和酒保之間的2/2多重簽名地址。你現在不會廣播這筆交易:你只是進行了簽名,得到了交易ID。

2.你再創造另一筆交易用來返還的上面資金。這筆交易有一個nLocktime,它的值是酒吧的關門時間再加上一個區塊高度。你給它簽名然后把這筆退款交易給酒保。

3.酒保給退款交易簽名,然后又還給你。現在它就是合法的了,因為你和酒保都簽名了。

4.現在你把第一筆交易廣播到鏈上。你和酒保等待這筆交易深度確認,然后你再開始消費。

上面的步驟也許對閃電網絡用戶來說依稀有些熟悉。這是支付通道的資金創建過程!第一筆付給2/2多重簽名地址的交易是用來給通道提供資金的。

然后你開始像這樣買酒:

1.第一杯酒,你創建一個花費注資交易的輸出,把酒品的花費發送給酒保,然后剩余的返還給你。

2.你給這筆交易簽名然后把它交給酒保,酒保就給你第一杯酒。

3.為了能再拿一杯酒,你要再創建一筆類似的交易,先新酒的錢加到之前給酒保的錢上,然后再把剩余的錢返回給你。你給這筆交易簽名又發給酒保,酒保就再給你一杯。

4.到最后:

如果酒店關門的時間到了,酒保就給最新的交易簽名,將需要的雙重簽名補全然后向比特幣網絡廣播這筆交易。因為退款交易的是廣播的時間是關門時間1,所以在關門以前它不能使用。

如果你的肝受不了所以你想早走,你只需要告訴酒保關閉通道就好了。

Arthur Hayes回應SBF:Alameda是否對沖并不重要,Alameda賬戶早應被清算:1月14日消息,BitMEX創始人Arthur Hayes在推特發文回應SBF稱,如果客戶被清算,交易所不應該虧錢。關于Alameda的一切談論都是誤導。他們如何對沖或不對沖,或者他們的投資組合中有什么都不重要。沒有理由不清算Alameda的賬戶。如果Alameda早就被清算,FTX應該不會破產。Hayes還要求SBF回答是如何在FTX層面進行風險管理的,以及為什么有些客戶會受到不同的對待。[2023/1/14 11:11:56]

如果你僅僅是在酒吧里閑逛但是從來沒有買東西,這樣的話當到了關門時間1的時候你就廣播你的退款交易,拿回你全部的資金。

現在,即使你給吳忌寒50杯酒,你也不能讓他挖最開始的那筆交易,因為這是一筆2/2的多簽名地址但是它只有你自己的簽名。

你需要酒保的簽名讓這筆交易合法,但是他當然不會這么傻,酒保不會給出自己的簽名讓舊版本的交易合法,自己得到更少的錢。

所以,問題被解決了是吧?解決了嗎?讓我們來試試吧。你拿到了你的資金,把他們放入一個注資交易中,弄好退款交易,確認注資交易……

一旦注資交易深度確認完成,酒保意味深長的笑了。他叫來了保安,氣勢洶洶的盯著你。

“我拒絕給你服務”,酒保說。

“好吧,那我走好了”你面帶傻笑,“我會用退款交易拿回我的錢,然后在大眾點評上給你個大差評!”

“先別急”酒保說。他的聲音讓你背脊發冷,就像是他還記得你之前玩弄他的事,“瞧瞧剛才確認的那筆注資交易的交易ID。”

“它咋啦?”你面無懼色的問道,說著你打開了你的筆記本電腦,然后找到了一個可靠的區塊鏈瀏覽器。

接下來的看到的東西把你嚇壞了。

“啥玩意?交易ID變了?!你他媽改了我的簽名??怎么可能?我把我唯一一份私鑰藏在了一個密封的信封里,然后把它放在一個神秘戈壁灘的保險柜里,一群驍勇的游牧民族守護它,他們以自己兒女的鮮血起誓,要誓死捍衛這份秘密!”

“難道你不知道?”酒保笑了。“簽名僅僅是非常大的數字。簽名中的一個標記可以被改變,從正變到負,或者從負變到正,但是簽名仍然是合法的。即使不知道私鑰,任何人都可以這么做。但是比特幣在生成交易ID時在其中包含了簽名,所以這一點小改變也讓交易ID改變。有人想把簽名從交易主體中分離出去,他們說這樣簽名延展性就不再會影響到交易ID了,但是我打賭我可以讓我的好哥們吳忌寒拖延這個’Sepsig’(分離簽名)計劃好長時間。

通過Avalanche Bridge跨鏈至Avalanche的比特幣數量已突破4000枚:11月3日消息,據Snowtrace數據顯示,在Avalanche Bridge新增對比特幣的支持后,通過Avalanche Bridge跨鏈至Avalanche的比特幣數量已突破4000枚,當前約為4081.19枚,價值約8366.46萬美元。[2022/11/3 12:13:13]

吳忌寒是個好人,只要我給他51杯啤酒,他就愿意挖那筆改動了的交易”他笑得更開心了“恐怕你的退款交易不會起作用了,因為它想花的那個交易ID根本不存在。

好吧,讓我們來談談吧。你把你注資交易里99%的資金給我,作為交換,我會給你在鏈上的那筆交易簽名。如果拒絕,那你一毛不剩。但是我和所有的HODLer都會因為流通又減少了一些歡呼雀躍。接受這筆交易你可以剩1%的錢。如果你拒絕我,我也分毫不會損失,好好考慮一下吧!”他的眼睛發著貪婪的光。

學到什么嗎?

報復行為很糟糕。

交易延展性更糟糕。這就是我們為什么要在隔離見證里修復這個bug的原因。MtGox宣稱他們就是被這種漏洞攻擊了,有人一直搞亂他們交易的簽名,導致他們資金去向被重復提款,但是修復交易延展性更主要的是為了支持支付通道。

把簽名包括進去取哈希,最終決定交易ID的設計是一個錯誤。中本聰犯了許多這樣的錯誤。我們必須重申“中本聰并不是一個有著無限智慧的天龍人”。

3

CLTV保護型Spilman通道

使用CLTV做退款分支。

這和Spilman通道的區別是退款交易被退款分支給代替了。這種方案只有在2015年后OP_CHECKLOCKTIMEVERIFY被啟用才成為可能。

就像我們在Spilman通道里討論的那樣,交易延展性導致任何在鏈下被預注冊的交易都可以在注資交易未被確認的時候通過改動注資交易的簽名使預注冊的交易無效化。

這可以通過簡單地在比特幣腳本中把一些特殊的要求加到特定分支中來避免。現在,退款分支可以為支付通道創造一個最大的生命周期,通過我們之前對OP_CHECKLOCKTIMEVERIFY的介紹,我們知道這只有在有一個預注冊的nLockTime的時候才是可行的。

通過CLTV,我們可以在你要支付的腳本中加入很多分支判斷使它能夠避免上面的問題。

為了設定好注資交易,你現在不必再向一個2/2地址付錢了,你現在要向一個腳本支付資金,這個腳本基本就相當于一個一開始是2/2但經過一段時間就變成單簽名的地址。這樣就不再需要預注冊的交易了。

你可以稍后使用任何已確認注資交易的交易ID來創建你的退款交易。既然注資交易已經被確認,所以也就不可能再更改交易ID了。

4

Todd微支付網絡

閃電網絡最直接的前輩就是由PeterTodd引入的hub-spoke模式。

在這種模式中,付款人和收款人并不直接聯系,付款人和收款人都連接上一個中心hub。

這就使得任何的付款人可以向任何的收款人使用在hub上的同一個支付通道付費。相似的,它也允許任何的收款人從任何的付款人那里使用同一個通道收款。

還記得之前的Spilman的例子嗎?當你向酒保打開一個通道后,你必須等待注資交易確認。這可能會花費一個小時的時間。再想象一下你需要和所有你要付款的人開通通道。這并不具備可拓展性。

所以hub-spoke模式有一個清算中心,用來將資金從付款人轉移到收款人。“Moonbeam”項目采取了這個模式。當然,這個模式hub會知道誰是付款者和收款者,所以hub有審查交易的能力。當然,通常hub更有效率的審查方式是不再維護它想審查的付款人和收款人的通道就好了。

擁有監控支付的能力意味著hub可以販賣私人交易數據來牟利。在今天,這種對隱私的破壞是不能容忍的。

另一個值得注意的點是如果這樣的網絡真的被大規模推廣了,但是它只有單向的通道可以使用。但是一個人可能是付款人,也可能是收款人,你需要分別創建一個收款通道和付款通道。更糟糕的是,如果你想把錢從收款通道轉移到付款通道,你需要在鏈上把他們都關閉然后再開通一次。

5

Poon-Dryja閃電網絡

Poon-Dryja是雙向雙參與者通道。

Poon-Dryja通道的機制有兩個重要的改變:雙向且沒有時間限制。

最初的中本聰版本和Spilman變體都是單向的:這里存在不同的兩方,付款者和收款者,如果收款者想要退款,或者收款人想要買一個付款人的東西,他們也不能使用同一個通道。

Poon-Dryjam機制可以使通道變成雙向的,你不只是一個付款人或者收款人,只要你的對手方在線,你可以任意的收款和付款。

更進一步講,不像是Spilman變體,通道沒有時間限制。你可以讓通道維持到你想要的任何時候。

這兩種特性,合在一起形成了一種大多數人都沒有意識到的強大的拓展性。在單向的支付通道中,你需要為收錢和付錢單獨開設一條通道。你需要定期的在鏈上執行操作來“逆轉”支付通道的方向。其次,因為Spilman通道有一個固定的生命周期,你必須周期性的關閉和重開通道。

有了雙向、無限生命周期的通道,可能你一生只需要進行兩筆鏈上交易,一次在你開通通道時,一次在你死后遺產分配時。這就是這種通道的強大之處。

我不會在去解釋Poon-Dryja雙向通道的交易結構,它很復雜,而且你還可以在其他地方找到簡單易懂的圖示來搞明白它的機制。

下面我們來講一下Poon-Dryja通道的一些人們常常忽視的缺點。

你必須存儲這個通道所有的撤銷密鑰。通道的每一次更新你都需要存儲一個撤銷密鑰,也就是說僅僅對一個通道來講,你需要在你的一生中存儲上百萬的密鑰,大小會到幾兆。

RustyReddit解決了這個問題,我們可以從一個種子密鑰開始生成所有的密鑰。每一個密鑰都是那個種子密鑰不斷重復的取SHA256。

比如,我告訴你我的第一個撤銷密鑰是SHA256)。你可以在O(1)中存儲它。等到下一次撤銷時,我告知你撤銷密鑰是SHA256(seed)。從SHA256(seed)開始,你自己就可以計算SHA256)。所以你只需要記住最近的撤銷密鑰就可以了,你可以通過計算得出之前的每一個密鑰。當你開通一個通道時,你會在你的種子密鑰上執行上百萬次SHA256,然后把最終結果作為第一次使用的撤銷密鑰,每當你需要一個撤銷密鑰時你只需要去掉一層SHA256。RustyReddit還提出了一種效率很高的儲存結構O(logn),shachain。如果出現狀況,你能夠很快的找到原來的撤銷密鑰。人們現在不再討論這個儲存問題了,因為它被非常完美的解決了。

我想強調的另一件事是,當閃電網絡的論文從老的hub-spoke模型里被發展出來時,現代的閃電網絡吸取了教訓,不再區分“hubs”和”spokes”了。

在閃電網絡中的任何節點都可以當作其他節點的hub。所以,即使你在執行過程中只付款,或者只轉發交易,至少最終你仍然部分是轉發節點。這大大的減少了只有幾個hub節點導致的隱私問題:轉發節點只能得到通過他們的很少的信息,因為付款人和收款人之間的距離太大了,最終的收款人和付款人可以是閃電網絡上的任何人。

又到了知識點時間:

只要我們足夠努力我們就可以做到去中心化!

只要我們都是hub,hub也可以變成一個好東西。

聰明的人能夠解決問題,這也是他們聰明的原因。

6

未來

在閃電網絡之后,有Decker-Wattenhofer雙工微支付通道。它使用了一種奇妙的“nSequence遞減通道”,使用一種新型的nSequence相對時間鎖語義。它使用多個“遞減nSequence”結構體,終止于一對Spilman通道中,兩個方向各一個。

通道結構實際上可以在其中包含更多通道構造,這引導我們更進一步提出了Burchert-Decker-Wattenhofer通道工廠。

基本上是說,你可以持有多個雙參與者通道結構,這些通道結構又被包含在一個更大的多方“通道”里。

繼續更進一步,我們還有有Decker-Russell-Osuntokun或者“eltoo”結構。這篇文章已經夠長了,我準備以后再討論它。

比特幣鏈下擴展性比你想象的還要強大的多。

作者:almkglor

翻譯:空島飛行

原文地址:

https://www.reddit.com/r/Bitcoin/comments/cc9psl/technical_a_brief_history_of_payment_channels/

橙皮書廣告牌

ZKPOD=ZKPOD

https://github.com/sec-bit/zkPoD-node

Tags:ENCSequenceUENCNCEBenchmarkAsia Influencer PlatformINFLUENCE

中幣交易所
USD:JEX上線月BTC期權0828公告_USDT

BTC看漲期權 代碼月BTC看漲0828期權標的BTC合約類型歐式看漲期權計價單位USDT最小價格單位0.0001USDT合約比例4000:1.

1900/1/1 0:00:00
WAN:火幣全球站關于HT鎖倉挖礦設置體驗期并免收違約金的公告_Wanaka Farm

尊敬的用戶: 火幣全球站聯合火幣礦池于新加坡時間2019年7月25日15:00:00上線HT鎖倉挖礦功能,受到了HT用戶的廣泛關注.

1900/1/1 0:00:00
NEX:第四屆《WHATs NEXT!5G到未來》移動互聯網高峰會_NEXT

活動介紹 地點:中國·臺灣 時間:08月28日09:00–08月28日18:00#全臺最高規格5G盛會登場5G箭在弦上,區塊鏈風起云涌,FinTech普及成熟,AI來勢洶洶.

1900/1/1 0:00:00
BAAS:螞蟻金服副總裁蔣國飛:共建價值互聯網 迎接新契約時代_BAAS價格

本文作者:螞蟻金服副總裁兼阿里巴巴達摩院金融科技實驗室主任蔣國飛早在幾百乃至幾千年前,東西方社會就對理想社會形態有著看似不同但本質相近的描述.

1900/1/1 0:00:00
穩定幣:「完」經濟學家眼中的數字貨幣系列之七:共創未來(趨勢篇)_比特幣

面對數字貨幣的全新挑戰,經濟學家分兩類,一類嗤之以鼻,認為數字貨幣屬于投機泡沫不值一提;另一類則謹慎接受,開始前沿的探索性研究。隨著數字貨幣的發展壯大,越來越多的經濟學家加入第二陣營.

1900/1/1 0:00:00
Synapse:“收費帶單王”AK:年入7200萬的幣圈騙局?_元宇宙

2018年,初入幣圈的小白張揚在微博上看到“期貨大神”AK的時候,他激動的覺得自己人生的大機遇到來了.

1900/1/1 0:00:00
ads