Vibratory Money
by José Manuel Rodríguez Caballero
by José Manuel Rodríguez Caballero
Disclaimer
Disclaimer
The present work is only theory. A real-life implementation is subject to local legal regulations which will not be covered in this talk.
Simple program
Simple program
I will first present a simple model and then study its properties.
In[]:=
F[x_,y_,z_]:=Block[{t=x},Function[{i,j},If[Xor[y[[i]],z[[i]]]==Xor[y[[j]],z[[j]]],(*then*){t[[i]],t[[j]]}={t[[i]]-1,t[[j]]+1},(*else*){t[[i]],t[[j]]}={t[[i]]+1,t[[j]]-1}]][First[#],Last[#]]&/@Subsets[Range[Length[x]],{2}];t]
The properties of the model will motivate its applications and not the other way around.
I do not follow the ancient tradition of engineering; I am following A New Kind of Science.
Simulation I
Simulation I
Consider the following simulation, where
x is an array of random numbers;
y and z are chosen to be the array of False.
x is an array of random numbers;
y and z are chosen to be the array of False.
In[]:=
n=30;X={Table[RandomInteger[{-3000,3000}],{n}]};y=Table[False,{n}];z=Table[False,{n}];Do[X=Append[X,F[Last[X],y,z]],1000]
In[]:=
Show[Table[ListPlot[Table[X[[i]][[k]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000}],{k,n}]]
In[]:=
Animate[ListPlot[X[[i]],Axes->{False,False},PlotRange{-4000,4000}],{i,1,Length[X],1},AnimationRunningFalse,AnimationDirectionForwardBackward]
Simulation II
Simulation II
Consider the following simulation, where
x is an array of random numbers;
y is an array of random Boolean values;
z are chosen to be the array of False.
x is an array of random numbers;
y is an array of random Boolean values;
z are chosen to be the array of False.
In[]:=
n=30;X={Table[RandomInteger[{-3000,3000}],{n}]};z=Table[False,{n}];Do[X=Append[X,y=Table[RandomChoice[{False,True}],{n}];F[Last[X],y,z]],1000]
In[]:=
Show[Table[ListPlot[Table[X[[i]][[k]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000}],{k,n}]]
In[]:=
Animate[ListPlot[X[[i]],Axes->{False,False},PlotRange{-4000,4000}],{i,1,Length[X],1},AnimationRunningFalse,AnimationDirectionForwardBackward]
Simulation III
Simulation III
Consider the following simulation, where
x is an array of random numbers;
y is an array of random Boolean values;
z is an array of random Boolean values.
x is an array of random numbers;
y is an array of random Boolean values;
z is an array of random Boolean values.
In[]:=
n=30;X={Table[RandomInteger[{-3000,3000}],{n}]};Do[X=Append[X,y=Table[RandomChoice[{False,True}],{n}];z=Table[RandomChoice[{False,True}],{n}];F[Last[X],y,z]],1000]
In[]:=
Show[Table[ListPlot[Table[X[[i]][[k]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000}],{k,n}]]
In[]:=
Animate[ListPlot[X[[i]],Axes->{False,False},PlotRange{-4000,4000}],{i,1,Length[X],1},AnimationRunningFalse,AnimationDirectionForwardBackward]
Simulation IV
Simulation IV
Consider the following simulation, where
x is an array of random numbers;
y is an array of random Boolean values;
z is an array of random Boolean values;
z[[1]] = y[[n]] and z[[n]] = y[[1]] (statistical correlation).
x is an array of random numbers;
y is an array of random Boolean values;
z is an array of random Boolean values;
z[[1]] = y[[n]] and z[[n]] = y[[1]] (statistical correlation).
In[]:=
n=30;X={Table[RandomInteger[{-3000,3000}],{n}]};Do[X=Append[X,y=Table[RandomChoice[{False,True}],{n}];z=Table[RandomChoice[{False,True}],{n}];{z[[1]],z[[n]]}={y[[n]],y[[1]]};F[Last[X],y,z]],1000]
In[]:=
Show[Union[Table[ListPlot[Table[X[[i]][[k]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000}],{k,2,n-1}],{ListPlot[Table[X[[i]][[1]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000},PlotStyleRed],ListPlot[Table[X[[i]][[n]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000},PlotStyleBlack]}]]
In[]:=
Animate[ListPlot[X[[i]],Axes->{False,False},PlotRange{-4000,4000}],{i,1,Length[X],1},AnimationRunningFalse,AnimationDirectionForwardBackward]
Simulation V
Simulation V
Consider the following simulation, where
x is an array of random numbers;
y is an array of random Boolean values;
z is an array of random Boolean values;
z[[1]] = y[[n]] and z[[n]] = Not[ y[[1]] ] (statistical correlation).
x is an array of random numbers;
y is an array of random Boolean values;
z is an array of random Boolean values;
z[[1]] = y[[n]] and z[[n]] = Not[ y[[1]] ] (statistical correlation).
In[]:=
n=30;X={Table[RandomInteger[{-3000,3000}],{n}]};Do[X=Append[X,y=Table[RandomChoice[{False,True}],{n}];z=Table[RandomChoice[{False,True}],{n}];{z[[1]],z[[n]]}={y[[n]],Not[y[[1]]]};F[Last[X],y,z]],1000]
In[]:=
Show[Union[Table[ListPlot[Table[X[[i]][[k]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000}],{k,2,n-1}],{ListPlot[Table[X[[i]][[1]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000},PlotStyleRed],ListPlot[Table[X[[i]][[n]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000},PlotStyleBlack]}]]
In[]:=
Animate[ListPlot[X[[i]],Axes->{False,False},PlotRange{-4000,4000}],{i,1,Length[X],1},AnimationRunningFalse,AnimationDirectionForwardBackward]
Simulation VI
Simulation VI
Consider the following simulation, where
x is an array of random numbers;
y is an array of Boolean values;
z is an array of Boolean values;
z[[i]] = y[[n]] and z[[n]] = y[[i]] for all 1 ≤ i ≤ n -1 such that x[[ i ]] > 1000
x is an array of random numbers;
y is an array of Boolean values;
z is an array of Boolean values;
z[[i]] = y[[n]] and z[[n]] = y[[i]] for all 1 ≤ i ≤ n -1 such that x[[ i ]] > 1000
In[]:=
n=30;X={Table[RandomInteger[{-3000,3000}],{n}]};L=Select[Range[n-1],X[[1]][[#]]>1000&];Do[X=Append[X,y=Table[RandomChoice[{False,True}],{n}];z=Table[RandomChoice[{False,True}],{n}];For[i=1,i<=Length[L],i++,{z[[L[[i]]]],z[[n]]}={y[[n]],y[[L[[i]]]]}];F[Last[X],y,z]],1000]
In[]:=
Show[Union[Table[ListPlot[Table[X[[i]][[k]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000}],{k,2,n-1}],{ListPlot[Table[X[[i]][[n]],{i,Length[X]}],Axes->{False,False},PlotRange{-4000,4000},PlotStyleBlack]}]]
In[]:=
Animate[ListPlot[X[[i]],Axes->{False,False},PlotRange{-4000,4000}],{i,1,Length[X],1},AnimationRunningFalse,AnimationDirectionForwardBackward]
Technological implementation
Technological implementation
The values of x can be stored in a cloud.
The random values of the variable y can be implemented as outputs of measurements of the Bell states shared between the cloud and any user through a secure quantum channel.
Random values of z can be implemented as random numbers generated by the user’s cell phone and transmitted to the cloud through an insecure classic channel.
Statistical correlations associated with money transfers can be implemented by connecting two cell phones via a cable (secure classical channel).
Selling point: Because the attacker of the insecure classic channel does not know the result of the Bell state measurement, he/she cannot gain an advantage in money transfers by supplanting the users’ identity.
Future work
Future work
To explore the economic interpretations of other simple programs.
The program should not be motivated by the applications, but the applications should be motivated by the properties of the simple program, i.e., follow the methodology from A New Kind of Science, rather than the methodology of engineering.
References
References
Bell, John S . “On the Einstein Podolsky Rosen paradox.” Physics Physique Fizika 1.3 (1964) : 195.
Einstein, A; B Podolsky; N Rosen (1935 - 05 - 15) . “Can Quantum-Mechanical Description of Physical Reality be Considered Complete?”. Physical Review . 47 (10) : 777–780.
Malaney, P . N ., 1996. “The index number problem : a differential geometric approach” (Doctoral dissertation, Harvard University).
S . Wolfram, Conversation about unintentional transfers. Personal communication related to the Wolfram Physics Project, 2020, 2021.
S . Wolfram, “A New Kind of Science.” Vol . 5. Champaign, IL : Wolfram media, 2002.
S . Wolfram, “A Class of Models with the Potential to Represent Fundamental Physics,” Complex Systems, 29 (2), 2020 pp . 107–536.
https : // doi . org/10.25088/ComplexSystems .29 .2 .107
https : // doi . org/10.25088/ComplexSystems .29 .2 .107