2016-01-17

Stanford University and its native advertising of 21.co

About two weeks ago there was a post on /r/Bitcoin advertising a new course on Bitcoin Engineering from Stanford University. It sounded good enough - there is a lot one can develop with Bitcoin and teaching it at a university would be a perfect way for new people to get exposed into Bitcoin. However, reading some of the topics to be covered, such as "Bitcoin Dropbox" or "Bitcoin WordPress", made me think of some company I covered before on this blog. Reading further down, yup, one of the instructors for the course was Balaji Srinivasan, the CEO of 21.co. "Oh boy!" I thought, "I wonder how much of this course will focus on using the 21 Computer rather than pure Bitcoin...". Today I came back to the website and I got my answer...

It's not often that I get to write multiple pieces on this blog that fit together into a neat narrative, but it seems that 21.co will have the privilege (previous entries - 1, 2).

Course content so far


At the moment, it looks like the course is two weeks in and we have 3 out of 12 rows of documents available publicly:


While it is possible the course becomes more generalized in the future, I have my doubts.

Reading the entire course page, we can see the course is about "Bitcoin and Bitcoin-enabled computing", where the students will be "build[ing] Bitcoin-powered versions of several popular Internet services". No mention of "Bitcoin Computer" or "21 Bitcoin Computer", so one would think you would be building something with perhaps Bitcoin Core, or some other open APIs...



"Pick up your 21 Bitcoin Computer up front". Makes me REALLY excited for the possible upcoming MOOC version of the course (signup form available). Thanks Balaji.

Lab 1, instructions on setting up 21 Bitcoin Computer, followed by some okay explanation of what Bitcoin is, basics of how it works, etc. This is then followed by some hands-on exploration of data in Bitcoin on the 21 Computer, explanation of what mining is and "How to rapidly mine bitcoin with a Bitcoin Computer" (after all, "The 21 Bitcoin Computer includes a fast and convenient way to get bitcoin for programming purposes" - who needs TestNet, right?). After that we learn about the all important "21.co balance and your blockchain balance"...

Guys, there is a reason mining is downplayed in most introductions to Bitcoin (including the version 2 of the famous "What is Bitcoin?" video) - it is a specialized industry doing some of the most boring things around Bitcoin. A vast majority of Bitcoin businesses never touch it, nor care about it. Sure, by all means, explain how it works and what it is, but devoting 11+ out of 54 pages to it in the first lab is an overkill. TestNet exists for a reason - you can get some coins to play around for free and its way less complicated.

After that, we get a document on "Remotely login to your Bitcoin Computer" (I think what you meant  to say was "Remotely logging into"). As expected, more 21 Computer. Finally, we get some document to schedule 'Genius Bar' appointments (Apple much?).

Upwards and onwards to week 1. We get out Lab 0, which is the course overview, how to set up 21 Computer (with a special slide on how to "Mount the 21 hard-drive as a volume on your Mac"...). Not much else to see here.

It looks like the first proper presentation for this course is "Bitcoin: An Overview", which does a decent job explaining what is Bitcoin about, a number of things surrounding Bitcoin. It looks like a decent presentation without plugging 21 Computer too much. I guess that might be because a good chunk of it was presented by Belaji back in May last year at Sunnyvale's Bitcoin Job Fair when 21.co was still in semi-secrecy mode...

After that, we get linked to Lab 1 again, and we also see the first Self Test, including such important questions as:
  • "When you ran `21 status` to create your wallet and 21 account, what username did you select? (If you don't remember, you can run the following command at any time: 21 status)"
  • "How many satoshis do you get each time you run 21 mine? (If you don't remember, run the command again.)"
  • "Fill in your Stanford email and run the following command (if you get an error about your balance, run `21 mine` and try again): 21 buy sms +14084383755 'YOUR_EMAIL@stanford.edu'"
    • For which the only thing to check is " I sent the SMS message using the 21 CLI"

