bitcoin-core / gui

Bitcoin Core GUI staging repository
https://github.com/bitcoin/bitcoin
MIT License
604 stars 266 forks source link

Who is the GUI being designed for? -Continued Discussion- #45

Closed Bosch-0 closed 3 years ago

Bosch-0 commented 4 years ago

I'd like to continue the discussion from #17395 over at the bitcoin repo started by @michaelfolkson.

The two questions posed by Michael a long with summarized replies from the original thread are below. As someone who is interested in contributing to the design of the GUI I've also included some of my own opinions throughout.

  1. Who are we designing the GUI for? Long term Core contributors (highly technical) that use the GUI on a regular basis? I don't know how many of these there are. Technically curious who use the GUI when they can't work out how to do something from the command line? Complete Bitcoin beginners? All of these groups? If it is the latter then we should all be under no illusions that compromises are necessary which will mean it is impossible for the design to be optimal for an individual group.

  2. Design preferences are subject to the "sample size of 1" trap where those reviewing GUI changes think they are providing feedback on behalf of a group that they don't belong to. A highly technical user just does not know what is optimal for a beginner. The only way you see what is optimal for a beginner is putting alternative GUIs in the hands of a statistically significant group of beginners.

I think devs also fall within the user base albeit not as frequent as the power users (say if the dev wants to do a simple task in a few clicks). Over time and with good design we can include all users (see below).

I don't see this as an issue as good design should be able to cater to both experienced and inexperienced users. As an example see this exchange which offers different interfaces for differing user skills - taken from crypto UX handbook. Good usability is synonymous with good security - Casa articulates this much better in their wealth security protocol.

I agree with this but this is in many ways unrelated to good design. A flashy look can increase usability is not synonymous with Aesthetics. As long as its fulfills its job thats all the matters. At this stage that job being having any level of user being able to run a node and have a wallet attached to that node (whether wallet features are used in the GUI or

Good point to make but I don't think the constraints are as big as made out to be in the original thread. As Christoph Ono, who worked on the designs for the Monero GUI which also uses Qt, pointed out a small team managed to revamp the UI/UX of the GUI over a few years without too many issues, see here. @GBKS

As I mentioned above I think good design can cater to all audiences within the same app, having a modular GUI is not an efficient way to go about things in my opinion.

Luke also mentions "...Bitcoin's security depends on a super-majority of the economy using their own full node." This isn't possible without including beginner and intermediate users which can only be done through well articulated design.

Although this will likely be a controversial take, is the discontinuation of the GUI once enough options exist outside of core for users to run a fully validating node an option? Projects such as Umbrel and myNode are good examples of non-GUI fully validating nodes. If these become more popular among users for running a node than the GUI, is the resources put into it worthwhile when they could be applied to making bitcoins foundations even stronger?

With initiatives such as Bitcoin Design and square crypto design grants on offer, many more designers are likely to start contributing to open source bitcoin projects like the GUI. It's important that discussions like this happen so that designers and devs are on the same page.

I'd encourage devs to join the bitcoin design slack and for designers to frequent this repo and join in on discussions when they can.

michaelfolkson commented 3 years ago

Comments that were deleted by @jamaalm:

Hey Robert, thanks for the note.

You’re pointing to one of the limitations of the research — we couldn’t find a meaningful number of GUI users with our participant search. We did speak to one core dev that does use the GUI, another two core devs we spoke to do not. In your case, I would be curious to hear if the Core GUI is the primary place that your store your coins, and if not is it a place where you are conducting the majority of your transactions?

Overall most people we spoke to were people who at one point tried to GUI and abandoned it because the product itself (superset of the GUI) did not meet their underlying needs.

Secondarily, it’s not really possible to define a most requested feature set from this project. Rather, the biggest opportunity space is to build intuitive, high assurance ways to hodl. Almost all the people that we interviewed (and almost anyone in the universe of most likely to use or a current hardcore user of the Core wallet) view Bitcoin as something to save, something to hodl. That is the primary focus on what people are doing with their coins, using Casa, Specter, hardware wallets, multi-sig etc.

Not many ppl transacting in BTC use core as their was to transact because it doesn’t meet the needs as a transaction wallet.

The reason I suggest “killing the GUI” is because it is so far off course that:

A) it’s unlikely the resources will be put into it and forking it and starting from scratch would probably be more fruitful

