以太幣交易所 以太幣交易所
Ctrl+D 以太幣交易所
ads
首頁 > XRP > Info

斯坦福大學 CS251(加密貨幣與區塊鏈技術) 2021 期末考試題 看看你能得多少分?_NFT

Author:

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

編譯:TechFlowintern

根據斯坦福榮譽守則的明文規定和精神,我在這次考試中既沒有得到任何幫助,也沒有提供任何幫助給別人。

本考試包含6個問題,共計100分。

你需要在規定時間完成考試。

請在Gradescope(D5GKRX)上作答。??

回答問題請簡明扼要。

問題1.宏觀問題。

A)→請簡要回答為什么Rollup系統將所有交易都存儲在鏈上?如果交易數據丟失,而其他地方又沒有備份,那將會怎么樣呢?

B)→請看以下Solidity代碼:

pragmasolidity^0.8.0;

contractERC20isIERC20{

mapping(address=>uint256)private_balances;

eventTransfer(addressindexedfrom,addressindexedto,uint256value);function_transfer(addresssender,addressrecipient,uint256amount){emitTransfer(sender,recipient,amount);

}}

假設該代碼部署于兩個契約中:一個地址為X的契約和一個地址為Y的契約。以下的哪個選項可以在契約X中讀到_balances的狀態?圈出正確的答案。

A?合同ERC20中地址X處的_transfer()函數中的代碼

B?合同ERC20中地址為Y的_transfer()函數中的代碼

C?使用etherscan.io的終端用戶

C)→繼續上一題,下面哪一個選項可以在函數_transfer()被撤回時,讀取日志項Transfer的發出?請圈出正確的答案。

A在ERC20合同中定義的地址為X的getBalance()函數中的代碼

B在ERC20合同中定義的地址為Y的getBalance()函數中的代碼

斯坦福法學院前院長回應為SBF擔保的原因:SBF父母曾在其家人抗癌時提供幫助:2月16日消息,斯坦福法學院前任院長Larry Kramer表示,其為前FTX首席執行官Sam Bankman-Fried(SBF)簽署保釋金的原因是,SBF的父母曾在其家人抗癌時提供幫助,因此希望以這種方式作為回報。

Kramer稱,在過去的兩年里,SBF的父母Joe Bankman和Barbara Fried在他的家人與癌癥作斗爭時,提供了食物和精神上的支持,同時“經常在緊急情況下介入幫助”。他補充說:“反過來,我們也在他們面臨危機時尋求支持。”Kramer強調,他沒有受到任何與FTX有關的實體向他支付的任何款項的影響而擔任擔保人。

此前今日早些時候消息,斯坦福研究總監和法學院前任院長系簽署SBF保釋金的擔保人。(Cointelegraph)[2023/2/16 12:10:37]

C使用etherscan.io的終端用戶

D)→當兩個以太坊交易txi和tx2被同時提交時,將交易?txi的maxPriorityFee設置為y,交易tx2的maxPriorityFee設置為2y,請問tx2一定要在txi之前在chain上執行嗎?請給出答案并論證。你可以假設txi和tx2的maxFee都大于baseFee+maxPriorityFee。??

E)→?Alice想從經銷商Bob那里買一輛車。她發送1個比特幣到Bob的比特幣地址。Bob等待一個交易,這個交易中其1,輸入來自Alice的地址,其2,其中一個輸出是綁定到Bob地址的UTXO,價值1BTC。只要鮑勃在比特幣區塊鏈上看到這筆交易,他就把鑰匙給Alice,然后Alice就可以把車開車走了。這樣安全嗎?Alice能免費得到那輛車嗎?如果可以,請解釋原因。如果不可以,請解釋Bob應該如何做來確保他被支付。

F)→Alice有一臺型號為Y的全新特斯拉。她現在就可以以此為抵押物在Compound系統做貸款嗎?如果是,請解釋怎么做,如果不可以,請解釋為什么。

問題2.Byzantinebroadcast.

