Thanks to Constantine I solved the problem, the only difference that newer helm use C-h C-d for the helm-enable-or-switch-to-debug function. So it still can be unbound as Constantine advised.
(define-key helm-map (kbd "C-h") nil)
if somebody really needs that function, it should be rebound to some other keys:
(define-key helm-map (kbd "s-w") 'helm-enable-or-switch-to-debug)
I used grep to find this out.
➜ helm git:(master) grep -Rn "C-h"
README.md:165:Once you are in the helm session (of `helm-M-x` or any one else) you can hit either `C-h m` or
README.md:168:Sometime `C-c ?` is not available, in this case you will see in mode-line `C-h m` instead of `C-c ?`.
README.md:273:- `helm-apropos`: Description of functions, variables, etc... Use it instead of Most `C-h` commands.
helm-files.el:758: "C-h m: Help, \\[universal-argument]: Insert output at point")
helm.el:238: (define-key map (kbd "C-h C-d") 'undefined)
helm.el:239: (define-key map (kbd "C-h C-d") 'helm-enable-or-switch-to-debug)
helm.el:242: (define-key map (kbd "C-h C-h") 'undefined)
helm.el:243: (define-key map (kbd "C-h h") 'undefined)
helm.el:817:C-h m\t\tRun this generic help for helm.
emacs-helm.sh:77:;; You will find embeded help for most helm commands with \`C-h m'.\n\