B) there are sufficient non custodial trustworthy and high quality wallets outside of core wallet.

C) the most intense and fervent users of Core wallet are developers, who could be served better with a suite of product features and tools.

I hear you on the worry of the GUI becoming a dev only tool, and it may be better that it continues to live on, despite it falling further and further from being up-to-date or relevant.

My question then is — why? What is the purpose of keeping it alive? The answer may be as simple as the people that currently use it (as tiny as that number is). Or maybe it’s a fail-safe to ensure we have a trustworthy GUI wallet always available to anyone. Curious to hear your thoughts. Also who do you think the person we’d be designing for should be?

Thanks

Glad to see some discussion here. Some comments in response, bosch:

5. Developers are the primary active users of BTC Core wallet, and not for the GUI.Generally this is the case for CLI's. Why don't they use the GUI? See my comments on insight 1 above. There was a lot of discussion around how designers could improve the CLI but I don't think the CLI's usability is a problem. People aren't using the CLI and abandoning it like they are with the GUI. If the Bitcoin Core tooling's usability was too complex for developers we wouldn't be seeing the success we are currently seeing Bitcoin have. This is a non-issue and designers should not be focusing their attention on design work for the CLI. Furthermore, tools like this are meant to be taken as just that, a tool, and then features a product requires can be added on the application layer. For example, many wallets use BIPs not directly supported by Core, this is good and how it should be. Bitcoin Core ships a modular toolbox for building bitcoin products and the GUI should be a representation of that toolbox, not some flashy wallet that uses BIP39 seeds / non-hardened derivation etc. I guess there could be an opportunity to more cleanly present documentation around Core but this is a more 'nice to have' kind of thing not a priority.

CLI clearly is not being abandoned, nor is usability an issue. The question is prioritization. Where does the community want to commit resources? Developers are possibly the most active users of BTC Core Wallet via the CLI, and building products on it like myNode or other node products/tools.

6. People largely run nodes for non-tx based reasons: for goodwill and to learn/experiment (and on separate hardware).This is only true for I don't believe this is true. The hardware nodes that were being used were largely for non-transactive purposes. Additionally many who claimed to care about privacy had never done anything to do with privacy on a node, but had it for when they needed it eventually. In the meantime, it was a tool for Most people who are running nodes in general (from the data we collected) are not running core natively. Developers who may have an extra computer or need it set up may have it running natively, but often in addition to several hardware nodes. Non-developers-- no one running core on their computers.

8. Lack of standards infrastructure may be holding back developers and great UX.I don't think this is the case at all. The GUI is usually the first to adopt many great UX standards (PSBTs, Bech32 default, descriptors etc.). The biggest barrier holding back better UI/UX is Qt Widgets and the tools for saving (HWW/multisig) not being there.

I disagree here too. This is absolutely the case for people building on BTC Core. We spoke with devs working on BTC Pay, a widely used node implementation and a multi-sig wallet developer. The insight isn't about standards in the GUI. This project is about Core Wallet, not just the GUI.

Really thankful for all of your comments and thoughtful discussion. My project is just food for thought. And my opinion about what to do with the GUI is simply my opinion. That part is not part of the project deliverable, if you watched my presentation - it's again just my opinion.

it’s unlikely the resources will be put into it and forking it and

starting from scratch would probably be more fruitful This is a misunderstanding of the current situation - so many resources currently are being put into it; financial and technical. There is no reason to fork and start from scratch.

I think my statement is more about my personal perception of progress on making a great wallet product + GUI. But also one fo the core devs we spoke to also said the same thing - wallet is stagnant. He also suggested the GUI get killed or forked because it's not great.

@Bosch-0 is correct when he says that Bitcoin Core is the most audited and

secure. In terms of being a wallet for cold storage, all the work being done on HWI, offline signing, multisignature, descriptor wallets, PSBTs, miniscript, etc will enable it to be one. And without the Core devs, these standards/technologies wouldn't exist.

No disagreement here.

Surveys of 400 people on my project and survey of 1000+ people on andrew chows survey project clearly showed what ppl are using nodes for. I don’t recall anyone stating they run a node for LN, but i’d have to review the write in answers. My assumption is that is a tiny fraction of the universe of ppl running nodes. Not a single person in our interviews running a hardware node was doing it for lightning.