假設有n方,而且n>3,其中一方被指定為是sender.Sender有比特b∈{0,1}.brodacast協議是指各方向對方發出信息,而且最終每一方都輸出一些比特bi,這里的i可以是1,....,n或者為0.

斯坦福大學研究員推出“可逆交易”標準ERC-20R、ERC-721R,以解決日趨嚴重的安全問題:9月25日消息,斯坦福大學研究員kaili.eth今日發推稱,已與其他幾位研究員合作設計了兩種新的以太坊代幣標準ERC-20R、ERC-721R。

kaili.eth解釋稱,ERC-20R、ERC-721R的設計是為了解決加密貨幣行業內泛濫的盜竊事件,其最大亮點為“可逆交易”。具體來說,ERC-20R、ERC-721R引入了一個“去中心化法庭”機制,當出現資產被盜情況時,受害者可以先行申請凍結資產,這時”去中心化法庭“可以通過一輪快速投票來決定是否同意凍結,對于已凍結資產,該“法庭”之后將基于涉事雙方所提供的證據來決定究竟是該解凍還是該退回資產,從而解決安全事件糾紛。[2022/9/25 7:20:12]

我們認為協議具有一致性,即對于每兩個誠實方來說,如果一方輸出b,另一方輸出b',則b=b'。

我們認為協議是有效的,即如果發送方是誠實的,則所有誠實方的輸出等于發送方的輸入比特b。?

我們認為協議具有普遍性,即當某個誠實方輸出一個比特時,那么最終所有的誠實方都輸出一個比特。

一個reliablebroadcastprotocol(RBC)是滿足以下三個特性的廣播協議。我們假設存在一個公鑰基礎設施(PKI),這意味著每一方都有一個秘密的簽名密鑰,并且每一方都知道另一方的正確的公開簽名驗證密鑰。

在同步網絡中,考慮以下廣播協議:

步驟0:Thesendersendsitsinputbitb(alongwithitssignature)toallotherparties.Thesenderthenoutputsitsbitbandterminates.Sender向其他所有協議方連同其簽名一起輸入比特b,然后輸出比特b并終止。

步驟1:每個非發送方i向其他非發送方反饋其從發送給方聽到的信息,該信息被附加了i的簽名。如果其未聽到任何發送方的消息,則在這一環節什么都不做。同樣地,如果發送方的信息是畸形的,那非發送方在這一環節仍然什么都不做。畸形的信息包括發送者的簽名無效,或者該信息并被單獨比特。

Cardano建設者IOG資助斯坦福大學區塊鏈研究中心 450 萬美元:金色財經報道,Cardano 區塊鏈建設者 Input Output Global (IOG) 已在斯坦福大學資助了一個價值 450 萬美元的區塊鏈中心。

除了斯坦福,IOG 還與愛丁堡大學、懷俄明大學、雅典大學和東京工業大學開設了研究實驗室和合作項目。去年,卡爾達諾創始人查爾斯霍斯金森向卡內基梅隆大學(CMU) 捐贈了 2000 萬美元,用于建立霍斯金森形式數學中心。(coindesk)[2022/8/30 12:56:31]

步驟2:每個非發送將其收到的所有信息收集起來,最多到n-1的消息,其中最多一條來自步驟0的發送方,和最多1條來自步驟1中的每一個非發送方non-sender方。如果有兩個由發送方收到消息包含一個有效的簽名,但比特相反(即,在一個簽名的消息中,比特為0,在另一個簽名的消息中,比特為1),那么發送方是不誠實的,那么非發送方輸出0并終止協議。相反,發送方發送的所有正確簽名的比特都是相同的,那么非發送方輸出該比特。如果非發送方沒有收到任何消息,則不輸出任何內容。

針對以下問題,描述一次攻擊,或解釋為什么沒有受到攻擊。

A)???假設最多只有一個不誠實方,協議是否仍具有一致性???

B)???假設最多只有一個不誠實方,協議是否仍具有有效性?

C)???假設最多只有兩個不誠實方,則表明協議不具備一致性。

D)????假設最多有兩個不誠實方,協議是否具有有效性?

E)????對于任何數量的不誠實方,協議是否具有普遍性?

