javascript – 在客户端安全地执行代码

我在接受采访时被问到有关分布式计算的问题.

面试官:

“Sam ran a certain code on a client’s computer to get its output. But
the client modifies the code and hence the code returned a different output.

Now Sam wants to know if its possible to detect whether the code had been
changed or the return value is modified. Is this possible?”

我认为不可能阻止客户端在计算机上修改代码.或者我错了?如果没有,我们可以检测代码是否已被更改或执行某些操作以使客户端难以操作代码和输出?

最佳答案 客户端是否操作代码并不重要,唯一真正重要的是服务器从中接收回来的结果.毕竟,客户端可能根本不运行代码,它可能只返回硬编码响应.

所以问题就变成了:您的服务器可以信任客户端发送的答案吗?
一般的答案是:没有.

更复杂的答案是:它取决于你想要它做什么.也许你所做的就是服从proof-of-work concept,客户必须在数学上证明它做了一些事情.也许您可以包含一些签名过程,该过程在数学上证明某些数据来自某些其他数据,并使客户端的数据可以验证.也许服务器可以要求两个不同的客户端执行相同的工作或重叠的工作部分,这些部分可以相互验证,这需要攻击者一次操作两个(或更多)客户端,这可能是不可行的客户的回应是个人值得信赖的.

点赞