As shared in the presentation via 3 stories, 3 of the devs we spoke to had challenges with standards for xpubs psbts, etc

Maybe it needs to be clearer. My project isn’t about the GUI. When i’m talking standards, i’m not talking about the GUI.

My opinion that i shared was maybe the GUI could be killed.

some of the core devs i spoke with had the same opinion. stagnant -- and one of them went so far as to say the GUI should be killed.

One of my hunches is that many people running a lightning node are doing it to learn, to support the network or for fun (the reason i had previously done it). i suppose it’s transaction based but maybe people categorized it as learning or something else in the survey? i personally don’t know anyone myself who is using lightning for anything besides experiments tbh. but my network of people using lightning is tiny.

yes! this is what i had proposed in my project. separating the underlying core wallet machinery and enable people to build on it.

i’m personally in favor and excited by that.

What does NACK mean

I would recommend having a product manager or product designer (emphasis on PRODUCT) join discussions or decisions.

Because something exists to some degree doesn’t mean there’s a lot of product opportunities or design space. I see a lot of general statements that clearly downplay the amount of product design space in an idea. This matters a lot in making a great product.

Designing something that would enable and encourage GUI creators to build on the code base could have many many product implications. The question I’d pose is why aren’t there other GUI wallet implementations built on Core then? Beyond introducing new functionality that’s clearly missing in the wallet how could we make it easier and safer to develop GUIs? How do we elevate the end users trust if the GUIs aren’t part of the reference score wallet?

Another example, downplaying standards and their implications because again “they already exists”. Ok - try using core wallet to store your coins and then try to change to an entirely different wallets. Not that i’m suggesting this - but is there a standard wallet.dat file? Is there a standard way to take my meta-data with me that i’d generated about my UTXO’s. Even trying to switch non core wallets can have its standards related challenges, which can relate to core. For example how does one transmit a PSBT? The air gated community has been working on an animated QR code. Or xpubs - there’s some differing standards there too. A question we could also ponder is what role does Core play in being a standard setter or convening the community around standards? Can core play a part in helping us settle on standards faster or being a reference implementation of them?

Another example - I talked about UTXO management in my presentation and specifically why there’s a lot of room for improvement based on how people are behaving. Another response to that in this thread is that core wallet already does that rn or it’s good enough . The labels as they stand are are a poor solution for all the ways I saw people doing UTXO management. That is product thinking - why is the current implementation not solving the problem people face at all or doing it in a less ideal way?

Product thinking doesn’t treat all solutions the same. Details matter a lot.

This project was centered around PRODUCT, not GUI. A great “GUI” doesn’t create a great product. In face it’s impossible to have a great GUI if your underlying product isn’t good.

Implementation matters, and I suggest getting someone with deep consumer product experience in these discussions because details matter a lot and a good product is an extreme super-set of a GUI.

Who is the thing for? What does a thing do? How does it do that thing? And why? — these are some of the underlying questions that MUST be answered to make an excellent product. Without this it’s just a group of disparate functions in a wrapper that may function for technical users or just be good enough, but may not solve the problems real people face.

LOL - yes, it's short hand for looking outside of this narrow community of people that would be on this GitHub. Which was the purpose of the project.

"The project" Is my project that @Bosch-0 posted.

See updated comment above.

I doubt I'm the only one here with consumer product experience, but I did an MBA at INSEAD followed by worldwide product & marketing management for mass consumer brands for a few years as a change from software, before returning to software.

I don't know if a top-down approach can work well with the more ad hoc bottom-up, scratch-your-own-itch open source process, especially one that places as much importance on decentralization as bitcoin does. Nevertheless am always interested to listen / hear more.

