From 3c3ac01e989048dcd8826cfcef1666b168a9c578 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Sun, 21 Nov 2021 14:50:27 +0100 Subject: [PATCH 1/4] Fix variable naming The variable should better reflect what the query is doing. --- project1/a.sql | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/project1/a.sql b/project1/a.sql index 8941e98..cf62d53 100644 --- a/project1/a.sql +++ b/project1/a.sql @@ -102,8 +102,8 @@ WHERE sig_id <> pk_id; -- #16.1.5 Get blocks with inputs that have outputs which have already been -- spent (double-spending) --- First, get outputs that have been doubly spent -CREATE OR REPLACE VIEW outputs_doubly_spent AS ( +-- First, get outputs that have more than one input +CREATE OR REPLACE VIEW outputs_multiple_inputs AS ( SELECT output_id FROM non_coinbase_inputs JOIN outputs USING(output_id) @@ -113,14 +113,14 @@ CREATE OR REPLACE VIEW outputs_doubly_spent AS ( -- Second, get corresponding input_id where the output was first spent CREATE OR REPLACE VIEW inputs_first_spent AS ( SELECT MIN(input_id) AS input_id, output_id - FROM outputs_doubly_spent + FROM outputs_multiple_inputs JOIN non_coinbase_inputs USING(output_id) GROUP BY output_id ); -- Third, combine to get invalid blocks INSERT INTO temporary_table SELECT block_id -FROM outputs_doubly_spent +FROM outputs_multiple_inputs JOIN non_coinbase_inputs USING(output_id) WHERE input_id NOT IN ( SELECT input_id From 2fccaf75d15b3189f84e3cb0e6e19c6bdde008f9 Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Sun, 21 Nov 2021 16:40:02 +0100 Subject: [PATCH 2/4] Add report for Exercise A --- project1/project1.pdf | Bin 32292 -> 74303 bytes project1/project1.tex | 71 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 70 insertions(+), 1 deletion(-) diff --git a/project1/project1.pdf b/project1/project1.pdf index fb6f1e9222f9a0aebc6c67a92be8275fb54b2877..1902cdc072608720419287ee532c23cad0c1ff3f 100644 GIT binary patch delta 58196 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