問題3:Automatedmarketmaker(AMM).

你作為UniswapV2的流動性提供者,為DAI/ETH池貢獻5個ETH即5000個DAI。假設1個DAI值1美元,那么你的出資總額為1萬美元。

A)???幾個月后,1個ETH的價格上升到2000DAI。在DAI/ETH池適應這個新的匯率穩定下來以后,您決定撤回作為流動性提供者的全部份額。假設系統不收費(?=1),你會收到多少ETH和DAI?

B)???如果你自己持有你的5ETH和5000DAI,你的資產現在將價值15KDAI,獲取了5000DAI的利潤。在這幾個月里,作為UniswapV2的流動性提供者,與“自己持有”策略相比,你經歷了什么損失?將損失以美元的絕對值表示,假設1DAI=1USD。這被稱為暫時性損失,盡管在這種情況下,這種損失是相當永久性的。

斯坦福大學數字貨幣未來計劃執行董事面臨聯邦電信欺詐指控:金色財經報道,斯坦福大學數字貨幣未來計劃(Future of Digital Currency Initiative)的執行董事Lawrence Rufrano面臨聯邦電匯欺詐指控。[2020/10/30]

C)???如果您因擔任UniswapV2的流動性提供者而損失了x美元,UniswapV2是用部分計算x的,那么這些資金流向了哪里?具體來說,就是誰在這個過程中獲得了x美元?

D)????現在讓我們轉向使用UniswapV2交易。假設Bob使用DAI/ETH池將DAI兌換成ETH進行大型交易。交易完成后,DAI/ETH池中的DAI金額比之前略高,而ETH的金額則略低。因此,DAI/ETH?池中的資產比率有點偏離其平衡點。

套利者Alice發現了這個機會,并希望在反方向發行一個交易,以重新平衡資金池。她旨在從這筆交易中獲利,所以希望確保她的交易在Bob交易后被立即執行。這種策略被稱為“尾隨”。

那么Alice如何能實施尾隨計劃呢?請提出可以使Alice的交易在Bob之后可以有合理機會被立即被執行的方法。

E)?????假設10個不同的套利者,為捕獲Bob的交易創造的套利機會,在同一時間執行了相同的尾隨操作策略。他們都使用了你在(D)部分中所描述的相同機制,那么這10個中的哪一個會獲勝呢???

問題4.?:Hashmasks重入缺陷

在第8課和第3節中,我們討論了堅固重入缺陷。在這個問題中,我們將看一個有趣的現實世界的例子。考慮下面16384個NFT中使用的穩固代碼片段。通過撤回此NFT合約上的mintNFT函數,用戶一次最多可以聲明20個NFT。您可以假設所有內部變量都由構造函數正確初始化。

functionmintNFT(uint256numberOfNfts)publicpayable{

require(totalSupply()<16384,"Salehasalreadyended");

require(numberOfNfts>0,"numberOfNftscannotbe0");

斯坦福大學商學院將在今年5月開始提供一門全日制的加密貨幣課程:斯坦福大學商學院(Stanford University 's Graduate School of Business)將在今年5月開始提供一門全日制的加密貨幣課程。新課程是由MBA學生發起的,他們認為創新的理念對他們未來的職業生涯至關重要。我們中的許多人將不得不在工作中討論區塊鏈。“教它是有意義的,”二年級學生Itamar Orr解釋說。“這會給你帶來競爭優勢;這是一個額外的錘子在你的工具箱里。[2018/4/9]

require(numberOfNfts<=20,"Youmaynotbuymorethan20NFTsatonce");require(totalSupply().add(numberOfNfts)<=16384,"ExceedsNFTsupply");require(getNFTPrice().mul(numberOfNfts)==msg.value,"Valuesentisnotcorrect");

for(uinti=0;i<numberOfNfts;i++){

uintmintIndex=totalSupply();//getnumberofNFTsissuedsofar????

_safeMint(msg.sender,mintIndex);//mintthenextone

}}

function_safeMint(addressto,uint256tokenId)internalvirtual{

//MintoneNFTandassignittoaddress(to).

require(!_exists(tokenId),"ERC721:tokenalreadyminted");

_data=_mint(to,tokenId);//mintNFTandassignittoaddressto

_totalSupply++;//incrementtotalSupply()byone

if(to.isContract()){

//ConfirmthatNFTwasrecordedproperlybycalling

//thefunctiononERC721Received()ataddress(to).

//Theargumentstothefunctionarenotimportanthere.

//IfonERC721Receivedisimplementedcorrectlyataddress(to)then

//thefunctionreturns_ERC721_RECEIVEDifalliswell.

bytes4memoryretval=

IERC721Receiver(to).onERC721Received(to,address(0),tokenId,_data);

require(retval==_ERC721_RECEIVED,"NFTRejectedbyreceiver");

}}

讓我們證明_safeMint根本不安全。

A)????假設已經鑄造了16370個NFT,那么總供給=16370。請解釋惡意合同如何導致超過16384個NFT被偽造。攻擊者最多可以造出多少個NFT?