I believe specifically having someone with deep a consumer digital product management or consumer digital product design experience would be helpful. Someone who has built on worked on these at scale would be helpful, rather than generalized consumer experience (not saying that's what you have).

Update from my post above, here is a recording of Jaamal going over Project Horizon: https://www.youtube.com/watch?v=oZkBU5H2WjY

This project looks cool but we should try to stay on topic on this issue (some of above discussion is relevant but some of it isn't). While there are users and contributors to the Core GUI it isn't going anywhere and arguably Core is an infrastructure project rather than a product.

I am responding to comments specifically about my work here -- apologize if this discussion shouldn't be happening here. I am simply responding to things that were posted here.

To the extent that this isn't about the Core GUI this should be discussed elsewhere. There are many standards that already exist and are in the process of being drafted, indeed there is an entire standards track in the BIPs.

It's not possible to separate the GUI design from product design. But I hear you, and I'll stop posting here.

This is such a helpful response, and I will respond next week. Thank you for writing this.

Thanks again for the reply, @harding. First I want to emphasize a couple things --

The purpose of my project was to explore the following questions:

What kinds of people are currently using the Bitcoin Core wallet and why? What are key elements in the official Bitcoin core wallet that would bring the most value? What information would users need to navigate downloading and using a wallet or bitcoin node(consensus/validation)? Why do people run nodes and what are their profiles? Bitcoin Core is the primary place I store my coins (two wallets, one a small-value hot wallet and one a multisig cold wallet). It's the only wallet I use besides a C-Lightning node. For my hot wallet, I send/receive almost all of my transactions through the GUI. For my cold wallet, I'm able to start a transaction through the GUI, but I usually finish up on the CLI because of my need to use HWI. (It's been a few months since I last touched my cold wallet, so I'm behind on some of the recent integration work.)

This is rare. We met one person that also had a similar practice to you. They were a core dev (we met with 3 core devs). As stated in the research, developers are the primary, if not the only, active users of the Core Wallet. This aligns with what our research showed. What I think is even more rare than developers using Core wallet, is developers actively using the GUI as a primary means to transact or store coins. Most developers that are using Core wallet at are choosing other products for storing coins and transacting. The only reason the core dev was using Core wallet is it's primary and arguably ONLY feature that it has better than any other wallet (if we're excluding the other features accessible outside the GUI): it is the most trusted wallet based on it's history, being open-source and those that have access to modifying the code.

On the flip side, one of the core devs we met with even stated that it may be best to kill the GUI altogether because it's just so bad.

Not many ppl transacting in BTC use core as their was to transact because it doesn’t meet the needs as a transaction wallet.

That it doesn't meet people's needs surprises me as I find sending and receiving through the GUI to work perfectly fine, and I appreciate the many features Bitcoin Core has that other wallets lack. One of the problems is that most of those features are related to security and privacy, so they aren't visible to users.

The purpose of my project was to look beyond the narrow community of people who are on this GitHub. That is often the purpose of design research (not UX research). Sure, any wallet can "send and receive" but that doesn't make it a great product or a good UX. And it may function for you, but you may be, again, the tiny tiny group of current users that are extremely technical and do not have the same needs as other probable users of the Core Wallet. With all that said, I understand Core wallet is an open source tool and developers work on it voluntarily on what they want, which is often what will serve them personally -- and that's fine. That purpose of my project was to attempt to answer the questions above -that's it.

Who are other probable users of the core wallet?

My project was to look beyond the small, small number of people using the GUI as it stands and think about who else could be using it based on what it offers, people that value: extraordinary high assurances (based on trust in the codebase), self-custody, open source, are somewhat OK navigating technical set-ups, without being a developer.

Those types of people aren't using the Core Wallet because "sending and receiving" do not solve the problems they're experiencing. Those are functions.

Take for example a BTC Miner in Venezuela that needs to mark down the value of bitcoin when he receives a block reward or when he sends it. For most people transacting in BTC, they need to account for the fiat conversion that the underlying transaction is intended to settle at. There are numerous other real-world problems that can't be solved with a simple "send and receive" function.

Or take Mark, a family guy, that's storing coins for his mom, but UTXO labels don't do it for him. Also what happens when he backs up his wallet? Where does the meta-data go?

Or take John, a pretty technical non-dev, that hates that he can only back up the Core wallet with a dat file.

I am NOT saying that Core Wallet needs to adopt these features. My projects intention isn't to say we need to be all things to ALL people, rather it's to say WHAT IF? What if we try to leverage what we have - open source, extremely high assurance product and focus on becoming THE place for people that want to self-custody their coins to do that? What would it take?

OR What if we become the GO-TO wallet for developers or focus on building developer tooling since they are the primary user of this product?

Previously I had created a sub-site to Bitcoin.org describing those benefits, but that material was never transfered to BitcoinCore.org when we moved in late 2015 / early 2016. I'll see if I can work on that next week.

The reason I suggest “killing the GUI” is because it is so far off course that: A) it’s unlikely the resources will be put into it and forking it and starting from scratch would probably be more fruitful

Are you aware of https://www.joelonsoftware.com/2000/04/06/things-you-should-never-do-part-i/ ?

I'd strongly suspect that any attempt to rewrite the GUI from scratch will probably never end with it integrated into Bitcoin Core to the same degree that it currently is.

That's fair. The idea of killing the GUI was literally one sentence that I stated as my opinion at the end of the project presentation. Somehow it's become the thing that people are obsessed with in this thread. It has almost nothing to do with anything in project.

That said, generally the Core Wallet is a pretty terrible product, even for technical people. And no, because it functions for those extremely technical users, that choose to use it because it has extremely high assurances, doesn't make it a great product. It's a product that simply does the job for the few that use it, nothing more for them. And again, that may be fine too.

B) there are sufficient non custodial trustworthy and high quality wallets outside of core wallet.

Very few such wallets integrate directly with a full node for the security and privacy benefits it provides. Even those that do integrate with a full node often don't provide the additional security of highly-reviewed wallet code or the additional privacy of things like -avoidpartialspends.

As stated in my project, developers are the core user of the wallet. And the even smaller subset of technical users that use it with real bitcoin are doing so because of its assurances or CLI and extensibility (we had 1 of these people out of 17 interviews, including 3 core devs).

the most intense and fervent users of Core wallet are developers, who could be served better with a suite of product features and tools. What is the purpose of keeping [Bitcoin Core GUI] alive?

The security of the Bitcoin system depends on people being able and willing to refuse acceptance of incoming payments that violate the consensus rules they personally think are important. The vast majority of wallets outsource part or all of that rule enforcement to third parties; only wallets based on full nodes perform all of the enforcement themselves.

I agree with this, nothing I've said contradicts this. People that believe in and act on the above statement are largely NOT using the Core GUI though -- they are fulfilling this with other tools.

One reason the most feverent users of Bitcoin Core's wallet are developers is because they understand this principle and so know that using a full-node-backed wallet is important. A consequence of this is that devs have, when necessary, "scratched their own itch" in usual open source fashion and improved the parts of the wallet they personally use.

Yes, agree. That said, there are a lot of non-developer folks who also understand the principle but choose other approaches.

This may give the impression that the only parts of the wallet that are important are the parts used by devs, but I don't think that's correct. Bitcoin's long-term security needs there to be an easy-to-use way for everyday users to fully verify their own incoming transactions. Currently the best product I know for accomplishing that is Bitcoin Core GUI, and for as long as that remains the case, I think it's essential we continue to devote resources towards maintaining and improving it.

Core Wallet is not easy-to-use way for everyday users. Full-stop. That is what my research showed and is self-evident to nearly all everyday users that are explicitly choosing other tools as their primary holding and transactions wallets, nodes etc.

Why are everyday users not using it? And no, it's not because "education." It's because the product and UX are lacking, far far far lacking for those people. And my definition of everyday users is pretty narrow -- those that value open source, understand bitcoin, value self-custody, have the technical (non-developer skills) to navigate all the elements of bitcoin that are needed to self-custody, and maybe multi-sig, today, and may have run or currently run a node. That is a tiny sub-set of everyday users, and the Core Wallet doesn't meet their needs.

@jamaalm

My project was about the product — Core Wallet. Right now that product isn’t great.

The great thing about Bitcoin Core's wallet is that it provides features that no almost other wallet provides by default. The usage of those features is essential to the security of the network. This was the main point I tried to make in my earlier message to you and I'm disappointed that I don't really see it addressed in your response.

What features have I proposed by cut, besides possibly the GUI? None. I'm unsure what your underlying assumptions are here.

I get the impression that you're looking at this as a typical market-fit analysis: we have a market (Bitcoin users), so how do we design our products (Bitcoin Core Wallet CLI/API & Bitcoin Core Wallet GUI) so that they become widely adopted by the market?

No, this is not what I'm doing. I'm applying an approach to gathering qualitative and quantitative data to understand why a very particular segment, small and intentional segment of bitcoin users that would very likely be using something like Core wallet, have chosen not to or have churned out from using it. This includes a lot of people that are developers of core and non-core bitcoin software.

As I understand it, your conclusions are (roughly) that Bitcoin Core Wallet GUI is so underused, and far behind its competitors, that it's better to abandon it so that we can invest contributors' limited resources into improving Bitcoin Core Wallet CLI/API for a niche segment of the market (i.e., devs and power users that either need the advanced features available through RPC or need a programmable API).

That's a perfectly reasonable conclusion coming from those inputs. But I see things a bit differently. I think what users want more than any particular wallet feature is for Bitcoin to continue to exist as a decentralized system that resists censorship and coercion. That property requires a sufficient percentage of users to use full nodes to verify their own personal incoming transactions.

Can you please point me to the place where I said I'd like Bitcoin to not exist as a decentralized system? Again, I'm not sure if this intentionally a straw-man or your premise is completely off on what my intentions are, my project and who I am.

The assumption that somehow tweaking the Core GUI as it stands will further decentralize bitcoin is dubious as well. That again, is the whole point of my project -- WHY aren't people largely running/using Core natively for a wallet and/or node? Improving the GUI will not magically solve that. Education is also an excuse. What is going to materially change the amount of usage based on a change in the GUI (without changing the product)?

The minute I hear someone say oh "the users need education" it's a clear indication that there is deep lack of understanding on WHO the user is and what their needs are, and there's an implied assumption that they're stupid. The "education" excuse in consumer products is 99% of the time just a bad product.

Bitcoin Core Wallet CLI/API and Bitcoin Core Wallet GUI are two of the only products that perform that verification by default. If large numbers of people aren't using them, and if they aren't using non-default alternatives, then it's essential to the long-term health of the system that we find a way to get people back to fully verifying their own received transactions. The easiest ways to do (that I know of) are:

To improve Bitcoin Core Wallet CLI/API and Bitcoin Core Wallet GUI until people are willing to use them again.

Education---explaining to users the non-obvious security and privacy benefits of using a personal full node.

Both false, and both will fail. Improving the graphical user interface (GUI) doesn't fix the underlying product. And education is an excuse for not having a bad product and has an implied assumption that a) you dont know who your making the product for b) you think they're stupid.

The demographic I referenced in the last post I made - they largely run nodes (none using Core, natively), they all self-custody, they all are very well educated on bitcoin. None of them use core, at all. Or they did and abandoned it -- WHY is the question?

Let me as you -- why did they abandon Core wallet? Is it because they need you to educate them?

The alternatives (like rewriting the GUI from scratch; or simply killing the GUI and hoping things just work out) sound like they would, at best, take a lot more work to achieve the same goal of keeping the network decentralized.

The GUI isn't keeping Bitcoin decentralized, nodes are.

In short, I'm asking you to look at this not as a problem of designing software for the short-term things users say they want but of getting users to use software that does what they need in the long term. It's a much more challenging problem, akin to getting people not to eat junk food in the short term but instead make long-term healthy choices about food and exercise.

I'll turn this question to you. This is not at all akin to getting people not to eat junk food. In fact, I've worked on projects for food companies in that domain -- this isn't remotely like that. That claim is also just such a terrible excuse for a bad product.

Let me turn it to you. Do you up think people that are running a node, but not natively using Core Wallet are uneducated? Do you genuinely think "educating them" is the right problem to solve? Do you think their choice to use other self-custody tools is somehow because they're uneducated or sending coins takes one too many clicks in the Core Wallet GUI? Do you think the people that downloaded core wallet and abandoned it for other products are doing it again because they're uneducated?

For the software devs that use Core as a testing and dev tool who don't use core natively at all or as a wallet, do you think tweaking the GUI to make it 1 less click to send coins will convert them to a Core wallet user? What do you think they need education on?

😂 go for it. sorry i've been writing and editing between meeting today.

@jamaalm We are going in circles and it doesn't seem like you are really reading any of the responses.

Bitcoin Core is the primary place I store my coins (two wallets, one a small-value hot wallet and one a multisig cold wallet)

This is rare. We met one person that also had a similar practice to you.

As mentioned previously, I do the exact same thing.

I am reading the responses. You may be failing to appreciate that not everyone is like you and thereby dismissing anything that is contrary to your behaviors and attitudes. We had a participant in the project that does the "exact same thing" too.

The only reason the one core dev was using Core wallet is it's primary and arguably ONLY feature that it has better than any other wallet (if we're excluding the other features accessible outside the GUI): it is the most trusted wallet

In Bitcoin, where security means everything, this is no small matter...

people that value: extraordinary high assurances (based on trust in the codebase bc it’s open source, or it’s origin, or those that work on it), self-custody, open source

If people value these things, they should use Bitcoin Core

Again, failing to appreciate that there is many needs that people have. And there is a hierarchy of needs. People can value those things, but choose other tools because something feels too daunting or technical to use and they fear running into technical issues or losing coins based on backup methods.

WHY aren't people largely running/using Core natively for a wallet and/or node? Improving the GUI will not magically solve that.

Improving the GUI will help, along with other improvements being made (improvements are always being made). Performance improvements, security improvements, multisig, offline signing, HWW support, assumeutxo, process separation, miniscript, hybrid SPV mode, etc. If you want something that isn't here, people usually offer bounties rather than complaining (that's something I've done in the past). But I've discussed all these things being worked on in previous posts. Core might take longer to do things, but we do them right (descriptor wallets vs the ypub/zpub mess; BIP 87/129 vs the mess of derivations and vulnerabilities in existing multisig wallets).

Those aren't changes to a GUI. Those are changes to a product. I think there's a language problem here. In software we never refer to an app or product as the GUI. The GUI is literally just the graphics layer that surfaces the underlying product.

What is it that you're calling junk food in your analogy with the specific demographic I already pointed out? Specter? Cold Card? Casa? Trezor? Electrum? myNode? That's junk food to you? Ok then.

Using HWWs without a full node is incredibly stupid

This is obnoxious, but go on...

Do you think their choice to use other self-custody tools is somehow because they're uneducated or sending coins takes one too many clicks in the Core Wallet GUI?

I'm not aware of any true self custody that doesn't use a Bitcoin Core full node, and I'd argue even further that for any secure setup, the wallet and even possibly GUI should be Core's as well.

Hardware nodes don't need the GUI. Using the Core Wallet GUI for a node is a pretty poor experience and unusable for many people.

Have you thought that maybe understanding the needs of a very particular, bought-in, bitcoin-believing, self-custody, node-running, technically-competent demographic could be useful

I would love to meet one person in such a group who doesn't run Bitcoin Core 😆

May go back and re-read my posts. My project is about the CORE WALLET. Everyone running a node that I spoke with isn't doing it through the wallet GUI. They're typically running it on separate hardware. GUI node is largely unusable for many non-software dev users.

Thanks for the discussion and disagreements. Wish you all the best.

Yes, because I deleted my comments I have a big ego and I'm unprofessional. It's a stretch.

I don't at all mind talking about the limitations of my work, but here I have folks talking about my work like I'm trying to mainstream Core Wallet to everyone, or talking to me like I don't know that the folks running nodes are using Core. You don't need to talk down to someone because they have a different point of view than you or assume, as another person did, that my intent was to diminish decentralization or something.

I will present my work on my terms, rather than folks taking it second hand and third hand and misinterpreting it.

There are a lot of people LARPing as designers in the bitcoin community, @Bosch-0. Good design is hard and takes a lot of work beyond updating a GUI and I encourage you to look beyond buttons and graphics.

🤣

jamaalm commented 3 years ago

I appreciate you putting these back up here, I also have a PDF of the full page before I deleted my comments. Unfortunately you've mixed up a lot fo my words with folks like @harding who have a lot of different things to say than I. And he also knows a hell of a lot more than me about Core. I stand by my posts, besides the last one, and have no problem with any them being reposted.

I intentionally chose to delete my posts after having myself and project participants labeled as "incredibly stupid" by @Rspigler and @Bosch-0 holding the flag like that type of harsh labelling is what keeps "bitcoin robust." Exiting entirely from a hostile environment that isn't about my work, but rather felt like egos flexing was the best thing to do IMO at the time, so I deleted my posts (sorry, bad call in hindsight!). Labelling people as stupid made it clear that there was no conversation to be had, it simply became about egos flexing. If it wasn't about ego it'd be about exploring the WHYs behind behavior that contradicts our beliefs. Why are smart people (like some Core devs or devs of other Bitcoin tools/wallets) not using the Core Wallet, or why are others choosing not to run a node with a HWW, despite @Rspigler's beliefs (which to some degree I may agree with)?