7?2y(cszVy`@LwOpizR-3u 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 z zn7urY_J~+EXpG4?zxp#GBJA82g?e1LZ(1)&Rv&_aII>jYl}JVq%gq*n3pmhrxDP`T z9IWpZ0*7vb9;?b328bAkqe8YYZ7yIiB7dN$T%faa6dx`k=@s8LYp*u0dbuk;hiEU} zBznFA_Xq*4DHXUr)< delta 15966 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 diff --git a/project1/project1.tex b/project1/project1.tex index 4e411c4..b9490ba 100644 --- a/project1/project1.tex +++ b/project1/project1.tex @@ -9,6 +9,7 @@ \usepackage[english]{babel} \usepackage{fancyhdr} \usepackage{titling} +\usepackage{hyperref} \renewcommand{\thesection}{Exercise \Alph{section}:} %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% @@ -65,7 +66,75 @@ Our group consists of the following members: \end{center} \section{Finding invalid blocks} -% Fill here your answers for exercise A + +For this exercise all invalid blocks contained in the database provided to us +had to be found. While there is an +official\footnote{\url{https://en.bitcoin.it/wiki/Protocol\_rules\#.22block.22\_messages}} +algorithm which allows network participants to verify whether a block is invalid +or not, the stripped-down version of the blockchain we received does not require +all the steps. This stripped-down version of the algorithm thus specifies which +constraints the data must satisfy: + +\begin{enumerate} + \item All blocks which do not have the coinbase transaction as their first + transaction are invalid. This will be achieved by creating a view which + lists all coinbase transactions. Then we query the database for all + first transactions of each block and check if that transaction is in the + view of all coinbase transactions. If it is not, we reject the block and + add it to the invalid list. + \item All blocks which contain transactions which do not have inputs or + outputs are invalid. We split this task into two queries, one for + checking if a block contains transactions with zero inputs and another + one for checking if a block contains transactions with zero outputs. + \item All blocks which have transactions with an invalid output value or + where the sum of all output values exceeds the legal money range are + invalid. This task is split into two queries as well. One for checking + if individual output values are outside of the legal money range and a + second one for checking if the sum of all output values per transaction + is outside of the legal money range. + \item Reject all blocks which have transactions with inputs that do not have + a corresponding output. For this task we first create a view which finds + all non coinbase transactions. The output of that query is then filtered + for all inputs which are not part of a coinbase transaction (so the non + coinbase inputs). Finally, the non coinbase inputs are joined with the + outputs and rows containing \texttt{NULL} as their \texttt{value} + indicate an invalid block. + \item All blocks which contain transactions where the input's + \texttt{sig\_id} field is not the same as the output's \texttt{pk\_id} + field are invalid. Since we are not interested in the coinbase + transactions, the query uses the non coinbase inputs again to join them + with the outputs. If the two fields do not match, the block is invalid. + \item All blocks which have inputs for which there exist outputs which have + already been spent are invalid. This task is split into three queries. + First, we find all outputs which have more than one input. Second, for + all the outputs found, we find the corresponding inputs where the output + was first spent. Third, the two tables are combined such that blocks + with outputs which have corresponding inputs that are not listed as the + first spending occurrence, are marked as invalid. + \item All blocks containing inputs which are not in the legal money range + are invalid. First, we construct a view which gathers all transactions + and their corresponding sum of value for all inputs. All blocks + containing input sums which are outside of the legal money range are + marked as invalid. Second, we reuse the view of all non coinbase inputs + and filter them for the ones which have an output value outside of the + legal money range. + \item All blocks where the sum of input values is smaller than the sum of + output values are invalid. This task allows us to reuse the view created + earlier of all input sums. Additionally, the sum of output values is + obtained similarly to the input sums. After joining both input sums and + output sums, we can filter for blocks which have smaller input sums than + output sums. Those blocks are invalid. + \item All blocks where the coinbase value is larger than the sum of the + block creation fee and all transaction fees are invalid. This task is + split into four queries. First, we create a view which shows all block + ids and their coinbase values. Second, we need to know the sum of all + input values per block. Third, we repeat that query for the sum of the + output values per block. Lastly, these three tables are joined and all + blocks which satisfy the constraint are invalid. +\end{enumerate} + +Finally, the invalid blocks are written to the \texttt{invalid\_blocks} table +and all duplicates are removed. \section{UTXOs} % Fill here your answers for exercise B From 2966e3cca230f4f0083fe1f136f515dbdedb0bba Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Sun, 21 Nov 2021 16:43:42 +0100 Subject: [PATCH 3/4] Add work distribution section --- project1/project1.pdf | Bin 74303 -> 74393 bytes project1/project1.tex | 6 ++++++ 2 files changed, 6 insertions(+) diff --git a/project1/project1.pdf b/project1/project1.pdf index 1902cdc072608720419287ee532c23cad0c1ff3f..75fbcb5e6af309c0b7d4bd646a0d051689cf085e 100644 GIT binary patch delta 2382 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 diff --git a/project1/project1.tex b/project1/project1.tex index b9490ba..31992c1 100644 --- a/project1/project1.tex +++ b/project1/project1.tex @@ -145,5 +145,11 @@ and all duplicates are removed. \section*{Work distribution} %Fill in here an overview on which group member participated in which task and to which extent +\begin{description} + \item[Tobias Eidelpes] Code and report for Exercise A. + \item[Ege Mehmet Demirsoy] + \item[Nejra Komic] +\end{description} + \end{document} From 435e1361cc03f234a6edf252740687c6ffffd3cd Mon Sep 17 00:00:00 2001 From: Tobias Eidelpes Date: Sun, 21 Nov 2021 16:45:17 +0100 Subject: [PATCH 4/4] Rename report to satisfy naming requirements --- project1/{project1.pdf => report1.pdf} | Bin 74393 -> 74142 bytes project1/{project1.tex => report1.tex} | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename project1/{project1.pdf => report1.pdf} (96%) rename project1/{project1.tex => report1.tex} (100%) diff --git a/project1/project1.pdf b/project1/report1.pdf similarity index 96% rename from project1/project1.pdf rename to project1/report1.pdf index 75fbcb5e6af309c0b7d4bd646a0d051689cf085e..1e04a6644e7f1944b0f08ed4ba6dc6527deaae27 100644 GIT binary patch delta 2531 zcmai$X*kr20>+Kq$k=CWG181B!_1fk)nKw`J4oZoXv!E%Tk95*|(D{$8r*) zvPK%qvE+^|TXAe5AtC#?o%5XU_uKD%pZ9s*ufMEz{wHjH350{GISQkL2O~H`?W17g z3(5B)yjbF6N$Hvm5wb8Z4qHQ%$|dpQa5cjYd^Wr|LJGR>WDPeLt;mbhuR+&2D}vBJ zE18(2+`N`VL&eo)XoJ{(p*V;2g7{{u=e&`Sk88mw#13k)Ba zT^qVDBgh+$MPtz^K6M(v3dM~zVGfNPsg%3yQQ#iKt`~=yfW|5mi6J+325w%Li`5<^ z5UWe$oplbk4*QNFeyOJS*iQb(SfOt|CoqrAmei)lYqsK~&9UsF|7J4A4bm}cO46CQ zCnD`O=^%EwT~<|ZczPD=%DmfWUyt=+U4c#F=S+dM4fF?QyP z)RK0+>iQU6$Qe0mHy{|q!fBa&jf%zGwp*by;{4wR0Xtore?VpruWY_x*LHUWlSFLV z5J1oN&X3r)@HZ#(1@Vm%)=2r@a`$ZEwgd;)E62}FUr7F4p-$PYpF2E}Q(fMwV{e)< z1lS~X>K8s}eOS{aCDzDbM&0~|R3#Q0u8({4Z3$odHkm`btG_1pr9f$2Ix?im;^<;% z@YxD(4-iJOu80qJfEE^&?k>z+ZB0bd-67r6tdu2mB{$7746iMuvVO2as?^#k`=aCN zv9oyqw4C@L#m@(^hinB&QUWY+T)9i{Sd44^Y zlqq(Zj8N1#k!CqCWF#&#u1-C}JePCg*c}^ppkNr><(^w85z&av-MYD`VGvhrFJeWE z=ni)sgsH-C8wuZewoKAzuJ|RZas4QvA@WA=TZW$9XU@y?2z64jTl^AWU(Pqu%2A-J zRb@C(o>&s}^+?$`Pn>fm{5b2*&?M4&SuCkL-jp69UDTW0>q~a>O419yeziyzwn70Y zZGD5>7PQ~8(b3voOUwnI^q3Nk$eY%q*Qha`IH&$WkvZ4s6jLBEK8CAtS7O$cyl{*) z{p$I-`dF-YLg1gjZ7N6w@>|!p6(*;=RQSy2L!2=A2z?_!-j&(EGQpviTjeZ5AF-H> z0Zz-~32TQ$pIlXxPqDYs)*!^uwHvtb@R|`LqJY<0KK#1;oZ+};Sq$F*gO-uq|KPOZ zI2KX4Xy8NsMKY&2goMuWaJ*SxD<_$?m|#}9VxH|@_d!^6+WV_nO=v>=bv^Z@x)&{! z2QwX!H~5TVQe7adol%9%e)O7yndq0YFx`sV=O-K4`Bgu?bGnrrUkh4G_M=n8_ zlK5#($0)RPyENwxgk~b!0LxU1c&;ac@L87X=V|(2wOP;HQ%=(&xg{}jOG?*Wgp@GQ zciqK`Zp)u8U7HzvZSJO4=#wl^Aed)99hWTZfl!cjjV>9>;?f9(gg(z!E^SIlapaY% zLC|PEth5S>lG(QvUA_B`4m{J&zxc_HDu!&Y(@|d^-fjjG(`p$OLXDkAW28|-n3O1+ z>(d@&dLwpk4o}LWp1*B0eG3wT+Z5nD6LfwudhE{??v4-j<0NenHQ5q&=@!b{zj9Ul zfe9<F`(0GiRIIYj+_>kJr8fc{`^g-%f3ui;U?$ zOwC&tKgiwQl~wT@S}0u*nm>%l^Vm=dJ_v4Um?dh|?4Vj^Lp?e}cYlQ)937~se7{AS zLFif-sBB<{UDyZ332#K=TGg9ohLbFZnz)y~YaX?=e5*VV=UR|78~fpn0z;f?_ms1Y zsg+NYV^r}UXQ>Q;I``o6WbZzs{28IT0*{*2deK*R3%$zy*wp!7Mg7dBdsCdszoxe} zfq}mYd4EI>e3`xNm^yM0%H5YyiACAZPKI{? zmzyE3-a<|pbb3sx5dBTY45kNpH<6AcYct90dZc4_usZ#XeL}jOiSmgi3jdEyu2!CN zI|`Aut{tyZoV2v4P-SA!wY%_|X0ulyGqAjJ+}DC#-lZCKOxm~NY3gnWyWC!N-%^h8 z$iE_*RsgsbAhZk%&u3Ryr9a{JRXMjTJL#21lz-XorgO7Ici~NLnhT{-=o$m{0q3oMYCE8>$JH}7 z@HJ-P>wNA-`$H^C%_Z#AAfe71Qwy|?ol?IZy9-2H77mSES%vkgbOi;;I`_MCQgs3h z58VCT->+8Ah_xReqxuX!P*+l;N7RD>$57X%C`vOr4QsbLoisqn{6Gm=s))q6$TfbT zgf9Ic`OWXQNBmNW&dpaAmi=s-p>qfux{=|#1G_r%dk(jKG<2y0!1SSgi&WS;ClC2( zfY(E>Uxkum!WK0nik#=CUACuMp#gM=K0W<2uMNsx@){j{&nf)EYx!m9H63bDIkRF^ z&Hid0c1z7vBJ@s{Mc--Up`pdIkms&}lw@Q^rL;kYvUl93%@6u!&9=ZJVB z9)}~r|NrFYi|D^*g8BLMkC`0jSV2HEiF?zP+2%Q~^51WqIj__q_LUG)L84>%PtqWo!f-Kp3K{B^6fIEx6e8gC z&7T&7fi8r^yPz;?9m?j`C(hgF;q&UqwgN oJ+T`!ptfC7Vdayyz~U|`DWZVVBjY_&Kqd8h-odlX z%4!XBXKl|gqm&xZ{5e|8DCLH63l9#sMIup3 z8TC+rEP2zxfh4BRAMw5xS_hw0{Ny{k{907!MW29q&eXQjcQZGT$5Z!xoSo13rc-+a z&8^8Xw)#rmvY$xuE#dW=^Hf0vV$9QY2bqWNk!QCu4YShY&-N7SmSl~A=_cwr4xUz> z(e8E!i6&VYkMW&t!6x3qV;zE=I0Pt`2^4L1jx3|;9SerBE--T!mh0$5kMLz?I7YFr zf(HcW8!UG+}(M}&M z6KEVw+`&4Vcp2GFPS1`=fCEc`-kPY|s8M+$pd9e=u|@JWzcEX)p@L24 zB7PYV9FUs}=^Yk5Em4Du&Uq1t=<*%6oH)h9uVq7%e~NOG_Z3a)EElg|?6m=9w5r;) z83(s$9Hqo-2^EF7HJ`aXGbCgKDre}B^{1T&a_;nhViQ`iak2_LVrBoq+odIRPUz#M z;ibp5Q@=1h&hmZlg=@U~yyrQh=UxM>Lf$fTuR8O6&CTW3K1IF})&4r?0ioGHtn_ty zWWvh4u}!a1_*QlgBt`op^byzYiU0SkSEh1%QFvJ4Tb~q0zyu&qjyIW#U7fwH z0RJom4HvCdG+;F_!HntSV4*{U1BPDgmN4BFo#4?eMDFA{m?cD--PXUubuq5UgP)i0 zL&^QS)J_(G_4(WE>Y8zRABbGhiK!d~QTVN0|-I%c-wVu{-W0cRH|} zV^_aPAR_X@YwWtbrAr^VBwQn&;!K7=+xzR45tyrT%}UO$`Z8TBxRa2udd-l9BW21U zKc+h-Yb0gchXf&Vgmjj=zq^c4;{xMe6iR3}k;2{M*tS4s)$&uxU<7k=$7 zv9Crk&Q4h3Yob;|y>}6e+QI5!Gd1>l-kTUR6l=#7b#5wEh@kvTe)^ zZ~CH%v8KAuI;uz|44L{wvjvS`nCKI_WTUC7%v?`sS_wk62Dd6oX*Q?Zakt)a2A7W_ zwpQIAI9B*gkd^1G(W2{CY4`Xb*L|nc$M?ay!{V?Q$@5ix-pC9R*P7;#`Q1eS$e@PK z_i0Hxj$Q#8f=`3*|IO4kiT4YlH);-5F%X!%z`V9z0%Resu0zC)US+)QJb)T?81F5_ z;s{Ss^sun#gQ7g5do*^O3 zSGNbqo+*>jOE0ubs)HZwGZg2R4v)MdI>-y~1NoC|iCux5h2aA>au+-_-(?rjhlgA^ z)D67(enl^D0js@{(R8Gl=x`J>xAPI6_R;rU(22`QWD)}+u^T0_^w69UJ!Dt35pLU5 z+RdK7lbRugvHZSf-MMvOaFRt{a5;GI>v)6gLlIx*?TYJBp0@rq^XICw_|GSE^x!pp zTHG4ftagF(^OTTk2a6j1_4KeapZ|EirWx+oX=%E35ccb{#)+2aoDD-Qme&6C2Od56 zK=L&0G&E_ri_O?WBC_(Gb{fjR%wh7wGW~L8`O1~gD=uMPD+V4y`^}ccQbqGDHY4Gq zWS+WsPM>P#V+Fihp46Lz^^Ep!kTh6CLfAAeb-Y9y$KP5H`=*}iL_66WoZd=aK5{Bf z8o;C!u1-Fzso#i#VHEI~89RQt&n<=yq_ngW+5W=Vm7qRad+SgsF+vYdMD8xe$}LA| zuueV6^gN=cy1j0&GOWFMtIb~C)0CUcS1h`*m&&d6ZJ1a9Ij{F`zgxO z>Y<{M_j}j?g?a(ZdVeM&s|Ws!gD{rrw)z4Up(C+Oe|Dah$v$UrTq*@?W0-1H`5U)9 z2}gf_bmtX@P&+0=Q5<=E$q$le9;Pl|o&18Qo13%vsdABTzImwngDQ)kV%9&&!)0yY z9|MhkEk=YaeaZv2#V;h$FzIJ@aoXD|M&X>@$2knCti+lqqZZB<4!OU`Sv&(jnJa09 zS6*sdrq$x6kOMI=pSA?qu@dse_^M4SqL!D4LD{$OfdmMH$0>d?W~I{xFMM;G5$`6a ze++;XuhRVtx_bDz>0=Rs22SKAZ1yv-O8s*e(2L=Ulg70%ciwBngVHM#_DDi(KYlzT zqyXN!XQHxIsi-M3c-Ue*jI-=Jl5HQT6pB|aue7aMZ2mgtP8X+cjunlyZMEz*t85)A zY9a>@3yhOY>$M}ru;1vm{+{WcP@XIImw0U`VB6i8@56CswGRPiaB`A9L@|k}|5B0; z2~%|)E!D;}fwXU}uf|V*pjID0E|t)Yl4Z#Zhk5_}HI*DsHG^nv7WFEqeDN0w_BejG z;{VLP2eBkVL?;z4;n6kuOsl%jB!7rd8w6hgiT)lzH?9+1{r)AAn>SEZ35tOJ3mO_g zxJ_sP5em-`g#viUsz_%b-1^#WB2*O#gxf<2N>F8}(r?d-M7jY*tN*T90pWOmPZCrW z@t?p#2^wf!6iNw!RKs9Z)G+#bx+oQWU3H`$7KKtqpfRdyTG0O=`Mm=C@0BU3s%6wc z0rKQGp}MZ(l<&LkZbl}2pECQP{CY7yzOS$H#gD`w74}@+OIT3z$LRJI=iHu@V(NuZ z&#AZ;kxKY4z7o4F9IhZkM;N(GeRT*e*o3dzyGYXzBvx~54MCJ+yDRo diff --git a/project1/project1.tex b/project1/report1.tex similarity index 100% rename from project1/project1.tex rename to project1/report1.tex