提示:如果在呼叫地址收到的OneRC721是惡意的,結果會怎樣?請仔細檢查鑄幣回路,并考慮重入缺陷。

B)????假設現在總供給的價值是16370,請寫出實施對部分進行攻擊的惡意Solidity合約代碼。

C)????你會在前一頁的代碼中添加或更改哪一行Solidity來防止你的攻擊?請注意,單個交易不應該鑄造超過20個NFT。

問題5.?比特幣問題.

A)???LightningNetwork協議的好處是無需向比特幣網絡發布交易即可執行支付。LightningNetwork支付最終會完全取代所有的比特幣交易,使區塊鏈變得不必要嗎?

B)???回顧而知,比特幣交易有一組輸入地址和一組輸出地址。通常,每個輸入地址預示著整個交易可(不包括簽名)授權支付。此簽名類型被稱為SIGHASH_ALL。

相反,假設使用每個輸入地址的密鑰來簽名整個Txin(交易的輸入部分,不包括簽名),而不簽名其他任何內容。也就是說,Txout(交易的輸出部分)沒有簽名。(該簽名類型稱為SIGHASH_NONE)。

一旦交易提交給比特幣網絡后,對于使用SIGHASHNONE方法的交易,礦工是否可以從其輸入的地址中竊取資金?如果可以,請解釋如何竊取;如果不可以,請解釋原因。

C)???如果有人在只有ECDSA公鑰的情況下,發現了一種方法來偽造ECDSA簽名的任意消息,比特幣會受到怎樣的影響?假設偽造一個簽名需要30分鐘且不能加速。

問題6.:Tornado現金

在第14講中,我們講了TornadoCash攪拌機。回想一下,Tornado現金合同需要存儲一個大的nullifiers,列表,每次從樹中提取一個nullifiers,。在合同撤銷期間,合同需要確保被撤銷的票據的nullifiers,不在已撤銷的nullifiers,清單中。如果是,合同將這個nullifier添加到集合中。Tornado現金合同將其實現為一個映射:

mapping(bytes32=>bool)publicnullifierHashes;

在撤銷過程中,合同應驗證所提供的zk-SNARK證據,如果合同有效,則應:

bytes32_nullifierHash;//nullifierofnotebeingwithdrawnrequire(!nullifierHashes,"Thenotehasbeenspent");nullifierHashes=true;

A)???假設從樹中成功提取了k。考慮一個礦工正在驗證以太坊交易。作為k的函數,這個礦工需要分配多少存儲空間來存儲nullifierhash映射?你可以假設除了這個nullifierhash映射之外,Tornado合同不需要其他長期存儲。

B)???如果我們能將撤銷的nullifierSk在鏈外存儲起來,比如儲存在云端,那就更好了。Tornado契約將只存儲針對當前nullifierSk集合的一個短提交。當撤回withdraw函數時,用戶將向該函數提供所有當前參數,此外,用戶還將提供:

一個證明π,即撤回的硬幣的nullifiernf?不在提交的nullifier集合中,即nf?Sk,而且

