donau

Donation authority for GNU Taler (experimental)
Log | Files | Refs | Submodules | README | LICENSE

commit d8c3aa48b2499fac5dbf82798b0c2909f4303b4d
parent 5289ef0a5c01a2c627202ac67e9ad6a025a7b776
Author: Matyja Lukas Adam <lukas.matyja@students.bfh.ch>
Date:   Thu,  6 Jun 2024 15:06:26 +0200

some changes

Diffstat:
Mdoc/thesis/chapters/introduction/motivation.tex | 11+++++------
Mdoc/thesis/images/donau_flow_issue_receipt.png | 0
Mdoc/thesis/images/uml/donau_flow_issue_receipt.drawio | 40++++++++++++++++++++--------------------
Mdoc/thesis/thesis.pdf | 0
4 files changed, 25 insertions(+), 26 deletions(-)

diff --git a/doc/thesis/chapters/introduction/motivation.tex b/doc/thesis/chapters/introduction/motivation.tex @@ -1,16 +1,15 @@ \section{Motivation} -To be able to donate to a charity and deduct that donation from taxes, it is often required to provide evidence. The donor would have to present said evidence in form of a donation receipt which would include information about both the donor and charity. The donor may want to keep this information private and only provide a receipt that proves that a certain amount was indeed donated to a recognized charity. +To be able to donate to a charity and deduct that donation from taxes, it is often required to provide evidence. The donor would have to present said evidence in form of a donation receipt which would include information about both the donor and the charity. The donor may want to keep this information private and only provide a receipt that proves that a certain amount was indeed donated to a recognized charity. %privacy There are many reasons why such information can be sensitive and should be hidden from third parties. Both personally and politically this information could be harmful to individuals if not handeled responsably. It is best to reduce and anonymize this information as much as possible, while still having all the necessary information to verify donations and prevent illegal practices. +%verifiability +%see gitlab (sensitive) + %simplicity -Tax authorities may have to verify donations manually which can be time consuming, involving in a disproportionate amount of effort for the tax authorities. The donor on the other hand has to keep track of the donation receipt which may get lost. +Tax authorities may have to verify donations manually which can be time consuming and involves a disproportionate amount of effort for the tax authorities. The donor on the other hand has to keep track of the donation receipts, which may get lost. %standardisation For every donation the donor wants the donation to be tax deductible, the adressed charity has to be recognized by the local tax authority. However, it can happen that donations to unrecognized charities are mistakenly deducted or that donations to recognized charities are not deducted. This misconduct has found attention by Michiel Leenaars from the NLnet Foundation\footnote{see \url{https://nlnet.nl/}}. He has noticed that donations to their organization from other countries are sometimes not deducted from the taxes of their donors, although this should be the case. -%Problems arise when donating to foreign countries due to the lack of standardisation of donations. Charities that are recognized in one country are not necessarly recognized as such in another country. Donations made to a charity abroad which is not recognized by one's own country are thus not elegable for tax deduction. - -% can donor donate abroad? -> Maybe. Firstly the charity must be recognized by the tax authority of the donor. Secondly, the charity has to accept donations in the currency used by the mentioned tax authority. -% This is a problem the Donau can not fix. Instead the Donau defines a protocol that, when followed, diff --git a/doc/thesis/images/donau_flow_issue_receipt.png b/doc/thesis/images/donau_flow_issue_receipt.png Binary files differ. diff --git a/doc/thesis/images/uml/donau_flow_issue_receipt.drawio b/doc/thesis/images/uml/donau_flow_issue_receipt.drawio @@ -1,6 +1,6 @@ -<mxfile host="Electron" modified="2024-06-06T11:44:04.837Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.4.8 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="ZYPNL2VforjKYDmPZeip" version="24.4.8" type="device"> +<mxfile host="Electron" modified="2024-06-06T12:52:27.558Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/24.4.8 Chrome/124.0.6367.207 Electron/30.0.6 Safari/537.36" etag="G9xCDfiOi2evyAJCAy3B" version="24.4.8" type="device"> <diagram name="Page-1" id="13e1069c-82ec-6db2-03f1-153e76fe0fe0"> - <mxGraphModel dx="2568" dy="1012" grid="1" gridSize="7" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0"> + <mxGraphModel dx="1590" dy="1097" grid="1" gridSize="7" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1100" pageHeight="850" background="none" math="0" shadow="0"> <root> <mxCell id="0" /> <mxCell id="1" parent="0" /> @@ -100,7 +100,7 @@ <mxPoint x="60" y="720.9999999999998" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-15" value="&lt;span style=&quot;font-size: 11px; text-align: left; text-wrap: nowrap; background-color: rgb(255, 255, 255);&quot;&gt;return keys&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="jwiRQB-RJB6SAp2JKjDF-1"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-15" value="&lt;span style=&quot;font-size: 11px; text-align: left; text-wrap: nowrap; background-color: rgb(255, 255, 255);&quot;&gt;return keys&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="jwiRQB-RJB6SAp2JKjDF-1" vertex="1"> <mxGeometry x="-33" y="243" width="60" height="30" as="geometry" /> </mxCell> <mxCell id="RNT9XIpHyLaZ2cgxR4a1-4" value="check donation limit" style="html=1;align=left;spacingLeft=2;endArrow=block;rounded=0;edgeStyle=orthogonalEdgeStyle;curved=0;rounded=0;" parent="jwiRQB-RJB6SAp2JKjDF-1" edge="1"> @@ -151,17 +151,17 @@ <mxCell id="gqEucMnvXZBW8aS9mki2-25" value="&lt;div style=&quot;font-size: 8px;&quot;&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;foreach&lt;br&gt;&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;font-size: 8px;&quot;&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;&lt;font style=&quot;font-size: 8px;&quot;&gt;blind signature&lt;br&gt;&lt;/font&gt;&lt;/font&gt;&lt;/div&gt;" style="shape=umlFrame;whiteSpace=wrap;html=1;pointerEvents=0;width=60;height=25;" parent="1" vertex="1"> <mxGeometry x="180" y="798" width="320" height="125" as="geometry" /> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-1" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;Donor&lt;/font&gt;" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" vertex="1" parent="1"> - <mxGeometry x="-63" y="35" width="24" height="48" as="geometry" /> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-1" value="&lt;font style=&quot;font-size: 10px;&quot;&gt;Donor&lt;/font&gt;" style="shape=umlActor;verticalLabelPosition=bottom;verticalAlign=top;html=1;outlineConnect=0;" parent="1" vertex="1"> + <mxGeometry x="90" y="35" width="24" height="48" as="geometry" /> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-2" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" edge="1" parent="1"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-2" value="" style="endArrow=none;dashed=1;html=1;rounded=0;" parent="1" edge="1"> <mxGeometry width="50" height="50" relative="1" as="geometry"> - <mxPoint x="-49" y="966" as="sourcePoint" /> - <mxPoint x="-49" y="105" as="targetPoint" /> + <mxPoint x="104" y="966" as="sourcePoint" /> + <mxPoint x="104" y="105" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-4" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" vertex="1" parent="1"> - <mxGeometry x="-54" y="117" width="10" height="835" as="geometry" /> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-4" value="" style="html=1;points=[];perimeter=orthogonalPerimeter;rounded=0;shadow=0;comic=0;labelBackgroundColor=none;strokeWidth=1;fontFamily=Verdana;fontSize=12;align=center;" parent="1" vertex="1"> + <mxGeometry x="99" y="117" width="10" height="835" as="geometry" /> </mxCell> <mxCell id="gqEucMnvXZBW8aS9mki2-17" value="POST /batch_issue" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;exitX=1;exitY=0.536;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" edge="1"> <mxGeometry width="80" relative="1" as="geometry"> @@ -169,37 +169,37 @@ <mxPoint x="844" y="617.28" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-6" value="donation request" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;exitX=0.959;exitY=0.017;exitDx=0;exitDy=0;exitPerimeter=0;" edge="1" parent="1" source="WMqh-AE5CI4WssVs_gXZ-4"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-6" value="donation request" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;exitX=0.959;exitY=0.017;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" source="WMqh-AE5CI4WssVs_gXZ-4" edge="1"> <mxGeometry width="80" relative="1" as="geometry"> <mxPoint x="-42" y="131" as="sourcePoint" /> <mxPoint x="245" y="131" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-7" value="donation request" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;" edge="1" parent="1"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-7" value="donation request" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;" parent="1" edge="1"> <mxGeometry width="80" relative="1" as="geometry"> <mxPoint x="255" y="160" as="sourcePoint" /> <mxPoint x="545" y="160" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-9" value="return different supported Donaus" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=-0.347;exitY=0.129;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.129;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="gqEucMnvXZBW8aS9mki2-4" target="7baba1c4bc27f4b0-9"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-9" value="return different supported Donaus" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=-0.347;exitY=0.129;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1;entryY=0.129;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="gqEucMnvXZBW8aS9mki2-4" target="7baba1c4bc27f4b0-9" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="843" y="185.5" as="sourcePoint" /> <mxPoint x="255" y="185" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-10" value="list Donaus" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=-0.239;exitY=0.15;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.96;entryY=0.123;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="7baba1c4bc27f4b0-9" target="WMqh-AE5CI4WssVs_gXZ-4"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-10" value="list Donaus" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;exitX=-0.239;exitY=0.15;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0.96;entryY=0.123;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="7baba1c4bc27f4b0-9" target="WMqh-AE5CI4WssVs_gXZ-4" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="241" y="205" as="sourcePoint" /> <mxPoint x="-42" y="220" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-11" value="choose a Donau" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;exitX=0.983;exitY=0.153;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.179;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="WMqh-AE5CI4WssVs_gXZ-4" target="7baba1c4bc27f4b0-9"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-11" value="choose a Donau" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;exitX=0.983;exitY=0.153;exitDx=0;exitDy=0;exitPerimeter=0;entryX=0;entryY=0.179;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="WMqh-AE5CI4WssVs_gXZ-4" target="7baba1c4bc27f4b0-9" edge="1"> <mxGeometry width="80" relative="1" as="geometry"> <mxPoint x="-42" y="225" as="sourcePoint" /> <mxPoint x="244.75" y="225" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-14" value="&lt;span style=&quot;font-size: 11px; text-align: left; text-wrap: nowrap; background-color: rgb(255, 255, 255);&quot;&gt;GET /keys&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" vertex="1" parent="1"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-14" value="&lt;span style=&quot;font-size: 11px; text-align: left; text-wrap: nowrap; background-color: rgb(255, 255, 255);&quot;&gt;GET /keys&lt;/span&gt;" style="text;html=1;align=center;verticalAlign=middle;whiteSpace=wrap;rounded=0;" parent="1" vertex="1"> <mxGeometry x="270" y="254" width="60" height="30" as="geometry" /> </mxCell> <mxCell id="gqEucMnvXZBW8aS9mki2-24" value="send blind signatures" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;dashed=1;exitX=-0.065;exitY=0.779;exitDx=0;exitDy=0;exitPerimeter=0;" parent="1" edge="1"> @@ -208,22 +208,22 @@ <mxPoint x="554" y="771" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="gqEucMnvXZBW8aS9mki2-1" value="" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;align=left;entryX=1;entryY=0.252;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="jwiRQB-RJB6SAp2JKjDF-1" edge="1" target="7baba1c4bc27f4b0-9"> + <mxCell id="gqEucMnvXZBW8aS9mki2-1" value="" style="html=1;verticalAlign=bottom;endArrow=open;dashed=1;endSize=8;curved=0;rounded=0;align=left;entryX=1;entryY=0.252;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="jwiRQB-RJB6SAp2JKjDF-1" target="7baba1c4bc27f4b0-9" edge="1"> <mxGeometry relative="1" as="geometry"> <mxPoint x="848.5" y="307.5" as="sourcePoint" /> <mxPoint x="259" y="308" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-18" value="send blind signatures" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;dashed=1;exitX=-0.092;exitY=0.799;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1.102;entryY=0.8;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1" source="gqEucMnvXZBW8aS9mki2-4" target="7baba1c4bc27f4b0-9"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-18" value="send blind signatures" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;dashed=1;exitX=-0.092;exitY=0.799;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1.102;entryY=0.8;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" source="gqEucMnvXZBW8aS9mki2-4" target="7baba1c4bc27f4b0-9" edge="1"> <mxGeometry width="80" relative="1" as="geometry"> <mxPoint x="541.3499999999999" y="777.6700000000001" as="sourcePoint" /> <mxPoint x="259" y="777" as="targetPoint" /> </mxGeometry> </mxCell> - <mxCell id="WMqh-AE5CI4WssVs_gXZ-19" value="donation confirmation" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;dashed=1;exitX=-0.092;exitY=0.799;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1.102;entryY=0.8;entryDx=0;entryDy=0;entryPerimeter=0;" edge="1" parent="1"> + <mxCell id="WMqh-AE5CI4WssVs_gXZ-19" value="donation confirmation" style="html=1;verticalAlign=bottom;endArrow=block;curved=0;rounded=0;dashed=1;exitX=-0.092;exitY=0.799;exitDx=0;exitDy=0;exitPerimeter=0;entryX=1.009;entryY=0.983;entryDx=0;entryDy=0;entryPerimeter=0;" parent="1" edge="1" target="WMqh-AE5CI4WssVs_gXZ-4"> <mxGeometry width="80" relative="1" as="geometry"> <mxPoint x="244" y="938" as="sourcePoint" /> - <mxPoint x="-44" y="939" as="targetPoint" /> + <mxPoint x="112" y="938" as="targetPoint" /> </mxGeometry> </mxCell> </root> diff --git a/doc/thesis/thesis.pdf b/doc/thesis/thesis.pdf Binary files differ.