-
Notifications
You must be signed in to change notification settings - Fork 492
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Allow RBF in Transaction Builder #1543
Comments
First some numbers. Analyzing the latest 200 blocks we can see that only the 5.8% of the transactions were replaceable.
RBF per block (200)Blocks: 001. Total Txs: 002749 RBF Txs: 00234 Rate: 0.0851218624954529
Blocks: 002. Total Txs: 006028 RBF Txs: 00405 Rate: 0.0671864631718646
Blocks: 003. Total Txs: 009035 RBF Txs: 00606 Rate: 0.0670724958494743
Blocks: 004. Total Txs: 011291 RBF Txs: 00769 Rate: 0.0681073421309007
Blocks: 005. Total Txs: 012850 RBF Txs: 00874 Rate: 0.0680155642023346
Blocks: 006. Total Txs: 014796 RBF Txs: 00993 Rate: 0.0671127331711273
Blocks: 007. Total Txs: 017004 RBF Txs: 01166 Rate: 0.0685721006821924
Blocks: 008. Total Txs: 019340 RBF Txs: 01262 Rate: 0.065253360910031
Blocks: 009. Total Txs: 020836 RBF Txs: 01340 Rate: 0.064311768093684
Blocks: 010. Total Txs: 021594 RBF Txs: 01365 Rate: 0.0632120033342595
Blocks: 011. Total Txs: 022336 RBF Txs: 01392 Rate: 0.0623209169054441
Blocks: 012. Total Txs: 025160 RBF Txs: 01640 Rate: 0.0651828298887122
Blocks: 013. Total Txs: 027434 RBF Txs: 01750 Rate: 0.0637894583363709
Blocks: 014. Total Txs: 029393 RBF Txs: 01860 Rate: 0.0632803728778961
Blocks: 015. Total Txs: 031320 RBF Txs: 02002 Rate: 0.0639208173690932
Blocks: 016. Total Txs: 033539 RBF Txs: 02137 Rate: 0.0637168669310355
Blocks: 017. Total Txs: 035623 RBF Txs: 02286 Rate: 0.0641720236925582
Blocks: 018. Total Txs: 037160 RBF Txs: 02366 Rate: 0.0636706135629709
Blocks: 019. Total Txs: 039568 RBF Txs: 02456 Rate: 0.0620703598867772
Blocks: 020. Total Txs: 041241 RBF Txs: 02527 Rate: 0.0612739749278631
Blocks: 021. Total Txs: 043939 RBF Txs: 02649 Rate: 0.0602881267211361
Blocks: 022. Total Txs: 046599 RBF Txs: 02746 Rate: 0.0589283031824717
Blocks: 023. Total Txs: 049204 RBF Txs: 02972 Rate: 0.060401593366393
Blocks: 024. Total Txs: 051085 RBF Txs: 03054 Rate: 0.0597827150827053
Blocks: 025. Total Txs: 053868 RBF Txs: 03157 Rate: 0.058606222618252
Blocks: 026. Total Txs: 056564 RBF Txs: 03377 Rate: 0.0597022841383212
Blocks: 027. Total Txs: 059350 RBF Txs: 03563 Rate: 0.060033698399326
Blocks: 028. Total Txs: 062568 RBF Txs: 03770 Rate: 0.0602544431658356
Blocks: 029. Total Txs: 065149 RBF Txs: 04009 Rate: 0.0615358639426545
Blocks: 030. Total Txs: 068532 RBF Txs: 04186 Rate: 0.0610809548823907
Blocks: 031. Total Txs: 070878 RBF Txs: 04322 Rate: 0.0609780185671153
Blocks: 032. Total Txs: 073594 RBF Txs: 04542 Rate: 0.0617169877979183
Blocks: 033. Total Txs: 076552 RBF Txs: 04730 Rate: 0.0617880656285923
Blocks: 034. Total Txs: 078590 RBF Txs: 04920 Rate: 0.0626033846545362
Blocks: 035. Total Txs: 081039 RBF Txs: 05147 Rate: 0.0635126297214921
Blocks: 036. Total Txs: 083939 RBF Txs: 05383 Rate: 0.0641299038587546
Blocks: 037. Total Txs: 086953 RBF Txs: 05614 Rate: 0.0645636148264005
Blocks: 038. Total Txs: 089869 RBF Txs: 05883 Rate: 0.0654619501719169
Blocks: 039. Total Txs: 092467 RBF Txs: 05978 Rate: 0.0646500913839532
Blocks: 040. Total Txs: 094653 RBF Txs: 06123 Rate: 0.0646889163576432
Blocks: 041. Total Txs: 097331 RBF Txs: 06313 Rate: 0.0648611439315326
Blocks: 042. Total Txs: 099664 RBF Txs: 06464 Rate: 0.0648579226200032
Blocks: 043. Total Txs: 101935 RBF Txs: 06559 Rate: 0.0643449256879384
Blocks: 044. Total Txs: 104229 RBF Txs: 06770 Rate: 0.0649531320457838
Blocks: 045. Total Txs: 106819 RBF Txs: 06948 Rate: 0.0650446081689587
Blocks: 046. Total Txs: 109550 RBF Txs: 07034 Rate: 0.0642081241442264
Blocks: 047. Total Txs: 112619 RBF Txs: 07246 Rate: 0.064340830588089
Blocks: 048. Total Txs: 115805 RBF Txs: 07518 Rate: 0.0649194767065325
Blocks: 049. Total Txs: 118890 RBF Txs: 07666 Rate: 0.0644797712170914
Blocks: 050. Total Txs: 118898 RBF Txs: 07666 Rate: 0.0644754327238473
Blocks: 051. Total Txs: 121366 RBF Txs: 07716 Rate: 0.063576289899972
Blocks: 052. Total Txs: 124319 RBF Txs: 07827 Rate: 0.062959000635462
Blocks: 053. Total Txs: 125748 RBF Txs: 07854 Rate: 0.0624582498329993
Blocks: 054. Total Txs: 128409 RBF Txs: 07940 Rate: 0.0618336720946351
Blocks: 055. Total Txs: 131276 RBF Txs: 08078 Rate: 0.0615344769797983
Blocks: 056. Total Txs: 133358 RBF Txs: 08144 Rate: 0.0610687022900763
Blocks: 057. Total Txs: 135197 RBF Txs: 08193 Rate: 0.0606004571107347
Blocks: 058. Total Txs: 137873 RBF Txs: 08323 Rate: 0.0603671494781429
Blocks: 059. Total Txs: 139085 RBF Txs: 08386 Rate: 0.0602940647805299
Blocks: 060. Total Txs: 141492 RBF Txs: 08471 Rate: 0.0598691092075877
Blocks: 061. Total Txs: 141543 RBF Txs: 08471 Rate: 0.0598475374974389
Blocks: 062. Total Txs: 142444 RBF Txs: 08511 Rate: 0.0597497964112213
Blocks: 063. Total Txs: 144446 RBF Txs: 08563 Rate: 0.0592816692743309
Blocks: 064. Total Txs: 146738 RBF Txs: 08632 Rate: 0.0588259346590522
Blocks: 065. Total Txs: 149372 RBF Txs: 08721 Rate: 0.0583844361727767
Blocks: 066. Total Txs: 152110 RBF Txs: 08840 Rate: 0.0581158372230623
Blocks: 067. Total Txs: 154067 RBF Txs: 08892 Rate: 0.0577151499023152
Blocks: 068. Total Txs: 156305 RBF Txs: 08976 Rate: 0.0574261859825341
Blocks: 069. Total Txs: 158526 RBF Txs: 09059 Rate: 0.0571452001564412
Blocks: 070. Total Txs: 161029 RBF Txs: 09143 Rate: 0.0567785926758534
Blocks: 071. Total Txs: 162884 RBF Txs: 09216 Rate: 0.0565801429237985
Blocks: 072. Total Txs: 165233 RBF Txs: 09311 Rate: 0.0563507289706051
Blocks: 073. Total Txs: 166844 RBF Txs: 09366 Rate: 0.0561362710076479
Blocks: 074. Total Txs: 168465 RBF Txs: 09452 Rate: 0.0561066096815362
Blocks: 075. Total Txs: 169854 RBF Txs: 09504 Rate: 0.0559539369105232
Blocks: 076. Total Txs: 172089 RBF Txs: 09632 Rate: 0.05597103824184
Blocks: 077. Total Txs: 174646 RBF Txs: 09717 Rate: 0.0556382625425146
Blocks: 078. Total Txs: 177160 RBF Txs: 09851 Rate: 0.0556051027319937
Blocks: 079. Total Txs: 179580 RBF Txs: 09883 Rate: 0.0550339681479007
Blocks: 080. Total Txs: 181702 RBF Txs: 09969 Rate: 0.0548645584528514
Blocks: 081. Total Txs: 183813 RBF Txs: 10073 Rate: 0.0548002589588332
Blocks: 082. Total Txs: 185378 RBF Txs: 10187 Rate: 0.054952583370195
Blocks: 083. Total Txs: 187140 RBF Txs: 10259 Rate: 0.0548199209148231
Blocks: 084. Total Txs: 188433 RBF Txs: 10322 Rate: 0.0547780908864159
Blocks: 085. Total Txs: 189991 RBF Txs: 10334 Rate: 0.0543920501497439
Blocks: 086. Total Txs: 192670 RBF Txs: 10443 Rate: 0.054201484403384
Blocks: 087. Total Txs: 193842 RBF Txs: 10506 Rate: 0.0541987804500573
Blocks: 088. Total Txs: 195571 RBF Txs: 10556 Rate: 0.0539752826339283
Blocks: 089. Total Txs: 198218 RBF Txs: 10613 Rate: 0.0535420597523938
Blocks: 090. Total Txs: 198848 RBF Txs: 10642 Rate: 0.0535182652075957
Blocks: 091. Total Txs: 199850 RBF Txs: 10676 Rate: 0.0534200650487866
Blocks: 092. Total Txs: 202306 RBF Txs: 10786 Rate: 0.0533152748806264
Blocks: 093. Total Txs: 205504 RBF Txs: 10934 Rate: 0.0532057770165058
Blocks: 094. Total Txs: 207975 RBF Txs: 11090 Rate: 0.0533237167928838
Blocks: 095. Total Txs: 211259 RBF Txs: 11252 Rate: 0.0532616361906475
Blocks: 096. Total Txs: 213800 RBF Txs: 11293 Rate: 0.0528203928905519
Blocks: 097. Total Txs: 215903 RBF Txs: 11396 Rate: 0.0527829627193693
Blocks: 098. Total Txs: 218933 RBF Txs: 11610 Rate: 0.0530299223963496
Blocks: 099. Total Txs: 221472 RBF Txs: 11754 Rate: 0.0530721716514954
Blocks: 100. Total Txs: 224719 RBF Txs: 11964 Rate: 0.0532398239579208
Blocks: 101. Total Txs: 224860 RBF Txs: 11992 Rate: 0.0533309614871476
Blocks: 102. Total Txs: 227716 RBF Txs: 12031 Rate: 0.0528333538266964
Blocks: 103. Total Txs: 230938 RBF Txs: 12221 Rate: 0.052918965263404
Blocks: 104. Total Txs: 234201 RBF Txs: 12445 Rate: 0.0531381164042852
Blocks: 105. Total Txs: 236769 RBF Txs: 12523 Rate: 0.0528912146438089
Blocks: 106. Total Txs: 239773 RBF Txs: 12796 Rate: 0.0533671430895055
Blocks: 107. Total Txs: 242513 RBF Txs: 13016 Rate: 0.0536713495771361
Blocks: 108. Total Txs: 244821 RBF Txs: 13110 Rate: 0.0535493278762851
Blocks: 109. Total Txs: 247382 RBF Txs: 13231 Rate: 0.0534840853416983
Blocks: 110. Total Txs: 249871 RBF Txs: 13380 Rate: 0.0535476305773779
Blocks: 111. Total Txs: 253306 RBF Txs: 13723 Rate: 0.0541755821022795
Blocks: 112. Total Txs: 253307 RBF Txs: 13723 Rate: 0.0541753682290659
Blocks: 113. Total Txs: 256405 RBF Txs: 14036 Rate: 0.0547415222012051
Blocks: 114. Total Txs: 257889 RBF Txs: 14138 Rate: 0.0548220358371237
Blocks: 115. Total Txs: 259121 RBF Txs: 14227 Rate: 0.0549048514014688
Blocks: 116. Total Txs: 261819 RBF Txs: 14434 Rate: 0.0551296888308335
Blocks: 117. Total Txs: 264356 RBF Txs: 14547 Rate: 0.0550280682110487
Blocks: 118. Total Txs: 267482 RBF Txs: 14880 Rate: 0.0556299115454498
Blocks: 119. Total Txs: 267659 RBF Txs: 14970 Rate: 0.0559293728213884
Blocks: 120. Total Txs: 269834 RBF Txs: 15095 Rate: 0.0559418012555868
Blocks: 121. Total Txs: 272383 RBF Txs: 15217 Rate: 0.0558661884185136
Blocks: 122. Total Txs: 275172 RBF Txs: 15447 Rate: 0.0561357987004492
Blocks: 123. Total Txs: 278435 RBF Txs: 15790 Rate: 0.0567098245551026
Blocks: 124. Total Txs: 281119 RBF Txs: 15937 Rate: 0.0566912944340297
Blocks: 125. Total Txs: 284318 RBF Txs: 16216 Rate: 0.057034728719251
Blocks: 126. Total Txs: 287223 RBF Txs: 16485 Rate: 0.0573944287191485
Blocks: 127. Total Txs: 288942 RBF Txs: 16658 Rate: 0.0576517086474102
Blocks: 128. Total Txs: 290659 RBF Txs: 16725 Rate: 0.0575416553418267
Blocks: 129. Total Txs: 293578 RBF Txs: 16840 Rate: 0.0573612464149221
Blocks: 130. Total Txs: 296640 RBF Txs: 17116 Rate: 0.0576995685005394
Blocks: 131. Total Txs: 299048 RBF Txs: 17277 Rate: 0.0577733340467082
Blocks: 132. Total Txs: 301392 RBF Txs: 17414 Rate: 0.0577785740829219
Blocks: 133. Total Txs: 303647 RBF Txs: 17592 Rate: 0.0579356950669692
Blocks: 134. Total Txs: 306408 RBF Txs: 17799 Rate: 0.0580892143808256
Blocks: 135. Total Txs: 309138 RBF Txs: 18038 Rate: 0.0583493455996998
Blocks: 136. Total Txs: 312176 RBF Txs: 18300 Rate: 0.0586207780226539
Blocks: 137. Total Txs: 314771 RBF Txs: 18472 Rate: 0.0586839321284362
Blocks: 138. Total Txs: 316960 RBF Txs: 18507 Rate: 0.0583890711761737
Blocks: 139. Total Txs: 319202 RBF Txs: 18587 Rate: 0.0582295850276627
Blocks: 140. Total Txs: 322182 RBF Txs: 18829 Rate: 0.0584421227753257
Blocks: 141. Total Txs: 325309 RBF Txs: 19065 Rate: 0.0586058178531796
Blocks: 142. Total Txs: 328132 RBF Txs: 19252 Rate: 0.0586715102458767
Blocks: 143. Total Txs: 330723 RBF Txs: 19453 Rate: 0.0588196164161549
Blocks: 144. Total Txs: 332652 RBF Txs: 19541 Rate: 0.0587430708367904
Blocks: 145. Total Txs: 334750 RBF Txs: 19605 Rate: 0.0585660941000747
Blocks: 146. Total Txs: 336074 RBF Txs: 19657 Rate: 0.0584900944434857
Blocks: 147. Total Txs: 338205 RBF Txs: 19766 Rate: 0.0584438432311764
Blocks: 148. Total Txs: 341179 RBF Txs: 19968 Rate: 0.058526462648639
Blocks: 149. Total Txs: 343442 RBF Txs: 20054 Rate: 0.0583912276308663
Blocks: 150. Total Txs: 346230 RBF Txs: 20220 Rate: 0.0584004852265835
Blocks: 151. Total Txs: 348947 RBF Txs: 20470 Rate: 0.0586622037157505
Blocks: 152. Total Txs: 350870 RBF Txs: 20611 Rate: 0.0587425542223616
Blocks: 153. Total Txs: 352895 RBF Txs: 20751 Rate: 0.058802193286955
Blocks: 154. Total Txs: 354585 RBF Txs: 20864 Rate: 0.0588406164953396
Blocks: 155. Total Txs: 356884 RBF Txs: 20901 Rate: 0.058565248091817
Blocks: 156. Total Txs: 358603 RBF Txs: 20954 Rate: 0.0584323053627549
Blocks: 157. Total Txs: 361640 RBF Txs: 21222 Rate: 0.0586826678464772
Blocks: 158. Total Txs: 362742 RBF Txs: 21264 Rate: 0.0586201763236681
Blocks: 159. Total Txs: 365585 RBF Txs: 21390 Rate: 0.0585089650833595
Blocks: 160. Total Txs: 368570 RBF Txs: 21495 Rate: 0.0583199934883469
Blocks: 161. Total Txs: 371335 RBF Txs: 21757 Rate: 0.0585912989618539
Blocks: 162. Total Txs: 374441 RBF Txs: 21862 Rate: 0.0583857002838899
Blocks: 163. Total Txs: 376232 RBF Txs: 21990 Rate: 0.0584479789066321
Blocks: 164. Total Txs: 378896 RBF Txs: 22116 Rate: 0.0583695789873738
Blocks: 165. Total Txs: 381143 RBF Txs: 22335 Rate: 0.0586000529984809
Blocks: 166. Total Txs: 383906 RBF Txs: 22528 Rate: 0.0586810312941189
Blocks: 167. Total Txs: 387042 RBF Txs: 22734 Rate: 0.0587378114003131
Blocks: 168. Total Txs: 389521 RBF Txs: 22938 Rate: 0.0588877108037821
Blocks: 169. Total Txs: 391890 RBF Txs: 23148 Rate: 0.0590675954987369
Blocks: 170. Total Txs: 393314 RBF Txs: 23196 Rate: 0.0589757801654658
Blocks: 171. Total Txs: 395382 RBF Txs: 23334 Rate: 0.0590163436878765
Blocks: 172. Total Txs: 397013 RBF Txs: 23412 Rate: 0.0589703611720523
Blocks: 173. Total Txs: 399486 RBF Txs: 23559 Rate: 0.0589732806656554
Blocks: 174. Total Txs: 401476 RBF Txs: 23664 Rate: 0.0589425021670038
Blocks: 175. Total Txs: 404052 RBF Txs: 23852 Rate: 0.0590320057814341
Blocks: 176. Total Txs: 405267 RBF Txs: 24036 Rate: 0.0593090481090244
Blocks: 177. Total Txs: 407399 RBF Txs: 24147 Rate: 0.059271132231547
Blocks: 178. Total Txs: 409393 RBF Txs: 24215 Rate: 0.0591485443082808
Blocks: 179. Total Txs: 412291 RBF Txs: 24388 Rate: 0.0591523947891174
Blocks: 180. Total Txs: 415156 RBF Txs: 24483 Rate: 0.0589730125543169
Blocks: 181. Total Txs: 417467 RBF Txs: 24553 Rate: 0.0588142296277311
Blocks: 182. Total Txs: 420271 RBF Txs: 24662 Rate: 0.0586811842834742
Blocks: 183. Total Txs: 422923 RBF Txs: 24808 Rate: 0.0586584319131379
Blocks: 184. Total Txs: 426339 RBF Txs: 24957 Rate: 0.0585379240463575
Blocks: 185. Total Txs: 429112 RBF Txs: 25141 Rate: 0.0585884337888477
Blocks: 186. Total Txs: 431424 RBF Txs: 25314 Rate: 0.0586754561637739
Blocks: 187. Total Txs: 432027 RBF Txs: 25352 Rate: 0.0586815175903358
Blocks: 188. Total Txs: 433467 RBF Txs: 25402 Rate: 0.0586019235605017
Blocks: 189. Total Txs: 436784 RBF Txs: 25700 Rate: 0.0588391516172754
Blocks: 190. Total Txs: 439332 RBF Txs: 25866 Rate: 0.0588757477260933
Blocks: 191. Total Txs: 441444 RBF Txs: 25982 Rate: 0.0588568425440146
Blocks: 192. Total Txs: 443322 RBF Txs: 26124 Rate: 0.058927822215004
Blocks: 193. Total Txs: 445820 RBF Txs: 26230 Rate: 0.0588354044233099
Blocks: 194. Total Txs: 448204 RBF Txs: 26288 Rate: 0.0586518638834102
Blocks: 195. Total Txs: 450848 RBF Txs: 26527 Rate: 0.0588380119241962
Blocks: 196. Total Txs: 453583 RBF Txs: 26702 Rate: 0.0588690493250408
Blocks: 197. Total Txs: 455996 RBF Txs: 26801 Rate: 0.0587746383740208
Blocks: 198. Total Txs: 458363 RBF Txs: 26948 Rate: 0.0587918309287617
Blocks: 199. Total Txs: 460928 RBF Txs: 27070 Rate: 0.0587293460149958
Blocks: 200. Total Txs: 463198 RBF Txs: 27305 Rate: 0.0589488728362385 Wallets that always build replaceable transactions by default are leaking some privacy because they have that fingerprint. This is because the rbf transactions are just a tiny fraction of the total number of transactions. Clearly that is something that is going to change until the point that one day not using rbf could become a privacy leak. It could worth to analyze whether allowing the users to opt for rbf (turned off by default) impacts in the users privacy or not. Also, I think we need to have in mind that Wasabi transactions would be RBF transactions that only spend outputs with witness program v0 (it has to be < 0.058 by sure) IMO, given there are wallets that allow us to do rbf and spend segwit outputs (bitcoin core, electrum, samourai, greenaddress?) I think that allowing the users to opt rbf will not be a big problem in the short term but currently I am not so sure, probably is okay. |
I am not saying to put it default, but as optional in the transaction builder. I also use wasabi as a normal wallet. |
I've been working on this and unsure on how to do the UX. I was thinking of adding a right-click option on a replaceable transactions in the history tab, but I am open to other ideas. |
I would discourage you to work on this. RBF is full of UX and privacy issues. It'll make our wallet state issues worse and don't even work as expected, since some pools, like Antpool intentionally don't mine RBF at all. |
I cannot speak to the UX issues but perhaps a warning explaining the privacy issues with RBF would be good. I use RBF all the time on Electrum. I wasn't aware of privacy issues. |
@nopara73 @lontivero I agree with @NicolasDorier it is important to have RBF in wasabi. This is the #1 feature my operators are telling me is missing from Wasabi vs Electrum. Since coinjoin adds time to the OTC trade process, it would help to have RBF to compensate. I don't personally see how/why RBF reduces privacy. The wasabi coinjoins already has its own fingerprint so someone snooping already knows a person is using wasabi wallet when spending out. Trust me, some people do bump the fees to RBF transactions manually. I'd say on average we used to bump at least 1-2 transactions daily |
Privacy Issues:
Social/Practical Issues
UX Issues
That being said I am not completely against implementing RBF, but it won't be a one nighter work. |
@FrancisPouliot That must be annoying to RBF manually. How do you do that? Broadcast raw transactions on Wasabi? I resorted to child pays for parent the other day when fees were high. I'm not sure it worked very well since I couldn't get the fees very high on Wasabi. |
I started working on this a bit ago, but abandoned it due to it being out of what I was confident working on. If someone wants to work on this, feel free to take my code: benthecarman@247a090 |
@dmp1ce we don't do it with wasabi, which is a problem. We could import a seed into electrum but afaik they don't allow bech32 derivation when importing a private master key |
I agree with @nopara73, there are several privacy issues with RBF. I say more power to the user, allow RBF in the advanced setting while explaining that it decreases privacy. |
Also I think fixing this issue above is simple: simply don't use the term RBF, or even ReplaceByFee, just explain in simple words, something like: |
This is obviously a very important point for privacy-focused software like Wasabi. However, consider what would happen if every transaction signaled support for opt-in RBF. In that case, we could switch to full-RBF (every transaction is replaceable by default) without affecting the system, making it an uncontroversial change. If full RBF is adopted, then opt-in signaling is no longer needed and this source of transaction differentiation goes away. Obviously 100% of transactions signaling BIP125 is extremely improbable, but there's probably a reasonable threshold of BIP125 signaling where it's clear the community is ready for full-RBF.
I think this is an option you'd want to present to the user, as sometimes they may prefer faster confirmation (bump fee) and sometimes they may prefer privacy (don't bump fee). E.g., to fee bump in Bitcoin Core GUI right now, a dialog is popped up that tells the user the current fee and the proposed new fee, with the replacement only being sent if the user clicks "Ok". Wasabi could do something similar but also add a line "Warning: fee bumping reduces your privacy." You might even be able to track bumped change outputs differently in Wasabi's coin control so users know that output was extra strongly associated with its wallet software and previous transaction.
Although I do believe Antpool initially didn't allow replacements, I think this is now outdated information. Because of BIP152 compact block propagation (and related technologies like FIBRE), there's poorer-than-average propagation (and thus higher orphan rates) for blocks with many transactions that aren't found in most node mempools (e.g. transactions that were RBF replaced). Thus not allowing replacements costs the pool money both in lost fees and higher orphan rates. It was for that reason and others that Bitcoin Core recently removed its However, this should be easily testable given enough time. I just setup my node to begin recording data and will reply when I have results. |
@harding Since you took the time to write this comprehensive reply, let me revisit the first part of this issue with some more structured deductive reasoning and wishful thinking. By first part, I mean, if we should signal RBF or not. When to signal RBF? Never, always or let the user decide?Firstly, an insight can be gained by recognizing that Wasabi cannot have opt-in RBF at all, because that would fragment the userbase and whichever side would end up being the minority, the always signalling or the never signalling users, is deemed to be deanonymized. So, regarding the question: "Should Wasabi be signalling RBF or not?" The only viable answers are "always" or "never", "let the user have a choice" is a serious privacy leak. To signal or not to signal RBF?Next, let me examine the question if the wallet fingerprinting, caused by signalling would be an issue or not for Wasabi.
There's an inherent design constraint in Wasabi that makes this situation better than it'd initially seem. We don't need data on the whole blockchain, we need data on only P2WPKH input only transactions. IMO if the signalling reaches 40%, then we won't have to worry anymore, we could have a choice to decide. In fact, the more reasonable choice would be to decide for it, because of the trend. If the signalling reaches >60%, then we should signal RBF, even if we wouldn't intend to let the user use it. So the Wasabi relevant metric is P2WPKH input only tx signalling, not the whole blockchain signalling. When this metric reaches >40% then it'll make sense to signal. The decision on whether to actually use RBF or not can be deferred to when we start signalling it. |
@nopara73 what about "Maybe" where you activate RBF at random? |
Sorry, when I said "opt-in RBF" I was referring to the technical name of the feature, not per-user configuration of Wasabi.
IMO, giving users a choice would only be something worth considering if Wasabi had the ability to RBF fee bump. Otherwise I agree that users choosing RBF signaling could only degrade their privacy with almost no redeeming benefit.
The point I was trying to make is that, at some level of adoption across all transactions in the average recent block, Bitcoin Core and other nodes can switch to relaying and mining fee-based replacements by default---not just replacements of transactions that signal BIP125. If that change is made, then nobody needs to signal BIP125 and this method for distinguishing between wallets goes away---improving the privacy of all wallets. To that end, my suggestion was that Wasabi could signal BIP125 randomly with the same probability as BIP125-signaling transactions are seen on the network (or BIP125-signaling all-P2WPKH input txes, as you say). I think that would improve Wasabi's privacy and increase the number of BIP125-signaling transactions on the network. |
Could someone make a statistics on what percentage of all transactions those only have P2WPKH inputs signalled for RBF during the past month? Signalling randomly for RBF with the above probability is a privacy improvement for Wasabi. Also a good start to kick off this issue and catch the pitfalls early on. |
You could maybe design this so that the coordinator gives the probability info to the client, so that it's updated live without the need of updating the client? |
Could be. I think it's a bit overkill though:) Also when there's an acceptable way to not delegate something to the coordinator it's better to not do that, so that part of Wasabi will still work without the coordinator. |
Thanks @harding for your in depth thoughts on the topic! So how about this:
I think this would actually increase wallet finger printing privacy compared to the current implementation, it would drive further adoption of RBF which further increases privacy, and it introduces a very powerful feature to the wallet. |
I agree with @MaxHillebrand and I'd add that the advanced setting could simply enable or disable the option to shot the RBF tick-box. If you're spending spending 0.1s from an obvious wasabi mix you're already doxing your wallet anyway. This is the current electrum implementation for doing an RBF / "priority boost" / "increase fee" I don't see anything wrong with that interface except that for preserving privacy of which output is change there should be an option to
Ps: RBF when sending MAX always takes the fee from recipient. |
I agree that RBF could be implemented with small impact on privacy. I would implemented as follow: a user wants to speed up his transaction then he goes to the History tab and does right click on the unconfirmed transaction, a context menu opens with an option "Bump fee/Increase fee" and when the user clicks on it an small pop-up window appears (very similar to the one shown by Electrum). On the other hand RBF could be one of those features that wallet developer implement because estimating fees is a really hard problem. For that reason I would prefer to invest time in improving the fee estimations using the fee histogram which gives us a clear picture of the current pressure on the mempool and its variation over the time. |
I leave my full ACK here for full RBF implementation. (eg.: right click/speed up tx) Handling high fees more and more outweigh the privacy concerns, which aren't huge in the first place. |
Once that's done, it might alleviate your privacy concerns with RBF. |
Less extreme version of #1540
I did a Over The Coffee (OTC) trade recently. I wanted to make 2 transaction:
Because Wasabi make a non RBFable transaction on the transaction builder, I could not achieve this.
The text was updated successfully, but these errors were encountered: