Summer Internship Project Ideas #76
Replies: 17 comments 59 replies
-
Project: Adapt LetheKit for SeedSignerLetheKit v0 is an open source DIY hardware box with offline cryptographic tools. It can use dice for entropy, import seeds in a variety formats, and exports derived keys using UR-based QR codes. However, it can't support crypto-request QRs, or sign transactions as it does not have a camera. SeedSigner is another open source DIY device that does have a camera and a better display but it does not support UR QRs. The goal would be to evaluate if we can submit patches to @SeedSigner to add all the UR functionality that LetheKit has, and if not, port the LetheKit code to that hardware as an alternative to the seedsigner code base. Sub-projects could be to understand requirements (for instance, LetheKit forgets when powered off, I'm not sure with seedsigner) and use cases, evaluate their code, update the existing LetheKit v0 code for recent UR features, write docs, create a video tutorial, update the LetheKit web page, etc. @ksedgwic or @gorazdko, fomer leads on LetheKit project might be persuaded to be mentors. (see issue #89) |
Beta Was this translation helpful? Give feedback.
-
Project: NFC-A tag test platformThis project is for interns with interest in hardware, and some experience with hardware development / toolkits. Adapt an MCU devkit for use as an NFC-A tag test platform for testing Seed Tool NFC read/write functionality. For example, using:
It is possible to set up a board that can be configured to emulate an arbitrary NFC-A tag, readable or writable. A mobile app can be used to configure this tag via BLE commands, including loading test data:
|
Beta Was this translation helpful? Give feedback.
-
Project: Inventory of Digital Identity & Blockchain LawsA good project for non-engineering interns, in particular those with library science or pre-law eduction. Discover and compare different US state & international laws in regards to digital signatures, digital identity, and blockchain-related technologies, and create an open source repository with catealogue.
We have some practicing lawyers that are likely to be able to mentor on this project, and there are opportunities to influence legislation in Wyoming, Texas, Argentina, and more in the coming year. |
Beta Was this translation helpful? Give feedback.
-
Project: Contribute to Taproot/Schnorr Update of "Learning Bitcoin from the Command Line"Our popular online course Learning Bitcoin from the Command Line is complete through pre-Taproot/Schnorr release of Bitcoin-Core, but needs research and first drafts on a number of topics: A list of the items being considered for the next release (3.0?) of the course are described at Todo List for v3.0 of Learning Bitcoin. Note that many of these items do not require a deep knowledge of software engineering, and can be accomplished by student willing to dive into the command-line. There are many opportunities for mentors here, depending on the sub-topic. |
Beta Was this translation helpful? Give feedback.
-
Project: Video Course for "Learning Bitcoin from the Command Line"Our popular online course Learning Bitcoin from the Command Line is completely text, but there is an opportunity to also teach it in a guided video course. Not all topics need to be covered, but even a better "intro" video course would be helpful. This project would be great for someone new to Bitcoin but comes to it with some video editing experience or background in education. |
Beta Was this translation helpful? Give feedback.
-
Project: Edit "Blockstream Office Hours" VideosWe have slightly more than a dozen Zoom recordings of various Bitcoin, blockchain, and privacy advocates from our "Office Hours" during the last two cohorts of interns. There will be more interviews and Q&A added this summer. I'd like to see these edited into a series of videos on different kinds topics, for instance, one collating all the blockchain career advice that different people offered into a single video. There is also an opportunity for us to add more interviews of blockchain luminaries to supplement these videos. |
Beta Was this translation helpful? Give feedback.
-
Project: Modular Bitcoin-Standup-ScriptsThere is a PR to our Bitcoin Standup scripts from former internet @jodobear that modularizes these scripts to allow for additional open source bitcoin libraries to be chosen to install: BlockchainCommons/Bitcoin-Standup-Scripts#15 However, this project got stalled, and also needs to address some changes in later versions of the release Bitcoin-Standup-Scripts. I'd also like to see a version of tested against older versions of macOS (in particular Mojave) as the Gordian Server app doesn't work with these old releases, and there are some good reasons why to support Bitcoin-Core on old hardware (in particular Mac minis). |
Beta Was this translation helpful? Give feedback.
-
Project: Human Rights Use Cases for Digital Privacy & CryptocurrencyThis is a great project for non-development interns, but also allows them to connect these topics to software engineering practices. Write up a number of human-rights centric use cases for privacy and cryptocurrency, including balancing freedom of speech, freedom to assemble, right to work, freedom to transact vs. preventing bad actors from taking advantage of those with less power. This includes interviewing various major stakeholders EFF, HRF, Red Cross, UNHR, plus people actually in the field doing the work. Choose one more more use cases to build a 12-step engagement model, similar to Joram or Amira, but focused on human rights and cross-border volunteer workers. Possibly include more detailed risk modeling, threat analysis, etc. Disseminate the final materials with supporting documents on Blockchain Common’s public website or elsewhere. Mentors may include Alex Gladstein of HRF, Joe Andrieu, and a number of others. Related: #61 |
Beta Was this translation helpful? Give feedback.
-
Project: Survey of Developer & Blockchain EthicsAnother project that can be led by a non-engineer. I'd like a good survey of history of software engineering ethics and more recent thoughts given blockchain development, self-sovereign identity, modern privacy technologies, etc. The team should be prepared to be able to lead a group discussion with Blockchain Commons stakeholders (patrons, contributors, volunteers, staff and users) on this topic, and present an article on the topic in our blog. |
Beta Was this translation helpful? Give feedback.
-
Project: C-Lightning: Course Update & Maintenance DocumentsOur popular online course Learning Bitcoin from the Command Line has some basic chapters on C-Lightning, but we need more:
This project does not require coding experience, but one of the team should be able to do some basic CLI scripting. |
Beta Was this translation helpful? Give feedback.
-
Project: Stand-alone BIP-322 (Generic Signed Message Format Leveraging Bitcoin Script) CLI appThis is a project for some more advanced coders with C++ experience. BIP-322 is a proposal by @kallewoof that extends the old legacy single-key signing of messages, to sign or partially sign a message for any Bitcoin script from which they could conceivably spend. There is a PR to update bitcoin-core that has been languishing for some time, but it should be possible to leverage code from @kallewoof's Bitcoin Script Debugger to make a standalone tool that can sign messages. Potentially @kallewoof might be up for mentoring interns tackling this project. |
Beta Was this translation helpful? Give feedback.
-
Project: Translate Learning Bitcoin from the Command LineLast year saw two translations of Learning Bitcoin from the Command Line, into Spanish and Portuguese. We'd love to see more. Our goal is to reach large groups of engineers who might not have proficiency in one of our current course languages (English, Portuguese, or Spanish). Hindi? Italian? Chinese? We're happy to talk about options. This is another project that can be led by a non-engineer, though experience with command-line UNIX/MacOS usage is a must. Also note that it requires at least two people for any translation: one to translate a chapter, and the other to review it. (Those roles can switch about if desired.) Any reviewer must be a native speaker of the language or have a similar level of expertise. Here's a document on the translation process, built on our experiences last year: |
Beta Was this translation helpful? Give feedback.
-
Project: Conquer Death with BitcoinA serious problem with any #SmartCustody solution in figuring out how to insure that your Bitcoin or other digital assets find your way to your heirs. Even if you're not dead, you might be incapacitated such that you can't personally access your funds, and it might be critically important for you to do so (say, to pay your ridiculous hospital bills in America). We've tackled this problem twice:
It would be great to get this work to a more complete stage, where it could actually be used as a reference for how to protect digital assets for heirs. We think these timelocks are a great way to do so, but they don't have to be the only solution. So, a project might involve bringing |
Beta Was this translation helpful? Give feedback.
-
Project: Update DIDs for secp256k1 as per BIP39This would be a good group project for interns interested in internal standards and self-sovereign identity, and with different skills (writing specs, testing, coding javascript, coding C or rust, writing documentation, etc.) Few of the emerging W3C DID (Decentralized Identifier) methods are using secp256k1 (the curve that bitcoin uses). In addition, none of that I know are actively implementing Schnorr signatures for k1, and even those in spec-only form are not making some of the choices that BIP40 made, or leverage Schnorr in sufficiently security reviewed libsecp256k1 library. Finally, no one in implementing DIDs currently are leveraging the multisig opportunities Schnorr, including musig2, FROST, adapter signatures, blinded signatures, etc. In particular:
Related to this is beginning to be able to
Potential mentors include: @kimdhamilton @csuwildcat @jandrieu @rxgrant |
Beta Was this translation helpful? Give feedback.
-
Project: Best Practices for Open Development of Secure SoftwareThis is another project that would be good for a team with mixed skills, and does not require deeper software engineering experience (but at least one should have experience with build processes). Various organizations (Linux Foundation, Google, etc.) have offered guidance as to the practices of security, supply chain, etc. , but also emphasize enterprise and OS supply chain use cases. There are also a number of automated tools (apps, GitHub actions, etc.) that can be used to audit on some of these. However, many are not practical for smaller projects, especially the emerging blockchain security repos, where only a few people may be contributing. The goal of this project is to survey the existing recommended practices, best practices of various important security projects (including Blockchain Commons practices), etc., to identify which address the biggest threats given the effort (threat analysis), are practical for small projects to implement, which we might be able to offer some documentation and examples of how best to install and use, and guidance to contributors to small projects on how to tool and support this practices (like docs teaching git signing for writers contributing documentation to a secure repo). |
Beta Was this translation helpful? Give feedback.
-
Project: Secure OS Guides & Best Practices (Tails, Whonix, Qubes)The war in Ukraine, and other authoritarian threats to citizens around the world demonstrate that we still need powerful tools for anonymity. One of the best of these is Tails OS, which runs on cheap computers from a USB device. Whonix runs on multiple virtual machines inside of your existing OS, and Qubes offers a very different security model on some specific laptops. All, however, are not easy to install or use by activists. Interns from 2011 outlined some thoughts on documentation and scripts to make it easier to use Tails OS: #43 |
Beta Was this translation helpful? Give feedback.
-
Project: Survey of Cryptographic AuctionsWith the rise of digital assets, there is an increasing need for fair pricing and exchange between them. For those of a more a cryptographic or mathematical bent, but are not software engineers, I'd love to see a survey of different auction types that now can be supported securely with modern cryptography. @shannona and I have a list of historical auction types and their utility for supporting different kinds of needs for auctions in different marketplaces, but many do not map to cryptographic solutions. We'd like to offer the academic cryptographer community a target list of auction types NOT currently supported, to encourage innovation. Goal of this group would be to submit the survey as a peer-reviewed paper to an academic journal or conference, or just public on Arxiv.org and make it available to all. |
Beta Was this translation helpful? Give feedback.
-
This summer we will be having our third cohort of summer interns participating in our virtual internship program (see: #74):
What makes for a good internship project?
As the Human Rights Foundation @hrf is specifically funding some of the internships, I'd also love to see some projects that include human rights goals, such as teach advocates how to leverage our solutions ,or identify specific use cases that our ecosystem is not supporting. Many of these may not require software engineering skills.
Also let us know if you'd be interested in mentoring the internship team if they choose to work on this project.
-- Christopher Allen
EDIT: If you choose a project to work on, please ASSIGN yourself to the associated Issue, which should be linked from the Project description below.
Beta Was this translation helpful? Give feedback.
All reactions