We're now at week two. Lab 2 - after a brief introduction to "Bitcoin Computing", we get a few step process of how to mine some bitcoins, buy and sell digital goods for bitcoin, and learn how to work with the bitcoin library (of course, all with the use of the 21 Computer). [Side note - we get have both the uppercase and lowercase "bitcoin" used to refer to the currency ("buy digital goods with bitcoin", "sell digital goods for Bitcoin") - keep it consistent, please.] Afterwards, we get some example of how to use the 21.co's library on how to develop some software-as-a-service.

After Lab 2, we get our Self Test 2, with the important questions of:
  • "Which of these is the main advantage of using off-chain transactions?"
    • After all, this wouldn't be a course on Bitcoin if we didn't focus on transactions happening outside of the Bitcoin network...
  • "What API calls can be outsourced using micropayments?"
    • With the answers being "Any remote API call", "Only calls that have a high per-use cost", "Only calls that depend on complicated technology, like Google Maps", "Only calls that use cloud services" and "Only calls that require registering for an API key before using"
    • None of the answers are particularly correct, and the question itself doesn't make sense - outsourcing API calls in the context of software development would be more focused on putting the API calling logic in some separate library, rather than as an external product...
  • "After you joined the market with "21 join", what was your IP address for the zt0 interface? (Instructions to get this are in the lab 2 document.)"
  • "Were you able to get someone on the Slack channel to buy your endpoint?"

And that would be it when it comes to what is available for public viewing so far.

Course critique


As someone who has written a Master Thesis on Bitcoin almost 4 years ago, I have mixed feelings about the course. My major gripe is that the course looks like some HEAVY native advertising in disguise. The course website makes you believe you would be working with Bitcoin, but in reality, you are working with 21 Computer and their proprietary libraries. This would be like wanting to take a course on the C programming language, but ending up with a course being on developing Windows Phone apps in ASP.NET as presented by Steve Ballmer. Sure, you would learn some similar fundamentals, but one would be a good basis for learning other C-based languages, a staple in the current industry, while the other would make you a Windows Phone app developer - not something many people aspire to really.

Similarly, since the course requires heavy use of the proprietary $400 device, I doubt many students not physically present at the university would be able to participate. If 21 decided to release some "student version" of their software that can be used on any device - it wouldn't be a problem, but I somehow doubt that would be the case...

That being said, as I stated before, the software itself seems to be quite feature-rich and the examples presented with the lecture wouldn't probably be possible to implement in a short time frame without them. Speaking from experience, one week is about enough to implement a web wallet from scratch if you're using Bitcoin Core for the first time - hardly as impressive as digital content delivery.

The strong emphasis put on mining and the use of off-chain transactions is a bit misleading if you want to learn about programming on Bitcoin. It is yet again 21 pushing its narrative of having mining available on every device and all of them being connected to their proprietary mining pool / shared wallet. It isn't representative of how Bitcoin works in its core, although it may be used as a good example perhaps later down the line of some alternative ways of handling bitcoins.

Lastly, when we're considering that two weeks of this 11 week course are focused on small hackathons, where the "Best projects get written up in Bitcoin Magazine" (from Lab 0), one might start to think that this whole lab exists not for the students to learn about Bitcoin, but for 21.co to get exposure, teach a number of students how to be completely reliant on its software for anything Bitcoin-ralated and possibly get some ideas / examples of what can be built with their hardware and software.

Conclusions


The Stanford Bitcoin Engineering course is a series of labs and lectures on how to use the 21 Computer, as presented by the CEO of 21.co. The majority of learning materials so far are reliant on proprietary software and hardware making it useless for anyone without the device. 

All in all, if the instructors of the course were more up-front about what they are trying to teach in this course I probably wouldn't be bothered by this so much, but as it stands, I can see it as nothing more than Stanford doing some native advertising of 21.co. I'm sure any student that essentially paid $1k+ to take the course will be grateful...

1 comment:

  1. Yes but the device will be offered for free to that Stanford students I presume, after all they pay a lot for the university so why not?

    Then the software will be soon opensource so anybody can follow the course.

    ReplyDelete