Tornado合同能夠計算更新的nullifier集合提交的足夠的信息Sk+1:=SkU{nf}

該合約將驗證π的證明nf??Sk,并計算出對Sk+1的提交,并用更新后的對Sk+1的提交替換當前對Sk的提交。

有幾種數據結構提供了這些功能,比如Sk的提交是一個32字節的哈希值,而π證明只包含2個32字節的哈希值。此外,這個簡短的證明使Tornado合同能夠計算Sk+1的短期提交。通過改編第7講中介紹的MerklePatricia樹可以得到一個例子,但我們將把這個問題留到以后來解決。

雖然這種方法將大大減少合同存儲矩陣的大小,但只有當它將減少撤回提取函數所需的燃料時,才值得實現。考慮以下的燃料成本:

寫入存儲數組中的零項:20K燃料

寫入存儲數組中的非零項:5K燃料,

calldata(包含參數函數的字節數組):每字節16個燃料

假設我們只計算上面列出的三項所消耗的燃料。當撤回當前的執行時,這一改變將節省的燃料價值k是多少?回想一下,證明π是32×2[log2k]字節,其必須作為提取函數撤回call-data的一部分提供。

C)???回想一下,Tornado現金提供了一個合規工具,可以讓用戶去匿名化他們的硬幣:該工具生成一個文件,將用戶的存款與特定的撤回聯系起來。在交易所接受該資金前,該文檔可能需要提交給集中式交易所(如Coinbase)。

假設n個人將一枚硬幣存入一個Tornado池,那么這個池的匿名性設置為n(假設n=1000)。此后,所有的n個人將他們的硬幣取出到n個新的以太坊地址中(每個新地址都有一個硬幣)。觀察者無法判斷哪個新的以太坊地址對應于這n個人中的某一個,因此匿名集的大小為n。

但是,假設有n-1人使用合規工具并將結果文檔發送到Coinbase。這對于最后一個希望擁有私人地址的人的隱私意味著什么?

課程鏈接:https://cs251.stanford.edu/

Tags:NFTINTLIFETHNFT幣三年后價格1元INTU幣ALIF價格ethereal中文名

XRP
淺談當前玩賺公會設計的優缺點 以及改進建議_PLAY

在過去一年的時間里,加密貨幣領域的公會生態系統發展迅速,它從一個簡單的想法發展到了一個尋求參與所有權經濟的多樣化團體集合.

1900/1/1 0:00:00
批準虛擬資產法:石油王國迪拜又一次走在了全球前列_加密貨幣

3月9日,阿聯酋副總統兼總理謝赫·穆罕默德·本·拉希德·阿勒馬克圖姆簽署了首個監管迪拜虛擬資產的法律——虛擬資產法,并建立了一個獨立的機構來監督加密貨幣行業.

1900/1/1 0:00:00
如果加密貨幣市場出現“投降”事件 我們該如何應對?_比特幣

原標題:《加密貨幣市場出現投降會發生什么?我們該如何應對?》在寫這篇文章的時候,加密貨幣市場是無聊和糟糕的.

1900/1/1 0:00:00
以太坊上前十大DApp有哪些?_以太坊

以太坊是市值僅次于比特幣的區塊鏈網絡,實際上,以太坊上有許多功能不同的區塊鏈應用,稱為DApp。這些功能多元的DApp讓以太坊具有生命力.

1900/1/1 0:00:00
金色觀察 | 拜登正式發布數字資產行政令全文 詳解美國數字資產監管行動框架_數字資產

美國當地時間2022年3月9日,美國總統拜登正式簽署數字資產行政令,并在美國白宮官網發布全文,從政策、目標、美政府機構間協調、保護消費者投資者和企業的措施、促進金融穩定、降低系統性風險、限制非法.

1900/1/1 0:00:00
去世后 比特幣怎么繼承給下一代?_加密貨幣

越來越多的財務顧問和遺產規劃師已經意識到轉移加密貨幣并不是那么容易——彭博社像許多美國人一樣,SandyCarter一直在涉足加密貨幣.

1900/1/1 0:00:00
ads