Abstract Machines: Efficient computation on encrypted data made is possible by an OISC (one instruction set computer)

in #blockchain8 years ago (edited)

What is an Abstract Machine?


An abstract machine also called an abstract computer is a theoretical model of a computer which can have instruction sets and which can also in cases of software implementations act as a virtual machine. The creation of an abstract machine is made possibly by the theoretical foundation provided by automata theory 


What is a one instruction set computer?

A one instruction set computer (OISC) is an example of an abstract computer. Just as you may be familiar with CISC (x86) or RISC (ARM) you may be able to understand that while RISC is a reduced instruction set computer an OISC is a one instruction set computer. The computer is the ultimate and extreme reduction of a RISC reaching down to a single instruction to the point where a machine language opcode is not necessary. 

Consider that you only have subtraction with the ability to subtract and branch if less than equal? This would be an example of subleq rules:

  1. A B C

    The A,B,C are your memory addresses.
  2. 3 4 6
    7 7 7
    3 4 0
  3. Every instruction you execute subtracts the value in memory address A from the value in memory address B.
  4. The result is then assigned into memory address B. 
  5. If the result in B is less than or equal to zero then the execution jumps to memory address C else it continues on to the next instruction. 
  6. Every instruction is always three addresses long as each value has it's own address. 
  7. 0: 3 4 6 A=7 B=0
    6: 3 4 0 A=7 B=-7
    0: 3 4 6 A=7 B=-14
    6: 3 4 0 A=7 B=-21
    0: 3 4 6 A=7 B=-28


What is Cryptoleq?

Cryptoleq works on similar principles as Subleq but with an ability to encrypt which allows for computation on encrypted programs. That is you can do general purpose encrypted computation and it also means that Cryptoleq is backward compatible with Subleq so that any program written to run on Subleq will run on Cryptoleq. Remember that both Subleq and Cryptoleq rely on only three address spaces and are OISC.



How does Cryptoleq compare to ZeroDB?

For practical discussion we would want to ask how does Cryptoleq compare to ZeroDB? ZeroDB would allow potentially for Steemit users to backup data to the Steemit company database in a way in which the Steemit company cannot access or see what is backed up. The data would in essence be backed up in an encrypted form which is useful for the purpose of backing up the data but it is also much less powerful than Cryptoleq. Cryptoleq goes far beyond backing up data and allows for encrypted programs. Because Cryptoleq is a general purpose encrypted computer it can potentially be thought of as a sort of encrypted assembly language abstract computer enabling general computation while ZeroDB  is an encrypted database only.

Current unknowns

While they creators of Cryptoleq claim it is efficient there is yet to be a definitive test which compares the speed of ZeroDB to Cryptoleq in specific. It would be useful if someone would conduct such a test to compare both options because only then would we know how practice Cryptoleq really is from the test results. The theory behind Cryptoleq is on the one hand simple but on the other hand it's assembly level and for the most part people have never heard of a one instruction set computer. In addition Cryptoleq relies on probabilistic cryptography in the form of the Paillier cryptosystem which means it's not necessarily as strong as AES 256 but it is useful for homomorphic encryption. It is based on a mathematical hardness assumption problem called: Decisional composite residuosity assumption. This means you will have to trust and have faith in the mathematicians who claim this problem is hard.

References
1. https://arxiv.org/abs/1612.03345
2. http://ieeexplore.ieee.org/document/7469876/
3. https://github.com/zerodb/zerodb 

4. https://github.com/momalab/cryptoleq

5. https://esolangs.org/wiki/Cryptoleq

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.028
BTC 62227.11
ETH 2400.78
USDT 1.00
SBD 2.50