Answering the why behind behavior is the most important element of good product design, even if designing for developers or open-source or infrastructure. Like why do some choose the Core Wallet despite the GUI not being great? The need for extremely high assurances on code quality and trustability may be one plausible answer. The interesting stuff is when the why diverges from assumptions we have. Like why would someone we think that would use the Core Wallet not be using it, despite them having all the education/technical skills, etc. Those contradictions/gaps are what we look for. This could also be applied for current Core Wallet users - where are behaviors diverging from what we assume people would do? (That wasn't in scope for my project)

I apologize for some of the havoc I caused here. I recognize now that deleting comments rather than simply saying... @Rspigler, that's a really unproductive and frankly insulting comment to label people not using a node with a HWW as incredibly stupid. There are a lot of incredibly smart people who are doing that, and that is the purpose of design research (or ethnographic research). We try to understand the WHY behind behavior to inspire products or tools or infrastructure that really matter and work for the particular archetypes we're targeting.

Like many of you, this is essentially volunteer work for me. And similarly I assume, this is passion work for all of us because we love bitcoin and believe it may be extremely important for our future. And I, like you, don't want to spend my time battling egos over fundamental data and ideas. I apologize for letting it get the better of me.

I also recognize I'm a guest here, this isn't my space and I don't operate under the same culture that you all do. But I also am not obligated to be here, and I showed up after someone tagged me in this thread to respond and clarify my work. My intention of being here beyond that clarification was to understand what is being misunderstood/misinterpreted about my work and where I need more detail to make things actionable for design before I release my project work in more detail on the bitcoin design GitHub (the actual content, beyond the video). My work certainly has limitations, and despite it being written off as this process "doesn't work in open-source" I'd reckon that some sense of human-centered design does matter for open-source, and sure, it may have to be applied in a different way/format but I do believe it matters and can serve the work that you all do. Not that my project is the one to be a most helpful application to serve you. Often gathering stories and data helps incumbent users+builders (people like yourselves) of the product see the water or get inspired on what to build next, even if you're building for yourself. I'm not an expert, but I think stories of different relevant users can help drive and inspire your work.

I sincerely do appreciate all the work you do and hope that we all can get past this. I am sorry for the part I played in flaring this thread up. ✌️

Rspigler commented 3 years ago

Sigh...

Don't try to turn this on me, and harp on a single quote out of pages of responses I have tried to engage with you in, despite you being very unpleasant.

Here are the notes I took away from the presentation as the most requested:

update flashiness
Info on what a node is, syncing, etc. Basically - guideance for noobs.
SPV (bitcoin/bitcoin#9483)
Non-digital backups
Multi-sig Coordinator (bitcoin/bitcoin#21278) (bitcoin/bitcoin#21071)
Repeat seed tests/reminders (#185)
Better privacy (bitcoin/bitcoin#19148) (bitcoin/bitcoin#19035)
Allow for recording fiat amounts
Encrypt meta-data (bitcoin/bitcoin#18085) 

Improving the GUI will help, along with other improvements being made (improvements are always being made). Performance improvements, security improvements, multisig, offline signing, HWW support, assumeutxo, process separation, miniscript, hybrid SPV mode, etc. If you want something that isn't here, people usually offer bounties rather than complaining (that's something I've done in the past). But I've discussed all these things being worked on in previous posts. Core might take longer to do things, but we do them right (descriptor wallets vs the ypub/zpub mess; BIP 87/129 vs the mess of derivations and vulnerabilities in existing multisig wallets).

I'm actually trying to move this product and conversation forward, while all you can do when faced with criticism is say that your research was product based (ok?...)

Anyway, you can't use Bitcoin without a full node (without placing trust in miners, or custodial service, etc). This is not a controversial statement. I'm turning this thread off on my notifications.

jonatack commented 3 years ago

I'm grateful for the contributions here from all of you. It's a useful discussion to have.

michaelfolkson commented 3 years ago

Can we stick to discussion on the Bitcoin Core GUI rather than making this personal and emotional please (directed to all participants)? Thanks. Otherwise this issue should be closed.

hebasto commented 3 years ago

May I suggest to close this issue in favor of #352?

jarolrod commented 3 years ago

^ seems like a reasonable step forward

Bosch-0 commented 3 years ago

Yes let's move discussions there