Apparently I am a "reformer". That's what I learned recently when I completed an Enneagram assessment. If you're not familiar with Enneagram, it is the latest personality assessment to achieve popularity. It works by asking the subject to react to a set of statements, from strongly agreeing, to neutral, to strongly disagreeing. When you complete the assessment, your reactions get tallied to categorize you as one of nine personality types: reformer, peacemaker, individualist, etc. You can then read about your personality type to gain some insight about yourself.
Enneagram isn't the only personality assessment out there. Most people are familiar with Myers–Briggs, which assesses the subject in four categories: introversion or extraversion, sensing or intuition, thinking or feeling, and judging or perceiving. The Birkman Method reveals four key perspectives of every person: motivation, self-perception, social perception, and mindset. Finally, CliftonStrengths—less familiar to most people—focusses on 34 distinct talents that humans may possess to greater or lesser extent. What all of these personality assessments have in common is that they solicit significant input from the subject on a wide range of topics. To the person taking the assessment, some of the questions or statements can feel personal. And even questions that aren't personal might focus on something you wouldn't necessarily want others to know about you. So even though you may be interested in the conclusion from the assessment, you feel like you're sacrificing privacy as the price of participation. This is an ideal reason to employ confidential computing, where the inputs are not revealed to anybody outside of the respondent.
There is also an important pattern represented by this light-hearted example. Personality assessments are generally voluntary, and they don't solicit anything too personal. However, similarly structured medical or psychological diagnoses can be essential to a person's health, and the information required to achieve the diagnosis is usually considered very private. As telehealth and self-service medicine grows in popularity, the importance of maintaining privacy of patient data only grows. Cape Privacy's confidential computing platform can enable medical providers to promise complete privacy to their users/patients, while still offering valuable diagnosis.
I wanted to create the Enneagram assessment application in a way that would make it easy for the user to understand how their answers would stay private. By using Cape's JavaScript SDK, I implemented a direct connection between the user's local browser and Cape's confidential computing environment. The function that implements the algorithm to determine the user's Enneagram type runs inside the Cape enclave, ensuring that nobody—not even Cape's team—can see the user's input while it's being processed. And of course, the user's browser talks directly to the Cape enclave over a communication channel secured with standard TLS, so the inputs are safe during transport. There is no web server involved—the application comprises only the HTML page that runs in the user's browser, and the Enneagram calculator function that runs in the Cape enclave. The user indicates their reaction to each of 36 statements, and then submits the form. JavaScript code embedded in the page assembles the list of reactions, and invokes the Cape function to compute the Enneagram type. The function returns the computed type, which is displayed on the screen using a JavaScript alert box.
The function that computes the Enneagram type is based on the Open-Source Psychometrics Project, which created a simplified assessment comprising only 36 statements. The calculation groups and tabulates the rankings to determine the user's type:
defcape_handler(arg):
# Parse the input as a JSON list
ranks = json.loads(arg)
# Calculate the score for each of the nine type
types = []
types.append(ranks[0] + ranks[9] + ranks[18] + ranks[27])
types.append(ranks[1] + ranks[10] + ranks[19] + ranks[28])
types.append(ranks[2] + ranks[11] + ranks[20] + ranks[29])
types.append(ranks[3] + ranks[12] + ranks[21] + ranks[30])
types.append(ranks[4] + ranks[13] + ranks[22] + ranks[31])
types.append(ranks[5] + ranks[14] + ranks[23] + ranks[32])
types.append(ranks[6] + ranks[15] + ranks[24] + ranks[33])
types.append(ranks[7] + ranks[16] + ranks[25] + ranks[34])
types.append(ranks[8] + ranks[17] + ranks[26] + ranks[35])
# Determine the highest type score
max_type = max(types)
# Collect which type(s) achieved the high score
my_types = []
for ii in range(0,len(types)):
if types[ii] == max_type:
my_types.append(ii+1)
# Return the type (or types if there are any ties for high score)
return str(my_types)
This calculation is obviously straightforward, and in this case it could have even been embedded in the JavaScript of the HTML page. But most medical or psychological diagnoses would not be so simple, and the point of this example is to illustrate an architecture that uses confidential computing to keep a user's input private while performing some potentially complex computation or machine learning inference. Not only would you likely not be able to embed your complex algorithm in client-side JavaScript, but you also may not want to because doing so would expose your proprietary intellectual property to the world.
Answering personal questions about yourself can feel like an invasion of privacy. But if you could be assured that nobody would see your answers, you would be more comfortable with the process (and that comfort could even lead to more accurate answers). The value of Cape Privacy's confidential computing platform is to make it easy for application providers to use technology that ensures your privacy. An Enneagram assessment isn't necessarily something that you would be too concerned about. But answering questions about your sex life; alcohol and drug use; or state of mind are all topics that should remain private to you. What happens in Cape stays in Cape.
Check out the Getting Started Docs to try Cape for free. We'd love to hear what you think.