From 631d7eb218391a3f5e2425053ad490cfb462ddc9 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Tue, 8 Feb 2022 10:12:02 +0100 Subject: [PATCH] Remove comments --- project3/report3.pdf | Bin 0 -> 73412 bytes project3/report3.tex | 97 ++++++++++++++++++++++++++----------------- 2 files changed, 60 insertions(+), 37 deletions(-) create mode 100644 project3/report3.pdf diff --git a/project3/report3.pdf b/project3/report3.pdf new file mode 100644 index 0000000000000000000000000000000000000000..2b3808d0de3fc219e2b381ef86282c1461f47b53 GIT binary patch literal 73412 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%0Dj&jndV;oWX)R8rrOUKbDPk1c!C#Zp!`TW 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 j!vW1CXQgn_5vmxwGKYt{q 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 BjxzuN literal 0 HcmV?d00001 diff --git a/project3/report3.tex b/project3/report3.tex index 28ff6e1..5984337 100644 --- a/project3/report3.tex +++ b/project3/report3.tex @@ -63,57 +63,80 @@ Our group consists of the following members: \matriculation \end{center} -\section*{Project overview} - -The aim of this project is to write and interact with applications/smart contracts built on Bitcoin, using Bitcoin script. You will interact with the Bitcoin testnet, an alternative Bitcoin blockchain, where the coins have no value, used mainly for testing. In a separate email you will receive some private keys, pre-images and some unspent transaction outputs (UTXOs) and have to solve the tasks below. The following values are included in the email: - -\begin{itemize} - \item $\langle$ALICE\_SK$\rangle$: secret key for Alice (Exercise A) - \item $\langle$BOB\_SK$\rangle$: secret key for Bob (Exercise A) - \item $\langle$CAROL\_SK$\rangle$: secret key for Carol (Exercise B) - \item $\langle$DAVE\_SK$\rangle$: secret key for Dave (Exercise C) - \item $\langle$PUNISH\_SECRET$\rangle$: pre-image of a SHA256 hash used for punishing the old payment channel state in Exercise B - \item $\langle$UNKNOWN\_HASH$\rangle$: SHA256 hash of an unkown pre-image (Exercise C) - \item $\langle$TX\_IN\_EX1\_HASH$\rangle$: The transaction holding one UTXO, which is for your Exercise A - \item $\langle$TX\_IN\_EX2\_HASH$\rangle$: The transaction holding one UTXO, which is for your Exercise B - \item $\langle$TX\_IN\_EX3\_HASH$\rangle$: The transaction holding one UTXO, which is for your Exercise C -\end{itemize} - -Every person has received their own set of these values (make sure that you did, otherwise contact us). Similar to the second project, you can solve this project as a group and write the report together (including the work distribution), but everyone needs to deploy the solution for their given UTXOs individually. On TUWEL, we provide you with a Python solution skeleton using the bitcoin-utils library including interaction with the testnet. You are free to use any other programming language/library, but note that if you do, we do not offer support. You can investigate \texttt{scripts.py} to view the scripts of each of the given exercise you need to spend along with how scripts are constructed using bitcoin-utils in Python. Be sure to check \url{https://en.bitcoin.it/wiki/Script} for the exact behavior of the op-codes. In your solution you need to construct a scriptSig that is able to spend the scriptPubKey of the given UTXO (see \url{https://en.bitcoin.it/wiki/Transaction#Verification}). If you use the solution skeleton, the main code you want to modfiy and execute is in \texttt{students.py}, the other files are mainly helpers. - -To investigate the transactions and track your progress, we recommend that you use a blockchain explorer for the testnet, for example you could use \url{https://live.blockcypher.com/btc-testnet/} or \url{https://blockstream.info/testnet/}, which allows you to view details of transactions, scripts, addresses, etc., and also lets you post raw transactions to the testnet manually, should you wish. Each of your UTXOs holds 5000 satoshis, which should be more than enough to pay for fees if you use the values indicated in the exercises. Finally, we consider an exercise solved if you have (i) spent the UTXO corresponding to that exercise and (ii) if you have given this money to the addresses as indicated in the exercise description. Again, you can check this yourself on the testnet explorer. Write and submit a report where you explain how you solved the exercises (you can use this template and delete the exercise descriptions). - \section{Payment Channel: honest closure} -%\emph{Alice wants to buy some goods from Bob. They want to save fees, and Alice heard that using payment channels reduce the on-chain load. They know that you have completed the cryptocurrencies lecture at TU Wien and, naturally, ask for your help. She therefore goes ahead and opens a channel with Bob by posting a funding transaction on-chain. All the money from the funding comes from Alice, so in the beginning she owns all the coins. They proceed to perform off-chain payments until, finally, Bob owns all the money in the channel. In this scenario, Bob has no intention in paying money to Alice, so he decides to unilaterally close the channel.} +\paragraph{Your task:} You have been provided with a secret key for both Alice +$\langle$ALICE\_SK$\rangle$ and Bob $\langle$BOB\_SK$\rangle$, as well as an +on-chain funding transaction of the channel $\langle$TX\_IN\_EX1\_HASH$\rangle$. +This funding transaction locks some money in a Multisig address of Alice and +Bob. They have used this channel for a while now and wish to close it. In the +final state of the channel, Alice has a balance of 1000 satoshis and Bob has +2000 satoshis. %Note that Bob cannot spend his funds right away, but needs to +wait for some time. Only after some time, Bob can claim his balance. Since they +both cooperatively wish to close the channel, they create a new transaction that +does not have any timelock or revocation mechanism, but simply takes the +Multisig from the funding as input and creates two outputs, one for Alice and +one for Bob. You need to create the transaction of the final state of Bob, sign +it and post it on the Bitcoin testnet. \textbf{This exercise is considered +solved if your UTXO for exercise A is spent in a transaction with two outputs, +Alice owning 1000 and Bob 2000 satoshis, both as P2PKH (see +\url{https://learnmeabitcoin.com/technical/p2pkh}).} In other words, this means +that, e.g., for Alice, 1000 satoshis need to be locked in the following script: +\texttt{OP\_DUP OP\_HASH160 OP\_EQUALVERIFY OP\_CHECKSIG}. +You can use the attribute \texttt{Id.p2pkh} of the helper class \texttt{Id} we +provide. -%\noindent\rule[0.5ex]{\linewidth}{1pt} +\paragraph{Hint:} The opcode \texttt{OP\_CHECKMULTISIG} actually has a bug where +it pops one extra element of the stack. Take this into account when spending +from the Multisig. -\paragraph{Your task:} You have been provided with a secret key for both Alice $\langle$ALICE\_SK$\rangle$ and Bob $\langle$BOB\_SK$\rangle$, as well as an on-chain funding transaction of the channel $\langle$TX\_IN\_EX1\_HASH$\rangle$. This funding transaction locks some money in a Multisig address of Alice and Bob. They have used this channel for a while now and wish to close it. In the final state of the channel, Alice has a balance of 1000 satoshis and Bob has 2000 satoshis. %Note that Bob cannot spend his funds right away, but needs to wait for some time. Only after some time, Bob can claim his balance. -Since they both cooperatively wish to close the channel, they create a new transaction that does not have any timelock or revocation mechanism, but simply takes the Multisig from the funding as input and creates two outputs, one for Alice and one for Bob. -You need to create the transaction of the final state of Bob, sign it and post it on the Bitcoin testnet. \textbf{This exercise is considered solved if your UTXO for exercise A is spent in a transaction with two outputs, Alice owning 1000 and Bob 2000 satoshis, both as P2PKH (see \url{https://learnmeabitcoin.com/technical/p2pkh}).} In other words, this means that, e.g., for Alice, 1000 satoshis need to be locked in the following script: \texttt{OP\_DUP OP\_HASH160 OP\_EQUALVERIFY OP\_CHECKSIG}. You can use the attribute \texttt{Id.p2pkh} of the helper class \texttt{Id} we provide. +\paragraph{Bonus question:} As described, this final state differs from a +regular state, as it has no revocation mechanism, timelock and is not +duplicated. Why do we need these things in a regular state and how does the +duplication work? -\paragraph{Hint:} The opcode \texttt{OP\_CHECKMULTISIG} actually has a bug where it pops one extra element of the stack. Take this into account when spending from the Multisig. - -\paragraph{Bonus question:} As described, this final state differs from a regular state, as it has no revocation mechanism, timelock and is not duplicated. Why do we need these things in a regular state and how does the duplication work? - -% Fill here your answers for exercise A +% Fill here your answers for exercise A \section{Payment Channel: punishing misbehavior} -%\emph{Your reputation as an off-chain expert is growing. Thus, you are contacted by Carol, who requires your assistence. She says: ``I recently opened a channel with Mallory which we have been using a lot. I just noticed that Mallory has posted an old state of the channel. Please help me, I don't want to lose any money.'' After sharing the relevant information with you, you take a look. Indeed, it seems that Mallory has posted an older state of the channel, where he has almost all of the balance of the channel. You notice that there is also an HTLC in the channel, apparently they used this channel to route other payments as well. ``Why are these people not using a Lightning Network node? And why do they keep sharing their private keys with me?'' you wonder as you pour a cup of coffee and start to punish Mallory and giving the full channel capacity to Carol.} +\paragraph{Your task:} Carol $\langle$CAROL\_SK$\rangle$ and Mallory have opened +a Lightning-style payment channel. You have been provided with a secret key for +Carol, as well as an on-chain commitment transaction +$\langle$TX\_IN\_EX2\_HASH$\rangle$ of the channel between Carol and Mallory. +However, Mallory tried to cheat and posted a commitment transaction on-chain +representing an old state where he has a lot more money than in the most recent +state. Since old states are revoked, you know the revocation secret +$\langle$PUNISH\_SECRET$\rangle$. You need to create a punishment transaction +taking the balance that belongs to Mallory (which is the output with index 0 of +the commitment transaction), giving it to Carol and post it on the testnet. +\textbf{This exercise is considered solved if your UTXO for exercise B is spent +in a transaction with one output, which gives Carol 2000 satoshis as P2PKH.} -%\noindent\rule[0.5ex]{\linewidth}{1pt} +\paragraph{Bonus question:} To have multi-hop payments in a Payment Channel +Network (PCN), payment channels can be used to route HTLC-based (Hash Time-Lock +Contract) payments. These HTLCs are additional outputs in a channel, that need +to be punished. Following the example above, assume that Mallory has posted an +old state that holds one (or more) HTLCs. Now Carol needs to punish the output +holding Mallory's balance plus each output holding an HTLC. How can she make +this punishment more efficient? Is there a way to decrease the amount of +\textit{things} you need to put on-chain? -\paragraph{Your task:} Carol $\langle$CAROL\_SK$\rangle$ and Mallory have opened a Lightning-style payment channel. You have been provided with a secret key for Carol, as well as an on-chain commitment transaction $\langle$TX\_IN\_EX2\_HASH$\rangle$ of the channel between Carol and Mallory. However, Mallory tried to cheat and posted a commitment transaction on-chain representing an old state where he has a lot more money than in the most recent state. Since old states are revoked, you know the revocation secret $\langle$PUNISH\_SECRET$\rangle$. You need to create a punishment transaction taking the balance that belongs to Mallory (which is the output with index 0 of the commitment transaction), giving it to Carol and post it on the testnet. \textbf{This exercise is considered solved if your UTXO for exercise B is spent in a transaction with one output, which gives Carol 2000 satoshis as P2PKH.} - -\paragraph{Bonus question:} To have multi-hop payments in a Payment Channel Network (PCN), payment channels can be used to route HTLC-based (Hash Time-Lock Contract) payments. These HTLCs are additional outputs in a channel, that need to be punished. Following the example above, assume that Mallory has posted an old state that holds one (or more) HTLCs. Now Carol needs to punish the output holding Mallory's balance plus each output holding an HTLC. How can she make this punishment more efficient? Is there a way to decrease the amount of \textit{things} you need to put on-chain? +% Fill here your answers for exercise B \section{Exploit faulty script} -Dave $\langle$DAVE\_SK$\rangle$ and Mallory have locked some funds in an output, that looks similar to a commitment transaction $\langle$TX\_IN\_EX3\_HASH$\rangle$. However, we placed some ``bugs'' in this script. This allows you to spend the money locked in this contract to Dave's address even though the timelock is way in the future. \textbf{This exercise is considered solved if your UTXO for exercise C is spent in a transaction with one output, which gives Dave 4000 satoshis as P2PKH.} +Dave $\langle$DAVE\_SK$\rangle$ and Mallory have locked some funds in an output, +that looks similar to a commitment transaction +$\langle$TX\_IN\_EX3\_HASH$\rangle$. However, we placed some ``bugs'' in this +script. This allows you to spend the money locked in this contract to Dave's +address even though the timelock is way in the future. \textbf{This exercise is +considered solved if your UTXO for exercise C is spent in a transaction with one +output, which gives Dave 4000 satoshis as P2PKH.} + + \section*{Work distribution} -%Fill in here an overview on which group member participated in which task and to which extent +%Fill in here an overview on which group member participated in which task and +%to which extent \end{document}